Update 5
An mostly behind-the-scenes update on what I've been doing. This didn't add much to the game itself, but it was a necessary update for me. One of the explanations is also especially technical, so it may not be easy to understand.
Gameplay Changes
- Enemy bullets are 5 m/s slower, but player bullets are 5 m/s faster.
- This helps in cases where there's a ton of bullets flying around and also makes aiming at long distances easier.
- Melee weapons are gone.
- There is never a reason you would want to use one. Ranged weapons can already kill enemies quickly and at any range, so going for one or two strikes with a melee weapon just isn't worth the risk, especially since you were practically guaranteed to get hit at least once. If melee weapons of any kind ever come back, they will have special purposes outside of dealing damage.
Balance Changes
- Shotguns deal 1 less damage per projectile, but shoot 2 more projectiles.
- This is mainly to make it easier to hit enemies at longer ranges, but close range hits are also deadlier than before.
- The SMG (AKA the Prayer Sprayer)'s spread has been decreased by 5 degrees.
- It's not meant to be accurate, but I felt 30 degrees was just too much spread.
- The Room Cleaner's reload speed has been increased from 0.4 to 0.5.
- It now takes 2 seconds instead of 2.5 seconds to reload. Since it's harder to hit enemies when they aren't near a wall, there shouldn't be so much time between chances to hit an enemy.
Behind the Scenes
- Replaced the old weapon making system with a simpler and less restrictive one.
- Originally, I had two interfaces (a type of class (structure that contains code) that forces any script using it to use everything inside it): Gun and Melee. The Gun interface had some generic gun stats that every gun had and I had a base gun class that other weapons could build on top of. The Melee interface was the same but for melee weapons. They're different in code, meaning every time I had to use one interface, I had to repeat the process for the other so both can be used. The main issue with this system is how limiting it is. Since I used interfaces, I couldn't exclude any stats, so if I wanted to make anything that deviated from the two molds, I would have to make a new interface for it. Now, I have one base class (called Deployable) that only has the absolute essentials for weapons and items. In code, I only have to check for one script, and I can make anything I want without much difficulty because anything that isn't universally on every item is not up to the base class, but rather up to the item's code. This new system gives me so much more freedom than the old one that I couldn't imagine trying to make a variety of items with the old system.
- Reorganized my folders.
- It was fairly organized, but still rather difficult to find things. After moving and/or creating some folders, it's now easier to access things.
- Refactored the Room Cleaner.
- Originally, the explosion was dependent on the weapon. Now, the explosion is its own thing that any weapon can use.
This was a pretty wordy post, but I think it's good to give a behind-the-scenes look at how I make things. At this point, every main system should be good to go, so now I just need to make new weapons, enemies, and other things then I can start finally making levels.