I finally made my dream game! (clickbait)


Back when I first started making games as an adult (2016), my dream game was some kind of 2D pixel-art soulslike with a big open world and lots of secrets/NPCs/Bosses.

Years later, I knew that diving into such a project would be dangerous. It’s easy to get sucked into an overscoped “dream game” and then sunk-cost your way into a multi-year slog.

So I made olden peak, a pico 8 pixel art metroidvania, thinking that would satisfy the urge for my dream game while preventing a scope-creeped tragedy.

The problem is: Pico 8 is really good at making you want more. It gives you all the satisfaction of making something but then cuts you off at the last second and says “sorry, you’ve had enough gamedev. you must ship now”. So I wanted to use Love2D for my next metroidvania.

Long-story-short, I really loved working on The Last Astronomer. I spent 76 hours and 40 minutes making this game this past month.

I think I still need this kind of game in my life.

Anyway, as usual with my postmortems, here are a bunch of uncategorized ramblings about the development of this game.

The game originally looked totally different

Here’s what the game originally looked like. This is just a mockup, but believe it or not, most of Zone 1 was completely playable in this style:

I also tried out a couple other mockups before I eventually landed on the final “solid-color outlined’ style.

Here’s the final version of the mockup which led to the final artstyle:

I’m really happy with the final artstyle. I’ve always liked really restricted color palettes and solid colors. I’ve never used outlines before but I really like how they came out. I might keep using this style for a bit.

I really like the Tiled level editor

I used the Tiled editor for this game. I had used it in the past for Planet D4Rk and Spectral Slash, but it feels really well-suited for metroidvanias. It was super easy to set up an ‘interconnected world’ in the editor. Here’s one chunk of the forest in the Tiled editor:

Each block is a room, and each room has layers for each type of object that can appear. I export the levels to the .lua format and read them in Love2D as lua tables. Then I just iterate over each layer and do something based on what I find.

I used the “tiled world” system of the editor, which lets you put maps on a “world”. The world file is just a big JSON file (with the .world extension) that has all the names of the maps, their ‘world positions’, and their sizes. From there it’s super easy to set up entry/exit between rooms.

There’s still some stuff I need to figure out, like the autotiling workflow. I’m using tiled terrains to automatically tile the maps I draw, but I don’t think I’ve set it up properly as I’m seeing bad tile selections by the autotiler randomly:

Of course, I can manually go in and fix these, but it’s a huge timesink to do so. After the jam I’ll probably spend some time reading the docs to figure out what I’m doing wrong.

I designed the map in aseprite

Before going into Tiled, I’d usually draw out the map in aseprite, where each pixel = one tile. I did this mostly just to work through ideas and see if the map would flow before I went into tiled and actually built the map.

If you want some spoilers, the half-baked part of the map to the right is my draft for the rest of Zone 2.

Inspirations

My biggest inspirations for this game were:

  • Islets - This game showed me how important NPCs are to me. I love having little characters I can chat with in every room, so I made sure to have a few different characters throughout my game.
  • Blasphemous 2 - I went back to analyze this game and found that basically every room has some point of interest in it. The points of interest can be a platforming challenge, combat challenge, big scary enemy, NPC, secret, or just a nice piece of artwork, but every room has something specific to do. I tried to do that in my game as well.
  • Planet D4RK - One of my own games! The ‘pierce-through’ mechanic in the Tomb is basically the same as the “slash” mechanic in Planet D4Rk, but it’s completely reimplemented in this game because the implementation in Planet D4Rk was really dirty.

This game is super basic

There’s nothing really unique about this game. It’s a pretty run-of-the-mill new age metroidvania. It’s got basic melee combat, a double jump, an air dash, a couple secrets, a few NPCs with nondescript personalities and some kind of “mysterious corruption” that gives you an excuse to kill everything that you can’t talk to.

And despite all that, working on this game was the most fun I’ve had in a very long time. I think it comes down to the fact that metroidvanias are still very systems-driven, despite seeming like a content-driven genre.

Once you make the systems, the content flows from your fingertips

In contrast with my last two games, which were boss-battle focused, it felt like after the first week of systems-dev I did for this game, I was able to just run wild making content. After I made the map system, movement, and enemies, I basically just started drawing out different ideas for room arrangements.

Like, the rat miniboss was thrown together in like 90 minutes. I was like “I want a miniboss in this room” so I just came up with a couple attack patterns, strung them together and like, he’s a decently-engaging miniboss! The additional ‘platforming challenge’ rooms were made in like 20 minutes each. The time between “idea” and “implementation” is super short once I’ve got all the systems done.

