jurnacsr

LD24

Ludum Dare 1 (24) – A Personal Post Mortem

So sends my first Ludum Dare!

Looking back on it now, the choice to compete was the best choice I could have made for my weekend.  All last week I was working nights, spending most of the time doing nothing or conference calls with China, so I had some spare time.  I decided to pick up Java gaming once again (for real real this time!), and venture forth.  I started making an extendible tile-based game capable of being updated via the Internet, and made decent progress.  Come Friday, though, I was burnt out on the process, and put my computer away for a day.

Saturday morning, I browsed Facebook and found an interesting entry – a friend was participating in Ludum Dare, a competition I had heard much about.  I decided to give it a shot, and dove right in.

The topic was evolution, and like most people I focused on the mechanics of evolution – natural selection, mutation, reproduction – and started designing a game based around those principles.  I began with a color-based turn-based strategy game, where you’d upgrade (evolve, I guess) your village to a town, then city, and compete with your neighbors for scarce resources.  I continued with his game for much of Saturday, into the night, when I hit a wall.  I hit a wall like a driver at 200 mph, and the destruction of my ideas was total.  I found myself with nowhere to go with the game, bogged down in minutiae like UI programming.  I tried to think of a different path, but quit.  I also needed some dinner.

On the way back from dinner, I had a spark – why focus on mechanics at all?  Why not focus on evolution as a whole?  One idea led to another, and I was met with Just a Theory – a game about educational reform.  In my game, you play a science teacher at a Texas school trying to retrieve pages from great scientific texts.  The school boards have been on a crusade to remove this, and other ‘inappropriate’ material from the textbooks, so you need to get it back.  The game would be in an overhead 2-D style, my favorite game style, with you running around, dodging teachers and school board members, interacting with students, and retrieving pages.  The final product is here: http://www.ludumdare.com/compo/ludum-dare-24/?action=preview&uid=16532

As you can see, I did not meet all of my design goals – there are no students to interact with (in fact, the school is rather empty), and the   hostile’s AI is horrible (to put it forgivingly).  The game lacks challenge, is quite void of interaction, and a rather dull affair – and I couldn’t be more proud of it.  This is the first time  I have EVER completed a game, start to finish, and implemented a top-down scrolling system and rudimentary AI.

So what did I learn?  To start with concrete examples, I learned how to implement a top-down scrolling system, a concept that had eluded me for some time.  I am thrilled to see how my scrolling system worked (and work it did, with minor tweaks).  I also learned how to implement a simple animation system as well as an AI decision-making system (a very simple one, and one frought with error and stupidity).

As for more abstract learning, I learned about planning and designing.  I have a tendency to jump into my task with little heed for documentation, error-handling, or story design.  When I find myself hip-deep in my own foul game-mess I lose concentration and will and inevitably end up giving in on the project.  This taught me a valuable lesson in the benefits of even a simple hour-long planning session with a class diagram, simple storyboard, and some concept art to inspire you.  I could have used this planning to find my final idea sooner in the process – I started Saturday afternoon (already many hours behind) and spent a few hours on a wasted project – putting me nearly 24 hours behind before I even really started.  A well-planned process would have given me much more time to polish the AI, add sound, and fill the space a little bit in my game.

As it stands, though, I am extremely pleased with and proud of my work.  It won’t be winning any awards for art or sound (unless you hear the sound in your head), but I like the creative idea and the execution of concepts previously unknown to me.  Thanks Ludum Dare for this chance to take the next step in my game development development.

LD25

I’m In!

This is my second Ludum Dare – I participated in LD24, but ran out of time due to poor practice and design!

This time, I’m going web-only, using JavaSript and the Canvas.  I’ve been considering using the Impact game engine (quite possibly the best $99 I have ever spent, that engine is boss!), but am also experimenting with rolling my own framework for this LD.  I’ll be working on a basic framework this weekend, figuring out standard audio and drawing tools.  When the Compo rolls around, I’ll decide whether to go Impact or Ad-Hoc.

 

Can’t Wait!

 

Unleashed – Part 1

Good evening!  I’ve just returned from seeing The Hobbit (which you should too, after the competition) and I’m ready to go!  I’ve started well this time around – a simple design document will set up the theme and game elements, as well as give me a simple road map to follow.

