Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Alterplaces (live now / post-mortem added)

A topic by theioti created Jul 11, 2020 Views: 721 Replies: 22
Viewing posts 1 to 19
Submitted (4 edits) (+3)

UPDATE: The post-mortem can be found at the end of this thread, or by clicking here. It's super long for my benefit, but there's a TL;DR version at the top of it.

UPDATE: Alterplaces is now live! You can play it in browser right here. Any feedback is welcome, and thanks for checking in!

Alterplaces

Hey fellow jammers! Anybody else terrified? I've got a pretty solid plan for my game, which I also have no idea if I'm capable of actually doing, but I guess it's almost time to find out. It's hopefully going to be a very very simple platformer made in Unity that has you switching between parallel worlds. Going the solo dev route mostly because I want to see if I can, and also a little bit because I'm afraid of dragging others down or not being able to be reliable right now.

I made a plan for the next two weeks if any more experienced devs want something to point and laugh at, which I'm pretty much expecting to stick to for the first two to three minutes of development and then veer wildly off course and have to find my way out of the woods with a machete and the help of the discord chat.


I will unfortunately not be starting right at go time, as it'll be three in the morning and I can already barely keep my eyes open tonight. Good luck everyone and see you all tomorrow!

(+1)

This is actually a very solid plan bro ! thank you for the inspiration!

Submitted(+1)

Hi! Super that you've made a plan.  Great that you have the second week mostly for polish etc. I'd suggest that you get some external player testing done about half way in to get some feedback on how it plays. It can affect what comes next a lot. A little bit depending on the scope "Day 13" might not be enough for fixing the  "inevitable problems"

(+1)

Good luck! ^_^

Submitted(+2)

Thanks for the comments everyone!

Things have been...rocky so far. I had a tutorial I planned on using to get started because it went from scratch instead of having you get assets off the store and included a wall jump, but it was hard to follow, and ended up with the raycasting being all weird and the player sticking to things. The guy "left those problems for you to figure out" which was, shall we say, not a great thing to find out after spending a couple hours following along to end up with a janky broken movement system. Never could get the wall jump to work, at that.

Also, as I mentioned on the discord, I just found out at the start of the weekend that the storage unit my fiancée and I have flooded last week and I had to spend hours over the last couple days emptying it and trying to save what I could. So that was a nice addition to the jam starting. But anyway, a couple more scrapped project files of experimentation later I got some help from the lovely people on the discord and found some better tutorials and I'm about to dig in again.

In my most recently scrapped file I did eventually get side to side movement, variable height jumping, and even a halfway functioning wall jump I made myself by adjusting the ground checking for the regular jump to work sideways. I also got a gif screen capturing dealy so once I get a more solid start on a project file I can stick with I can start sharing some pictures! Though as my plan above shows I'm not planning anything but placeholder art for a while still.

Hope everyone else's projects are going better than mine!

Host(+1)

oh noooo i'm so sorry to hear that. i'm glad to hear you've been able to get help on the discord! i really hope stuff looks up for you soon because this sounds great so far! i can't wait to see how it looks. best of luck with the rest of the jam!

Submitted

Thanks! I'm feeling much better after today. Still kind of feeling my way through the dark with Unity a bit, but not nearly as much as two days ago!

Submitted (1 edit) (+2)

I keep being too tired to post end-of-day updates and just crashing, but I've finished a tutorial series that's my favorite I've found, and I'm about to cross my fingers and create what I hope to be the last project file I'll need. I followed along and got pretty good feeling movement, jumping, wall jumping, and even some starter animation experience in a demo project, and I've got a much better grasp of how scripting works now and what different variables do. I'll still have my main mechanic to figure out on my own, but I think I have a decent idea how to do that already.

Unfortunately I won't have much more time to work tonight, and I'm three days behind my plan, but I'm feeling a lot more capable in Unity, so that's something. Also, all the setbacks and watching other people's work on here and the discord has given me an idea of something to change with my game, and I think it'll be a lot cooler and more unique without much more time or work, so I'm even kind of happy about that in a way.

