Bullet Hell Breakout: A Post-Mortem and My Results

I normally publish a Post-Mortem of my Ludum Dare game while the review phase is still underway, but this time I purposely decided to post this after judging is over. I didn’t want to influence the ratings given to me by people playing my game (in fact, I didn’t post a “play my game” message either). Since voting is now over, this post will be a combination Post-Mortem and review of my results.


This LD was probably the most difficult one for me… so much discouragement. I had a very difficult time deciding on an game to develop. Once I decided on my game, the development was such a chore.

Day Prior to Theme Announcement

I like to review the possible themes and put together a short list of games I would develop if that theme were chosen. I was dreading this theme, Combine 2 Incompatible Genres, because I could not think of anything I really wanted to develop.

Day 1

Of course, this theme is announced and looking at my sheet of ideas, there are none. I usually give myself about an hour to put together something before I start developing, but this time I am into Hour 3 and I haven’t put together any ideas that I like.

Bullet Hell Breakout Screenshot
Bullet Hell Breakout Screenshot

I hacked together a few ideas and a combination Missile Command / Financial Management game is my best bet. I start putting ideas together, and quickly realize that the financial management part would be a bit too difficult, but more importantly, I do not feel excited about this genre. It’s not a genre I enjoy.

I’m about 4 hours into LD, and I don’t have an idea. I finally decide on a bullet hell game, and a bit later, I decide to mash it with a breakout/pong clone. I do enjoy both of these genres and decided to finally start coding. It already 1:00am Saturday morning, my time.

I put about 2 hours into designing my game and laying it out in Unity. Around 3:00am (6 hours after the theme was announced), I decide that what I have is utter crap, and I scrap just about everything, and decide to get some sleep and try again in the morning.

Day 2

I get only about 4 hours of sleep and I am back at it. I put together a breakout style game where the player hits moving space invaders. I add an enemy that puts the player into bullet hell mode when hit.

Around midday, I am ready to gave up. The game just isn’t fun. I come back a few hours later and add some features. It’s better but I am giving up again. I do this “code/quit” routine most of the afternoon. I hate the theme, I hate my game, I’m not having fun, but I am not going to give up. I decide to finish today, get something completed, and enjoy my Sunday.

I’m coding late into the evening, and after playing a few rounds of my game, I decide that it’s not that bad, so I will polish it up tomorrow.

Day 3

Sunday is spent adding audio, graphic improvements, instructions, and some effects. It’s not great, but I like it.  It’s pretty close to submission time and I don’t think it is worth trying to cram any more features into the game at this point, so I do my final compile, and submit it.

What Went Well

So little went well in this LD, but looking back:

  • I do like the work I did on the pixel enemies, and the graphics and layout of the game screen.
  • The mash-up between Breakout mode and Bullet Hell mode is interesting.
  • Despite a constant feeling of discouragement, anger and sadness, I finished this game!

What Did Not Go Well

  • The switch to Bullet Hell mode needs improvement. I do like the sudden switch, but maybe a visual or audio clue would be helpful.
  • The ball/paddle movement and collisions can be improved. The “floaty” control of the paddle is something I don’t really notice, but it was a comment made by just about everyone who played.
  • Due to the time it took to decide on a game, and the Saturday discouragement, I felt a bit time-constrained.

Voting Results

The comments around the float-y controls, the paddle, and the bullet hell mode discouraged me even more than normal, so I was expecting a dismal result. It turns out there are some positives.

Overall, I finished somewhere in the middle of the pack, and pretty close to the results of my LD40 game, ANTagonist, which I actually liked better. I’m not sure what to think about this.

What was a pleasant surprise was that the results of the audio and graphics categories were the best out of all 7 Ludum Dares I took part in. These always seem to be weak categories for me, so this is a great news and hopefully a step in the right direction. As I mentioned before, I am very happy with the look of my game.


Despite an absolutely terrible Day 2, I managed to submit a game, and the rating is somewhat better than I expected. I guess the take-away here is to never give up no matter what you are up against.



Alphabeta Asteroids Now on Itch.io

The PC and Mac desktop versions of Alphabeta Asteroids is now available on itch.io

Alphabeta Asteroids was originally released (and is still available) for Android , iOS and Kindle devices way back in 2013. Along the way, we’ve added some things and improved some things, and we finally decided to give a desktop build a try.

The PC and Mac versions are available to you for free, although any donation would be appreciated. these donations, along with your feedback, will help further development of Alphabeta Asteroids.

