itch.io is community of indie game creators and players

Devlogs

Blatherings

SeaCrit
A browser SeaCrit made in HTML5

I feel silly making these posts as no one sees them and by any metric this game is a terrible failure but I'm making the post anyhow because in my crazy brain I think things are going relatively well and I wanted to catalogue these thoughts as I go, and I figure why the hell not here?

The biggest revelation getting this far has been coming to terms with the sheer volume of prototyping that it takes to reach the point you always wanted to at the start, implementing those few little things that you thought would have made some other game better. You play other games and you think "If I were in charge I'd have done this differently and it would have been better". So you start a project waiting to make that one thing better after you build the core and then year after year you go absolutely bat shit crazy coming to realize that gamedev is hard and that you had NO FRIGGIN' IDEA how much goes into building these core setups and getting them all working with each other. 

Time and again I curse that I'm working on this in my lonesome, but at the same time I wonder if fixing bugs that almost drive me insane would send me over the edge if I were having to interface with other people's code. There seems to be inherent benefits to being the sole developer in being able to push systems further and further, and being able to get out of the weeds when something goes wrong. I take solace in that. 

I'm always able to think of how the game could be better, and I make that happen, without bugs and workarounds spiraling out of control as a sole developer. As I get better at code, whenever I work with older stuff I made years back, I'm able to untangle the mess a bit, and sometimes cool ideas for better features emerge, or an older idea I had a while back comes to me that I'm confident I can implement now. 

There are less things that seem to be "code magic", or something beyond my means. It's a pretty nice feeling, but it's a tradeoff. Tasks used to intimidate me, but I had unlimited energy, creating cool new things I'd never done before was so thrilling it more than outweighed the tedium of fixing bugs and I could pull 50 hour weeks for years. I now look at every new feature as doable, I'm just really burned out and that mental state of not quite having enough will to work on the project becomes too common.

Being somewhat new to code and having no formal training to beat the foundations into me with repetition and study, I often curse that I never got into it until recently, I feel like a non-native speaker trying to write a book in a language I'm not fluent in or an old dog learning a new trick. Where others could easily write line after line of brilliant scripts effortlessly, I'm having to look up basic code setups for things like loops and copying and pasting them whenever I need them and other little kinks in the process throw me off way more than seasoned coders. 

It really throws your game off, you become hesitant to work because you lack the ability to maintain forward momentum without having to look up references. But I suspect that if I hadn't had so many years working with particles and art I would have a slew of other issues that would be holding me back in other areas, the amount of time upkeeping graphics and effects and scene management isn't trivial. I also know that it's those who start many projects or do many many different things that become the best as generating new code foundations out of thin air. In the end that's about 10% of finishing a game, 90% of it is iteration and polish, so I try not to let this get me too down. I think I have a unique ability to stick with a project and finish it and that's more important than being able to start new projects over and over quickly.

Anyhow, today I tried to add a new feature where pressing your other action button while charging would automatically initiate a secondary attack ability that used to be the overcharge ability that is now scrapped. In doing this a happy accident happened, and if you spammed the button while charging with the other, it would constantly use that new ability without requiring you to charge up first. It felt really good, but it only worked with one button and only about 95% of the time.

After a lot of debugging and pulling my hair out I figured out that the issue was due to a discrepancy of update and fixed update where it becomes more and more likely for both inputs to register on the same frame the lower the framerate is. Because of this sometimes the game thought you were initiating the charge and pressing the other action button down at the exact same time so it would overwrite the charged attack.

After attempting tons of other solutions, rearranging events for button down, button up, button hold, among other crap, I finally found that if I did a button down check at the tail end of resetting an attack state, that was the frame of difference that allowed these new charged attack spamming to work 100% of the time. Then I fixed a bug where an attack that would "auto  que" itself in higher priority than the charged attack by making it so that an attack would only auto que if the current attack allowed for auto que. This fixed the issue with this only working with one action button. I imagine fixing this would have been a massive headache had several people had had their hands on code, it's all really bizarre edge cases that you can only pin down and figure out if you have intimate knowledge of the entire system. I'm so glad this game is single player and avoids the nightmare of net code.

So after a quick happy accident that I thought would effortlessly make the game better, I had to spend about 7 hours trying to find solutions to very small  but annoying issues. Considering I got a cool new feature for free that really makes the core play better at all times, I consider today a win, and in a weird way, when a task that you thought would be easy ends up being really friggin' hard, the tasks ahead seem easier in comparison.