Back to it!

EDIT:

Okay, end of day three! Got my project file up and running, a placeholder player sprite and environment tiles, horizontal movement, and a starter jump with ground checking. If you're following along that puts me...two days behind schedule. But! I'm excited all the same. Check it out (gif in no way representative of what the game will look like or play like lol):


Submitted(+2)

Day Four

Actually pretty proud of myself today. Not much time to work, but I accomplished something exciting. After working through the tutorial series I mentioned above I determined I really didn't like the feel of the wall jump it featured, so I came up with a different approach, tried it, and it worked!

It does have a bit of a bug to squash still. It works perfectly if you hold directional input toward the wall and jump, or if you hold away from the wall for a brief moment then jump, but if you push away from the wall and jump at the exact same time you jump straight up instead of out. That'll be a project for tomorrow, hopefully, but I'm still feeling good about my growing grasp of coding in C# for the moment. I also implemented variable height for jumps depending on how long you hold the button down.

Still need to set up camera follow and get to work on my main mechanic of world-changing, which I don't really know how to approach, but I'll have to do some research when I can sit down for a longer session.  Also everybody's projects are looking so great and so different and it's been really fun to watch them all come together.

Submitted(+1)

Great job with the wall jumping, it looks great. Good luck with the rest of the project!

Submitted

Thanks! It was really satisfying to have the idea, try it, and actually have it not only work, but feel like what I imagined.

Submitted(+1)

Day Five

Not much time again today, but I started on the main and theme-related mechanic of my game: changing the world! After a short while of failing to understand how SetActive works, I got a prototype up and running, though it's pretty ragged and the code is a long way from optimized. Check it out:

After the way this jam started for me, I'm feeling pretty accomplished. There's a ton more to do to get the central mechanic where I want to be, including something I overlooked in my original dev plan: dying! I'm taking, as may be obvious, a heap of inspiration from Celeste for this project, and a critical part of that game is death and respawn, so I have to learn how to get that going here soon.

Another thing I didn't plan for is moving the camera. The tutorial I used had you using Cinemachine, but that doesn't work with the pixel perfect camera, which is kind of important to what I want to do. So, I have to learn how to write a camera follow script. Doesn't sound too hard, but I haven't given it a shot yet. If I can't manage it, I suppose I can always go with single screen levels.

Time for me to make some dinner. Happy jamming everyone!

Submitted

Day Six

Had maybe a good half hour or so to work on things today, so, not much to show. I've been really busy the last few days and only squeezing a couple hours in a day, but tomorrow I should be able to hunker down with some time and focus and try to catch up on all the things I've fallen behind on. Tried to do a little reading about how to implement audio in Unity while I was away from my computer today, and my brain could not absorb any of it, so that's making me a little nervous, but I'm sure I'll get the hang of it. I did get a somewhat clunky camera follow script up and running, so at least I spread my levels out a bit.

Another puzzle I'm trying to solve is the controls. I pictured playing with a controller from the beginning, as I've always preferred it for almost all types of games, but especially platformers. The planned control scheme is left stick to move, a face button to jump, and shoulder buttons to change worlds, with the left one changing to one world, the right one to another, and both together to something else still. In my tiny bit of time to work I got this all set up with some new placeholder world tiles and additions to the changing script, and it works like a charm on a controller.

However, it's a bit awkward to manage all those inputs on a keyboard, and it turns out at least some keyboards (including, evidently, mine) limit your simultaneous input keys to three! (Thanks again discord friends.) So move + jump + two world change buttons, which will be a rare but occasional need, doesn't work on keyboard, or at least not having the world change mapped to Z and X as I did. It seems that shift is something of an exception since its whole purpose is to be used with other keys, so now I have movement on the arrow keys, jump on space, and world change on shift and Z, and it's functional, if a bit inelegant to actually perform.

