I lied -- this game is actually getting a bunch of views and plays on itch.io so I thought I should just go in and make these fixes now.
v1.1.1 is now out on ddrkirby.com, cocoamoss.com, and itch.io with the following two fixes:
- Fixed a bug that would often cause you to become stuck upon respawning
- Fixed a bug that enabled you to warp to the beginning of the level by quick-quitting while dying
The quick-quit warp bug I fixed by not allowing you to quick-quit during death -- you need to wait until the respawn finishes.
The respawn bug was something really silly -- when storing the respawn position of the player, I was rounding the X position and rounding the Y position up and storing them both as integers, which would frequently cause you to get stuck inside walls when you respawn. I'm not sure if the previous collision changes I made caused this issue to just become more prominent or whether this fix was needed before with the old buggy code, but I'm just storing those as floating point numbers and that seems to have fixed it.
I'd greatly appreciate it if you guys could do some runs just to make sure nothing else is still broken, particularly with respawns. I did some initial testing and it seems to be OK, but can't hurt to get another set of eyes on it.
Thanks all!
Yeah this would have to be more of a standalone minigame mode, like it starts you in a specific world with all shapeshifts and you see how quickly you can collect all items. Probably outside the scope of what I'm willing to do, hahaha...
Just letting yall know that I won't get to these fixes until next week, have to finish up a different project first. I haven't forgotten about this thread :)
Yeah, I guess it does let you just warp back to the beginning of the game whenever you want, huh? Let me know if that negatively affects routing, that's sort of the last thing I wanna do. Otherwise, maybe it'll be a nice changeup.
Hm okay! Yeah I didn't check any of the respawn cases, I will have to see whether I can (or can't) do anything about those ones.
That quick-quit glitch....makes total sense, that's an oversight on my part. I'll try to put a fix in for that.
v1.1.0 is now up! Game is also up on itch.io. I've included the version changelog as well.
https://ddrkirby.com/games/nyamos-adventure/nyamos-adventure.html https://cocoamoss.com/nyamos-adventure/nyamos-adventure.html https://ddrkirbyisq.itch.io/nyamos-adventure
Now that you have an actual in-game timer display, you should be able to verify what the offset is coming from a lot more easily, but from the code, it looks like the timer gets set to 0 when you press Enter to start a new game, and it only increments whenever you're actually in one of the 5 different "world" scenes.
This means the transition time between pressing enter to start the game and when the first scene actually starts up (i.e. when the screen starts unfading) is not counted in the in-game time. This is a 1-second transition. This also means that the transition time between entering the final door (e.g. when the screen is fading to black) IS actually counted in in-game time. This is a 3-second transition.
So overall if you start your timer when pressing enter to begin the game and end your timer when you enter the final door, the in-game timer value should be about 2 seconds longer than your RT time. I'll leave it to you guys as to how you wanna handle that.
The timer is using Unity's FixedUpdate function and counting game ticks, so the total in-game time should always be a multiple of 0.016667 seconds.
Hope that all helps. Thanks for playing our game even after all this time! Remember, the best thing you can do to support me is simply to enjoy my games/music and share them with your friends :)
I've verified (unfortunately) that the lag on getting your first collectible is still there, no idea what is causing that, I have a hunch but I'm not really gonna bother testing it. Fortunately I've also verified that if you just go and collect one, you can just quick-quit and from then on you should be lag-free and good to go for future runs.
This is also a good chance for me to deploy to itch.io so I will also be doing some updates to make sure that all works (have to update the url locking code, etc). After that I will be exporting and deploying the new version everywhere. It will be labeled as v1.1.0.
In the meantime, some other updates I made:
- You can now quick-quit anywhere in the main game by holding left shift + right shift and pressing "Q". That is specific enough to not get accidentally triggered but hopefully still easy enough for you guys to use.
- Ending screen now displays milliseconds in addition to seconds and minutes.
- I added an in-game timer that goes off of the same thing as the ending screen display. It doesn't display by default, but can be enabled by holding left shift + right shift when you hit Enter to start the game. Note that if you were ALREADY holding left shift and right shift for the quick-quit, unfortunately you need to REPRESS those shift keys since they don't carry over (sorry!).
I couldn't do anything about the first-time collectible lag, I checked the code and I think that's just a Unity WebGL thing. It =might= be fixed since I did update to a new Unity patch version, but I wouldn't get my hopes up. On the plus side since I have the quick-quit functionality you shouldn't really have to deal with it much.
Progress so far:
-
I have the continue bug fixed. What this was is that on starting a new game, it resets all of your abilities for the current session, but it doesn't actually clear them out of your save file. So if you: 1) unlock all abilities in some session, then 2) start a new game, then 3) reload the page, then 4) select "continue", then you'll have all abilities.
-
I'm pretty sure I have the clipping bug fixed! There was some really silly logic in the main movement function that caused it to behave really oddly if you were really unlucky. I think this tends to happen if you are =very close= to a floor (but not touching) and you have a bunch of velocity accumulated. The collision logic was kind of wonky in that case and actually pushed you inside of the floor. This same bug is what led to you "sinking" through the floor once you actually clipped in.
This has been fixed to be much saner, so now you shouldn't clip into things. Unfortunately, this also means that if you ever DO clip into something, you won't "sink through" it at all, you'll actually just be stuck =/ Hopefully that doesn't happen.
Thanks for the videos, NoJoTo! I haven't verified all of these cases individually, but I did test one of the spring form jumps before and after my fix and have verified that it prevents the clip from happening (yay!)
-
I checked and if you manage to actually fall through and go to a screen that you're not supposed to, you'll actually just continually fall forever and accumulate infinite speed (there's no terminal velocity) and the game will basically be broken. Yikes.
-
I have no idea how you triggered the infinite balloon rocket bug. I think what happened is that the timer for ending the rocket somehow ended up as negative (?), but the end condition only checks to see whether that timer is equal to 0, so it just never ends (even though the timer keeps decrementing). I've changed the check so it checks for <= 0 which should theoretically prevent you from ever being able to get stuck in the infinite loop, but that still doesn't explain how the timer got negative, as it shouldn't ever skip a value and the only way to start the loop is for it to be set to 20 frames. I'm....not gonna worry about it too much.
Here's what happened when I tried to load the project in the latest version of Unity by the way, hahaha:
It's actually not AS bad as it seems, just all of the screens lost their offset data so literally every screen in that world got juxtaposed on top of each other. I'm not keen on trying to deal with that though, so I reverted to using an older build. Fortunately, it seems to be working fine....
Ah yes. I've seen some weird collision bugs with getting trapped in the floor at points. Does that just cause a soft-lock? I was thinking I could add a key combo to just forcibly trigger a death, but that would probably change some of the routing by making deathwarps easier, wouldn't it?
I might add some alternate keybinds for people who want to use space or Z or whatever to jump.
Also I will try to add a hotkey combo for resetting the game so you don't have to keep refreshing your browser. The first-time collection lag that NoJoTo is referring to only happens the first time you start a fresh new session, so that would alleviate that issue as well.
"Well, I've noticed that the game lags when collecting your first egg. Not the biggest deal, but kinda annoying. Then again, maybe that lag is just my bad computer..."
I've seen that one some of my WebGL builds. I can't remember if I was ever able to fix it or not, but I'll take a quick look.
"Besides that, the only other thing I can think of is the glitch that puts you out of bounds if you fall just the right way. (I can elaborate further if you don't know what I mean by that.)"
Please elaborate :)