I’ve decided on what technologies to use:

  • ImpactJS – it’s too powerful not to use.  I thought about switching to Crafty.js or rolling my own but the work involved is too much.  Impact has already done most of it for me, and with the level editor it’s just too good a choice.
  • Paint.Net for the graphical resources, though these will be very simple as my art skillz cannot pay the billz.
  • BFXR for the sound effect generation.

Quick question for everyone – Can I use public domain music for my game?  I’ve done a quick search and it seems I can, but I want to double-check.

 

Now on to the work!

Tags: part 1, Unleashed

UNLEASHED – post-mortem

UNLEASHED - Son of Kracken title screen.

UNLEASHED – Son of Kracken title screen.

Play the game here: UNLEASHED – Son of Kracken

So it is with a bang and not a whimper that I end my second Ludum Dare competition entry!  I always like to wait a few days before I do a post-mortem like this.  I need the time off, need to rest my eyes and my ass (sitting in my crap computer chair really wears me out), and take my mind off it for a while.  Now, I feel like I have a good grasp of what I was doing, what I hope to accomplish, and what I could have done differently.

You are free to take a look at my previous entry if you want to get a glimpse of a project done wrong.  I was determined to not make the same mistakes as before.  I knew first-hand that I needed to do a lot more planning, even if it was only a simple design document with some concepts and strategies lined out.  I also knew that I wanted to use a pre-existing engine for my development.  I tried rolling my own the first time and it added a dozen layers of complications – unnecessary complications.  I was also determined to finish the damn thing – have a start, a finish.  Have some sounds and understandable art assets.  I think I did just fine this time around.

The entry I give you this year is called Unleashed – Son of Kracken.  It was Friday night, and I was halfway through the Hobbit when I remembered that the voting should be in.  I checked my phone, and was sad at first.  You are the Villain?  Not the theme I was hoping for, but whatever.  I sat for the rest of The Hobbit and thought hard about a game.  Nothing came to me during the movie – but the breakthrough came during the drive home.  I was listening to the XM radio in my car, and the word ‘Sea’ was in the title of the song.  That got the juices flowing – the sea…pirates!  Sea monsters!  The Flying Dutchman!  I started on an idea dealing with the Flying Dutchman, but then came around to being a sea monster terrorizing the ocean deeps.  The Kracken myth soon followed – and the popular line ‘Release the Kracken!’ right on its heels.  So if your father is ‘Released’, what does that make you? UNLEASHED!

ULEASHED - Son of Kracken Instructions Screen

ULEASHED – Son of Kracken Instructions Screen

Once I had the idea, much more started falling into place.  I had the skeleton of an idea, so I started writing.  I thought about sending ships to different ports, having a large world for you to explore, and having pirates to fight.  Some ideas I originally had were five or so types of boats of varying strength based on the island you were near.  This idea was abandoned in favor of all islands being relatively equal in the beginning.  I documented all this in a one-page document – the most crucial part of the process.  I am a ‘learn by doing’, so when I type something it gets wedged in my mind much more firmly than just remembering it.  Documenting the process was the best decision I made.

Once the concept was in place, ImpactJS took over.  Before, when I rolled my own engine, I had to deal with collisions, drawing, levels – all the sticky stuff.  Not this time around.  ImpactJS is an EXCELLENT engine for javascript/html5 development and I’d recommend it to anyone.  Well worth the $100 license fee.  I was able to get a prototype up within an hour, with a simple sea creature roaming an ocean with nothing in it.  With the built-in level editor I was able to get the islands and spawners in place quickly as well.  In fact, because of the power of the engine, I was able to spend the vast majority of the time on game balance, art, sounds, and other aspects.  With my first go (LD 24) I spent so much time on an engine that I didn’t have much time to work on an actual enjoyable game experience.  Using a pre-existing engine, and a robust one like ImpactJS, really accelerated the process and allowed me to focus on the game mechanics.

UNLEASHED - Son of Kracken Gameplay

UNLEASHED – Son of Kracken Gameplay