Anyway, I'm hoping to get some rest and get a lot accomplished tomorrow. Hope everyone's having fun and getting a lot more done than I am! Seems like some of you must be, as there are like 70 submitted games already and I'm trying not to cry about it.

Submitted

Day Seven

Well, here we are at the end of week one. I'm a little sad not to be where I hoped with all gameplay elements finished, but that was a pretty lofty goal as I was learning everything as I did it, and especially considering how little time I had to work this past week. That said, I'm actually feeling pretty good about things. Today, after hours of trial and error and lots of being sure I knew what would work and being proven wrong, I finally fixed my wall jump! Now you can hold towards the wall and jump, or you can hold away from it and you get a small window where you can still jump before you fall, and you always jump away from the wall instead of occasionally jumping towards it.

Somehow the raycast that checks if the player is next to and facing a wall was returning true for about one frame even if the player was next to the wall but facing the other direction. Since I use the raycast in combination with the player's facing direction to set the wall jump direction, when this happened the player would jump towards the wall instead of away from it. I tried so many things to fix it with no success (or fixing it but creating a worse problem) but in the end what seems to have done it is an additional boolean touchedWall stacked on top of the regular isTouchingWall one. I tried it sure it wouldn't work, but there we were. It was exciting to have it working, but a little exasperating to not really understand why.

Okay, moving on. Today I made a list of all the things I wanted to have done by the end of the first week and actually cranked through most of it. I tweaked my regular jump to have a bit more weight when descending, added a killzone for player death, set up respawning, built a halfway functioning title screen, and added the ability to pause the game with a placeholder pause screen. Most importantly, I fully implemented my main mechanic of world changing! Now I have a basic default world, one alternate on one button, another on another button, and a void world if you hold both. Here it is in action (sorry for the visual downgrade for prototyping):

I would like to figure out how to make the camera stop centering on the player when you get towards the edge of the level, but I don't have any idea how, so I'll have to see if I can find a tutorial or something that lets me do that. If not I suppose I can block in tons of plain ground tiles in all directions.

Not too much left in the gameplay department other than building my levels and setting up goals and scene changing between them. Looking over my dev plan I totally forgot about collectibles, and honestly I'm not sure if I'm going to mess with them at all. I guess it'll depend on how much time I end up with, and the same goes for my secret feature, which was always planned as a maybe in the first place. Excited to start throwing some art design ideas around soon, and to put together some music too. I have a pretty clear vision for how I want the music to be, but essentially no idea how audio works in Unity yet, so we'll see how close I get.

Host(+1)

hahaha i think a lot of dev is really just "oh wow this was a lot more work + took much longer than i thought it would" and it's always good to figure that out sooner than later. but yeah honestly this is really great progress and im glad you were able to hit most of your first week goal list!! i'm excited to see how it'll look with final art and music!

Submitted

Thanks! I can definitely say that's been my experience in my small amount of working on games, so it's always nice to hear it's not just me. I'm a little intimidated by all the art everyone's been posting of their projects, but I'm just going to do what I can with the time I have left.

Submitted

Day Eight

Quick update because I'm falling asleep. Not as much ground today as I was hoping, but a few things. I learned about lerping and how to clamp values, and got my camera working pretty much how I want, including a brand new script for it that I can configure much better than the first one. I threw together a short loop of level music to test my concept, and got it working pretty painlessly. Basically you have variations on the same theme depending on which world is active, that swap and play seamlessly as you go. I think it'll be really neat. Setting up the audio sources for music was a breeze, but I don't really understand how to script for SFX, so I've still got that on the to do list. I know an audio manager would be a good idea, but I don't know if I want to take the time to tackle it.

Got started a bit on a player sprite, but didn't really get where I wanted to be, which is sort of tough to tell because I don't have a great sense of what I'm going for visually. I made the choice to go all in on mechanics and no story because it's very difficult for me to keep story scope small, but consequently I don't really have a sense of who the player character is or what's going on in this world (or, I suppose, worlds). Also, despite deciding yesterday I wasn't going to bother, for some reason I made collectibles.

