simple machines forum

Please login or register.

Login with username, password and session length
 

News:

Remember to make your own backup of posts before submitting.

 
 

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Holey Moley

Pages: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 ... 58
166
Devs / Re: EXIT: 25th Anniversary Project
« on: February 28, 2021, 11:39:33 AM »
Last patch for a while

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

I uploaded a patch yesterday because the code was at a stable place and I expect to be venturing into unstable territory for the next so many days, or weeks perhaps...

It has new code that draws the arm animation before everything else. This helps to keep performance more even when the arm/arms is/are taking up a lot of pixels on screen.

I recall fixing some timing code for subtitles, and (I'm sure there are other fixes) one odd change worth mentioning somewhere is the hop input won't any longer force you to stand up, so it's possible to hop mid squatting while remaining squatting. But it does stand up if you fall further than a jump height, so it only works (currently) on level ground.

P.S. I think I'm going to start playing with this (https://github.com/jibbsmart/JoyShockLibrary) library to add advanced features for Sony's PS4 and PS5 controllers (maybe Nintendo Switch can work too) shortly. My main plan for the accelerometer is to use it to lean over while standing still and look behind your self, like a rear-view glance. I will see about other uses when moving or attacking later. Since leaning forward and backward doesn't seem incredibly useful I will see about possibly making it an alternative way to look up and down instead. This is among the things I saw myself doing at the beginning of the new year.

167
Devs / Re: EXIT: 25th Anniversary Project
« on: February 21, 2021, 03:20:05 PM »
Important Improvement Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

Since working on the supersampling feature (F1 or Alt+F1) I've been trying to work lumps out of the movement system. This also started with the edge "defocusing" technique a little while ago. Today I tried to get a handle on the frame rate and I've been able to come up with a much better FPS readout on the F5 overlay, and rule out frame rate in the lumpiness dept.

The main remaining source of it I found was actually in the change I made to rotate the linear momentum when turning. Luckily what helps with it was to remove some ratcheting logic from the drift system ("pedals") gaits. The ratchet keeps them from bouncing between gaits but with this change it's much better without it and I really don't want to give up that change. I'm hoping the new much smoother gait transitions (gear shifting) will make any bouncing go unnoticed.

There's still some jerkiness if you quickly change from circling one way to the other but this is actually how it's supposed to behave, but I think in this case it's not ideal, but to solve it will take some special logic later.

168
Devs / Re: EXIT: 25th Anniversary Project
« on: February 20, 2021, 11:10:57 AM »
Patch (same link as above)

There's a new supersampling mode in this patch that's entered by pressing F1 or Alt+F1. It takes a toll on your PC so if it makes the frame rate irregular (feel bad) you have to decide if you'd rather reduce the resolution or switch out. I recommend it over widescreen if you have to choose. Also, you can ignore the "Anisotropy" feature in this mode because I've made it to always use 4x for the time being. This helps it perform better and I can't personally see any difference when I increase it.

This is an official style announcement, I've already written about this everywhere. But I have since updated the DLL with a fix for some menu text layouts, mainly in weapon damage rating text.

169
Devs / Re: EXIT: 25th Anniversary Project
« on: February 14, 2021, 02:05:04 PM »
Patch (SOM_PRM profile update misbehavior)

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

This patch fixes a long standing SOM_PRM misbehavior so PRF files can be edited while using it and and shared profiles can be updated at all.

Also there's a fix for a glitch related to the new gauge hit effect that got stuck if hit while jogging.

I'm trying not to make a patch for everything I do lately but this is a bug I want to write something to let people know it's solved. Note, more than once I've had my profiles get all mismatched. Whatever that is I don't believe it's solved by this.

170
Devs / Re: EXIT: 25th Anniversary Project
« on: February 12, 2021, 11:46:19 AM »
Improvement Patch?

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

This patch switches over to a fixed frame rate. I don't know if it's best for everyone, but it certainly helps my system. I think Windows is just an unstable environment for games. But it could depend on hardware. I really don't think there's anything SOM can do to help this.

What I was using until now (since recently really) is average time over 20 or 30 frames. Not doing this caused smoothness to tank. Lately I've been having bad feedback in the control system intermittently and I took it to be frame rate irregularities most likely.

Edited: Note, my main motivation was to determine if the new much improved gait system had math issues or if the troubles with it lied elsewhere. So far it seems the frame rate mainly was at issue, which at least for the gait system is good news.

What I tried today was to fix the frame rate to the closest standard frame rate. That seemed to remove it, although it changes the experience a little bit. Ultimately I decided to defer to the display adapter's reported frame rate where available.

I also added a [Window] extension called "seconds_per_frame" (not fps since this doesn't change the frame rate) that sets the length of the fixed time step. It's not really meant to be used normally, but it can speed up and slow down the game effectively by covering more time. It can be used to speed up the game like people usually play KF2 on emulator.

But what I wanted to see was if the control system held up at different time steps. It's a little hard to judge because it's unnatural to play in slow-motion or sped up speed, but it doesn't appear to have any issues. It seems that the problems arise due to irregular timing. In that case they're probably purely down to human perception and not really errors.

I think this will be the best experience when hiccups occur, but more importantly it seems to eliminate turbulence from the control system. It seems to make jumping last longer or be more full. I might even reduce the jump height. I'm also thinking of reducing the do_lap extension when turning to see if it can make it a little less blurry. (In theory giving more weight to the more recent frame would give the blur some directionality, more like afterimages probably are IRL. Unfortunately this would degrade the do_aa effect. I wonder if the new contrast detection system can help to reason about if things are moving, then give a slight weight to the current frame if so. In that case the do_aa effect can't do its magic anyway, but I don't know if every pixel having a different weight would be odd or if small weights would be noticeable. It's possible even a slight weight could aid the brain to isolate the real image. Edited: in the debug mode build I can hit the grave/tilde key to turn off the effects pass. In that case the blur is not majorly reduced, so I think the improvement will be nice but not night and day.)

171
Devs / Re: EXIT: 25th Anniversary Project
« on: February 10, 2021, 10:37:30 AM »
A Feature Patch (mainly)

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

There's now (finally) some code to limit event/object activation to 1 meter above/below the PC's feet/height.

This is for layers mainly, although keeping monsters at bay is not so simple unless their ability to recognize the PC across elevations would be hampered. I still have to do a major round of work on this area.

I also noticed a problem with money pickup. Its timing was broken, too fast, but also it was switching to a new alternative subtitle height for crouch pickups. Since it would take a lot of work to treat it differently I've adjusted its timing so the subtitle appears as soon as possible after the crouch height kicks in. So its timing is the same crouching or not for now. On the plus side, I don't think crouching to pickup money had ever worked before. (Edited: I think I need to work on delaying item/event activation now, finally.)

Elsewhere today I announced a fix for NPC title animations WRT the new 60 fps system. And (no one cares) the new smaller VR menu is fixed for aspect ratios different from the PlayStation VR set's.

P.S. Except for the money glitch/fix these were all ideas that came to me as I was coming to (waking up) today. I'm impressed I was able to cover them all in one day (and I do a lot with NpcEdit too.)

172
Beginner and other Nonsense / Re: STICKY: Random News
« on: February 10, 2021, 05:30:00 AM »
Today I worked on the timing for when NPCs show their titles, at 60 fps. There are 4 bytes in the profiles for the frame when the titles should appear. If they're set to 0 (as some are) the title will show at the end of the animation. This is because 1 is the first frame and 0 is never equal in the test.

I've added this to NpcEdit today along with the turning rate setting, on a second page. I've been meaning to publish EneEdit with two pages and this one now. There's nothing in the way really, except I feel like I should do the Japanese versions and publish at the same time. There's also a chance I will change them or discover something new in the meantime.

If someone needs these features by all means ask and you shall receive. I'd like to find out if there's room in NPC profiles to add a turn-table and flight/swim/incline parameters so they can have parity with the new enemy profile feature set.

173
Devs / Re: EXIT: 25th Anniversary Project
« on: February 09, 2021, 09:28:47 AM »
Improvement Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

I could only work a half day today so I set about to try to enable the better gait smoothing code for directional movement and in the process I was able to solve some other things.

One big surprise that makes me feel dumber than usual is I realized the problem with the turning drift effect was really that the movement drift affect needed to track with turning. This is like your momentum transfers as you turn because of friction. I'm really surprised it took me like 10 years to realize this. It helps a lot with the bad feeling I was getting fighting monsters.

It still behaves the old way when jumping or falling, i.e. not having a footing. I think the way I was trying solve the problem wouldn't even work. I began to realize that it was just matching the angular and linear momentum but the direction was still incorrect.

I may have found the "wobble" I've been posting about. A while back I noticed when turning in one direction (or holding down the look/up down input) my code would still turn in the other direction even with no input. So I tried to make a change to fix that. I think I've found a better way to fix it. And the other way had issues as I suspected it might. I just forgot about it. It's really hard to implement joint rotation because you have to snap it when you get down to a certain point, but if you snap just one of one or more dependent axes it can feel like someone's grabbing the steering wheel. In my system there's some auto-centering logic but the stiffness for it in the middle is 0 so it offers no resistance in the beginning. The problem is the system is quantized so anything below 1 (which is also the dead-zone threshold) is 0 and so by right has/had no power to pull it in until the snap kicks in, which is suppressed while the other axis is engaged. Thinking aloud this makes me think I should at least try to tie the axes together with respect to this figure. (To see if it's an improvement.) Although what stiffness I can detect in the PS4 controller doesn't feel like this.

