Well, in all honesty I should have expected this. I took on work and school and commissions all at once. There’s no reason I should have been able to do it all AND a game at once. I even have another game project with a different group underway. There’s just no time to do it all.
LOL NO I’M STILL WORKING ON HYSTERIA STAR. DON’T WORRY!
I’ve dropped work (I don’t need you, Walmart!) but I really need to catch up on life a bit before I can really get back into Hysteria. But I am still making progress… however slowly it may be. This weekend marks the first where I’m not working 16 hours, so that’s just 16 more I can spend on the game!
It’s actually rather embarrassing how little progress I’ve made since the last post. Hell, it’s embarrassing what a simple state the game itself is in after all this time. It’s a slow crawl but more and more the game comes to life in my mind and more and more it takes the steps necessary to becoming a reality. The newest additions to the game plan? A complete overhaul of the spawning and level loading system and basically how all the data is setup.
This one really makes me feel smart. Since the beginning, the plan has been to generate levels from .bmp image files, with each pixel marking a square in the invisible grid that makes up the level. Originally, the plan was to have several level types and have a script read each differently, so only certain enemy types would appear in each level. But why make a bunch of different scripts? What if I want one background or another music? What if the music changes? What if I want some of a different enemy type for one level?
That thought led me to something much better. Each pixel holds an R, G, and B value, from 0 to 255. What if most enemies in the game are just instances of the same object, with some thirty values that completely change its appearance, attack, movement, and much more? What if a big array of values holds all this data for every enemy in one central location, and I use one of the color values to determine which set of values in the array is taken when the enemy spawns?
Wait.. why not do the same for the player? And powerups? And scenery?
This simplifies things SO MUCH! Without sacrificing the ability to do a lot of vastly different things with player ships, mechanics, enemy types and everything, I can make it much easier to access and change their data without the possibility that I might break something else, and without having to dig through a million different things to find what I need.
Yes, the last couple months has been a big learning time for me, as I’ve been mostly backtracking on my old code and improving things. I’ve learned the importance of defining constants in a nice list which I can access later. I’ve learned how great object-oriented programming can really make things when you have a lot of similar-yet-different things in your game. Yes, here I am coding my second game and I’m still making newbie mistakes early on. But after tearing through old stuff and improving it a lot, I’m almost back where I left off. Well, that and I have a lot more concepts figured out.
So, the plan at the moment is 12 playable ships, 6 main ones and 6 side stories. That’s two ships per pilot in the main story arc, giving you a little extra choice depending on your preference. As for the game-changers, the six side-stories will be among the most different in terms of how they play… also their storylines will be about 95% more ridiculous.
One thing I’ve been doing lately is looking back at the games I take my inspiration from. I find it really important to look at the different kinds of play styles other shoot-em-ups offer, and look at how that differs from what I’m doing. I like for players to be able to recognize what kind of game this is and know what they’re getting into, but I don’t want my game to fall in the same pitfalls I feel those ones do. Being original is an important point to me as well, because the last thing Hysteria should feel like is “been there, done that”.
Interestingly, playing these games has mostly had the effect of making me wish they played more like Hysteria. Why aren’t the enemy bullets as bright as my own? Why isn’t there any color coding on enemy shots so I know what to avoid more easily? Why is there never any warning before something fires a bullet at my ship? Why is the movement so twitchy? Why do tiny mistakes like tapping the wall set me back half the level and lose me my hard-earned powerups? Being punished for failure by having to repeat a section can be annoying enough but losing your upgrades often means you’re more likely to fail again. You’re not racking up points or having fun at that point… you’re racking up frustration! This is one of the things I’m going to be hitting hard as Hysteria gets further into development. Remaining a positive and fun experience even in the face of a big challenge should be the focus. And even when it isn’t, there should be ways for players to lessen the strain on themselves when it’s just too much to handle. I know as well as anyone how great it feels to overcome a really tough challenge and come out on top, but there are times I wish I could just say enough is enough and the game would let up a little.
Well, I’m sure Hysteria will be better than that… if I ever get the thing finished. BIT WHY U SO SLOW~