ALTERPLACES
Post-mortem
Made with:
Engine: Unity
Visuals: Aseprite
Music and SFX: Ableton Live
So I know this ended up really, really long, but I wanted to do a thorough examination for my own benefit. Here's a TL;DR version:
- Game dev is really, really hard, especially by yourself.
- I think my concept worked pretty well, but it needed more clarity between worlds, especially for the player to know what they're going to be standing on after changing. This is made worse by the follow camera, which makes it hard to know where exactly platforms are going to be as you move around. Single screen levels would've been much better.
- Melon Pope gets a proud nod for figuring out how to use getting yourself into walls when swapping worlds as a secret navigation mechanic. Seriously so happy someone figured out how to do this and ran with it.
- The feel of gameplay was overall pretty good, but definitely hurt by cuts made because of time for things like coyote time and a more nuanced walljump.
- The art came out pretty well, and I feel good about it considering I realized halfway into the jam I sucked at making environment tiles. The music seems to be a big hit, and I'm really proud of that because the concept of it changing with the worlds was one of my earliest ideas and also I'm a musician and that should've been an easy thing to get right.
- The keyboard controls leave a lot to be desired, and were something I was never happy with during development. I've had a lot of good suggestions to make them better, and it will be a top priority for updates. Another piece of credit to Melon Pope for pointing out that you can use the mouse buttons to swap worlds, despite the fact that this was entirely unintentional.
Introduction
I was pretty scared going into the jam having basically only poked around in Unity, but I know I'm more focused and productive when I have a goal, so I took the risk and joined about a week before the start, hoping to take a little time to familiarize myself with the engine in that time. Life, as it does, got in the way, and I had no time to prep, and started from square one at the beginning of the jam. As I wrote in my devlog, it was rough. Tutorials I planned to rely on didn't pan out, and other responsibilities kept pulling me away from my computer for the first few days. Then I found better tutorials, got a handle on a few things, and started to feel a lot better. Hard cuts inevitably had to happen along the way, but I met my goal of submitting something playable, with a title screen and an end goal to reach, and I'm really pretty proud of that.
What worked:
The concept
Well, the idea literally came to me in a dream the night after the theme was announced, so I feel like that counts for something. I was unsure about the addition of the second alternate world, not to mention the void world, but I loved the idea and think it added a lot (including, um, a lot of extra work, heh). It's maybe not the most original interpretation of the theme, but I feel like the execution was a pretty decent success. It also has a lot of potential going forward both for environmental puzzles and, eventually, storytelling. I also want to give a special shout out to Melon Pope for my very favorite comment I've received so far! Despite intending to "fix" the fact that you could get yourself into walls while swapping worlds, I ended up liking the sort of outside the box, game hack opportunities it opened up and I intentionally left it in to see if anyone figured out how to leverage it to their advantage instead of just seeing it as a bug, and I was so excited that someone did! Right on, friend!
The gameplay (broadly)
Well, you can run and jump, and walljump. These were my minimum from the beginning, and I think for the most part they feel pretty good, though there's definitely room for improvement in all areas due to the time limitations of going solo for the jam. Considering how much trouble walljumping was to get working even close to how I wanted, I'm pleased with its state by the end of the jam.
The art
I'm really proud of the visuals I managed to put together for the different worlds considering the time limitations and the fact that I didn't figure out until the middle of the jam that I had no idea how to make decent environment tiles. You should see the versions of light world tiles I went through before where I ended up. Actually, no, you shouldn't. No one should. Also, while having no story was a deliberate choice to make me focus on design, it meant I was grasping at straws for visual design. Ultimately though I'm happy with where I landed, all things considered.
The music
Certainly the biggest reaction to the game so far has been about the music, and it's really satisfying to hear that people liked it so much. The idea of different mixes of the same track seamlessly swapping in and out as you changed worlds was one of the earliest parts of the concept, and I'm so happy it worked as well as I hoped. I have been writing music for almost 20 years, so that might have had something to do with it. It was a long day cramming in the writing, arranging, and implementation of four different versions of the same piece into a handful of hours at the end of the jam, but I think the results are worth it.
What didn't work:
Clarity between worlds
It's too hard to know and keep track of what will happen when you change worlds, especially whether or not you'll be standing on a platform or hanging out in space. I always wanted to implement "safe" tiles that were there in all worlds except void, but just didn't have time. I considered having outlines or ghost versions of other world tiles, but it never felt right and I still don't really like the idea. I kind of ended up making it so if there's a platform in the earth world there's always ones in the light and dark worlds in the same place, but this isn't communicated to the player, and it's not even actually always true. It's also just kind of a crappy, inelegant solution.
The gameplay (finer points)
I suppose it might just be something to expect from a jam game, especially from a beginner, but as I wrote above, every part of gameplay feel could be improved upon. Things like coyote time and letting a jump count even if you hit the button a few frames before you're on the ground were always hoped for, but ended up in the big "no time" pile with so many other things. Air movement, while not too bad, still feels a little stiff (though personally I prefer too stiff to too loose by a very wide margin, so I'll always stick to that side of things). Walljumping never quite worked all the way right, and withholds control from the player for too long to avoid indefinite single-wall jump-climbing.
The camera / level design
While I wanted the experience of setting up a follow camera, and it was the way I pictured the game playing, I think now single screen levels where everything was visible at all times would've been a much better fit for the mechanics, or ideally a more robust follow camera that set itself into position for each platforming sequence and didn't move until you got past it. This kind of camera is what I always wanted, but just didn't have time to set up. I realized I should've gone with single screen levels the night before the last day of the jam, after all the levels were built and half of them were decorated, and it was just too late to change. And speaking of the levels, boy are they unbalanced, and do they ramp the difficulty up waaaaay too fast. This is sort of due to trying to approximate a whole game's worth of progression in four levels, but I see now that was a terrible choice and keeping things simple would have been much better.
Controls
From the beginning I imagined playing with a controller, as that's always my preference, especially for platformers. After a quick poll on the MFGJ discord it became clear that only a small percentage of my fellow jammers would be using a controller if they played, so I tried to make things work on the keyboard, but nothing was really strong and satisfying. I also learned, once again thanks to the discord, that many computer keyboards have a hardware limitation on simultaneous key presses, often only three at a time, though some combination keys like shift have exceptions. This is true of my keyboard, and meant for a game where you have to move, jump, and sometimes hold two world change buttons, something has to be on shift. In the end I could make it to the end of my game, even as someone who hates playing platformers with anything but a controller, so I called what I had good enough for the jam. I wish I'd had more time to experiment with other options, or at least supported multiple ones better, but it's another thing that came down to time. It's been brought to my attention (the second bit of credit to Melon Pope in this post-mortem) that you can use the mouse buttons to swap worlds, which is something that must have been set up in the input section of Unity that I never noticed, because it wasn't intentional at all, but it sounds like it's more comfortable and I feel ridiculous for not including it from the beginning.
Conclusion
As much as I wish I could've had more time to tweak things, add features, and realize mistakes, I'm glad I didn't. Submitting something by deadline, warts and all, was good experience for me. I can easily lose hours, days, or weeks to small changes and endless iterations on ideas, and putting something out there that's not perfect and seeing that it's not the end of the world was a very helpful thing. The response from fellow jammers has been almost all positive, with the main complaint being the controls, which is more than fair as I was never happy with them myself.
I learned so much during the jam and it will be invaluable to me going forward with game dev, working toward those big ideas in my head. Also, I made a damn game! It's on the internet and people I don't even know have played it! That's mind blowing and something that still hasn't really sunk in. I want to say a giant thank you to everyone who's followed the development in any way, commented on my devlog, hung out in the jam discord, or just played the thing. The community in this jam has been really exciting to be a part of and watching your projects take shape has been as enjoyable as making my own.
One thing I've learned for any future jams (apart from that it's really hard to go solo), is short is good. In the beginning I wanted to have a meatier game that didn't just last a minute or two, but I'm glad I didn't sink a bunch of time into a dozen levels after all. With almost 400 submissions, I don't want to tie up more than a few minutes of anyone's time to try my game and feel like they've seen what it's all about. I do wish I'd made the jam release of my game easier, and just let players explore the concept more than be challenged by it, but again, that's a lesson for next time.
Future plans
If any of you are interested in following along with my game as I make updates and improvements, first of all, thanks! Secondly, here's my current to do list, some of which is left over from before the jam ended, and some based on comments. Any other thoughts or feedback will continue to be welcomed!
- Safe tiles that are visually distinct and the same in all worlds (except void)
- Single screen levels, or a dynamic camera that frames entire platforming sequences and then remains still
- Better and more configurable controls
- Jumping and walljumping tweaks and polish
- More levels with a much more gradual introduction to alternate worlds and difficulty curve
- A brief delay and VFX when dying to give it more impact, without making the player wait to try again
- Story! As I mentioned in my devlog, my fiancée came up with a whole story concept that I think is amazing after seeing my game in action with the final art for the first time. It'll be another learning process to implement, but I'm excited to give it a try. Not to directly compare my little game to such massive works, but it gives me big time Celeste/Braid vibes.
In the unlikely event someone actually read all this, holy crap thank you for your interest and impressive attention span. I hope what I learned might be able to help other beginning devs in some small way, as this jam and this project were amazing learning experiences for me. I wanted to write this up while everything was still fresh, and before I got back to work on my game at all, but now I'm very excited to dig back in and make it better. All the best, fellow jam-patriots!