EDITED: There's also some code that suppresses the texture AA effect when the the screen is moving. It removes what can be pretty serious/unpleasant strobe patterns that can occur on bright, high contrast surfaces. (Edited: Right now it doesn't kick in for the the bounce and ducking effects. I'll have to reorganize it.)

174
Follow-up

I think I know how this happened now, I just did it again... I gotta lookout for this more...

What happens is if I build SomEx.dll while a SOM tool or game is running out of the installation, Windows won't let it be overwritten while it's in use. I always upload patches out of the TOOL folder, so if I'm in a hurry I don't notice that I'm uploading the old DLL :doh:

175
Devs / Re: EXIT: 25th Anniversary Project
« on: February 06, 2021, 04:55:58 AM »
Patch + SVN Update

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

Today I changed the TXR colorkey to 0,0,0 for everything except SOM_MAP. I think the main thing that had held back this change was being able to distinguish between MDL and MDO textures in the player. I realized that was no longer an issue and the various bad TXR files would need to be fixed either way, and possibly they're not even bad with this change. (So this may fix them en masse, fingers crossed.)

I've spent some time doctoring the two magic circle objects since my reason for making this change is to provide a way to use color based blending (similar to having a full alpha channel) without the cutout effect interfering with soft images.

To do that (although this is probably not strictly necessary) what you want to do is create a 1 pixel wide buffer around your image and set those pixels equal to 1,1,1 (as black as possible) and set the rest to 0,0,0. This will probably be completely invisible, and it will push the cutout system out to this 1px fringe so you can't see it.