Metroidvanias are the perfect content-sink

If I have an idea for a room, I can basically just will it into existence. I can drag my mouse across the Tiled editor a few times and boom: the new room now exists.

It’s really fun to just always have a place for ideas. Unlike boss rushes, where I have to be really careful about the number of ideas I explore per boss, in a Metroidvania, I can just tack small ideas onto the map wherever they fit, and it’s like: someone might like this! And if not, they can just ignore it. It’s great.

Downside: All content-elements are still bespoke

But what else is new? Seriously, people talk about how roguelikes and whatnot are good for indie devs cause you can leverage proc-gen to inflate content, but you still have to make the elements that you put into the proc-gen engine.

Similarly, for zone 2 of this game, I still need to make the enemies and minibosses before I can go fully into “content mode” and start building out the map.

And unlike roguelikes, for metroidvanias I feel like I, the developer get to enjoy the ‘composition of elements’. Once I build the systems, instead of feeding it into a proc-gen engine to build the content, I get to compose the elements into content. It’s super fun.

I play a LOT of metroidvanias

So of course I’d love making one. Weird how imbalanced my “most-played” genres are compared to my “most-developed” genres. Speaking of that, I need to make a soulslike some day. I play way too many of those, I’d probably love working on one.

I had a lot of fun with the music

Feels like I keep re-remembering that I actually play piano. Instead of floundering around in a DAW like I usually do for music, I just wrote down some ideas on paper, sat at my piano and improvised for a bit. Then I stitched together all the best takes, brought it into audacity and then LMMS, and all of a sudden I had the forest track done.

I have to remember how much fun I had with this soundtrack. I really love playing piano and it feels way easier to transfer ideas from my brain into the real world using piano compared to a DAW.

(if you liked the music, you can listen to it here on my soundcloud)

Social media is hard and I should just ignore it

Bluesky is nice, but it feels a lot smaller than twitter. This game generally didn’t do so hot in the ‘likes’ department on both twitter and bluesky. I also feel like I don’t really see many gamedev progress videos on bluesky anyway, so maybe bluesky isn’t the best place for it?

It felt like I basically had radio silence in response to my social media posts about this game. It’s probably for the best though - the less I think about social media, the more brain cycles I have to think about my game.

I am still not immune to scope creep

And that’s okay. I finished zone 1 in the first week of the jam, and immediately thought “wow, that means I could do zone 2 and 3 in 1 week each, and then have 1 week for polish!”.

Then I spent another 2 weeks on zone 1, filling out rooms, adding content, and making it feel like there was actually stuff to do. I then spent the last week prototyping some ideas for zone 2, and made a handful of rooms to showcase those ideas.

I definitely expected to ship an unfinished game. The systems I made are too much fun to work with - I don’t want to put them away after just 1 month of work.

Where does a full version of this game belong?

I could probably finish zones 2 and 3 in another few months, maybe add an extra month for polishing things and adding optional content. Let’s say I spent another 4 months finishing this game.

I’m not really sure where I’d put the finished version though. It feels like it would be ‘too big’ for a web game, but too small for a Steam game. If I implemented saving game in the browser, I could probably upload the game to Armorgames. I could also put the full version on Steam for free.

Lots of options. It still is a little scary to work on something for longer than a month and not know if anyone will even play it. The perks of making a jam game is that even if no one plays/likes this game, it was just 1 month of work. Pretty low stakes so far.

Not everything needs to be my magnum opus

This game could be my dream game. It’s got all the pieces, all the systems, to be the game I wanted to make back when I first started making games.

About 1 week into development, I started having doubts. I thought: What’s the point of making this game if it’s not gonna be HUGE? I’m making all these systems, why shouldn’t I turn this into a 6-month project and then sell it on Steam? Why shouldn’t I turn this into my dream game?

I always have a brief moment where I think: What if I made this into my magnum opus. What if I made this game into my biggest, best game ever? But that sounds really scary and long, so I usually drop the project and move onto something else. It’s a pretty bad creative spiral.

I have to remind myself that: I’m having fun. I’m having so much fun. Does anything else really matter?

I’m really glad I made this game. I might come back and finish it one day.

Thanks for listening,

Abhi

Files

WebBuildV0.zip Play in browser
3 days ago
The Last Astronomer - Windows 10 MB
3 days ago
Original Soundtrack 52 MB
3 days ago

Get The Last Astronomer

Comments

Log in with itch.io to leave a comment.

(+1)

This is a fantastic breakdown of not only the technical breakdown of how the game is made, but some of your ethos behind it! It's really motivating to read :)

Thank you!