About UltimateWalrus (twitter: @@UltimateWalrus)

Entries

 
Ludum Dare 29
 
Ludum Dare 26
 
Ludum Dare 24

UltimateWalrus's Trophies

UltimateWalrus's Archive

Vertico Postmortem

Posted by (twitter: @@UltimateWalrus)
Wednesday, May 14th, 2014 12:11 pm

banner_small

 

Vertico is a  2D isometric “three degrees of freedom” shooter. Dive beneath the ice and fight creatures while moving in any direction, navigating a vertically-oriented coral reef.

Lately I’ve been trying to be more thoughtful about the way I work and how easy it is to get certain common things done in game development, as well as potential pitfalls and bottlenecks I may not be fully aware of.  And since commenters were surprised at how much I got done in 48 hours, I decided to do a different sort of postmortem for Vertico: I’m only going to look at how my time was spent.  I know it’s very self-centered (and also a bit OCD); this writeup is primarily introspective but I’m hoping others find it informative as well.

If you want to watch the goofily-narrated timelapse for yourself it is here.  Since I took the timelapse, I was able to go through frame by frame and (tediously) write up a record of how my time was spent over 48 hours.  Then I made several graphs to help visualize how time was spent.  Here is an overview of how much time I spent on each type of game development task:

piechart_time_analysis

Analysis:

That programming is the biggest slice of the pie is not surprising.  And from previous gamejams, I know that I cannot operate without sleep.  8 hours the first night and 4 hours the second night is my golden rule for 48-hour gamejams.

What’s clear to me from this overview graph is that I burned way too much time on music.  I need to work on improving the creation speed of my compositions.  I know of two reasons why it takes me so long:

1.) I need to improve the quality of my music.  When I make music and it sounds bad, I have to keep reworking, and reworking, and reworking until it sounds good.  I’m sure this is normal to an extent but if I could make better-sounding music on the first pass it would mean less passes overall and more time saved.

2.) I need a better computer.  I spend a lot of time pencilling in notes in the piano roll.  It would most likely be quicker to record notes from my MIDI keyboard.  However, I rarely do this, because on my computer the MIDI latency is so bad, it’s like trying to talk to someone on Skype while you’re hearing your own echo… except you never even hear your own voice in the first place.  It’s only echo and it’s so disorienting I can’t play in notes with any semblance of nuance or skill.

Most everything else was necessary except publicity.  I only took a few minutes here and there, but surprisingly it added up to over an hour.  You can argue it’s “only an hour,” but what could I have done with that hour?  37% more level design!  Or 35% more artwork!  Publicity is good to worry about as a game developer, but I think from now on, I’ll worry about it after the development period is over.  Hardly anyone watched my stream anyway.   😛

It also would have been nice if my tablet was working.  I may have saved a tiny bit of time on art over using the mouse.  However overall 3.15 hours certainly doesn’t sound that bad for art, especially since people have praised the artwork :]

I’m especially curious about bottlenecks in programming, so here is that slice of the pie, expanded:

20140514094721

Analysis:

Sadly this graph wasn’t really as useful as I thought it would be.  But I guess it’s not so bad because it confirms what I really felt strongly about after I finished the game: my programming has finally reached the point I had always hoped for.  When I look at the individual tasks there is almost nothing that took longer than it should have in my mind.

The one thing I do see, though, is that I spent almost an hour coding that stupid energy bar.  I detest coding HUDs for whatever reason, so I guess I let it get the best of me.  I should find a way to make HUD coding fun for me.

Looking through the timelapse, I realized that I almost went into a sort of adrenaline-induced trance on Sunday, and got certain things done perplexingly fast.  If you are motivated by hard deadlines, ride that wave of adrenaline!!  Drink some coffee and it might just be what you need to send you over the edge into “beast mode.”  You can pass out as soon as the game is done.

Finally, I somehow managed to make this color-coded timeline illustrating what type of tasks I was doing over time:


timeline

Analysis:

I’m glad I made this because it’s neat to see how I transitioned from one type of tasks to the next.  I have a couple thoughts about it.

The order of events worked out well for me.  It very well might be different for other people.  But this is what I did:
1.) Music.  Some might not think to start with this.  However I really liked this order because if you make the music first, it sets a sort of primal chromatic tone for the entire thing: art, gameplay, and sound.  I really think it’s good to start with how you want a game to feel and work backwards from there.  Just as most level designers will start with what they want a player to do and work backwards from there.

For some of the time I was making art, I honestly listened to the tracks I had made on loop.  I really think it helped, because I was able to constantly focus on making art to match that music.