Going to try to get items in tomorrow. Funny thing about that, the way I see them working is actually exactly how this game started, and I feel like it's all coming full circle in a really awesome way. Years back and in the first version of SeaCrit, you could find new "fish heads" and "fish bodies" and the architecture for the game allowed for these new "fish parts" to give you new attacks based on what you found. Shark heads would bite, projectile fish heads would shoot things, using that button designated to the head.

Well I scrapped fish parts and I gutted the system that would mix and match these parts together to give you these weird fish monstrosities: half coral fish, half dolphin or whatever. There were still inner workings for this two part system, and for the longest time the remains of these always felt like the lingering vestiges of a developmental failure. I created entirely new fish and each of them had 2 components for their abilities, and internally they were still referred to as "head" and "body" each one corresponding to each action button "A" and "B".

And now that I have the upgrade system in and working, and I have this idea for items that can bestow these bonuses and as i've improved the skill system to allow for more abilities, I'm having the realization that items can be exactly the same system as before and bestow new abilities for buttons A and B, but they don't have to ruin the coherent fish look of a singular mesh meant to be a shark, or a pointer fish. Because of all the prior prototyping, I think it should be relatively easy to add these items and their ability to add new abilities and stats and upgrades, just need to add a few features for adding items to specific bones after swapping in new fish bodies with the appropriate materials and weapons. Just gotta generate the "body item" first, designate where the "head item" otherwise known as hats go, and then use the upgrade system to bestow the new bonuses.

Almost forgot, once the core system is in, then i need to add mechanics for showing the new stats and abilities in combat, I think it should be doable, considering I've figured out how to show bonuses already using basic string setups and UI elements. Figure I'll just throw a rectangular textmeshPro plane behind the item and slap the stats on there. 

I'm also going to have to figure out how the player picks up these items, I'm thinking pressing both action buttons simultaneously when over that item (same as blocking) to pick it up, and while over the item I'll slow game speed to 1/4 speed to give the player a bit of time to think over picking it up before they get killed (also the player will have to be moving very slowly to minimize gameplay disruption, a recent feature I added to walking into teleport volumes and to enable store purchases that I'm really happy with).

After I get the bare bones system working, then it's going to be working to create rare alternates, and prefixes and suffixes so certain items can get various attributes, and at rare times give really awesome ones, or common ones in more quantities.

I slapped a pirate hat and a sword on the main fish, and maybe I'm juvenile, but imagining I had found those items and that they gave me a new awesome attack and stats just seemed to fun to me, so i'm really looking forward to adding those things. Once they're in i'll really be able to start calling this a "roguelike" and I can do more meaningful implementation to new areas and content in line with item progression, while also tuning upgrades you buy in shops to align with the whole of the progression system.

It's ben a real journey adding things that I THOUGHT were going to be more fun, after over indulging in creating new things, I'm really looking forward to adding an item drop system that's tried and true.

Your first game is a really intense learning experience, you learn not only what's fun and what's not fun, when to trust your gut and when not to, but also how to manage scope so you don't burn the most precious resource of all: your passion to work on the project. I now understand why games are always late, why most project always fail. Because most studious view people as disposable and if you lose key talent, or if you don't properly foster their passion, then you wont have gas in the tank to polish and complete the most vital and interconnected systems. 

For a while now i've been worried I wouldn't be able to "finish strong" that my passion would burn out and i'd just flop something out there and call it done and abandon it, never actually achieinv what I had always wanted to do, and that is to finagle finished systems in a way that  thought would be actually fun. I feel motivated enough right now that I think i'll finally be putting in the higher end systems and "fun" that I always wanted to at the start. I think I will soon have the game I always wanted to make and I can call it quits knowing I did what I set out to do. It's been way harder than I ever envisioned, but like I always say, if it was easy, everyone would do it.

Ultimately, your game will be fun if you respect your passion for the game, and if you spend enough time developing things to be able to manage that passion reasonably with hard earned gamedev wisdom. Have enough respect for gaming to honor what's tried and true, and also to not just do what's done before and add your own little spin to things, that's how I see things anyhow.

I can't believe I'm saying this after all the ups and mostly downs, but I think the game's going to be pretty good pretty soon... the shit show goes on.

Download SeaCrit
Leave a comment