Progress Report #2
I'm trying to see if I can keep up progress reports on a weekly basis. I think I'll try to post something every Friday, even if not a lot has changed.
This week I started contacting artists to help me work through creating a final visual style for PogoChamp. The current style is mostly just whatever I could do with the assets I had. The current player character is just the Dummy character from FinalIK / Puppetmaster, and the level tiles are the ProBuilder defaults. I made most of the VFX myself, but the art style is currently very "Unity Default".
I'm hoping that with artist help I'll be able to update all the visuals so that PogoChamp looks "like a real video game", and not just something one guy made in his spare time :)
[h2]Bug of the Week:[/h2]

While I was looking into optimizing the replay file size, I decided to reduce the frame rate they record at from 60 fps to 30 fps. When I made the change, I noticed that during the first jump in a replay, the character would stutter pretty severely. Oddly this seemed to only be visible on the first jump, after subsequent jumps seemed fine, as you can see in the image above.
The jump effect is created using two values, the jump progress and the jump force. The jump progress simply describes how far along in the jump animation you are, while the jump force is used to change how far down the pogo stick squishes when you jump. The replay system records both of those values to recreate the jump behavior you see while playing.
In order to root cause this issue, I reduced the replay recording fps from 60 all the way down to 5 fps, and the problem got significantly more pronounced. It turns out I was just using the jump force value at the most recent recorded frame, instead of interpolating it between frames. it ended up being a very easy fix (Mathf.Lerp() to the rescue!), and helped me to fix some other small inconsistencies with jumps in replays. It also demonstrated that even at 5 fps, the replays look very smooth! So if I need to reduce the replay size even further at some point I can safely drop the recording rate even further.
[h2]Changes[/h2]
This week I started contacting artists to help me work through creating a final visual style for PogoChamp. The current style is mostly just whatever I could do with the assets I had. The current player character is just the Dummy character from FinalIK / Puppetmaster, and the level tiles are the ProBuilder defaults. I made most of the VFX myself, but the art style is currently very "Unity Default".
I'm hoping that with artist help I'll be able to update all the visuals so that PogoChamp looks "like a real video game", and not just something one guy made in his spare time :)
[h2]Bug of the Week:[/h2]

While I was looking into optimizing the replay file size, I decided to reduce the frame rate they record at from 60 fps to 30 fps. When I made the change, I noticed that during the first jump in a replay, the character would stutter pretty severely. Oddly this seemed to only be visible on the first jump, after subsequent jumps seemed fine, as you can see in the image above.
The jump effect is created using two values, the jump progress and the jump force. The jump progress simply describes how far along in the jump animation you are, while the jump force is used to change how far down the pogo stick squishes when you jump. The replay system records both of those values to recreate the jump behavior you see while playing.
In order to root cause this issue, I reduced the replay recording fps from 60 all the way down to 5 fps, and the problem got significantly more pronounced. It turns out I was just using the jump force value at the most recent recorded frame, instead of interpolating it between frames. it ended up being a very easy fix (Mathf.Lerp() to the rescue!), and helped me to fix some other small inconsistencies with jumps in replays. It also demonstrated that even at 5 fps, the replays look very smooth! So if I need to reduce the replay size even further at some point I can safely drop the recording rate even further.
[h2]Changes[/h2]
- Replay Mode: fixed issue where cameras would stop following ghosts after they crashed.
- Cleaned up unnecessary GameObjects from some levels.
- Replay Mode: Show number of attempts in the UI.
- Replay Mode: Show elapsed time in the UI.
- Replay Mode: Added reset button to instantly restart a replay.
- Replay mode: Made it so that swapping between focused attempts makes the camera teleport instead of quickly flying to the new position. (still needs some work).
- Updated 2 and 3 star times on various levels.
- Reduced the number of landing poofs that ragdolls spawn when crashing into things.
- Changed replay saving from JSON to binary format, reduces replay file size by about 30%.
- Replay Mode: Reduced how often surfaces would unnecessarily become see through in replays.
- Replay Mode: Fixed replay jump jitter at low FPS.
- Reduced replay recording FPS from 60 to 30, for an additional 50% size reduction! (now 65% smaller than they were last week!).
- Replay Mode: Fixed Free camera sliding slightly when no controller input is pressed.
- Replay Mode: Free camera now moves and rotates faster.