Reviving My 9-Year-Old Indie Game

May 18, 2025
A pixelated red ship flies through red beams avoiding plasma bullets from enemy turrets and ships

Hey there! It’s time to show an old game of mine that I started developing 9 years ago in Unity, back when I was 15. The game is called “Galactic Stranger” (though I might change the name down the road).

It’s a rogue-like shoot’em up with procedural level generation. Or… at least, that was the plan.

This part 0 of the devlog covers the whole journey so far; from the first prototype to where it is now, and what’s next.

There’s also a video for this devlog available on YouTube:

History

So, how did it all start? Back in 2016 I was still learning how to code and make games in Unity. I was lucky enough to have supportive friends, and one of them even paid me to make a couple of minigames for them. After that, I decided it was time to try my hand at a bigger game.

I don’t remember exactly why I chose to make a shoot’em up. Only that I really wanted to have procedural level generation of some sort. I also was (and still am) in love with space and pixel art. 3D game development seemed a bit too complex to me at the time, so I decided to go for 2D.

An image editor showing pixel art with a red spaceship, red construction beams, smaller gray construction beams with gray squares in the behind, as well as gradient space background

The very first thing I did was draw the pixelated red beam, because, even before starting, I had this pretty cool idea of an enemy turret that rides on the beam. I also drew smaller gray beams for the background, some “metal sheets” (which were just gray squares), a space background, and, of course, the player spaceship. I had no idea how to draw pixel art, so it didn’t look great, but worked well enough as a placeholder.

Unity editor showing running scene with systematically placed beams

I started by implementing “level generation”, but really it was just random beam placement. It was a lot harder than I expected, avoiding overlaps, spacing things correctly, but I eventually got it working. I also added some random background gray beam placement, as well as “metal sheets”.

At this point I got what looked like a half-constructed space station, where beams are different every time the game is launched. While not very impressive, it was a big breakthrough for me and satisfied my “procedural generation” itch for some time, until I reworked it completely later.

Red spaceship flying through the generated levels and shooting orange plasma bullets

I added a simple script for controlling the spaceship with the mouse, the ability to shoot, and automatic camera scrolling, so I could finally fly through those levels I’d been procedurally generating. You have no idea how excited I was!

I added collision detection and an explosion when the player crashes into the beams.

Red spaceship flying past beam-mounted turrets and avoiding their plasma bullets

I added the first enemy to the game – the turrets. They are procedurally placed on either side of the beams and can ride them in both directions, rotate almost 180 degrees, and shoot at the player. I’m actually pretty happy about how their AI turned out – they are quite smart. When the player is too far away, they try to get closer, while at the same time keeping their distance when the player gets too close. And they are hard to destroy, because you have to carefully press against the beam without colliding with it. So, annoying little guys!

Red spaceship destroying a turret

As you can see I also updated the background a bit, and experimented with sirens for ambience, but ended up removing them.

I must admit that I didn’t really know what direction the game should take or what the end goal even was. I realize now that it was a very rookie mistake. I was just aimlessly adding features to the game at this point, just for the sake of it. But hey, I was having fun, and with every new thing I added I learned something new.

I decided that it would be cool to try infinite level generation, so I refactored it to dynamically create chunks in every direction the player flew in. I added vertical camera following, so the player could fly up and down. I ended up quickly scrapping infinite generation because it was lagging the game a lot, and ultimately it didn’t bring any gameplay value. I kept the vertical navigation though, which I feel is not often encountered in shoot’em up games and made my game stand out a bit.

Red spaceship fighting 3 enemy ships

I added the first enemy ship to the game – which I creatively named S1. Unlike the turrets though, I’m really not happy with its AI. It just flies forward and shoots periodically. I barely got them to avoid flying into the beams… well, most of the time. I decided to rework it later, but that never happened.

Main menu with Galactic Stranger logo, Start, Credits, Options and Exit buttons

I implemented a simple main menu with an intro screen, options, and credits. As well as a proper game over screen with a displayed score. Added some free music and sound effects I found online. And experimented with difficulty levels, which just modify the dealt and received damage.