2.)Sleep.  I had some issues with my music, and I went to bed thinking it sounded horrible, almost beyond salvaging.  After I’d slept, the pieces sort of fell into place and I tweaked a few things to make it sound good.  Granted, I wish I was able to do the music so fast that I’d be able to start programming before bed, but it didn’t work out that way.

3.) Programming. Of course it’s good to start this ASAP, but remember what I said about mood.  Even cold, logical programming has a mood.  You’re coding a videogame.  It may be ones and zeroes to you, but to the player, it’s magic.  So I still think doing the music first worked out well.

Notice the little slivers of purple though.  I took breaks from programming to draw final assets for the player, coral blocks, etc.  Why bother with placeholders during a solo gamejam?  It just adds another step to the process.

4) Sleep.  Time is of the essence but if you get four hours in it will improve your efficiency tremendously.

5.) Design.   In a gamejam, it’s really good if you can manage to rig up your game so you can design and playtest at the same time.  That’s what I did for Vertico — just hit F7 to go into design mode.  (note: you can even do this in the release version.  Though I think it was bugged by that time)  Taking little bits of time to program editor tweaks will save you loads of time in design, so don’t be afraid to hop back and forth between programming and design.  While they often get separated into two separate jobs in the game industry, programming and design are so closely related you can almost consider them as two sides of the same coin.

6.) Sound.  I left this to the last minute,  because you only know how many sounds you need once the game is finished.  And if you’re going to churn out a bunch of sounds in something like sfxr or LabChirp, I think it’s much quicker to go down a list of assets than it is to generate sounds as needed.

I would’ve liked to spend a little more time polishing the sounds, but I was running low on time so favored speed over quality to an extent.  I did wind up spending more time than I wanted on a “movement” sound effect for the player.  However not only was it buggy but it was also annoying, so I got rid of it in the end.

?.) Art.  I just drew art on-demand throughout the whole process as you can tell by the little purple slivers.  I’m curious as to whether this is faster or slower than doing them in a whole batch.  However, I’m inclined to think doing them in a whole batch would be slower — the reason being that, if you don’t create art as needed, you have to put something in as a placeholder anyway.  This adds an extra step to the process.  Art is a nice break from the other stuff anyway and I think it helped me keep my attention span.

One note about the “what went wrong” in this timeline.  There were certain distractions that could’ve been avoided.  They only took a small amount of time but I suspect they had an impact on my focus.  Such as hardware problems (having a computer that isn’t on its last leg would avoid this).  Or publicity (the stream kept having technical difficulties).  Or having to get a pizza because  me and my girlfriend accidentally bought a gross kind of fish (stick to frozen dinners for gamejams, I say).

Conclusion:

Making these graphs and this analysis gave me a lot of insight into the way I work and how I can improve.  I really need to get quicker with music; save publicity until after the gamejam; make sure I have dependable hardware; don’t drag my feet on HUD coding; make sure food is all set up before I start the gamejam.

Perhaps others can glean insight from these conclusions.  However I think the major takeaway is just that you can do this for yourself as well.  Make sure you take a timelapse of your work.  It’s incredibly tedious and you’ll feel silly spending hours analyzing something that only took you hours to make anyway.  However if you’re thorough enough you’re sure to find some good ways to improve your workflow as hopefully I have.

Vertico development timelapse

Posted by (twitter: @@UltimateWalrus)
Thursday, May 1st, 2014 9:24 am

Some were surprised I got so much done in 48 hours, luckily I recorded a timelapse for you guys to watch.  Here it is with really goofy narration:

banner

Vertico trailer!

Posted by (twitter: @@UltimateWalrus)
Tuesday, April 29th, 2014 10:22 pm

Here is a short trailer for Vertico, a 2D isometric “three degrees of freedom” shooter. Dive beneath the ice and fight creatures while moving in any direction in 3D space, navigating a vertically-oriented coral reef.

Some were surprised I got so much done in 48 hours, so I’ll be posting a timelapse of the development with narration shortly.

“Vertico” full playthrough

Posted by (twitter: @@UltimateWalrus)
Monday, April 28th, 2014 9:08 pm

Here is a video of a full playthrough of Vertico, for those who got stuck.  Note the video might spoil the game a bit if you haven’t played it yet:

Vertico is a 2D isometric “three degrees of freedom” shooter.  Dive beneath the ice and fight creatures while moving in any direction in 3D space, navigating a vertically-oriented coral reef.

I’m really, really satisfied with how this one came out, so please give it a try if you haven’t already :]

Timelapse will be coming eventually for those interested.

 