I hope you enjoy my game, and I welcome your feedback.


LD41 – Update 2

It’s about 24 hours into Ludum Dare 41, and after a lot of thinking, prototyping, getting and getting frustrated, I decided to create a Bullet Hell Pong game. Here is a very short video.

It was so difficult to work on this all day… I do not really like it, and I hate the theme (Combine 2 Incompatible Genres). I think it’s getting better slowly, but. I do not think it will rate very high when I submit it.


Another Unity Object Pool Update

It’s time for another update to my Unity Object Pool library. I previously wrote about it here and here, and this update streamlines the code a bit and makes it even easier to use. I am also going to open source this library (more on that later).

I’ve been using this version for some time and have had no issues, so it’s time to make it available. Feel free to grab a copy to use in your projects. If you like this library, and you want to see some features added, please let me know, or consider sharing your updates.

What Was Updated

  • This update no longer requires a Unity GameObject for every pool. All pools are stored in it’s own Queue and the Queues are placed in a Dictionary. When the library is started, it will create nested game objects under the main pool object and will then populate each pool with the correct objects. This makes it easier to see what’s going on in the Inspector.
  • When items are placed into the pool, the object name is appended with “(Inactive)”. When objects are taken from the pool, that is removed. Again, this makes is easier to see what objects are being used at any given time within the Inspector. Inactive objects are in the pool waiting to be used.
  • The library has been created as a Singleton so that it can be used throughout your project via the static Instance variable.

How To Use

  1. Download and import this asset into your Unity Project.
  2. Drag the GBC Object Pooler prefab into your Unity scene.
  3. Click on the prefab in your scene, and in the Inspector you will notice a script named GBCObjectPooler.
  4. Enter the number of pools you wish to create.
  5. For each pool, drag in a prefab, enter the number of items you wish to create in the pool, and the name of the pooled items.

As of this post, there are 3 methods.

GetPooledObject(string poolName)

This will return an item from the pool specified.
If the pool does not exist, or if there are no more items in the pool, null is returned.

ReturnToPool(GameObject object, string PoolName)

This will place the specified item back into the correct pool, and will disable it.

ItemsInPool(string poolName)

This will return the number of items still available in the specified pool.
If the pool does not exist, null is returned.

Open Sourced

I am placing the source code (with example) on github for all to use and update. This is a simple “quick and dirty” library and I would like to keep it that way, but I am sure there are a lot of other useful features that can be added to enhance functionality. I don’t want to add a lot of unnecessary bloat… there are some very good pooling libraries on the Asset Store that contain a ton of features, but my intent is to provide an easy to use pooling library, but let’s see where this goes.

It’s a small project, but it is my first open source attempt, so this is a learning experience for me as well.

Link to GitHub project


Talking to Myself About My Ludum Dare Games

As I am writing this, it is two weeks to Ludum Dare 41. This will be my 7th LD, and I’ve enjoyed them all, despite the mounting stress and lack of sleep!

My game entries seem to rate somewhere in the middle of the pack, but I am making small improvements in my scores. I like all of my games, and during the 2 – 3 weeks of rating games, I always think I should continue development. After all, the comments are pretty positive… then the ratings come out and I am a bit disappointed.

In other blog posts here and on the LD site and Twitter, I always ask if I should continue development, and I also ask if there are any suggestions to make my game better. I usually hear crickets, and that furthers the disappointment. What little feedback I do get is appreciated and does goes far in motivation to continue developing games.

Looking at the Ludum Dare games I have developed, I still have thoughts of continuing development on many of them (with the exception of Shape Shifter Match Maker, which is definitely my weakest entry). I really like my last 2 entries… ANTagonist and Inefficient Plasma Weapon.

Is it worth continuing development on any of these? Would people play it? Would people buy it?


SMS:Next Mission – February 2018 Status

Another six months gone by! Here’s a quick update on the development of Space Mission Survival: The Next Mission.

I am pleased to state that the Classic 70 Arcade, 80s Home Computer, and 90s Console versions of Space Mission Survival have been completed! They are basically one game, with appropriate graphics of the defined decade. I utilized a lot of the code and graphics from “Iteration 5” of the project, and I finished Iteration 6 within 3 months.