Mechanically speaking, the game is a little bit too easy.  Cannon balls don’t do a lot of damage, the spears are relatively simple to deal with, and the Merchant Marine that you face doesn’t cause much trouble.  The ship difficulty curve is also kind of wonky – when a ship leaves the map, its spawner gains a level and allows more powerful ships to spawn.  The ships also have a tendency to get stuck on islands (as do cannon balls and your acid spit).  On a much more positive side, mechanically the game is quite sound.  Attacking and being hit feel good (to me), and movement has a definite ramp-up feel to it.  You start quite slow but within a few minutes you can overtake anything on the sea.  I like using the ‘Dive’ ability to dodge cannonballs, and using the ‘Acid Spit’ ability to fire back.  The ‘Vortex’ is crazy powerful.  The game does technically have an end goal – once you kill 100 ships, the Hovering Dutchman emerges and challenges you.  When you defeat him, you have ‘won’ the game – but with the power of the HTML5 spec (LocalStorage!) I am able to give you a persistent character.  Even if you die, your stats remain the same so when you start over you have your same character as before.

UNLEASHED - Son of Kracken Gameplay Screen 2

UNLEASHED – Son of Kracken Gameplay Screen 2

What would I do different if I could do it all again?  To be perfectly honest, I’m not sure what I would change.  I documented my game before I started, giving me a good road map of where to go.  I used an existing engine to make my life easier, and make the game better.  I have little to no artistic talent (as far as drawing/pixel art is concerned), so I am happy with the sprites I was able to produce.  I really like how I used my voice for a lot of the effects, and am also happy with how that turned out.  If I were more talented or a better Google-r I could have provided some pirate-y or naval music.  I also would like some more decoration in the islands building, and the sea.  Additionally, more ships, some sea life, and more stuff going on in-game would improve the experience.  All of those things were clamped by time (and my sanity – I needed sleep!).

What does the future hold for Unleashed – Son of Kracken (if any)?  I really like the concept of the game and how it plays.  It doesn’t take a might stretch of thought to see it implemented on mobile platforms (using AppMobi’s Direct Canvas acceleration).  The game also lends itself to simple mobile controls (especially touch).  With some time I could also improve the assets.  It’s always been a dream of mine to see a game of mine in the app stores, and seeing people playing and enjoying my game.  I might see if I can’t take this a little further, polish it up a whole lot, and try it out!

 

Thanks for all your reviews and comments!

LD26

A Missing Piece – Music!

Another post with an amazing revelation (for me)!!!

There is a program out there called autotracker.py.  This code file, when run in python, will automatically generate a piece of background music for you to use in your games – I have just downloaded it, got it to run, and have exported a few background tracks that sound great.  I just discovered this tool today, and am supremely happy I did.  Music (and all art in general) is something sorely lacking in my games – that is no longer the case!

How to use (for Windows):

  1. Download Python 2.x (if you don’t have it already).  Using 2.x is important, as I tried this on 3.x and got errors.  Use 2.x!  Python 2.x can be downloaded here: http://www.python.org/getit/.  Make sure to use the 2.x link.
  2. Install Python.  Simply run the file you downloaded and let the program install.  I installed Python to the standard directory, C:\Python27.
  3. Copy the autotracker.py script file to C:\Python27.  Script file is available here: https://github.com/wibblymat/ld24/blob/master/autotracker.py.
  4. Open up a command prompt window (his Windows Key – R, and type ‘cmd’).
  5. Navigate to where you installed Python.  Use cd to change directory, and use .. to move to the parent directory.  To get to the C drive, type C:.
  6. Run this command: python autotracker.py.  The script will output many lines of text, and will end when the file is saved.
  7. Open the file output in VLC.  Sample the greatness.
  8. Convert the .it file to a readable format – in the case, .OGG.  To convert, go to Media -> Convert/Save.  Follow the dialog there.
  9. Your converted file is ready to be used!

I hope these directions are helpful – I already enjoy the output from this autotracker.py script, hope you do too!

Note: I am in no way affiliated with the creator of autotracker.

Tags: autotracker, autotracker.py, generation, music, music generation, video game music, video game music generation

LD 26 – The Months Go By!

It’s about that time once more!

