Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs

bitbionic

10
Posts
7
Topics
4
Followers
5
Following
A member registered Sep 13, 2017 · View creator page →

Creator of

Recent community posts

(1 edit)

Thumb candy for less than the cost of an energy drink!


Final Storm is an addictive top down twin-stick shooter inspired by the classics like Robotron and Geometry Wars. It seems simple enough when you begin playing.  A few enemies erupt from spawn points and you fly around and vanquish them with your unquestionably awesome trigger finger. But then you're greeted by another wave of ships that want to take you down. Each wave sends more havoc your way in both numbers and skill. Luckily the arena provides you precious power-ups like shields, multi-shot, freeze bombs and more! How long can you survive? Can you unlock all 15 achievements?



Steam Keys included with each purchase

https://bitbionic.itch.io/final-storm

Now thru November 27th, Final Storm is 25% off! 


Final Storm is my first game. It's a cross-platform twin-stick shooter designed as a simple pickup game that can be played in 5-10 minute rounds. It is addictive, fast paced and can be quite challenging. Enemy waves increase in difficulty and each wave adds multipliers to your score. Power-ups assist you on your journey to stay alive, and 15 achievements beg for you to unlock them. The soundtrack is just as action packed as the game! This sale is exclusive to Itch,io November 23rd thru 27th. 

If you're looking for a fun twin-stick shooter, check it out at https://bitbionic.itch.io/final-storm

(1 edit)

Final Storm Launched Today

I'm doing a launch week sale of 25% off Final Storm - It launched this morning!

https://bitbionic.itch.io/final-storm

Final Storm is a cross-platform twin-stick shooter and bullet-hellish game. It's designed as a pickup game you can play in 3-5 minutes when you just want to shoot a lot of bullets and dodge just as many! Survive as many waves as possible and pickup a few power-ups along the way!

Also got a great review from Welsknight Gamer!

These last couple of days have been building and testing v1.0, pushing to Itch, pushing to Steam and making a Demo.

Building the Demo

Yesterday I finished the demo. It's an interesting challenge on a game this size of how to give enough in the demo to entice a user but not so much that they basically have the entire game available to them. I opted to provide 3 waves in the game and let them sample 2 power ups in the process. The 3 waves jump pretty substantially in difficulty and, using my wife as a measure of a non-gamer trying it - seemed to be balanced just about right. She wanted to play more after the 3 waves were completed (she had to try more than a few times to finish all 3). So in my opinion that's exactly what you want in a demo. Leave them wanting more. I found myself having the same reaction when testing it. I'd "forget" it was a demo until the 3rd wave ended and I'd feel the urgency to play again. Of course I may be biased.


Smashing Bugs

I feel like I've knocked out all of the "major" bugs in the game. I patched a very minor one today where not all of the enemies were giving you a directional indicator when the amount of them in a wave got sparse. I'll be pushing another build with that patch shortly.

An Appreciation for Itch.io Platform

So, I had heard rumors that setting up your Steam presence and submitting your application had some "challenges" associated with it. I can say now that I have gone thru that process that Itch.io is FAR, FAR easier to work with. I am SUPER thankful for Butler - it is simple to work with and for me has just worked. I think Steam should take a few notes and update their pipeline!

In the Final Stretch

I looked for a way to submit status on this DevLog to 90 or 100% but didn't see an option to do so. With that said, I think the game is done and I am just wrapping up a bit of polish and marketing before it goes live! This has been an awesome experience and I'm looking forward to repeating it with my next project!

Today was finishing the Achievement system. The game has 15 achievements - In the screenshot below I was testing their visibility on the achievement screen and making sure serialization was working.



After getting the achievements working I moved onto that elusive bug with the enemies spawning during boss waves. I realized I was not pausing the emitters correctly and made adjustments for that. Though something was still off. I would occasionally get odd behavior like more than one powerup being offered after finishing a boss wave. So I added a TON of logging and found that for some reason an event is occasionally triggering more than once when it should only trigger once. Adding more logging I was determined to track this issue down. And so I played for hours ....... And couldn't reproduce the bug :(