What have I done with SMS:TNM since I completed Iteration 6 in July 2017? Basically nothing. As I previously stated, I have been having difficulty working on a theme for the Shmup mode, so the game has been sitting on the back burner. I think I have decided recently on a preliminary theme for the Shmup mode, so I am again enthusiastic about picking up development again in the very near future.

I think we all know where this is going… I am planning to not use Iteration 6 as the basis of the game, and instead will focus on an all-new “Iteration 7” for the Shmup mode. With some minor tweaks, all the code from Iteration 6 will be folded in, so there should be no new development required for the classic modes.

The development of this game is very strange to me. It seems like a project that has no ending. I have stopped and started more times than I can remember. As history has shown, there may be several rounds of dev/nodev coming as well for various reasons including discouragement, momentary lapse of interest, and other side projects like my recently completed Tappy Easter, and some Ludum Dare fun along the way.


My First (Upcoming) Unity Release

All of my previous game releases were written with CoronaSDK, but about two years ago, I decided to learn Unity. Since that time, I have used Unity for several game jams, but I have not officially released anything. Since September 2017, I have been working on a mobile game using Unity and I am planning on releasing it in the next couple of months.

I have three “Tappy” games released on mobile: Tappy Holidays, Tappy Valentines, and Pumpkin Patch Match (ie: Tappy Halloween). These are very basic games written in Corona, and I decided to create another simple Tappy game with Unity as a good first attempt. I present to you: Tappy Easter.

Tappy Easter will be my first new game in almost two years. It’s also my first released Unity game. I decided to try something “simple”  (although it became more complicated that I expected) so that I can learn what it takes to publish a mobile game with Unity. I already had a good understanding of C# coding, UI, graphics, etc. It was all of the additional “stuff” that makes a game that I had to learn. I decided to buy a couple of assets (in addition to the assets I already owned) to make it easier on myself. Here’s some detail around the new and additional things I encountered:

  • Mobile UI. I started working on swipe code myself, and decided to bite the bullet and buy an asset that helps with this. I purchased Fingers Touch Gestures, and decided to use that for my swipe code, as well as all the other tap code. What a time saver! Swipe, tap, gestures all included, and you can simulate it in the editor with your mouse.
  • Achievements. I purchased the Easy Mobile asset to help with integrating Google Play and Apple Game Center. Again, a great time saver. One call, and Easy Mobile takes care of everything. This asset has a lot of cool features to help with Achievements, Leaderboards, Advertisements, Ratings, and more.
  • Admob. Easy Mobile to the rescue again… so easy to configure and use.

Unrelated to Easy Mobile, I did have a hell of a time integrating Google Play and Admob on the Android version of Tappy Easter.  It took a couple of days to figure out and fix the issue. Turns out Google includes libraries in each asset that are incompatible with each other, so you have to be sure you are only importing the latest version of the libraries. A lot of time was spent looking up the problem and figuring it out. The solution is so simple but is not documented adequately enough.

Other assets I bought previously were DoTween and Text Mesh Pro… both are fantastic. Both are free, although there is an enhanced paid version of DOTween I recommend. DoTween is a very powerful and fast tweening library, and I use this in everything I develop. Text Mesh Pro is unbelievable for enhancing your text. I purchased it prior to Unity making this a free asset.

I also decided to learn Unity Analytics, especially for the Remote Settings feature. I can see this being valuable… once I understand it a bit more.

All in all, it was a great learning experience, and I expect Tappy Easter to be available some time in mid to late February.


ANTagonist Results

I am writing this almost 24 hours after the release of Ludum Dare 40 results, and my rating, as always, is somewhat surprising to me. I’m going to try to break it down a bit.

The raw numbers do not tell the full story, so I’ve created a chart that shows where I placed in each LD, along with my finishing percentage. What it shows is that I consistently place above the middle of the pack (40 – 50%), with some results as high as top 30%.

With the exception of Audio (always my weak spot), my results are equal or slightly better than LD39, and that’s good! I know that the rating results are highly subjective, but my expectations were that I would place a little higher.

Looking back at my last 3 LDs, I believe that I have greatly improved my game development skills, even though the scores do not really show that. My first 3 LDs are somewhat of an experiment in Game Jams. Starting with LD38, I started to really focus on bells, whistles, and polish, in addition to game play. More sounds, more graphics (even though my graphics talent is severely limited), more effects. The chart above does seems to show that, and I am glad.

In Summary

I am both very critical and very defensive about my games, and my expectations never match what the results show.  That’s a “me” problem.

