Project Rainfall: A Retrospective
After about a year of on and off development, Project Rainfall is finally done! I figured I’d take this time to reflect on how far the project has come and share a little bit of behind-the-scenes stuff.
**This might contain some spoilers to the story and levels so if you’d rather find stuff out on your own I suggest completing the game first!
Humble Beginnings
The original Project Rainfall, There Will Be Rain.
As you may or may not know, Project Rainfall is a remastered version of my first game, There Will Be Rain. Originally built in Construct 3, it was a small arcade styled game where you needed to dodge falling hazards and deliver supplies to a truck. I got a lot of positive feedback surrounding the game loop and concept, so I originally wanted to continue developing the game after my class was finished.
I sat down after the semester finished and worked and worked and worked. Well, for a month or so at least. I realized very quickly just how much work even a small game like that can take. I ended up burning myself out rapidly and abandoned the project after only a month and a half of development.
Fast forward through a few more game development classes and I found myself becoming experienced with new tools, systems, genres and learning so many more lessons about making games. My favorite new toy was the Godot engine, which made making the kinds of games I wanted ten times easier than any other engine I had used before. It had the level of detail I wanted from Unity combined with the simplicity of Construct 3. Plus, it was free and open source so there was no need to worry about some corporation messing everything up in the future (Looking at you, Unity). With all this newfound experience, I figured it was time to really put myself and my skills to the test. What better project to start with than the one that started it all!
Design Goals and Improvements
For Project Rainfall, I knew I wanted to improve on the formula that people originally liked. So, I ended up creating new features and adjusting old ones to enhance the experience.
Levels: New & Old
The first stage, The Plains, remained relatively untouched. It retained its flat terrain, serving as a good starting point for the player to learn the core mechanics.
However, I did make an adjustment to the meteor hazard, transforming it from leaving a lava puddle on collision to simply breaking apart into smaller hazards. I didn’t want to emphasize jumping right away, so this change felt like a good way to follow that theme. In fact, the entire level can be played comfortably without jumping.
Additionally, I also introduced the lightning hazard which served as “soft area denial”. The hazard goes off randomly, so the safest bet may be to wait until it goes off to pass through. However, more experienced players may be willing to take the gamble and walk through in hopes it doesn’t attack.
The second stage, The City, was something I had conceptualized back in the original project, but didn’t have the energy to bring to life. With Project Rainfall, I finally had the chance. For this stage I wanted to slowly introduce jumping as a mechanic, while still allowing players to stick close to the ground if they preferred. Jumping can be it’s own hazard since it brings players closer to where falling hazards are spawning from.
The stage features a central platform that usually catches supply drops. After jumping up to grab some supplies, the player can easily jump back down to safety.
The City also features two special hazards, the iceball and the zombie. The iceball falls like a regular hazard but leaves a puddle of ice that slows down the player. This not only reduces your movement but also prevents you from jumping. It also forms a deadly combo with the zombie. Zombies are usually easy to avoid since they slowly move across the ground, but when you’re frozen they become much more threatening since you can’t jump over them anymore.
The third level, The Volcano, places a much heavier emphasis on jumping for the player. Gone is the safe, fully flat ground you’re used to. This time, you’ll have to navigate a steep bowl like structure.
Designing the special hazards for this level was probably some of the most fun. I wanted to deviate a little from the usual “object falls from sky” formula and try something new with the volcano setting. Eventually, this led to the lava and eruption hazards.
The lava hazard gives players a few seconds to climb higher before engulfing the bottoms section of the map in molten rock. It forces you to sit in a uncomfortable situation of being closer to the top of the screen for a few seconds while the lava eventually retreats away. You’ll need to decide if you want to stay safe and focus on dodging or take a gamble to move and grab more supplies.
Eruptions give players a short warning window before blasting a specific area with tons of falling rubble. If players don’t move out of the way in time, it’s an instant KO. This also serves as some area denial as it covers a larger part of the stage. I joked during development that I wanted to have a hazard that just annihilates you if you get whacked by it, and the eruption was able to make that joke into a reality.
The fourth and final level, titled Project Rainfall, takes a different stage approach all together. Rather than sticking to a confined area for the whole level, you’ll constantly be on the move while outrunning a tornado! To raise the stakes even further, almost every hazard from the previous stages are here to prevent you from getting to the laboratory to shut everything down. I left out the lava and eruption hazards as I felt that they would’ve made this final level TOO hard.
Progression: Fashion and Fun
The more I play-tested the levels, the more I felt like something was missing outside of them. Sure I was earning supplies, but what was I working towards? So, I did what any game developer does when you are collecting an obscene amount of currency: I added a shop!
This was another main feature I wanted for the original game but didn’t quite get around to. Players can exchange deposited supplies for a variety of fun skins and abilities. I liked this approach since the player is always progressing towards something no matter how good or bad their run is. It also added a nice sense of personalization, letting the player select their own outfit and play style.
The Lore
I also wanted to build out the world itself as well. I mean, a world overrun by falling barrels and meteors has to have some kind of story, right?
Instead of making players spend supplies to unlock lore, I designed the lore system to unlock cumulatively. The more you play, the more pieces of the story you earn. Given that there are three levels, I broke the story up into three parts:
- The chaos during the early stages of the storms
- The struggle to survive during the storms
- A bit of a prequel surrounding how the storms even got there in the first place.
To be honest, lore writing is something I still struggle with, and it’s probably one of the areas that could’ve used more polish. However, I do feel like I was able to craft a story that’s at least coherent and compelling enough to make players wonder, “What’s next?”
Tone was also something that was tricky to get right. I didn’t want the world to feel TOO dark even though the world was plunged into chaos, y’know? Life is hard sometimes, and yeah, things can go wrong but if you keep pushing through the worst of it there’s always a rainbow waiting at the end of the storm.
Failure and Struggles
Anyone who has done any kind of game development knows that not everything is sunshine and rainbows. It’s a lot of playing the same section over and over again, tweaking sprites and lines of code, and wondering WHY SOMETHING ISN’T WORKING EVEN WHEN IT’S SETUP PERFECTLY WHY-
…oh whoops I was referencing the wrong variable my bad.
Project Scope
Scope was, without a doubt, the biggest struggle during development. I constantly felt like I was telling myself, “Well, if you’re adding X, you should also add Y, and if you’re adding Y you should also add Z”. It just became a very slippery slope of feature creep. I kept pushing to add more without considering the toll it was taking, especially during a big transitional time in my personal life. I eventually started cutting a few features out in development such as:
- Customizable survivor trails
- More in-depth cutscenes
- Other abilities and powerups (Including a time stop, hazard parry, and revive)
- Voice recorded lore logs (Replaced by simple slideshow cutscenes)
Stuff that would’ve been cool, but unfortunately didn’t fit within the timeframe I gave myself.
With my upcoming projects, I think I’ll stick with a smaller scope. Don’t get me wrong, I’m happy to do larger projects again, but they take a serious amount of planning, time and energy. Honestly, maybe not the best idea to start with a super big project, but I’m still happy I did what I could here.
If you’re struggling with scope, I highly recommend creating a Game Design Document before you write a single line of code. It’s really helpful for figuring out exactly what your game is, how much content it needs, and what goals/deadlines you need to hit. Plus, it’s not a rigid rulebook, it can be adjusted as development progresses.
Exports
Exporting the game was also a headache sometimes. Project Rainfall was made using Godot Engine 4.2.2, which has some issues exporting to the web on some browsers. It worked fine on Chrome and Edge, but I know not everyone is cool with using big name browsers for privacy reasons. It was a little disappointing that the game couldn’t be played everywhere.
Thankfully, the issue has been resolved in the more recent Godot versions so that shouldn’t be an issue for future projects.
PLEASE HAVE A NAMING CONVENTION AND ORGANIZATION SKILLS!!
This one is definitely death by a thousand cuts. At a certain point in development my file organization became really messy. I was used to working on short term projects, stuff I’d wrap up in a few weeks/months, so I could get away with a little chaos in the folder structure and naming convention.
But when you’re working on a project for almost a year? Nope, that is NOT gonna work here.
At first, I organized stuff by development phase, then by versions of the assets, then by something else entirely. By the end of development I was relying on the search bar and praying that I named files at least somewhat coherently.
Thankfully though, I’ve come up with a much better organization system and naming convention now. Lesson learned.
Please, don’t name your files like this lol
Despite all the failures and frustrations, I’ve come out the other side a much better developer than when I first started Project Rainfall. These challenges taught me more than success ever could, and I can’t wait to apply everything I’ve learned here to future projects.
Okay, but what went well?
Game development isn’t all sunshine and rainbows, but sometimes? Sometimes it is, and it’s really awesome! Despite my struggles, a lot of things went really well with the project and there’s a lot I’m proud of myself for.
Godot Engine my beloved
I learned A LOT about Godot during this project. Programming practices, features to take advantage of in the future, and even debug QoL features.
If you look under the hood you’ll see a night and day difference between how things looked when I first started versus how it looked at the end.
Honestly, I’m not even sure exactly how the spawn rate functions work anymore when I made them all that time ago, so I’m scared to even touch them now. But the fact I’m able to recognize how bad my old code was is just proof that I’ve been able to grow so much through these experiences, and that is absolutely something worth celebrating.
Consistency: Just do a little bit everyday
One of the things I’m most proud of was sticking with it for almost a year. Development takes a TON of effort, and burnout is very very real. I went from having all the time in the world to work on the game, to only being able to squeeze in a few hours a week.
What helped me the most was remembering that I didn’t have to do everything during a work session. I’m still progressing towards my larger goal, even if I only do a little bit for that day. Some days I couldn’t bring myself to code, so instead I browsed assets or worked a little on sprite work, or just made a plan of what I wanted to do for the week. Little actions like that kept the momentum of the project going.
If you’re working on a project of your own, here are some things that helped me:
- Do SOMETHING – even if it’s small. Force your brain to get into the routine of working on your project consistently. Eventually, it’ll become like second nature, kinda like how your body adapts to exercising consistently.
- Take breaks. Sometimes you’ll need a day or week off from your project. Don’t let your passion project turn into something you dread. Play some games, go for a walk, or just hangout with friends for a day. It absolutely helps keeping your passion for your project alive.
Good Job :)
Lastly, I’m proud of myself for seeing this through to the end. There were times when I felt like giving up and letting the project fade into nothingness again, but I didn’t. I kept going, even when things were really tough. I can’t thank my friends, family and teachers enough for encouraging me and inspiring me along the way. Their support helped make Project Rainfall a reality.
Looking to the Future
Wrapping up development for Project Rainfall was a huge step for me, but it’s just the first of many projects I want to work on. I’m so happy to have completed this project and I’ve learned so many lessons that will no doubt make me a better developer. I plan to continue to experiment with my style and try out different genres of games and art styles to find what I really like developing.
Will there be a sequel for Project Rainfall? Probably. I’ve really enjoyed crafting the world here so, yes, there will be more games set in this world in the future. I’ve got a few exciting ideas for future projects in the series, but I want to wait to release them until I’m more experienced in development.
As for now, I think I’m gonna take a well-deserved break from developing things for a bit. I think I just need to spend more time playing fun games rather than developing so I can get excited for new projects all over again. (Expedition 33, here I come!)
If you were an original supporter of There Will Be Rain, helped playtest for Project Rainfall, or even someone who stumbled onto this game months after development finished, THANK YOU for playing my game. I hope you had a bit of fun and will stay tuned for my future projects.
If you have any feedback on the game, questions, or suggestions for future installments feel free to let me know in the comments, I’m always looking to get more feedback to improve my craft.
The colony salutes you, survivor!
Bye for now!
Leave a comment
Log in with itch.io to leave a comment.