I'm gonna pause my project because it's a really big project for a solo developer. Maybe I'll do something smaller for now.
Hey guys,
I've been working on my game prototype lately and I've come to realize that this project is going to take a long time to produce. It's important to me that this game is:
The plan was to make this game a single-player 3D rogue-like style game where you fight waves of enemies for as long as you can. I don't want to compromise the scope of the project, but I also don't want to develop a game on my own for several years. I think working on a project for a week, then moving on is more reasonable to do alone instead.
As a result, my new plan is to start releasing apps/products at a much smaller scale, but far more frequently. In fact, I plan on spending no more than 1 week taking each idea from concept to launched on the App store/Platform of choice. This should force me to scale down the scope of my projects and therefore gain more practice taking an idea to production. Once I've got a bit of an audience, or maybe some capital I might come back to this project.
I'm not done working on the prototype yet, though! I won't start my new week-long iterations until next week. I plan to "finish" the prototype by then. This just means refactoring the player's code just so that it's easier to read and then designing a new menu with a level picker. All of the systems have already been writen, so now we just need to polish the aesthetics and design a couple of levels as a proof of concept. I think I can do this by the end of the week 🤞
My latest changes to the code had me rewrite the enemy AI script. I initially built my first enemy using only 1 script. This script controlled the nav behavior, HP behavior, combat and wind-up. I went ahead and split them up into their own code files so that adding variety to enemy behaviors will be as simple as removing the base script, to be replaced with a derived script.
Once I refactored the code to facilitate variety in enemy behaviors, I implemented the shooter enemy. This enemy shares the exact same follow, HP, and Wind-Up script that the launcher enemy has. The only difference is that I removed the "Launch" script and replaced it with a "Shoot" script. Adding variety to enemy behavior is a simple request now, considering that their behavior is made up of lego-pieces of code. Developing a turret enemy would simply have me add the "Shoot" script, along with the wind-up and perhaps an "HP" script so that it can die. The only difference between a turret and a shooter enemy is that the turret would lack a "Follow" script.
I might add more enemy variety, depending on what the levels I design need. Could also tweak the values that control the enemy's speed, damage, knockback, etc. That's not my top priority, though. In order to consider this prototype complete, I need to clean up the code that controls the player's movement, combat, etc. just because I wrote the code but never cleaned it up for readability. I expect that refactoring the player's code will only take a day.
Once the player's code has been refactored, I will clean up the main menu and design a level with a few waves in it. The reason that I want to develop at least one fun level is that if I ever share this prototype with an interested party, I want it to communicate the gameplay that I had in mind when designing this prototype. If I have more time, I might even design another level or develop more variety in enemies. In truth, I'd really love to work on this project full time. I'm just going to leave it at the prototype phase for now, but I'm going to leave it in a place where I can easily pick it back up and continue the project.
I'll make sure to release the demo once I've developed the changes this week. :) Thanks for reading.