I’ve taken a little bit of a break from game development for the past few months.  Maybe it was burnout, maybe it was idea block, maybe it was the desire to do something different – who can tell.  What I know now is this: the LD competitions are incredibly motivating, and therefore think it’s time to dive back in!  Last time around I learned a lot about developing games, especially on a short time schedule, so this time I want to apply that knowledge and make a better product.  My game last time turned out very good – UNLEASHED! Son of Kracken – so I’ll be sticking to the tools and frameworks I used for that.

This time around I want to focus even more on planning, setting up some deadlines and deliverables, and documentation.  I like the feeling it gives me – setting up some boundaries and constraints lends focus to my work process and ultimately improves the delivered product.  I also want to be more transparent – this time try to set up a live stream, as well as a time-lapse.  That way I have a record of the process and something else to show to others.

I think I’ll be keeping up the new tradition as well: going to a movie Friday evening.  Last LD I went to see the Hobbit, learned of the theme in the middle of the movie, and came up with my idea on the ride home.  I’d like to replicate that again – I’m going to go see Oblivion and see where it takes me.  Always good to have some inspiration!

As far as tools and platform are concerned, I’m going to stick with ImpactJS on a web platform.  I love the portability and ease of test and deploy.  I just hit ‘save’ and then am able to test the product.  Easy peasy.  I also enjoy the Weltmeister level editor.

 

Code: JavaScript – ImpactJS.
IDE: Notepad++
Graphics: Paint.NET
SFX: BFXR and maybe some MIDI music

 

Best of luck to all the entries!

Minimalism

Minimalism is the theme this year cycle. To be honest and a little bit whiny, I’m none too thrilled about this.  When I think Minimalism, I think of a design choice, an art, sound, or feature choice – not necessarily the theme of an entire game.  The word minimalism itself means a design choice – minimalism in life, in art, or in architecture.  Using last LD’s theme, you can make a Minimalist You are the Enemy game.

I find all my ideas so far centered around the design of the game – make a shooter with this minimalist trait, or a platformer with that minimalist trait – but no games that are Minimal, like last time’s You Are The Enemy.

I still need more thinkin time.

When Will Then Be Now? SOON!

Soon!  I have the environment set up,  started up my timelapse software (hope it’s working, time for a quick test), and the coffee’s a-brewin.  Let’s do this Luders!

Finito

I am finished!

My game, Combo Up, is complete.  You can check it out here: http://www.ludumdare.com/compo/ludum-dare-26/?action=preview&uid=16532.  It’s written for the web, so you should be able to play it on any platform…but maybe not browser.

I need a break now – time to take a nice midnight walk.

 

I’ll have a more detailed write-up tomorrow afternoon.

LD27

Warmup Weekend 8/17 – qShooter

Good afternoon everyone!  As always I am very excited for the upcoming Ludum Dare #27 and the new challenges and games it brings!  I haven’t been doing much development over the past few weeks.  Work has been demanding, with a large project just being deployed and putting out the fires that follow.  With that in the rear-view mirror it was time to get back to it!

I decided to participate in the Warmup Weekend to brush up on my skills and try some new things.  I’ve always wanted to set up some sort of ‘radar’ system to track enemies, as well as a particle system.  With my game, qShooter (for Quick Shooter), I was able to implement both of those things with great effect.

Play game: qShooter

qShooter screen 1

qShooter is a top-down shooter that has you combating large waves of enemy missiles that are trying to destroy your space station.  You must survive for as long as possible, until your space station is destroyed.  Missiles can be tracked with the red dots on the screen.  Enemy missiles also detonate in a massive shower of particles, something I had never done before.

Making qShooter was a fun little 2 day distraction.  I put around 8 hours of work into it, using assets from OpenGameArt, as well as a Google image search for Space Station.

I’m In!

