Posted August 18, 2018 by InnerLoop LLC
Awe, yeah! It's time for another update! This one is awesome. At least I think so. So, you better think so, too.
There were a few major breakthroughs with design hurdles this week. No major changes to gameplay this time, but there ARE major improvements! Performance, for starters, has been dramatically improved! There's also a NEW feature which should help limit nausea! Speed Lines, baby! The Speed Lines work by giving the player a visual indicator of their movement. Even when you look down or to the side, you'll be able to intuitively ascertain which direction you're moving. This should be super exciting new for anyone who experiences motion sickness with artificial locomotion. I'd love to hear your feedback on this. Combined, this should make the game significantly more playable.
Meanwhile, the Neighborhood environment got another facelift. It's prettier than ever, so enjoy that! Expect more improvements soon, because I'm nowhere near finished with it.
There's new music, because I needed a change. I still haven't worked out a licensing deal with the producer that I was hoping to work with. So, for now, it looks like I'll be tackling the music on my own. I guess that's ok. I mean, I was an audio engineer for a decade... so I can probably handle it. I'm not quite sure what will happen with this in the future. I guess we'll see! It is pretty fun to be making music again, though. It's been a long time.
[Skip ahead to avoid nerd-talk.]
I started tinkering with physics substepping, in order to decouple the physics from the framerate. This helps to clean up problems that would occur when there were spikes of poor performance. Previously, if the game couldn't maintain a stable 90 frames-per-second, then the ball would slow down. This was due to the game cutting the framerate in half, to 45fps. By using physics substepping, when that occurs, the physics will update twice for every frame. There should be enough substeps to allow the gameplay to handle spikes down to around 11.25fps. At that point, VR is completely nauseating and unplayable anyway. So, it should be sufficient to handle most framerate spikes.
Additionally, I learned how to merge spline actors (like the curbs and fences) to create fewer draw calls. The effect of this on performance is freaking massive. Stunningly massive. On my low-end testing machine (i5-4690k/GTX 970) the game is perfectly playable on Vive at 90fps! Granted, you have to turn off shadows and drop the in-game Visual Quality setting to Low. But hey, that's a minimum spec machine and it's now performing well without dropping all the way to Super Low settings! And it's doing it without compromising anything important to the gameplay.
I also made some tweaks to the precomputed visibility settings, which may have had an effect as well. Not positive... but maybe!
[End nerd-talk]
As far as gameplay improvements, it's now a lot easier to progress through levels. That's thanks to the addition of victory states for incomplete games (ie: If you get enough points, you'll win, even if time expires before you finish the level). This allows for a lower barrier to progression, as well as an increased skill ceiling. For example, in Hit The Targets, a less-skilled player only needs to beat 5 Waves in order to win the level (achieving ~600pts). A more skilled player could get to Wave 10 (achieving up to 2200pts) and win with a much higher score! That'll make leaderboards more varied and exciting. Speaking of leaderboards, those should be coming any update now...
As usual, there are a bunch of bug-fixes. They're minor this time, because there don't seem to be too many major bugs at the moment. Let me know if you spot any! Also, please let me know if anything about the game itself is confusing or difficult to understand. I've been working on a tutorial, but I'm too close to the project to see what needs to be explained. Get at me with that feedback, kiddos!
In smaller, but still important, news... the price has been increased. We'll see how that works out.
Enjoy yourselves! I'll catch you all next time. Without further ado, here's the full list of changes:
v036 - DevLog
NEW Additions
+ Speed Lines (should reduce nausea)
+ Added new Hit the Targets level
+ Added Stop Signs, Street Signs, and Mail Boxes
+ Added Arms (experimental - debug only)
+ More stuff to the Neighborhood environment
+ New Music (one simple loop, for now)
Performance
+ Merged spline mesh actors
+ Added physics substepping (prevents frame spikes)
+ Increased gravity rate to compensate for new physics
+ Improved precomputed visibility settings
Game Adjustments
+ Level Progression system split into Stages and Worlds
+ Progression through Worlds now works as intended
+ Added Victory states for incomplete games
+ Improved Level Completion (based on completion percentage)
General Improvements
+ Made Body shadow visible
+ Hid Next Objective Indicator at Game Start
+ Improved Indicator materials
+ More consistent velocity calculation to improve Footsteps also (nigh imperceptible)
+ Outlines no longer draw on top of Menus
+ Reverted Hands and Helmet color to Flat Plastic
+ Improved Cones
Bug Fixes
+ Fixed Fences not blocking movement properly
+ Fixed shadows not respecting user settings on level load
+ Fixed glitch where changing Motion Style while having a Target selected would break Targeting
+ Fixed glitch where sub-level Ball Returns triggers would not reset after being triggered
+ Fixed a glitch where the Targeting Indicator would sometimes display after the ball resets
^ I think. It was happening like... 20% of the time. I haven't seen it happen in 40+ resets, so I assume it's fixed