Unity editor showing systematically placed hand-made level blocks with differently colored backgrounds

I refactored the procedural generation for the third time. This time, instead of placing every single beam and enemy randomly, which was starting to look too chaotic, I switched to hand-made layout blocks, which I then spawned within a grid. This resulted in much more coherent-looking levels and this generation method is what I ended up sticking with.

A single mine enemy

I added a third enemy – the “mine” – which spawns in bulk and causes the player to explode on collision. Not a particularly dangerous enemy, but it did alter the gameplay in a positive way, giving the player a choice to “carve” a path through them or find an alternate route.

Gameplay showing updated art style and player destoying mines

I switched the space background to a more neutral gray one. I liked how the red beams looked against it, and I noticed that the tinted backgrounds began to tire the eyes after a while.

Gameplay screenshot showing updated player and enemies art

I completely redrew the player and the enemies, and then decided to give enemies the same treatment as I did with the background and redrew them all in gray colors with yellow accents. I think this is the point the game finally established its visual identity.

Earlier I realized that the fighting space felt too narrow, with little opportunity for evasive maneuvers. So I decided to zoom out the camera quite a bit, which made the combat a lot more dynamic and engaging.

However, I realized just now that it caused the pixel art to look to high-res.

So I went back and redrew everything again, this time with fewer pixels. This is the look the game has to this day and I’m pretty happy with it.

Gameplay screenshot updated (more pixelated) game art

Then I added a BUNCH of new enemies.

I added a new “laser” enemy, which one-shots the player, a “machine gun” ship which shoots plasma bullets from 2 barrels in quick succession, and finally a “freezer” ship, which shoots sticky goo at the player, paralyzing their movement for a few seconds, making them vulnerable to attacks and collisions.

Gamepley screenshot showing machine gun and freezer enemies

And the final addition before I shelved the game – a very epic boss, which I won’t spoil at the moment.

Current state

Phew, and that wraps up the history of the development. If you are still here – wow, I don’t know what I did to deserve such a patient reader, but thank you for sticking with me.

So, why did I abandon the game after working so hard on it for 9 months? Well, as I alluded to earlier, the game lacked a clear direction, and I just didn’t know what to do with it next. And, frankly, I just got tired after working on it for so long. So, unfortunately, I burned out – a problem that many novice developers like myself face.

It wasn’t all for nothing though, since I got a lot of valuable experience from this game that helped me through the years, even up to this day.

I moved on to other projects, thinking I would return to this game someday, and eventually… completely forgot about it. Until now, that is. Time to give the game the proper ending it deserves, in gratitude for all the experience and joy it brought me back then.

Plans

So, here I am 9 years later. What are my plans for the game?

Well, I need to start with defining a clear scope for the game with an end goal in mind.

The game was initially intended to be a sort of infinite rogue-like shooter with lots of weapons, enemies, and bosses. But as it stands, it’s still an incredible amount of work to get the game there, and if I were to tackle it once more, there’s a big chance I would just end up burning out again.

I also know now how hard it is to make an engaging and replayable rogue-like, so even if I were to pull it off, there’s a good chance that it would be a subpar experience. This makes me respect the great rogue-likes out there even more.

Another thing to consider is that 15-year-old me wasn’t as great at coding as I am today… so it will be a challenge to dig through that old code and figure out what it’s doing. Making significant changes to it will most likely mean rewriting some scripts completely. This is another reason why I want to keep the scope as limited as possible. It would be a different story if I were starting a new project from scratch.

Instead, I’m considering shifting the focus to a more linear story-based experience, with a fixed number of levels and that final epic boss I mentioned. I’ve got a good foundation in place, with the basic gameplay loop and lots of enemies already in the game.

So my next steps will include implementing a proper level progression system, a dialogue box for conveying the story, and perhaps a bit more content to make the levels feel more varied as the game progresses.

Conclusion

Thanks so much for reading! I’m excited to finally bring this game to life… and I hope you’ll stick around to see it happen.

See you in the next one!