It’s time to officially enter the rat race of Ludum Dare!

  • ImpactJS/HTML5 for the coding.  Impact is an amazing game engine, and I would recommend it to anyone.
  • Paint.Net, my hands for art.  I’m not much of an artist but I do have a bit of a ‘look’ going on with what I create and I’m getting to like it.
  • Google Docs for idea management.  An aside:  this LD will mark my first full year of game development, starting with LD 24 (Evolution).  The game I started then was rough, unplayable – no one could play it except for me on my machine, and stupid.  But it was a game!  It got me into game development in a big way.  It also started the whole ‘idea management’ thing for me.  When the theme is announced, which is always a really big deal, I get up from my desk, stretch, and maybe take a walk.  I let the idea rattle around in my skull for a while, around an hour maybe, and start fleshing out ideas.  I use a blank doc and write whatever I want.  Any idea at all.  As I do that, the good separate themselves from the bad, and the great rise to the top.  It really helps me organize my thoughts and keep a steady track.
  • Movie may be Kick-Ass 2, Paranoia, or 2 Guns.  It is a new tradition for me to see a movie on the evening of the LD start, to give me some inspiration and cool ideas.  The fist time I did this was for LD 25 (You Are the Enemy).  I saw The Hobbit, and came up with my ‘Unleashed! Son of Kracken’ game that is still my favorite game I have ever made.  I decided to keep the tradition going…but there don’t seem to be many good movies out there today.  I’ll have to figure something out.
  • My Piano is really just a cheap keyboard, but I’m going to try to make some music on it anyway.  My goal this time around is mechanical and program simplicity, so I can create the game and then focus on the art and music.  I am a very good programmer, but not a good artist or musician, so I need to work on those things.  Plus, they really bring the game together Lebowski.

Good luck to all who are in the Compo and Jam, and as always, looking forward to the theme announcement!

10 Seconds – Day 1

Good evening/early morning all!  It has been one hell of a productive day filled with coding for me, from work earlier today to the start of the new LD competition.

From the first time I saw a possible theme of 10 Seconds, I wanted it to be chosen.  I’ve had a cool idea kicking around my head for a while now, and this theme is a great way to express that.  Most of the commentary I heard online was that everyone was going to make the same games – WarioWare-style minigames – and that may be the case.  Mine is kind of like that too, but not really.  There are a 4 small minigames, but they aren’t timed.  My 10 seconds comes as a part of the story.

You are Lee, an aspiring Kung Fu student.  In the mountains rising above your village you see the Monastery of the Bronze Staff, where the greatest warriors hone their skills.  For 10 years you have trained under Master Yan, a great Kung Fu teacher in your region.  You have learned much but feel it is time to move on to the Monastery – but your Master still has more to teach you.  Your task is to perform your best combo in 10 Seconds for Master Yan, or else he will not let you train at the Monastery of the Bronze Staff.

screen 1

In the distance, the Monastery of the Bronze Staff awaits!

screen 2

Find help from the townsfolk around you. Everyone has something to teach you. Aren’t my placeholder sprites wonderful?

screen 3

Some villagers have knowledge and skills to impart. Complete their tasks and you will be rewarded!

 To accomplish your quest you must find your skills in the village below.  Seek help from the villagers!

screen 4

A simple errand – fetch an old man’s lost fishing pole.

screen 5

Test yourself against the waters. Strike the drum!

 

You will be asked to perform tasks to learn new skills.

As you can see, I have made great progress in one day’s worth of work.  I am very pleased with my efficiency and Kung-Fu Focus.  Tomorrow I implement the rest of the minigames and the beginning and end games!

Good night all!

PS: I haven’t posted the game just yet, as it is incomplete and player and villager sprites are missing!

 

10 Seconds – Day 2

Good evening everybody!  I hope it was another production day of Dare-ing!

My day has been nothing short of spectacular, truth be told.  I have actually completed my game, 100%, start to finish.  I can play the game, it is mechanically sound, the story is complete, and I even throw a bunch of plot in there too!  I added the rest of the ‘Trials” to collect your Kung Fu powers – a balance game and a dancing game.  I also added the skill tests your master gives you to let you study at the Monastery.  Here are some screen shots.

screen 6

The story of the game. If this doesn’t get you interested to play this, then nothing will!

screen 7

Find your way up the Cliff to consult with your Kung Fu Master.

screen 8

The big test is here! Show your master what you’ve learned!

screen 9

The Balance mini-game. Don’t get wet!-

screen 10

Learn new Kung Fu moves to show your master!

screen 11

The Dancing mini-game. Doesn’t look like much, but that’s what tomorrow is for!