Before making this change (historically) the darkest black was 8,8,8 and although I haven't tested it, my guess is that would've been too visible.

Every since I added a much improved cutout effect (it's still possible to improve it a lot but I haven't been able to find better mask antialiasing code) these magic circle objects got the raw end of the deal. But honestly they're much too low resolution, so they look pretty crummy either way, so I didn't consider it a major loss at the time.

Sometimes flames looks better cutout. KFII's flames look better without the cutout, at least if I don't edit them.

176
Devs / Re: EXIT: 25th Anniversary Project
« on: February 05, 2021, 06:01:45 AM »
SVN Update (minor)

FWIW I've bumped the Sompaste.dll component up to 1.0.2.6 in order to add Windows/DOS "glob" pattern matching (FindFirstFile family) to its SET file parser.

This makes managing temporary SET files easier for projects in development. I probably need to give this area more thought. Especially for PRT files I can see having to edit each one into a SET file just to include them in the project would be a chore. Which is why I had to add this ability.

The only reason I set up sets at this stage is I'm adding some pseudo PRF files to a DATA/MY/ARM folder to do initial experiments for new arm facilities, and they get picked up as item profiles in SOM_PRM. I didn't want that so I made a meta.set file for them, but I (http://en.swordofmoonlight.org/wiki/SOM_file/list_of_environment_variables#DATASET) haven't provided a way to do a true blacklist style DATASET set at this time, so I actually just need to not include them. But to do that I needed to be able to (somehow) include everything else in my project, and around the time I got to PRT files I knew I needed to find a better way, and adding wildcards was obvious.

P.S. As a reminder, TOOL/SetComp.exe can generate SET files by dropping a directory on it. It's not very user-friendly in that regard, but you just have to make a temp directory and copy/paste the PRF/PRT files you want in your set into it. Then you can start using sets and categorizing your profiles.

177
Devs / Re: EXIT: 25th Anniversary Project
« on: February 04, 2021, 08:54:45 AM »
Patch (3)

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

Today I found a major glitch in the new AA effect. It was a good find because the code came from VR code. Fixing it may help with some bad vibes I was getting from VR that turned me off or made me feel something was wrong. I wrote about it in the thread/topic about the AA effect. I've also expressed some doubts, but I'm trying to keep a positive attitude about it so I don't go into a spiral of despair  :xd:

I've tried to reevaluate the effect after finding/correcting the glitch. Also I think lately some bad frame rate timing (spasms) crept into recent releases/patches, that hopefully this patch will eliminate.

Strikeout: Nope, it's choppy without the change I made too... I guess I prefer spasms in the meantime :sick: (reuploaded 30min later)

P.S. I really love how great the control system has become. But I swear tomorrow I'm moving onto something new for a while. Something to add to and complement the budding control system.

178
Devs / Re: EXIT: 25th Anniversary Project
« on: February 03, 2021, 12:55:59 AM »
Patch (2)

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

I noticed jumping sideways was badly affected by the change I made to improve drifting after circling, so this patch tries to claw that back.

I've also disabled the new gaits system for walking (not turning) because it's a bit floaty, especially after jumping, so I have to make time to reevaluate it. I think it is a better experience but walking has never been an issue before. (Don't fix it if it's not broken.) You just don't notice it like turning. Plus the turning system is nonlinear and so goes very very slow to very fast.

179
Devs / Re: EXIT: 25th Anniversary Project
« on: February 02, 2021, 11:08:53 PM »
Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

This patch fixes a surprising number of bugs (mistakes I made) when trying to recall which Save/Load slots were last selected in the menu and auto selecting the last loaded file. And it had crashed trying to do this when loading a save file from the new Windows Explorer file association system :doh:

I've also increased the texture AA effect when using do_srgb (which is used automatically by do_lap/do_aa) and noticed that it's degraded by the new inter-frame contrast reduction effect because it has a constant amount of contrast even when it's not moving. I played around with trying to balance them but I wasn't successful to reduce the degradation. It's part of the reason I opted to increase the effect, partly in the hope of overpowering it and possibly it can reduce contrast a little by finding a perfect balance that mixes the edges 50/50 and makes the alpha mask cutouts fall dead center with do_smooth.

Ultimately what I optimize for with this new effect is to kind of look like an old web image that's progressively loaded so that the overall effect is a coherent experience that kind of looks like the game is intelligently anti-aliasing the edges in real-time. Of course you're not supposed overly scrutinize the edges when you're playing the game. The goal is to reduce the chance of noticing the effect.

EDITED: More technical crap, I did notice the texture AA effect seemed less degraded if the contrast is done on each color component separately, so I changed to that. If the texture/background is grayscale then it wouldn't matter I guess. It seems more sound to fuse the colors since otherwise the effect potentially makes new colors that weren't there in the first place, but so far I haven't seen an issue, and colors are relative, so in theory an artificial color put side by side can be better/stronger to trick the eye into seeing things.

180
Devs / Re: EXIT: 25th Anniversary Project
« on: February 01, 2021, 02:51:04 AM »
AMAZING PATCH

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

This patch has two back-to-back enhancements I hadn't anticipated that are some of the best things to happen in a long time.

The first happened a couple days ago, that is the final nail in the do_aa system (in a good sense, not a coffin, a structure) and I've made a topic/thread for it here (http://www.swordofmoonlight.net/bbs2/index.php?topic=324.0) but I don't know if I will have more to add to it. I'll have to wait and see. The day after I was able to look at with fresh eyes and I'm happy with it's current configuration. I don't think I will revisit it until I have a good system for adjusting its settings without rebuilding/restarting the program. I keep thinking I will finally break down and set that up, but I'd really like it to be part of the Exselector system I have had planned for a very long time. It seems like bad luck to force it.

Now the second development came about because I was spending so much time scrutinizing pixels while make subtle movements.

I started to notice a really unpleasant wobble when turning sometimes, depending on the approach and timing. I wasn't sure what it was, so I spent all this morning investigating it. I don't think it was so noticeable before I recently added a system that changes how you drift after circling. To see the problem it was necessary to turn inside and slowly.

This turned out to be one of the situations where I feel like the angels are on SOM's side. Whether or not this is the root of the problem, it was the solution. In a kind of act of desperation I just tried the most harebrained thing I could think of and it actually worked perfectly to make the movement system become suddenly angelic for lack of a better word. It's probably a case that the system is overdesigned, and there's a simpler way that a smarter person could express it, or the math, or whatever.

I'll try to explain it, but know that the result is now the movement system, turning, etc. is so smooth you can't even tell you're changing gaits, which is like changing gears I guess, and that kink is gone, and no doubt there were many kinks like it, but it just happened to easy to notice.

A short primer, in the beginning, the original solution to making SOM be kind of analog was very crazy, but actually kind of worked. At that point reprogramming it's binary was beyond my grasp. So what I did was like, to move at half speed, was to move every other frame. And so on. I was probably able to decouple the visual from the movement, I can't remember, but I can't see why not. So maybe what you saw was pretty smooth, but the underlying movement was kind of jerky like this. But even then I thought this was a good design, because controllers are very erratic, and thumbs don't have as much finesse as you may think. I didn't want a one-to-one connection between thumb or controller to what you see, and I wanted to have fixed speeds, and to potentially be able to assign an animation (a gait) to each speed someday. You can manage that if there's a small enough number of them. Plus I figured this would be more organic (i.e. less robotic.) Plus I think most commercial video games really only offer 3 speeds. So SOM actually offers 7. This is because the controllers are really garbage. Probably SOM is too sensitive as it is. Most games have a huge dead-zone because they know 70% of controllers are defective.

Eventually the system became more refined. Usually always because it had to for this reason or that. Like, this is a prime example. There was an unacceptable wobble, so I had to figure something out.

So one of the first things I did after increasing the resolution (this involved making the speed independent on each axis and modulating it based on the actual moving velocity) was add a spring simulation. It's probably not how you imagine a spring. It's more like a system for shifting gears smoothly. Each time you change your gait the stiffness and target for the spring changes. It's actually kind of weird to think of a spring with a dynamic stiffness.

So I calibrated that so it switches over as smoothly as possible, but you can (or could) still tell when it's switching over, just like a bicycle. The stiffness didn't change instantly. It would evolve at constant time to the new stiffness. So the problem, I guess, depended on the timing. If you approached slowly it would be fine. But if not it might look kinky, and I think whether it did or didn't also dependent on the micro frame rate at the transition point.

So, what the new change does, is it manages the rate of change of the stiffness depending on how far away the target stiffness is. I really felt like making a such a change was piling more derivatives onto an already too out of control situation. So I didn't expect it to work, and I certainly didn't expect it to behave like an optimal solution. I really felt like it was just a moment of grace to be honest.

The gear shifting analogy is a good one, but another way to think of the situation is as a quantum system (not quantum mechanics) meaning that you have some quantized states that must be translated into an analogue response. I never expected it to be like this. I will say this. It now feels like it has parity with mouse input FPS games. The mouse also feels better, but it's pretty underdeveloped. I may take another look at enabling high resolution mouse input. I already have the code but it wasn't a better experience.

What makes it more viable is I think the input is much closer to a one-to-one mapping. All the more remarkable because it's only working with 7 states.

P.S. I think I mean to write a blog to highlight these back-to-back developments. They're probably the highlight of the year, even in January.

Pages: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 ... 58