Progress Report - October 26th, 2023
Hello guys, right back at ya with another monthly update. Can't believe this project is taking about 4 months . I massively underestimated how long this would take. I think at the pace I'm going, I would assume the project would reach it's beta stages in the next 8 months or so probably. Oh yeah, I have something to say first.
The game is now in alpha.
Unfortunately, this does not mean I'll be releasing the game on early access. (Not like there anyone dying to play my game anyways) It just means I've changed the threshold of when I think the game would be in alpha. Before, I thought that when I implemented all the core mechanics, then the game would be in Alpha. However as I implement more and more, the project is beginning to feel more like a game, so I'm starting to reconsider.
Maybe the point of which the game would be Alpha for me would be when the project is actually starting to feel like a game. While the point of which the game is in Pre-Alpha would be when the game reaches a playable state I guess? Anyways, I will release the game on early access when it reaches the beta stages. Which is when I've implemented the core mechanics, added some music, and think of an actual name for the game.
The Changes
Now let's talk about the actual changes I've made. There was supposed to be much more, but has been too long since the last update. The changes I did make were already pretty substantial if you were worried. I have a lot of cool stuff to show you!
Final Map Expansion
I've expanded the map into it's final size. What you see here in the screenshots and videos will actually be 1/4 of the map. To accommodate for this change, I've written an Region Manager which tracks which area the player is currently in, and only checks chunks of that specific area for collisions and stuff. It was a pretty fun experience creating the new tiles for decoration and redesigning the streets area. I can actually feel myself getting better at better at pixel art and the tools I use.
Of course, when expanding the map, a major problem emerges. In hindsight, it was a problem just waiting to happen ever since I first implemented the layering systems. (It's how things are drawn to the screen btw) The game was taking up too much memory around 750 MBs in facts. That was a clear problem as a game like this shouldn't be taking up that much RAM in the first place, but I've put off for longer than I should've. Combined with the fact that the IDE I was using was taking up over 1 GB of RAM, I eventually got annoyed and went to track down the problem using a memory profiler.
I've spare you the details . The problem was that each layer is too big, so I have to fix it by completely changing how game entities are drawn to the screen. It was tough, but on the bright side, the game as using less memory than it using before I expanded the map. At around 180 MBs to be precise.
Sprinting and Player Animations
I replaced the dash/orbit mechanic with sprinting. While yes, one of the reasons is due to the confusing naming. The main reason for this change is that dashing/orbiting isn't really that helpful to the player. The mechanic's original purpose is as a last ditch effort to avoid damage or put yourself into a better position, but in it's current state, it couldn't even do that most of the time and it doesn't work smoothly. So that's why I outright removed the mechanic and replaced it with sprinting. While I'm at it, I also removed walking as it isn't really that useful either.
If you ever been ever been alive for more than 5 minutes, you know what sprinting is. However, I will need to explain how sprinting works in this game. You have a stamina meter that drains really quickly while sprinting. The stamina meter recharges slowly and you can only activate sprinting once the meter is halfway full. You can't not perform any special actions while sprinting like interacting with stuff and shooting your musket. The way this is designed so it's meant to be used as an evasive tool. Not something you could use to get around the map quickly.
While I was at it, I gave the player new sprites and animations. One of which includes an idle animation to make the player feel more alive I guess. So yeah, there was a lot of major changes to the player. In fact, we're about to go to another major change to the player.
Sub-Weapons and Morale (MP)
Sub-Weapons were something I had planned for the game ever since I was writing down the concept art into my journal. Don't know If I ever told you that.
For a while during development, I couldn't settle on what I should name the resource that will fuel Sub-Weapons. I think was about go with cards but then I went with "Spades". My thought process was since Castlevania use "Hearts", why not use "Spades" as it is part of the 4 playing card suits. As time went on, I realize that symbolism of the Spade suit doesn't really align with what I'm going with for this game/series. I don't know. The most common meaning seem to find for spades is that they represent "the pinnacle of human development when humans attain, change, and acceptance.", but other interpretations throw in that they represent old age or winter.
I'm more of a "gameplay-first" kind of guy, stuff about symbolism, tone, or story comes second for me and it's usually something I think about when I had nothing else to think about. I mean, at the end of the day, the most important element in a GAME is the GAMEplay right? The gameplay is the cake base, and everything else is the frosting. (I don't know if that was a good analogy.)
Even outside the symbolism perspective, Spades were awkward to refer to as... "Spades", so much so that I mostly refer to them in my code comments and documentation as "SP". Personally if I have to use the abbreviation than... y'know, the actual name, then there's a problem.
Eventually while going on a run outside, I had the idea to have the resource used for Sub-Weapons to be referred as "Morale" and just have Spades represent it. Not only that the symbolism for "Morale" will be more concrete and less awkward to refer to, I could now use the standard "MP" abbreviation which feels good to think about. Along with the fact that it will be a lot easier to explain Morale in-universe if I every felt the need to.
So yeah, I feel good that I've finally have implemented a core mechanic like this. Sub-Weapons and Morale can be gained by opening crates. The logic handled when you get a Sub-Weapon from a crate are quite different than how other drops are handled.
Full Video
Links
I'm am still looking for play testers. If you're interested, you can add me on discord. My discord username is "proarch." (With the period)
What's Next?
Now that I have Sub-Weapons done and over with, all the core mechanics I have left are Familiars and Objectives. But before I get to that I have to rework the subclass for enemies and fix a couple issues with the spider enemy. While I'm at it, I will experiment with effects like after-images and trails. I'll post a quick update once I'm done with that.
Anyways, I'll see you guys later.