screen 12

The End screen.

I have had a hell of a good time coding this game.  ImpactJS is an amazing game engine.  I was able to get my ideas onto the screen quickly and efficiently, and then tweak them as I needed easily.  Impact is quite the cool game engine.

Tomorrow, Sunday, is art and assets day.  I’m going to finish the character animations, add backgrounds for the minigames and levels.  If time stays on my side, as it has so far, music is after that.

But I really need a break.  My brain is pretty fried, and my ass hurts from this chair.  There’s a case of beer in the fridge with my name on it.  Time to relax.  I am really looking forward to playing everyone’s games!

LD28

It Belongs In a Museum! DONE

And that’s a wrap!  I am very pleased with how this turned out- but I am burned out.  Its been a long and fun weekend, but now I need some rest…and maybe some beers.

Here’s the game: http://srjurnack.net/museum/

Here’s a screenshot:

The first screenshot from 'It Belongs In a Museum!'

The first screenshot from ‘It Belongs In a Museum!’

 

 

 

 

 

 

 

Now rest I will.

It Belongs In A Museum – Post-Mortem and Look Ahead

IT BELONGS IN A MUSEUM – Write-up

Screenshot

A screenshot of gameplay. I knew it would be a good idea to use the names from Key and Peele’s East/West Bowl sketch.

For this LD 48-hour competition, with a theme of ‘You Only Get One,’ I have submitted ‘It Belongs’ in a Museum, a platforming game where you dig into the ground to find treasures.  You can only take one of these treasures home with you, so you have to choose carefully which treasure you keep.  You can read more about the game on its Competition Entry Page, so here I will dive into the development process, content creation, and how I finished this game off.

1. Development

I developed this game for the HTML5 canvas using the ImpactJS engine.  I have been using the ImpactJS engine for a year now – if you look back to LD24, I developed another game using ImpactJS, and every one since then.  I am extremely happy with the engine – it allows me to get something working quickly so I can focus on content and mechanics instead of worrying about low-level game mechanics like collision detection and animation.

Dev Screenshot - Notepad ++

Developing configuration-driven ImpactJS code is easy to understand and implement.

With the low-level stuff taken care of, I was able to implement a simply ‘mining’ system in my game, where you can dig out blocks of material to find the treasures contained inside.  Instead of creating a new Entity for each block, I opted for a totally configuration-driven approach.  When I created a block, I gave it an object containing its details, and the Entity rendered and behaved depending on that configuration.  No more need for an EntityGravel, EntityStone, EntityObsidian – only EntityBlock with carrying configurations.

I took the same approach with enemies.  There are 4 types of enemies, and each one has slightly different behavior and animations.  That still wasn’t a problem, and I used the same configuration-driven approach as the Blocks.  I implemented different branches of logic for each hostile enemy, and was able to implement different animations based on the configuration as well.

HTML5 development, regardless of engine, is my preferred way of game development today.  It is much easier to understand and set up than a more traditional development environment, like Java.  I have XAMPP set up, so creating a new game is as easy as copying a folder, and opening a web browser.

2. Content Creation – Graphics

Art is hard – look back at the other games I’ve created and you’ll see that the artwork is lacking, to put it mildly.  For this game I was determined to simplify the art, using simple square shapes and finding help where I could.  I made a small breakthrough Sunday morning around 4am, when I decided to test out the Effects menu in Paint.Net, and found the utility of the Noise feature.  Holy shit, it opened every single door to me.  All of the blocks and the BGs are done in largely solid colors with large shapes, but applying the Noise effect adds randomness.  Dirt looks like dirt, sand like sand, and so on.  It also helped with the large BG images, creating variance in the skies, and making some nice starry night backgrounds.  I also took advantage of the Gaussian Blur effect to blur the background, making it easier for players to distinguish foreground from background.  The effect makes the game look more professional, and more playable.

Dev Screenshot - Graphics

Character animation is easier when you use large shapes, scale up to cover up mistakes, and copy-paste where you can.

For the player sprite, simple squares were used everywhere.  Squares were used for the shoulders, head, legs, and arms.  For animation, I copied and pasted where I could, to produce the animation quicker and look better than what I usually produce.  You’d be amazed at how good a square with rounded edges works in any situation.