vertico_v03 2014-04-27 18-50-20vertico_v03 2014-04-27 18-34-16vertico_v03 2014-04-27 18-28-32 vertico_v03 2014-04-27 18-34-56vertico_v03 2014-04-27 18-26-57  vertico_v03 2014-04-27 18-29-37vertico_v03 2014-04-27 18-26-19vertico_v03 2014-04-27 18-37-04

Vertico

A 2D isometric “three degrees of freedom” shooter. Dive beneath the ice and fight creatures while moving in any direction, navigating a vertically-oriented coral reef.

This is my third Ludum Dare, and I’m really, really happy with how this one turned out.  As far as I know there’s not anything else that plays like Vertico, and I’m pleased with the atmosphere.  I think making the music before anything else really helped.

I’ll be posting a timelapse and post-compo version when I’ve recovered a bit, but in the meantime please give it a try!

Vertico engine coming along

Posted by (twitter: @@UltimateWalrus)
Saturday, April 26th, 2014 10:08 pm

fog

My engine is coming along.

Streaming development (intermittently) here for anyone interested.

Vertico engine and music

Posted by (twitter: @@UltimateWalrus)
Saturday, April 26th, 2014 3:53 pm

 

 

 

 

 

Well here’s what I have so far:

engine

 

And songs I burned a little too much time on:


I’m streaming development at http://www.twitch.tv/rumpusmcugly

Ultimate Walrus LD29 Steam

Posted by (twitter: @@UltimateWalrus)
Thursday, April 24th, 2014 12:07 pm

logo_website

Hi all, if anyone would like to watch me develop my entry for LD29 over the weekend, I’ll be streaming it here!

I’m an experienced indie developer and gamejam participant hoping to produce a competitive entry.  So hopefully this stream may be informative to some people.  I’ll be doing design, programming, sound, music, and art all by myself.  You can even use the chat to ask questions during the development if you’d like.

Some info about the development:

Engine if game is 2d:  Clickteam Fusion

Engine if game is 3d: Unity

Art: Photoshop CS2, Maya 7.0, GraphicsGale, Fusion’s native editor

Sound: sfxr, LabChirp, GoldWave, and my Zoom H2n for any recorded sound effects.

Platform: Windows

Development location: On my sailboat (which I live on) in Marina del Rey, CA

Intended sleep schedule: 8 hours Friday night, 4 hours Saturday night.

Here I come!! D:<

Posted by (twitter: @@UltimateWalrus)
Saturday, April 19th, 2014 9:20 pm

Been feeling creatively frustrated from work and other long-term projects. A solo gamejam is just what I need. I’ve got a fire in my belly, all yall better watch out!!

Anyways I’m going to try and stream my development live, as well as record a timelapse, first time I’ve ever tried so still not sure how I’m gonna do it. Uhh I’ll figure it out (shrug)

Engine (if the game is 2D): Clickteam Fusion 2.5
Engine (if the game is 3D): Unity
Music: FL Studio
Sound: Sfxr, LabChirp, GoldWave, FL Studio
Art: Photoshop CS2
3D Art (if necessary): Maya 7.0 (yes it’s true all my tools are very outdated)

Dehumanizer post-compo version

Posted by (twitter: @@UltimateWalrus)
Friday, May 3rd, 2013 1:20 pm

Gameplay from Dehumanizer
My LD26 game, Dehumanizer, got featured on the awesome blog at Indiegames.com!  People’s enthusiasm for it spurred me on to complete the post-compo version, which is now available on my website.

The main feature of the post-compo version feature is WAY better (less buggy) corpse-pile physics, but it also includes gamepad support, and an extended background, pictured below (spoilers!).
The background for Dehumanizer (spoilers!)

If, while playing the post-compo version, you were to type a certain “secondary theme” to this Ludum Dare competition, something interesting might happen…

Dehumanizer video/gif

Posted by (twitter: @@UltimateWalrus)
Tuesday, April 30th, 2013 5:46 pm

Dehumanizer is the 16×16 minimalistic ultraviolent game I made for LD26.

It uses an outdated video mode (not Direct3D) to render, so it took a lot of fiddling to get video of it!  (I had to plug my laptop’s headphone jack into its microphone jack using an AUX cable, and record with CamStudio)

Here’s a GIF:

Short animation of gameplay in Dehumanizer

Here’s the full video:

Thanks for playing!!

Dehumanizer: 16×16 hardcore arcade platforming shooter

Posted by (twitter: @@UltimateWalrus)
Sunday, April 28th, 2013 6:16 pm