As part of this I spent way too long trying to debug my OnTriggerEnter function because I kept getting a big scary red error in the console when I would pick up the object, only to eventually figure out the error was coming from my world controller script, because I deactivate collectibles in the alternate worlds so you can only pick them up in the base one. So a quick check to see if the object is null in there and everything was fine.

Also today I spent too much good dev time playing Celeste. Whoops. Those B-Sides are hard.

Submitted

Day Nine

So today I decided to push full force on environment art for my main world, because I'd really like to have it before I start building levels, but what I learned is I might suck really, really bad at environment art. I spent all day iterating on a tileset, and ultimately I'm happy enough with where I landed, but it became clear quickly that I've never really made a tileset before , because I keep loading it into Unity and then realizing that there's some sort of directional tile I left out. Anyway, here's pretty much all I have to show for the day:

You may have noticed there's a idle sprite for the player there too, which I threw together as well, just to have something other than tiny purple powerstance man, but I'm not too sure where I'm going with the player character yet. So that's about it for day nine. Starting to feel a mounting anxiety about how much I have left I want to do, and how that relates to how much time I have left before the end of the jam. Not being too hard on myself though, as I've been learning basically every step of the way. Hoping to have more time to work during the week coming up than I had last week, and to get my alternate world tilesets knocked together and start writing music!

Also want to make time to catch up on how everyone else's progress is going, as a whole day agonizing over individual pixels has me thinking maybe a breath or two away from my own project might do me some good, deadlines or not.

Submitted

Day Eleven

Midday update

Ran out of energy and crashed last night so obviously no update, but I've been busy for the past two days! Got my player sprite done with all the animations, and got all three tilesets and all four backgrounds for my different worlds done. I also figured out why my backgrounds were showing up tiny and/or blurry, and it was because I forgot to change their settings after importing them before I stuck them on game objects. Oh well, at least I noticed eventually. I also found a bug with my wallsliding that I spent hours trying to fix before I realized I accidentally had a positive instead of a negative value in one line of my code. Yeeeah. But yes, kindly excuse the image overload if you will.

The main world looks just about the same as in my previous update, but here's alternate world 1, dark:

Alternate world 2, light:

And finally alternate world 3, void:

There are a lot of things I'd like to polish up and improve with my tiles and backgrounds, but I'm calling them good enough for the jam. I just can't handle reimporting and setting up tilesets one more time because I realized "oh wait, I don't have double sided platform edge at the base of a wall tile". That said, I think I love making tilesets, and without a hard time limit I think I would find it very relaxing and maybe even therapeutic.

Anyway, not much else to share, but here's a couple of player animations (please ignore the missing shirt design in one frame of the idle sprite):

 

I showed my fiancée where I was with my game last night and she immediately had a whole story and ideas for the player character that played right into the jam theme, and honestly it's great and I wish I had time to run with it. Gah! I made a deal with her that after the jam we could develop it into a full game with me doing art and programming and her in charge of the story.

Hope everyone's projects are going well and you're not all as stressed about the deadline as I am!

Submitted

Day Twelve

Not too much exciting to show today. Didn't have much time to work, and mostly made a bunch of small tweaks here and there when I had the chance. Fixed up a little bug with animation and did a little work on the couple menus I have, which brings me to one cool thing. I decided to go with a playable title screen that doubles as a sort of mini tutorial to get you to use the controls before the game starts. I think it's pretty rad (1000 awesome/old points to you if this reminds you of Vectorman).

Don't actually have a first level yet, but I've got the scene changing working anyway! You may notice I've made a slight change to the title, as there are now multiple alternate worlds to swap between. I like Unity's UI tools but I...do not have the hang of them yet.