3. Content Creation – Music

Music is also hard, but there are tools to make it even easier.  I generated the music using autotracker.py ( see THIS entry from my LD blog on how to set up autotracker – worth it!).  The music that gets generated is nice, often catchy, and is a ’16-bit’ type of sound that I really enjoy.  ImpactJS has easy-to-use music and sound features, so I only needed to load a music object and call a .play() method.  Simple.  Sound effects were generated using BFXR, another tool with a ’16-bit’ sound.

Originally I wanted to play my own music, and have been practicing for a few days, but there just isn’t enough time.  I had some melodies and tunes, as well as creative sound effects, but that was a no-go.  Not only is there not enough time, but my recording equipment is garbage.  All I have is the mic on my laptop, and recording any sounds – with my piano or voice, anything recorded wasn’t worth it.  It would also have been very difficult to process those recordings even if they turned out good.

The audio work exposes one of the biggest problems with HTML5 – audio support.  On a personal note, I have no freaking clue why some browsers support OGG, some support MP3, some support other formats – but not support all.  It’s a bit of a crap-shoot as to which audio works – luckily ImpactJS has tools for that.  Loading an audio file uses a path to the file – ‘media/sounds/hit1.ogg’, but you can use ‘media/sounds/hit1.*’ to tell impact to use whichever audio version works for your browser.  Another way ImpactJS makes development easy.

Dev Screenshot - Making Sweet Music

Using Audacity to chop your sounds up makes it easy to find the effects and music you want.

Once I had raw audio files for effects and music, I used Audacity to process and convert the audio.  I cut some of the BFXR effects to simulate a snake and bug sound and messed with volume levels here and there.  Simple.  Converting is a clicky-clicky pain in the ass, but it is an easy process.

4. Putting It All Together

I have learned a lot about game development in my year and a half of LD Competitions.  You can look back to my original game (though you probably shouldn’t) and see a near-total lack of understand as to the most basic elements – FPS, collision detection, input – but I look at what I do now and I feel quite proud.  I have come a long way as a programmer and game developer – my only wish is that I knew what I know now 10 years ago when I started college.  It may have only taken 4 years instead of 6!

There is still a very long way to go, though.  These weekends are hellacious on my body and sleep schedule, and I often get single digits of sleep over two nights.  Come Sunday and Monday I am a husk of a man, barely able to watch my beloved Carolina Panthers on Sunday.  This time management is an area I have been working on, and continue to work on.  This time, I did much more initial documentation, leaving little to none of my game up to chance or ‘Play it by ear’-ness.  Start to finish, I had the game idea, flow, and mechanics documented.  I even had most of the text worked out ahead of time.  When development started it was code code code – no wasting time on wondering what to do next.

Like you dad used to say, let the tool do the work!  Use resources like BFXR and autotracker.py to generate content for your game.  They generate great effects extremely quickly, leaving you to concentrate on more necessary tasks.  Experiment with those tools as well – discovering the Noise and Gaussian Blur saved me a hell of a lot of time and made my end product look so much better.  Use these tools, poke around with them, and find out what they can do!

5.That’s A Wrap!

So brings to end another LD competition.  I have no complaints this time around – sometimes I bitch about the theme or my time management, but not today.  I was able to produce a full product – a Video Game with a start and an ending – kind of, but that’s intended.  I encourage you to play IT BELINGS IN A MUSEUM, leave your feedback, and help me become a better game developer.  Play the game here!

Maybe someday instead of feedback, you’ll leave your money!

screenshot2screenshot3screenshot4

 

 

 

 

LD29

Bathysphere – A Quick Post-Mortem

bathyShot1What a weekend this was, and not in a totally good way. Hopefully it was just one of ‘those’ weekends, where Iwas sluggish, out of ideas, and wrong-headed to participate in the compo, as I usually do. MY ideas were trash, my coding and art more so, and so it was with a heavy heart that, on Saturday, I hung it up and said ‘This isn’t happening, I’m done.’ I marathoned the rest of the first season of 24, drank a bunch, and took my mind off everything.