That said - the anomalies that occur now are almost imperceptible, but I notice them. I'll leave the logging on and play some more - we'll get to the bottom of this. 

Other than what I just listed - I'm not aware of any more bugs (though I'm sure some exist). I cracked out a build and pushed out to my testers. We'll see what they find.

Fix Scoring Bug  --- Check!

Fix Boss Health bars --- Check!

4 Boss waves taking players up to wave 25 --- Check!

Test play balance --- Check!

It was a busy day getting the above working. Scoring bug was an interesting race condition between the event system and the destructor being called on the player.

In play testing I do have a bug that has popped up once but I am having a heck of a time trying to reproduce it. Sometimes (very rarely) the spawn portals are not getting shutdown when the boss waves start. I saw this a few days ago and thought I had fixed it - apparently I didn't. This is the last bug that I'm aware of in the game (I've closed out all other bug related tickets). Since it's very hard to reproduce I'm assuming it's probably another race condition. I'll have to very closely inspect the code around starting new waves and boss levels tomorrow AM.

This is exciting though - I'm confident I'll get that bug knocked out (first priority) and then I want to put a mechanic in to keep people from camping near the edges to much (that should be easy). Beyond that I'm looking into achievements as the final feature before release. I don't know if they'll be Steam integrated yet or not - I started looking at the Steam API but that seems like something I could address later if there's enough demand. For now it's LOTS of play testing to try to find any more bugs and make sure everything feels right.

Today was entirely creating boss waves and patching bugs in the framework. In creating these waves I'm back to the balance challenge. I need to make the boss waves slightly harder than their previous level, but not so hard that it seems impossible. With this game, that's a fine line.  

The Tank

Anyway this is "The Tank" - not an original name, I know, but it works.. I'll replace the center ship graphic with a more tanky thing later - it's just a place holder right now. This boss has a shield that takes punishment before the ship does. It fires "Seeker" missiles on a regular basis and also has a scatter shot cannon. Combine this with anything else on the screen and it can be challenging. 2 of them are really hard to defeat and 3 .. well I don't think it can be done - And so now I'm playing the balancing game. Tweaking shield values, firing rates, turn rates. All of those to make it challenging but not impossible. 


Fixed the Spawn bug

I solved the spawn bug problem - there were a couple of conditions in the code that could trigger the enemy spawners to fire while in a boss battle and that's not what I wanted. So today I put code in to disable them before the battle starts and re-enable them after the battle is over.

Fixed an enemy bullet bug

Sentinels can fire bullets and so can this tank. I noticed when testing the tank that the Player shields didn't stop the bullet. This has probably been the case since I introduced Sentinels, but they show up so late in the game that when you die you figure you just got nailed with something. So in finding this it was an easy fix to make sure the collisions were behaving properly and now the player shields actually have value against the bullets :)

Started adding a health bar for Boss Battles

My wife was play testing last night and she didn't really have an indicator of how many times she needed to shoot boss wave ships. Because they can take more than one hit (often 30 - 50) she didn't feel like she was doing any damage to them. So today I started adding a health bar. I actually added it and in the process introduced a bug because of the way I designed it's update cycle. So now I'm redoing it - no worries though. It'll get there.

Tomorrow will be a short day so probably just trying to fix the health bar bug.

Boss Battles

Today I got the framework setup for "Boss" battles - though they may be more like challenge battles. At the end of every 5th Wave the game now goes into a separate battle mode. This means the enemy spawners disappear, and battle music and a red vignette cover the screen. I created the first Challenge by 1 rail gunner on each wall and giving them a health that has to be knocked down. Previously all enemies just died upon impact with a bullet so this was a minor change to the enemy base classes, but for the better I think.

Gameplay

The change made me consider other gameplay elements. Like - should power-ups be earned during boss battles? What happens when the player dies in a boss battle - do they keep their existing power-ups? I had to think thru questions like these and determine how they impacted the balance of the game. 

Speaking of balance - I think that is probably the hardest aspect of writing this game. It is way too easy to make a minor tweak in the game that makes it way too hard or way too easy. I very much underestimated how challenging it is to create good balance in a game.

Two Steps Forward, One Step Back

After all is said and done, I have a framework for boss battles. But in the process I introduced one bug that is hard to pin down. Sometimes the spawners don't turn off when I begin the boss battle and there is just no way to survive in that situation. I'm sure I'm just tired this evening and when I look at it with fresh eyes in the morning I'll see the problem. Also my High Score bug is back again :( It seems like such a simple thing but yet it's keeps popping up. I'll look at that tomorrow as well.

YouTuber video helps me to smash 2 bugs.

I debated writing this post because to be quite honest, it feels a little "vulnerable" talking about bugs that I should have caught, or exposing things I didn't think about. However, if other new devs are viewing this, hopefully it encourages them to know that these things happen, and this is just how it goes sometimes (at least in my experience). That said, there's nothing more motivating to patch bugs than seeing them broadcast by independent parties on Youtube. I sent keys out to some folks to help get coverage and feedback. One of them was  https://voiagamer.itch.io/ who posted this video today:

I'm super grateful for his post (he has nearly 7,000 followers), but the very public exposure of some bugs made me cringe a little inside. There was one GLARING bug that I was aware of but as a developer you sometimes become "numb" to because in your mind it's minor.. That is the score increments when you die but your last life there's a discrepancy between your printed score and your High Score.  It turns out a race condition of the enemy death vs the player being cleaned up b/c it was his last life was the root cause. That was an easy fix.

The second was new to me and I ALMOST missed it watching his video. In the middle of the video he starts a new game and dies once, then almost clears the FIRST wave and dies with 2 enemies left on the screen. Then you see "Wave 4" pop up as he starts his new life.

Wait a minute! How did he jump from Wave 1 -> Wave 4? At first I thought just video edited to bypass some gameplay but I rewatched it and sure enough the score stayed the same, there was no cut, that was in fact a bug. 

Thanks to it being recorded I was able to replicate pretty easily. What I realized is that I had the logic for broadcasting events in an if statement in the main update loop of the Spawn Controller (those orange things that spit out enemies). There's a few boolean logic conditions that come together to fire a "wave update" signal to the game and it seems when there are 3 or fewer enemies left in the wave and you die - that get's fired for a few frames before the slots / callbacks respond to them! I realized I didn't need that check every frame and moved it to the logic that only gets fired when an enemy dies. So far, I can't reproduce the issue now!

So that's how my day began - now onto creating bosses :)

I've been writing a bit in my project Devlog on the Final Storm project, but I don't think anyone views those things. I think if I post here there might be a bigger since of accountability since more eyes tend to peruse this area.  And with 2 weeks left until release, I'm in crunch mode and thought I'd use the log as a "debrief". I'm going to try to post daily between now and release.. If I don't, someone should call me out on it :)

Optimizations

As I mentioned in the previous devlog, optimizations were something I really wanted to look into. Let me be clear - the game runs very well on my 5 year old laptop, but it also has an NVIDIA GTX 660 in it. I've tested on a few more laptops from the same era (2012) with integrated Intel graphics and also an android build on my 2013 Nexus 5 and the game runs but not AS smooth. I wanted to change that. So yesterday and today I did a few things. 

1 - I was using KinematicBody2D for all of the bullets and that was really unnecessary. I did it in the spirit of "make it work, optimize later". Well now is later. So my first optimization was to remove that and back up to an Area2D implementation that I had read was faster. It was in fact faster (I didn't measure, but performance improvement was obvious just by playing on the low end devices).

2 - Next I looked at memory pooling. Rather than instancing and destroying every node as needed I thought I'd create a pool of bullets and "borrow and return" them. I grabbed a pool implementation no github (MIT license) for the Godot engine and the code looked reasonable, but when I tied it in, the performance was abysmal! It was at this time someone on Discord pointed out that Godot had a "Shower of Bullets" demo that I should checkout.

3 - Shower of Bullets took a different approach. It created a bullet manager (sort of like a pool) but didn't create a bunch of scene nodes to represent the bullets. Instead the manager entity was the only node - and it would draw all the bullets in it's draw function, and "tap into" the Physics Engine notifying the engine where the bullets were and where they were moving. This seemed perfect. I tied it in, and on my worst performing device (Android), performance was smooth as silk! But there was a problem. The collision detection events were not delivering any information on which bullet hit it's target! Upon examining this with a few developers on Discord, we THINK this is an engine bug. So I posted an issue on github about it. I did pull up the engine code but at this point with 2 weeks left, I have too many other things to code before worrying about that. It'll have to wait until I get the remaining features in the game.

4 - With only the one optimization (Area2D) in place I figured I could also reduce draw calls on the bullets. The bullets were layering a few sprites together to create lighting effects and so I was able to merge them effectively cutting the number of sprites drawn per bullet by at least half! That's a big savings in itself.

Art

So with that done I turned to do some light graphics work today. The game needed a splash screen to replace the default splash screen so I threw this together - I'm not sure if it's final or not - I'll probably iterate on it but it's a start. I wanted to make sure to get the "Powered By Godot" in there because I'd really like to build awareness for that engine. That engine is making incredible strides daily!

WARNING - NOT MY FINEST WORK

I also didn't like the fact that I was using the same graphics for Rail Gunners and Sentinels so I busted out the GIMP and created a new Rail Gunner graphic that I think will do the trick:

That said I'm continually amazed at how nice tools like GIMP, Krita, Blender and Godot are. 

Well - that's it for tonight - Tomorrow I'm going to start putting in logic for boss battles and try to wrangle together at least one boss. I'm also thinking about throwing achievements in there :)

Maybe the Download & Instructions would work and I agree that low volume individual sales could work (though I'd have to figure out a way to automate). I was more thinking along the lines of - I'm taking preorders (though you could extend to early access), and I'd like to send a "special" thank you to those who take the leap of faith to preorder. I would turn that feature off after the product is in full release (or maybe you'd just change the email). Just looking for a way to send an automated email after purchase. Maybe a feature request to consider for the site.

Is there a way to create an email template that gets sent out per purchase at time of purchase? Not the bulk email option where we can email all previous purchasers but a customized one per project that gets sent out with maybe something like a thank you and in the case of preorders or early access some bit of digital swag or something?

(1 edit)

Hi Everyone!

I wanted to share a quick post to let everyone know that Final Storm project page is live and preorders are 30% off! The planned release date is November 2nd, 2017 and I'm in the final stages of polish, optimization and bug-smashing. I'm also looking for reviewers / You-tubers - so drop me a line if you're a reviewer and you like twin stick shooters! They will get a free copy of the final game.

Final Storm is a twin-stick shooter / bullet-hellish style game meant as a 5 minute pickup game when you just want to spray bullets and challenge your reflexes. It doesn't try to be all things to all people - just plain Old'Fashion arcade style twin-stick shooting fun! Checkout the page https://bitbionic.itch.io/final-storm for more info and screenies :)  Steam store page is also in review right now for what that might be worth. Thanks for taking the time to view this - Here's the promo video:

Thanks for the replies guys - I'll go with @leafo 's recommendation.

I think you just mark it as "Paid" - set the minimum price and Untick the "Suggest alternative price" box:

I'm trying to understand the best way to allow for public pre-order while providing access to a select few testers. Do I need separate projects for that? If I make the project public and post executables (rather than a pre-order file) then won't the executables be available to all who access the project page?

Hi everyone! I'm Brandon and recently started a company Bit Bionic. I'm in the process of setting up my project page for Final Storm and trying to navigate itch.io a bit. The platform seems really nice though I'm still confused about a few things (like how/what is the process to manage early access customers). I've been posting about the game development a bit on Twitter if you're interested! I'm looking forward to this adventure! Nice to meet all of you.