I’ve always thought that several of the LD games would make a good stand-alone game if I continued development, but the scores seem to discourage me from doing so. I have had an idea I have been working on several times over the years and ANTagonist may fit that theme. Regardless of the results, I may continue development. I am just not sure at this point.

In Closing

LD40 was a blast, even though the stress level was a bit high.

Thanks to all that played and rated ANTagonist.

On to Ludum Dare 41…


ANTagonist – Post Mortem

Another Ludum Dare, and another game submitted… that makes six for me, but this LD was one that I will remember for a long time.  So many highs and lows. Of course, we should begin at the beginning, but I will begin before the beginning if that makes sense.

The Week Prior To The Dare

I saw that the theme “The More You Have, the Worse It Gets” was listed in Round 3 of Theme Selection. Where did I see that before… oh, yes, that was mine! I suggested that! I entered that one and one other, and was surprised to see it make it that far, but there was no way it was going to make the finals, right?

It made the finals, but no way was it going to win, right? When I saw the theme announced I was floored! I felt pride, and nervousness because even though I suggested the theme, I have absolutely no idea what game to make.  

Friday Evening

After about an hour working through some ideas in my head, I decided on a game where ants try to steal your food. My original thought was you go to a supermarket to bring food to your house and the ants steal it from there. I put together a basic game screen, some player and insect AI code, and called it a night at 02:00 Saturday morning.

Saturday’s Sinking Feeling

Not much sleep… I got up around 05:30 Saturday morning, got a coffee, and hit the computer. I decided that the house and supermarket concept was not good, and decided on a picnic theme… seems to make more sense. I fired up Photoshop and created a picnic blanket, ants, food plates, and a player.

Animation and gameplay was working, but I was just not happy with the game… it just didn’t seem fun to play. Also, for some reason, I spent way too long trying to get joystick movement and firing to work properly, so I am now far behind where I wanted to be at this point. It’s now late in the afternoon, and I have very basic game that is not fun to play.

The combination of feeling incredibly tired and frustrated was a major demotivation factor. Somewhere around 17:00 Saturday afternoon, it hit me hard. I was so close to just shutting down Unity, grabbing a beer, and watching some television. It was so hard to motivate myself to continue, but I know that if I decided to bail out, I would feel even worse. I would rather submit a low rated game than give up and not submit anything.  I took a bit of a break to regroup, and sat back down and worked on it for another 5 hours that evening hoping to put something together that was playable.

Sunday’s Revelation

I woke up Sunday still very discouraged. I sat down to start and all of a sudden, I was hit with a wave of creativity.

“A health meter! Yes!”
“Power-ups that attract the ants! Right!”
“Anthills! Highlights! A better playfield! Incredibly horrible music!”

I spent the rest of Sunday implementing these features, and after every one that I finished, I saw that the game was becoming more and more fun.

Submission time. It’s later than I like to do this (about 2 hours to the end), and of course Unity is giving me build errors! I rebuild and import everything and get it out with less than one hour to spare.

Development Details

I used Photoshop and Paint.Net to create the graphics. I am not a good artist, but I tried to create something that I felt was at least usable. The animation of the ants is very basic, but I think they work in this situation. I swap back and forth between two sprites. For the player, I created a few levels (head, body, and arm) and I animated each one through three arm positions. If you look closely, you will see a bit of a head bob effect when running.

I created the bug zapper and bug bomb using Photoshop and placed a particle object behind it. For the bomb, I used a smoke effect, and for the bug zapper, the kept the particles tight for a glow effect.

For sounds and music, I used bfxr and Otomata. Since I lost a lot of time before, I really didn’t have time to create and tweak the sounds and music much, so when I found something that worked, I used it. Given more time, I think I would have replaced some of that. I’ve been told that the music is a bit on the crazy side, and I am ok with that, since I wanted the music to reflect a high level of stress as the ants attack.

There are a couple of things that need some improvement. Some of the ant AI could be tweaked (although I do like the intensity). For joystick mode, I used 8 directional firing, but I think a full 360 degree fire range would be better.


It is incredibly difficult to continue working on a game you feel is not up to your standard, but once Sunday arrived, and I had a decent amount of rest, things started moving in the positive direction. I really enjoy ANTagonist in its current form, and I hope you do too. It definitely did not start out that way, and Sunday was the turning point for me. As always, I am considering continuing development, but I want to give myself a bit of time before I decide either way. I guess it depends on my final rating and user comments.