In the above gif for a split second you can see I've also got some spikes implemented to use as a hazard. I thought it was going to be really easy, then I realized I was going to have to code my colliders to change with the worlds and didn't think I would have time to set it all up, and THEN I realized I could just pop them into my grid objects as children and my existing code would handle everything. So that was nice. Also finished up my simple pause menu so you can go back to the title screen from gameplay. I had big dreams of a level select, but there's no way I'll have time, and as mentioned above I still don't even have levels yet!

Hoping to have a big productive day tomorrow, get my remaining work done, and learn how to build and get things up and running on here to actually submit, and then take a deep breath and take Friday real easy. We'll see how that all goes. Based on making the title screen I think building levels is going to be super fun, and I'm looking forward to putting together a few tracks for music. It's looking like SFX might have to get the axe, but things could be a lot worse than that.

Submitted

Day ???

So I've been grinding away pretty hard and haven't been having the mental energy to update here, but we're coming right down to it now and I feel like at least a quick one is way overdue. As of now all I have left is to pretty up my last two levels with some decorations and work out making a build and getting it uploaded, which I'm crossing my fingers somehow goes smoothly. The jam build will have four levels (that I'm sure are hilariously unbalanced), my playable title screen from above, and a credits page. Installing the WebGL module now and hoping for it to be playable in browser without making anyone download anything.

Level building was both a lot of fun and kind of brain-melting, as the nature of my mechanics means, one, some conventional approaches to level design are broken out of the gate, and two, you have to make everything three damn times. Somehow didn't see that coming. I'm not sure how fun or satisfying or even playable what I ended up with is, but I do know I can't do better without more time and experimentation. I can beat the game in a few minutes, but I've also been digging into the hardest parts of Celeste lately, so, uh, sorry probably?

Today I went through a whole mess of stuff with music, but ultimately it came out pretty close to what I wanted. I'm not 100% happy with the actual tracks, but it's been a while since I wrote music and I had one day to do all of it. As it is there is a core universal base of sounds with each world having its own unique additional ones, all of which swap in and out seamlessly as you play. It would be better with brief crossfades, but I just didn't have time to learn. I managed to get some SFX in, for footsteps, jumping, dying, and collecting pickups. The pickups are admittedly meaningless, but yeah, they exist. I tried to make a counter for the end screen, but couldn't get it working and scrapped it.

Right now I'm intending to keep working on this project after the jam, but I will need a little sanity break and I want to have some time to experiment with Unity now that I've gotten a start with it. I really love working with it and I'm actually very pleased with what it's let me accomplish in just a couple weeks. Seeing some of the things the rest of you have been doing with it during this jam has also been really inspiring.

Anyway, I have to go to bed. Hoping to build, upload, and submit early tomorrow. See you on the other side!

Submitted(+1)

I did it!

My brain is soup, but I finished my game (at least what I'm counting as finished for the jam anyway). You can find the link to the game page in the updated first post of this devlog, or you can find it right here too if you want to avoid the extra scrolling. Today was mostly level polish and a couple of small additions and fixes, including fixing my credits music after my first attempt at uploading a build and realizing it was broken. After trying to reupload and having it fail six times in a row I narrowly avoided a panic attack, redid the build, and succeeded. Whew.

This has been a great, if daunting, experience, and I'm actually really proud of myself for taking it on and sticking with it until I had something I felt good enough about to post. I'll be writing up a postmortem on the whole process while it's still pretty fresh, but after the dust settles a bit. The last two weeks have been intense, and I have crammed more into my brain than was reasonable to expect it to accept. I hope to keep working on Alterplaces and maybe one day build it out into something resembling a full game, but I need a bit of time away from tilemaps and serialized fields for my mental health.

Thanks to anyone who's been following along, and a big thanks to the jam discord. It's been so great to see everyone's progress and the diversity of all the games people are making. I don't think the jam would've been half as enjoyable without the liveliness and support of the community, and it was awesome to be a part of it. Now that there's no big scary deadline looming over me I can't wait to dig into giving everyone's projects a try!

Submitted (1 edit) (+1)

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!