Devlog 04 - A Strong Core
I started this build cycle wanting to get as much as I possibly could done, immediately jumping into something that had been annoying me in many games lately. That being, my game currently had zero buffer system for inputs.
Now, I'd never coded a system like this before, but I had an idea of how I wanted to do it.
It took less than 10 minutes, but the effect on the game feel was instantly noticable (at least, if you played it when it wasn't there before). The way I did it was by finding out how far along my shooting timer was, and if it was less than my buffer leniency, I had my script tell the game that I'd shot. Then, as soon as my shot timer reaches zero, I set it to automatically shoot and reset the timer.
Getting this working on my jumps was going to be a little more difficult, as I'm not exactly recording inputs directly, but rather based off cooldowns, which my jump didn't have.
My solution was to create a separate jump timer when you jumped while in the air, which would count down over time. If this timer was above zero when you land, you immediately jump again.
At first, I accidently created the reverse of what I wanted, where it would wait out the entire timer before you could jump, but after some minor bugfixing, the system worked great.
This one took some time longer, but not by much, and feels really satisfying to play with.
After playing around with the game a little more, I decided to implement a double jump for her. I toned down her jump height for each jump in a way that you're effectively jumping the same height with both jumps, but it's more spread out, and I think this works out a lot better.
Feels better, too. With these two changes alone, playing my earlier build feels terrible (which is a good thing)
I also went and implemented fastfalling for her. Going to need to add a way to show you're fastfalling, but it works well for now.
I additionally added an ability for her to dodge, though it took longer than I expected to implement and came with it's fair share of hiccups. I did eventually end up creating some pretty good dodging logic.
You might be noticing a common theme here: Every addition has been an added mechanic or bit of depth to the game. My hope is to get the majority of the mechanics I want implemented at a basic level over this development period, and then start work on some other aspects of the game's development that are currently being neglected, such as character interactions and dungeons.
Getting the mecanics I want in now will also help later with giving her animations and an updated character design. Of course, I'll likely want to add more later down the line, but there's definitely a core set of mechanics I want to get in now.
I continued work on my dodge, giving it a short cooldown so you can't just mash it (Will add a buffer to this later on) and providing invincibility from attacks. Input could use some work, but it's fun to play around with, and this marks another item off my checklist.
However, with my key of choice for its use being shift, I was now presented with an interesting problem, that being Sticky Keys. My solution was to find a better way of inputting dodge, but nothing felt comfortable.
I decided to just call it a night and figure it out later. The input doesn't necessarily matter, what matters is that the mechanic is in the game and there are no major bugs.
My next stage was adding ammo to Yuni's gun, which would've eventually needed to be done. It works with games like Super Metroid and Megaman because those two have projectile based weapons, but her rifle is hitscan, so just making it so she never needs to reload was imbalanced in her favor.
Adding the basic reloading wasn't too hard, but there was currently no UI to tell when you're reloading, your ammo counter, or anything, really. My plan is to add an animation for this in the future, but the UI wasn't going to be obselete, so it needed to be added.
The other thing that needed to be added was the ability to tie the reload to a button, as well as do so automatically after some time, but that could be saved for the polishing.
(Side note: I'm starting to realize just how many moving pieces are involved with her kit. Balancing with all these bits isn't going to be easy, but I'll do my best)
I also added some basic healing functionality while I was at it, as it was just copying and reworking the way I handled taking damage, with the only added addition being to make sure you can't heal beyond your max HP. However, you won't see this system in the build. I haven't quite figured out exactly how I want to implement healing yet, but the framework is in place. As well, I also subtly varied the pitch on her footsteps
With that, I'd now developed what was essentially 5 new systems/mechanics in the span of a week, and there were only a few more that I wanted to add to the player off the top of my head.
One of these was part of an overarching goal of making the combat more interesting, which the ammo and dodging systems partially solved, but not to a degree I was satisfied with.
I want at least one (preferably all, if possible) of these systems in the build:
-An alternate weapon, such as an explosive
-Basic melee combat
-An additional effect to the gun (Similar to how the axe in God of War always has ice properties)
Outside of any other stuff I can throw on that's as easy to implement as the healing, that should be all the very core mechanics for Yuni in the game.
(What's next is me after a day of thought)
Is the melee combat really necessary, though? The most fun part of playing this game so far has been the gun and shooting, and I feel like melee combat goes directly against that.
Same idea with the alternate weapon. A core part of Yuni's design has been her gun, which I intended from the beginning of her characters inception to be her sort of "signature weapon", and giving her another one just feels like I'm going against that.
As for the last idea, the point of these 2 weeks wasn't really to add depth to existing actions, it was to add depth through new actions.
I'm definitely going to need to add more depth, both through better and more vaired enemy designs, as well as adding to existing combat systems as I said above, but the actual core actions are pretty much done, which leaves the final step: Tiny bits of polish to where everything else is.
So, deciding that I was done fiddling with mechanics, I started with polish. I first moved my dust spawning to its own script and added a landing effect, which took me nearly 2 hours to get 13 lines of code to function correctly.
I then implemented the ammo counter and, in the process because I learned how to do it, made it so the UI correctly scales with the screen size, as well as adding a simple effect on the dodge. I also tied the reloading to a button.
I'm also questioning at this point whether it's worth having the reloading at all. The logic I was using was that, while Megaman amd Samus have infinite ammo, their weapons are projectile based, while Yuni's is hitscan. Giving her infinite ammo feels unfair, but at the same time, I'm not quite sure it's fun. I want to give myself some time to think that over, though. Gain feedback and see what people say.
As a postmortem of this build, I'm really proud of what I accomplished. It's now been 2 months since I started work on Endbound (should start calling it by its actual name), and I've now gotten all the core actions I want in right now, and can start work on other systems (more on that in the future).
The only thing I really would've liked would've been getting a similar effect for the fastfall on the trail, but I'd either have to stack the effect with the dodge (which would mean having 2 separate effects in 2 separate directions going at once if both are used at the same time) or find a way to normalize the direction on the effect for a combined look (which I'm not smart enough to do yet in a reasonable timeframe), but otherwise, this was a huge success.
(I also would've wanted to add a buffer to the dodge, but that turned out to be more complicated to add than I expected, so I'm holding off on it)
Thanks for reading.
Files
Get Endbound: Prototype
Endbound: Prototype
2D Platformer with gun-based combat with an artstyle inspired by Persona
Status | Prototype |
Author | OnlySmiles |
Genre | Platformer, Shooter |
Tags | 2D, Hand-drawn, limited-palette, Singleplayer, Unity |
Languages | English |
More posts
- Devlog 07 - Shooting, Saves, and DialogueOct 12, 2020
- Devlog 06 - Animations and StreamliningSep 21, 2020
- Devlog 05 - A Long TimeJul 10, 2020
- Devlog 03 - Making, Breaking, and RemakingMay 08, 2020
- Devlog 02 - The Sounds of FrustrationApr 26, 2020
- Devlog 01 - Rough BeginningsApr 11, 2020
Leave a comment
Log in with itch.io to leave a comment.