LD47/proceed - Patch 2 (Version 0.13)



--V 0.13--
PATCH TWO: "Less Talkey, More Walkey"
====================================
Before we begin...

==

Special thanks to everyone that reported and gave feedback for this update!  Through some additional testing, I was able to track down a guaranteed soft-lock.  More on that below.

Synopsis:
I tracked down a single softlock in the coroutine for failing the box check.  At the bottom of this file, I will break down how this works, but be warned: there will be spoilers!  Other than that, I polished Red's behavior a bit more, fixed a few silly and inconsistent things, and stripped out cut content that was slowing down the looping cutscene a bit.  I've also compiled a build for WebGL and Linux, but be warned, I haven't tested them.  These builds will upload tomorrow, but Windows v0.13 is already available for download.

==

Patch Notes:

  • Tweak: Slightly messed with player movespeed
  • Tweak: Reduced warehouse boxes' weight to comically light levels
  • Tweak: Moved Red's disturb trigger a few meters to the left
  • Tweak: Increased Red's move speed
  • Cleanup: Removed all calls for the partially implemented Fade-to-Black animation
  • Side effect: loop animation is consistently shorter
  • Fix: Game will automatically quit on ending as intended
  • Fix: Red-related black screen of death (takes place after flipping light switch and exiting the level)
  • Tweak: Opening text will consistently show red clicking hint after four deaths, regardless of how looping happened
  • Fix: Warehouse boxes no longer phase through the floor on respawn
  • Fix: Red AI will reset on player loop (if alive)
  • Metadata: "Company" and project name tweaked.

Known Issues:

  • Cursor has not been replaced
  • Video timing may be slightly off/end abruptly
  • Player movement is still stiff
  • Player may move slightly on respawn
  • Red poses no threat to the player (glaring omission, too late now)
  • Red does not respawn (intentional design choice, I'll take the L on this one)

Future Plans for after LD47:

- Unveil a design pitch for proceed further [working title], an extended version of the game that is more technically competent and less pretentious while doubling down on the atmosphere and surrealist vaporwavey visuals.  On that note: create a proof of concept for Stage Two.

- Mom Doesn't Know I'm Awake Right Now mode: A toggle for the spoopy bitcrushed ambience.  You'll hurt my feelings, but I will respect your decision.
should I have just called it Mute?

- Give Me the Goods: Add a cheat for the Jump Height upgrade.

- Add missing sound effects and a new intermission screen to differentiate the two.

- Add a custom mouse cursor.

New Builds for other platforms (YMMV)

- WebGL port:
I wanted to make the game a little more accessible.  No guarantees on whether it works or not.  When it comes to performance, I promise nothing!

Note: I'm having a little trouble uploading this one for now.  Stick with Windows for now, sorry!

- Linux port:
As quality assurance lead for this project, I give you a 100% guarantee that I have no idea whether it actually works.  I'm hoping for the best!

==

Unrelated:
- I will be putting out a 4K render of the Intermission screen for download later on.  I may also put together a little extended OST, featuring an extended version of the ending song and an actual melody to the ambience or implementing certain sounds from the cancelled LD47 project Sustained Notes.

==

And... that's about it for the past, present, and future of proceed for now.  It's been an incredible experience joining this gamejam, and I've had a great time seeing some of my peers' submissions.  By the way, have you played PlayPause's Looper?  You should really play that one!

Now, I thought it would be a little fun to go in-depth as to what exactly happened here-- a full explanation of the game logic and such, detailing how exactly I ended up bricking the game for anyone that dared to ignore Red.  So... let's get right into it.

The Nerd Zone

You've been warned, spoilers ahead.

To understand the structure of this game, think of it this way.  proceed is nearly 100% held together by a Game Manager.  The Game Manager is the game's janitor, dealer, and Dungeonmaster.  It's your immersion tour-guide and the home cleaning service you call while you're out on weekends.  Every part of the game is either called by the Game Manager or calls the Game Manager itself-- either way, all roads lead to the GM.

Now, on the respawn system.

Whenever the player falls below a certain Y value known as the kill fall distance, the game manager throws a baby fit and calls a PlayerKillFall function.  Whenever the player enters the final room (calculated with a specific X value known as the "Finale Box Distance", the game manager checks on several key objective variables to try to fail you on one of them.

Each routine is designed to disable gameplay to show the crazy cool vaporwave cutscene I spent 12 hours rendering three times over, change the text of the final room to hint at what you did wrong, and pass the game back to your hands.  It goes like this:

Step 1: Game figures out what you did wrong (fell, dropped a box, left the bridge open, etc.)
Step 2: Game finds a fail condition and sends you to the proper failure script.
Step 3: Failure script calls a TransitionToVideo routine.  This moves the player out of trigger zones, (in theory) zeroes their movement, disables the player and camera movement scripts, enables the video player, and fixes things for the cutscene.
Step 4: Failure script changes the text in the final room to give you a hint, then pauses for eight seconds to let you admire the view.
Step 5: Failure script calls a TransitionToGame routine.  This will reset the fail conditions, respawn important objects, re-enable the player, and disable the video player.

This crash took place during Step 4 for the NoBox variant of my script.

Now, if you remember from Patch One, I have had my fair share of grievances as-is when it comes to Red.  When I named this thing evilBall, I never realized just how fitting this truly was.  It has been a constant headache since the minute it was implemented.

Today in evilBall's shenanigans, I found why my script was failing-- I had neglected to actually assign my evilBall gameobject and tell my game manager who to reset.  My scripts run a check for evilBall to see where it went, reset it, and remove the disturbed tag so that it will stay put behind the boxes until triggered again.  So, my evilBall remained in its non-scripted place, the warehouse was a big ol' mess, and the player took a nap in cutscene hell forever.  What a mess!

My first theory was that it had to do with a partially implemented Fade-to-Black between video and gameplay.  This animation is a simple black box on the UI that changes transparency from 0 to 100 to 0 over the course of four seconds.  This was only half-implemented, incorrectly animated, and cut for time.  It will not be returning until after LD.  Patch Two went ahead and pulled the plug on what was left of the animation, disabling the UI object and commenting out all lines related to calling it.

Once I found the real problem (thank you to Abe for narrowing things down!) the fix was a simple matter of adding the GameObject line.

It makes sense that I made this mistake.  Originally, the evilBall was to be destroyed and respawned as a prefab between runs.  This was stripped out of the game, but I clearly never replaced the prefab GameObject with the proper in-game one.  So, here we are.  Games were soft-crashed, dreams were crushed.

And, uh, I think that's it.  Did you get all that?

=======

Ending Notes
--
Again, thank you so much for giving my game a go!  It's definitely a little disappointing that a soft crash like this made it into not just the release but my supposedly *fixed* version of the game.

I thought I'd try making these notes a little less formal than usual, and... eh, I enjoyed writing it, at least.  I think I'll stick to the generic bullet points next time, but it was fun deviating a bit.

-Anchorlight

Files

LD47 - Patch 2, Windows 64-bit (v0.13) 127 MB
Oct 06, 2020

Get proceed - a Ludum Dare 47 Compo Entry

Leave a comment

Log in with itch.io to leave a comment.