Maybe an hour behind schedule, but Dashing Rocket (Triangle Shooter) has finally reached Devlog #3! Today we will be mostly talking about the new equipment system and the future of this game. I was thinking this devlog will be short, but I think it'll be pretty long since we haven't had a major update in a while.
Abilities
Before I go into depth on the new equipment system, I wanted to list all the abilities that are currently in the game (not all can be accessed by the player yet):
- Player Health
- Player Max Health
- Build Box Health
- Build Dimension
- Player Speed
- Player Fire Rate
- Player Ammo
- Reload Speed
Many of these upgrades increase their value randomly every time they appear in the shop. These upgrades set a percent value at the beginning of the shop's lifetime and increase their specific attribute according to that percent on upgrade. For example, the health upgrade can increase the player's health by 10%-100% (increment by tens) of its max health. By randomizing our percentage every time we enter the shop, we address our goal of making our game a bit more "luck based." We also make the game more interesting by making our upgrades more dynamic.
The new shop system works in parallel with the level system. You cannot manually activate the shop anymore; instead, the shop is automatically activated when you level up. When the shop activates, the player can select from three randomly chosen upgrades. Once the player decides which upgrade they want, they can select and confirm it to apply, which will in turn deactivate the shop until the player levels up again. The shop system is still not completely done yet, so we won't show any images of the product yet.
Enemies
We have one new enemy to our game so far: Fast Enemy (pretty obvious what it is)
We haven't had that much time to work on enemies, so we will probably work on many of them after the demo is released. In other words, the difficulty of the demo should be very easy (if not we'll have some problems).
Equipment
Let's try to keep this straight to the point.
We have four components to our rocket: Base, L Branch, R Branch, Generator
Before we enter the game, the player can equip different components to make up their rocket. Each component does something different in the game; they each impact the game in a different way.
Each component has a theme for what it does in the game:
Base - Increases the percent value of a certain upgradable (i.e. increases the value of a certain upgrade)
Branch - Unleashes massive strikes on the enemy waves
Generator - Increases the start value of an upgradable (i.e. player speed)
In order to make sure these themes/rules are followed, in my code, I try my best to make the base classes encourage these themes. I try to make the base classes do most of the work to reach these themes, so that all my derived classes don't need so much code. My system encourages me, the developer, to write code according to my rules because my base classes point towards that path. I am more likely to write code according to the rules if it is easier for me and takes less time. In coding, there's a limit to how much you can restrict, so I can technically create a generator that shoots machine guns in all cardinal directions, but my architecture can act as a mental restriction by showing me an easier, more convenient, and overall more beneficial route.
Conclusion
Unfortunately, we will be pushing the demo back a few days because we found a critical error in our project today. I was able to fix the error, but the cost was some of our progress on the shop system (kind of the reason why the shop system "isn't done yet"). We are reaching the end; we are so close. When our demo releases (and I'll mention this again later), I want to know if it is worth investing more time into this game (i.e. to add more equipment, add more enemies, etc.). I want to know if this game has potential to be fun and exciting. Well, it'll be a discussion again when the demo releases in a few days (hopefully)...