Rest Stop 23: Game Jam and After


How Did This Start?


Tom and I know each other from the Metroidvania Month discord and had workshopped some things before the latest jam started in May. So we came in with some ideas of what we wanted to do. Somewhat pretentious ideas about a game with some tight resource management with lighting and combat equipment. We got Zephyr on board who would do music, and Michael Games who did tiling and backgrounds.

Our concept eventually changed a bit to involve a pilot both inside and outside of a mech-suit navgiates our facility or ruined-future thing, or whatnot. In fact I still have animations for Clare getting in and out, and piloting it as it moves.

I started building a level editor for this (and hopefully other future projects) a few days before the jam started.

Tom did a fair bit of platformer coding stuff ahead of time that we were excited to put to use.

How We Did this Gamejam Game Done?!

Badly. I blame primarily myself, if we're blaming.

Michael Games did beautiful tiles and backgrounds, I did some sprite-work for the pilot and mech, and Zephyr started on music some music (this asset creation was all within the jam period, per the rules.)

I'll stress that Zephyr worked pretty consistently through the month on music and Michael delivered assets pretty consistently too. I probably did not work as consistently on either the level editor OR the sprite work I was doing as I should have. However, about two weeks into the jam, I finished the meat of the level editor.

Eventually our scope and ideas changed: Our ruinous future morphed into something about an alien zoo which turned into a bit of a glorified rest-stop facility, hence the game's ultimate title of Rest Stop 23. Unfortunately, before his platforming engine was able to be integrated with the level editor, Tom got sick and had to drop out of the competition.

