The Star War post-mortem

Posted by (twitter: @Eerongal)
December 16th, 2015 7:57 pm

Play it here

 

The deadly star

Introduction

 

Hello all! I figured it was about time for me to do a post mortem for my game! After the hectic ludum dare weekend, It’s always nice to circle back around and put my thoughts to paper about how the weekend went after a bit of reflection.

 

A little bit about me:

This is my 5th Ludum dare I’ve participated in, and I usually participate once a year or so as a holiday tradition. My day job is a software engineer working on financial software (boring stuff), so I have a background in programming in the first place.

 

I am not, however, anywhere near competent in the graphics or audio department. This was a pretty big deciding factor in the aesthetics of my game. I figured I may as well go purposefully bad for comedic sake rather than try to do something and come out as unintentional poor quality.

 

So from the outset, I was planning on doing something space/star wars related due to the upcoming release of the new movie. Just figured it would be a fun tie-in. I was planning this well before the theme was announced.

 

I had some tentative plans to work with maybe a couple different people, however that ended up not amounting to anything, so about 3-4 days before beginning I was for sure going to be on my own. Without someone more competent to put together my audio and visual needs, I went with an idea I had sort of brewing in the back of mind, using construction paper/crayons to come up with my graphics!

 

In addition, I decided I would record all of my sound effects myself, with the thoughts of using a kazoo for music. Like i said above, going full on intentionally bad was my goal here.

 

The First Day, part I

By Friday evening, I had a pretty good idea of what I was planning on doing. I watched the theme voting with interest, but was hoping the theme would end up aligning with my plans. Earlier in the day, I ran out to the store to grab some craft supplies/kazoos (i still have a pretty large bag of ’em, apparently I can’t just buy ONE kazoo…) and of course a supply of caffeine.

 

Lucky for me, the theme ended up aligning perfectly with my idea, or at least half of  it did. Grow fit perfectly into my plan, but two button controls didn’t really fit all that well. Fortunately, we were able to do one or the other if we wanted, not necessarily both.

 

So with theme determined, supplies in hand, and ideas fresh in my mind, I set off from the announcement of the theme working on my game. Theme announcement for me, locally, happens around 8 PM, so I had a good few hours in the evening to work. I set about getting the basics of player movement down, as well as adding some interaction mechanics between the player and enemies. At some point in there, I was able to get to adding in my background.

 

So i ended up wrapping up the first portion of the day around 1-2 AM my time, and decide to wrap it up for the evening and try to get some sleep. I was pretty pleased with my progress so far, because the first portion of this event for me is usually coming up with a plan and ideas. This time, I actually had some tangible progress on an idea, which was going to make things easier for me down the line.

 

The First Day, part II: Electric Boogaloo

 

So I begin the next day (but still LD day 1) around 8 AM, and before jumping straight into working, I decide to fix myself a nice breakfast to prepare myself for the coming work.

 

Once all that was squared away, I set about immediately working on the bulk of my game. Overall, it was clear, steady progress down the line as I worked on mechanics and took breaks from coding to get down to the serious business of construction paper and crayons, or to record some more sounds, and the occasional snack/sanity break. I took some time out of my day to acquaint myself with some new features of unity 5 while i was at it.

 

At some point during the day, I decided I needed some cut scenes to really tie the whole package together. Luckily, these were pretty easy to implement. In case you couldn’t tell, the dialogue was mostly ad-libbed (hard to tell, right?). I recorded a handful of variations that all hit right about the same points on each and took the ones I felt were the best. It was about this time I was beginning to realize I had a masterpiece coming together in my hands.

 

The day chunked by steadily, and I ran into no major road blocks. By the end of the night, I was feeling pretty good and had a mostly completed game on my hands. At roughly midnight, i decided it was about time to turn in for the night

 

The Second Day: The day-ening

 

So on the final day (Sunday) i decided I earned a bit of rest, so I slept in a bit. Got up around 10 AM or so. I was pretty confident I would be done on time, and I spent most of the day tightening up some mechanics, and eventually I decided that the boss needed some retooling.

 

In previous versions, I toyed around with the bosses movement mostly, and I couldn’t find a really workable solution. Either he moved too fast and was basically impossible, or he moved too slow, and was a joke. Eventually, I decided that I needed a new mechanic to make a boss fight work, because it was either a simple slog through a massive HP pool, or an insta-gib for the player. That’s when i decided to add in the bullet hell/shooter mechanics to the game (player firing shots, boss with giant beams), and these features came together pretty quickly and worked out pretty well. I finally had a final boss I was happy with.

 

After getting the game into its completed state, I decided to try getting a working build put together. This proved to be (oddly) the biggest roadblock I had come to so far. I was determined to use Unity’s new WebGL build, but to my surprise, the build kept clocking in at insanely huge (for the scope of my game) sizes. I’m talking the first build hitting about 250 MB. And actually playing it would take ages to load, in excess of 20-30 minutes.

 

This was, of course, a BIG problem. However, this being ludum dare, it didn’t surprise me in the slightest that SOMETHING went wrong. Up until now, it had been way too smooth, and I was quite suspicious.

 

So, with nothing left to do, I buckled up my big boy pants, and began researching my issue, trying to figure out what could be the problem. The total raw game assets came to about 100 MB (high DPI PNG scans and high quality OGG vorbis sounds), still pretty big, but nothing like the final build. So the obvious thing to start with was to start scaling down my assets to something more manageable in size.

 

Cue a few hours of tinkering with all of the images and sounds until I reduce my asset size down to around 30 MB.

 

After i get everything to a quality i’m happy with and a more manageable size, my builds were still clocking in around 150 MB, so I only ended up shaving off about 100 MB. At this point, I’m completely puzzled at what could possibly be causing my build size to be so large. So i take to google searching for all the information i can concerning unity 5 and large WebGL builds.

 

Many hours of googling later, I eventually come upon a post in the unity forums recommending someone to turn down the material quality to lower their build size for a 2D pixel art game. Little did I know, I had struck on gold here that pointed me in the right direction.

 

Turned out, all of my image assets were being imported into unity with a default texture max size of 2048, which was significantly more than needed for the assets i was using. A bit more tinkering later, I figured out I could very easily turn this setting down to 512 with almost no discernible quality loss. And most importantly, the builds were clocking in around 20 MB afterwards, which was far more reasonable. Along with the smaller size, the load times were reduced greatly (to a minute or so).

 

With all this completed, and a final, working build, I still had about 45 minutes until the end of the competition. So with my head held I high, and my kazoo rendition of the star wars theme still stuck in my head, i proceeded to play my game one last time to snag a few screenshots, and ultimately submit my game about 30 minutes early.

 

It was a long weekend, but well worth it. I felt good about the product I had made, and hoped it would go over well, and currently that does seem to be the case, which makes me all the more proud of it!

 

The Good

Over the weekend, I was able to play around with some new features of Unity I hadn’t ever really used in the past, and was able to bring my game to fruition pretty exactly as I have originally envisioned. It’s not often in a Ludum Dare that one gets to say this, so I was particularly proud.

 

The Bad

At the end of the day, had I previously familiarized myself with some of the newer aspects of unity (and WebGL builds specifically) I could have saved myself a lot of headache and stress right up at the end there. Fortunately, things worked out for the best.

 

The Ugly

The game itself brings nothing new to the table, and relies solely on its parody value. However, I’ve learned in the past that setting out to break new ground during a Ludum Dare is a very risky proposition, so I feel justified in my decision to play it safe in terms of mechanics and game play.

 

Thanks for reading, everyone! Hope you enjoy mine and many other of these fine games that are part of Ludum Dare 34!

Tags: ,


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]