Was I done with game development? It just didn’t seem to hold the same shine it did – and I was becoming painfully aware of my shortcomings as an artist and coder. It was pretty depressing. I had a decent rest of the weekend – played some soccer and had fun. But these LD weekends have always been something special, yet this one wasn’t…bathyShot2

So at work today I’m thinking about it all and I finally just do what I’ve always wanted to do – make something in a few hours. So I did. My game, Bathysphere, took 4 hours to complete from start to finish – all assets, ideas, coding, everything. This is what I love to do – rapid design, coding, thinking on the fly, and above all else simplicity in mechanics and execution. Bathysphere isn’t anything complex, time-consuming, or hard. You sink to the bottom of the ocean and rise again – along the way, you can collect fish and treasures. My head always seems to be in the clouds, so an idea grounded firmly in the possible was refreshing. More refreshing was finding out that my coding skills are very good, and simplicity in art is a great gift.

So play some Bathysphere and let me know if you enjoy it. It is simple and done – and that is very good.

Here are some technical notes, if you want them: I used the ImpactJS game engine for development, Paint.NET for graphics, BFXR for the sound effects, and Audacity to cut and convert the audio. All of the sprites are at most 20×20, except for the UI elements. I used three colors – white, black, and gold.bathyShot3

LD30

GAMUT – Hidden Color Worlds – Finished

Jump right into it – http://www.ludumdare.com/compo/ludum-dare-30/?action=preview&uid=16532

gamutSS2GAMUT Title Screen

Another LD is in the bag – and this one has been the best one for me yet.  I am extremely satisfied with the game, but that’s not the important part here.

I managed my time very well, got plenty of sleep, and even managed to do some real-world shit during this.  In  LDs past I would burn out and crash.

I documented and planned, and stuck with it.  In LDs past I would depart from a design and mire myself down in details.  I stuck to my plan and finished it.

I persisted despite doubts.  In LDs past I have thrown good ideas away because of poor morale.  I kept at my ideas and am very pleased with the result.

A post-mortem is coming soon, outlining my development process, roadblocks, and thoughts on my game and process.

gamutSS1GAMUT Gameplay Screen

Play it here – http://www.ludumdare.com/compo/ludum-dare-30/?action=preview&uid=16532

LD33

Monster Machine – The Dawn of Your Terror

Day one is in the bag!  I’ve put five good hours of work into this, and sleep is very important.

But first, an update!

screen1

A nearly empty game map

A busier game map.

A busier game map.

My game is called Monster Machine!, an incremental game in the style of Reactor Incremental, a favorite game of mine.  In Monster Machine you

place Monster generators to create monsters, Nightmare Portals to send monsters out to scare the kids, and Mad Scientist Labs to generate science goo for upgrades.  Get as many monsters, tears of sadness, and science goo as you can!

I made incredible progress for my first day, a fantastic sign considering my recent failures in Ludum Dare.  I am coding this game for your browser, using the HTML5 canvas, so anyone (almost) can play it!  Running the show is ImpactJS, a game engine I bought for $99 almost 5 years ago now…wow.  That may have been one of the best purchases of my life.  Its been an incredible help, making game development easy to code, and fast to prototype.

 

 

I’ve really upped my graphics game too, making use of Photoshop – that I actually legally bought!  That’s how you know you’ve grown up – when its

This is totally legal and legit.  I've come a long way mom!

This is totally legal and legit. I’ve come a long way mom!

easier to just buy a license than deal with the keygens and installers for cracked software.  Going with Photoshop is a new Wacom drawing tablet that’s really made the graphics a breeze – relative to my skill.  I’m no artists, but this has really made my more comfortable in creating assets, and made the whole process faster.  That way I can code sooner!  This extra time has been spent adding more variations into the game – each structure has three variations that are randomly placed, so your map isn’t uniform and boring.  Each one is also animated!

I currently have monsters and tears generating, and their structures able to be placed on the board.  Getting science labs next follows the same pattern, so getting them there is easy!  Once I am able to place all structures its time to tackle the upgrade system.  That will be an interesting process, and will probably take up the majority of my Saturday.  Then its on to music and sounds, but that’s the home stretch.

The assets - and their variations.

The assets – and their variations.

Good luck to everyone involved – looking forward to your progress.