(In the interest of taking responsibility, it is worth noting that had I managed my time better and had the editor ready for integration a few days earlier, we might have had the codebases merged into one GMS2 project before this happened. It's hard to know for certain about that counterfactual, but it seemed worth noting.)

However, before he left, Tom had contributed a bit of camera code (plus a little sprite modification and good comment habits) to the level editor project I had going. So we did still have his camera code, which probably saved me up to 3-4 hours of pain.

When it had become unclear whether Tom would be able to pass his code along, I started work on a backup platforming engine using my level format. This did require us to scale down our intended gameplay. The mech became a plot device, a vehicle that was parked *at* the rest stop, with the plot of the game beingthe pilot moving around on her own trying to find a lost set of keys.

Those last two weeks were pretty brutal, and culminated in Zephyr and I staying up way too late sick doing level design and engine work and music on his part and a little more pixel art on mine, in the final days of the jam. I cannot stress how invaluable Zephyr's comradery (not to mention area design skills) were at this stage. Everyone on our team contributed, but he pushed probably as hard or harder in his areas that last bit of time as I did in mine.

There were a lot of bugs to fix. Then there were more bugs, and still more, and unfortunately there were still a couple of howlers left in the jam version, including the grace period version. But it was done, and thanks to the excellent audiovisual work by Zephyr and Michael Games, and some decent spriting and coding on my part, relatively pleasing to play and look at. We even had some time to implement an intro sequence in the 24 hour grace period, which (while it introduced another bug that I've since fixed) was one of the few grandiose ideas Tom and I had started with and something we were both very excited to be able to put in.

I want to shout out our mid-jam beta testers Wervyn and Signal here; they both had some pretty valuable feedback for me. In particular, we made the walljump a little more forgiving (believe it or not, you have three grace frames after touching a wall to pull one off, and it starts to get weird if we go much further. But Wervyn is the reason you have those three frames.)

What Happened Next?

The next couple of days I'd taken off work anticipating a need to rest after the jam; so of course I ended up doing a lot of stuff towards getting a Linux VM set up and able to build, and our friend Lancer-X really helped out by finding a solution someone had posted for an issue web builds had at the time, and letting me know how to apply it to the web build Javascript.

Falcon Nova generously cleared us for reuploads for the Linux and web builds, which probably helped us a fair bit (especially web) with getting enough ratings to secure #8/75 in rankings.

Unfortunately about a week and a half after the jam submissions closed I had to go to the hospital for diabetic complications. I'm better now, and managing that condition much better.

I came out of the hospital to find an overwhelming amount of personal support and support for our project from friends. That was a real
blessing!

(As a quick aside, please don't neglect taking care of your chronic medical condition if you have one. Especially if you're headed into a situation like a game jam where there will probably be "crunch", however minimal.)

Zephyr and I made a list of things we wanted for 1.0 and beyond and got to it.

With input from our initial testers as well as our "post-release" testers, Lancer-X and maxim, we finally completed version 1.0, which was good. With some counsel, I eliminated a number of problematic bugs, including one wherein players could get stuck in walls (Signal and maxim deserve a shout-outs here). I also did some optimization of how the "tile" layer of objects was maintained, by making sure that each tile that was surrounded by walls on each side would delete itself, leaving only necessary blocks. This eliminated a lot of performance overhead and made the game run at a bearable speed on web and Linux.

Version 1.1 was mostly finished after this time and mainly concerns a sound-swap and a couple of error corrections related to sound and copy-editing. Somewhere in there I wrote some new camera code.

Also during this time, I reconfigured the editor as a "viewer" and made a map of the game in Aseprite. And Zephyr finished polishing up the official soundtrack versions of the tracks, which are now available on Bandcamp! (More on that later.)

Then I got covid, which put me out for a few days. While I've been down for the count for a few days, I'm getting over the coronavirus now, and finishing up the final bits and pieces on 1.1 while writing this devlog today.

Did You Learn any Lessons?

Yes! We learned several lessons. Early-on a large part of our mismanagement was due to not having someone step up and "lead" in a given area. The very basic divisions of labor were in place pretty early on in the jam, but I think it was a few days in before we had a vision, and it didn't really get focused until we realized we'd be doing engine work and area design in about a week and a half. Zephyr and I ended up doing that in various degrees especially near the end. It was also a real pain point that we didn't have a clear plan so that we all had a notion of exactly what our roles were and how to get there.

Hearing the feedback from the jam was good, but one thing that really solidified things for me was watching a couple of people play the game live. We had a bit of a rough area design in the early parts of the game, and probably should've adjusted the difficulty curve a little. Zephyr and I both come from a place of high appreciation for precision platformers, which is an influence I think we both want to own, and while we think the game had pretty tight controls that made this bearable for most people, more intentional conveyance of player abilities and a smoother difficulty curve in the start of the game would have made for better design.

As alluded to above, one lesson I'm taking away from the last couple of months is to watch myself medically and practice responsible self-care in that regard.

And while we know a little bit of crunch is always likely, we'd like to have less of it in the future.

To that end, there's a few things we want to put into practice the next time we enter a game jam:

  • Make a plan
  • Keep scope reasonable
  • Work an hour or two every day you can especially early on
  • If you don't have enough of a plan to work, spend that time planning until you do
  • Figure out what needs experimentation and do it early-on (e.g. basic jump physics and movement speed for a platformer.)
  • Use intentional conveyance especially early in the game
  • We should probably enlist a wider variety of experience and skill/preference. (Our testers were all awesome, but they were also all experienced at platformers and had an above average tolerance for punishing play)

What Happens Now?

While we're happy to be able to get Windows and Linux builds out at this time, sadly, there won't be a 1.1 web release yet. While the web compiling issue that previously existed in Gamemaker Studio 2 has actually been resolved, a nastier one exists in the present stable release; we'll get a web build going as soon as it's available in a stable Gamemaker Studio release.

Revenue share is a big enough pain that we've elected not to make the game tippable at this time. However, if you'd like to throw money at one of us, you *can* support Zephyr's excellent soundtrack work (all his) here:

https://michaelwoodmusic.bandcamp.com/album/rest-stop-23-ost

Files

Rest Stop 23 v1.1 (Linux) 32 MB
Jul 21, 2022
Rest Stop 23 v1.1 (Windows) 29 MB
Jul 21, 2022

Get Rest Stop 23

Leave a comment

Log in with itch.io to leave a comment.