I did it!  Wasn’t sure if I was gonna make it since I flip-flopped and started 26 hours in, but I made it with time to spare.

Dehumanizer actually turned out really fun, it surpassed my expectations!  I’m also happy with the music I was able to make for it.  It even has  2-Player co-op so please try it out, vote on it, let me know what you think!

Dehumanizer screenshot

Dehumanizer almost done!

Posted by (twitter: @@UltimateWalrus)
Sunday, April 28th, 2013 2:14 pm

Wow!! I joined the competition like 30 hours late and still managed to churn something out.  😮

Hopefully it’ll be fun!  It’s got co-op mode :]

scr2

Mini metal slug thingy

Posted by (twitter: @@UltimateWalrus)
Sunday, April 28th, 2013 1:06 am

Like last time, made a last-minute decision to participate… we’ll see how far I get with this 16×16 pixel game. :I

scr

“Barnacles” postmortem

Posted by (twitter: @@UltimateWalrus)
Monday, August 27th, 2012 11:37 am


Gameplay video is here.

Here’s my game for the 48-hour competition.  The main page is here if you want to play.  You are a predatory fish and must eat the “barnacles” to survive.  Each round, the barnacles repopulate using a genetic algorithm.  Because of this, they will gradually adapt and evolve to your playing style, eventually getting so strong that you lose.

Good

  • I think the gameplay turned out fun. I was afraid the genetic algorithm would just be a gimmick, but actually you can get a much higher score if you’re aware of how adaptation works. If you selectively eat the most powerful barnacles so that they don’t reproduce, and avoid the easy pickings, you can do much better.
  • Even though I started a day late, I still managed to make it as polished as I wanted it. I even had time at the end to playtest and take my time making music. The small scope really helped here. The algorithm behind the game was the only really “big” element I had planned, and even then I axed a planned “stab” ability that would have been very similar functionally to the shoot ability.
  • Surprisingly, the enemies seem to adapt pretty well. This may be because I tried to make the potential for different “behaviors” as complex and analogue as possible. Barnacles can “like” or “hate” the X and/or Y positions of the player, seaweed, and rock, as well as the RGB colors of other barnacles. I think this may have even enabled some really simple “symbiotic” relationships.
    It may have worked better with a larger population, and with slower mutation, but that would be a long time to ask the player to play an arcade-styled game.
  • Multimedia Fusion 2 was, surprisingly, a good choice. It was a gamble whether or not the simple event system would break when asked to handle the complexity of a genetic algorithm, but I made an effort to make my code very clean, and it just works. I’ve been using Clickteam software for 15 years and am still amazed at all it can do. Thumbs up.

Bad

  • The name. I’m not very good at coming up with names when I don’t have enough time to think about it. “Barnacles” just doesn’t have a nice ring to it at all. In retrospect, I think “Diatoms” would be a better name and I’ll probably rename it that before I put it on my website.
  • Performance issues. I had planned all along to make the game work in Flash, but when I finally exported at the end, it ran much too slow. I hear Flash doesn’t handle MMF2 fastloops well so maybe that was the problem. Even in standalone form though, it does slow a little bit when there are a lot of barnacles with complex behaviors clustered close enough to see eachother.
    Coding the game in C++ would have made it run smoother, but the huge amount of time saved from using MMF2 made it worth it overall.
  • Bugs. To be expected I suppose. The main one is those pitch-black barnacles that appear rarely, and don’t propagate their color as one would expect. I just didn’t have enough time to grind through the code and figure out what was causing this.
  • Mistakes. I just realized since I forgot to initialize the values, the first batch of barnacles start their life “hating” everything. Probably would work better if they started neutral.

Genetic algorithm game (late start)

Posted by (twitter: @@UltimateWalrus)
Sunday, August 26th, 2012 1:37 am

Hey all,

I’m trying to make a game for LD #24 that uses a genetic algorithm.  I already got the hardest part out of the way I think, which was coding a genetic algorithm in Multimedia Fusion 2!

You can sorta see how it works in the picture — right now each lil’ guy just has a “color” attribute which is passed down to its children.  You can use the buzzsaw to kill them, and when you press space the empty spots will be repopulated using the living creatures as parents.  So, you can get them to be whatever color you want if you just keep killing the ones who aren’t anything like that color.  Eventually they’ll “evolve” to be the color you like, so that they can survive to reproduce!

“Barnacles” is a tentative title.  I started a day late on this (mostly due to laziness but also due to having other stuff to do).  Hopefully I can finish by the compo deadline, if not I’ll just shoot for the jam I suppose.

[cache: storing page]