themindstream

LD24

Insert Creative Title for First Time Post Here

I’m In.

This will be my first LD. I’ve done the Global Game Jam three times before with varying levels of success…as an artist. This will be my first time doing a game jam solo and the first time as a programmer.

Given that limitation, I think I’ll be happy just to finish something playable.

I’ve been interested in game design as “something I want to do with my life” since around 2005, but it took me until last year to come around to the realization that if I want to get serious about it, I had to make what was then a big scary jump. I’d attempted to grasp programming a couple times before without any real progress. What helped me get over that block eventually were some supportive friends and a particularly good book.

By day, I currently work as a sysadmin for a small software company; I’m not here to plug what they do but I will say that the guys running it are very good at what they do and I’m glad to have them as teachers and mentors. Sometime last year, several copies of The Land of Lisp were delivered to the office, and knowing I was on the fence, my boss made a proposal to me: they’d up my schedule to full time on the condition that I spent some of the extra time working through that book.

Now, granted, LISP is not a particularly popular language these days (though we use it heavily internally). But even if you never expect to use LISP in a real world setting, The Land of Lisp is a pretty awesome teaching tool. If you find other programming books boring (which I’ve seen to some degree with nearly every book since), this book is anything but. If you want to write games, you will be thrown into (text based) games right from Chapter 2.  If you’re scared of programming, its light tone and actual humor got me much less scared about it. (And being paid to learn didn’t hurt. Did I mention my bosses were cool?)

Anyway, I’ve been taking college courses, and since then have committed to a programming heavy “Game Technology” curriculum. Learning one language, any language, makes the next one easier. Learning three languages means you have a good chance of looking at an unfamiliar language and have a good chance of being able to make something work in it.  So far I have “properly” learned ActionScript and Java, I am currently giving myself a crash course in Python/pygame for a class next semester that will be using Panda3d, and I’ve had to dabble in PHP and Javascript for work-related stuff. I am not especiallygood in any language yet, but that’s what practice (and doing LD!) is for.

Onto the obligatory tools list:

Language: Either ActionScript or Python + Pygame…I haven’t decided yet, but the Python will be more fresh. If I use ActionScript, it might be with an assist from Stencyl (I’ve used Gamemaker for a class, but Stencyl looks nicer for supporting real ActionScript alone).

Editor: FlashDevelop/Stencyl if ActionScript. I’m still trying out editor options for Python, currently Geany. (I’m open to recommendations in comments; it needs to be cross platform for at least Windows and Linux, and Ubuntu package support is a plus.)

Graphics: Photoshop/Illustrator/Flash CS5 and related Adobe suite products.  Sorry open source fans…I’ll recommend things like The GIMP and Paint.net (NOT Inkscape; its not at all stable in Windows and sucks at tablet support) to people starting out or with light-duty needs, but once trained on Photoshop and its power tools and having used them in a professional capacity, I’m never going back. And yes, I paid for my software (though student discounts helped this upgrade cycle). Also, a Wacom Bamboo tablet (because I don’t have infinite money to shell out for the Intuos or Cintiq).

Sound: Audacity.

Caffeine: Tea. I’m not British, but I agree with them that tea is a solution for everything.

Sound on a shoestring schedule

So I realize that simply listing “Audacity” in my tools post in the sound section is likely both naive and overly optimistic.

I don’t want to spend a ton of time on my sound because I’ll probably need as much time as possible for programming, but I don’t want to ignore it either, and I want to get at least antiquated with a workflow before going in. I have some musical background and a knowledge of how to edit wav clips together smoothly but no real idea of how actual sound production works. I’ve never played with sequencing loops or anything like that. I used to play with MIDI software a long long time ago but I’m not a composer…my brother’s the one who went down that path and I doubt I’ll be able to enlist his help (big important life stuff in progress).

I have a few “analog” tools available: A decent singing voice (soprano), an alto and soprano recorder that I can play a couple complete songs on, enough miscellaneous junk that I could improvise some homemade Foley effects. (Note to self: the good microphone is on the fritz, find a backup before LD starts.)

I have bfxr bookmarked, but I’m not sure I would care to use it for things that aren’t UI bleeps and bloops.

I could use recommendations for a good set of general purpose drum beats/loops/samples, and other such libraries that would be competition legal (although I’ll probably end up needing the extra time of the jam). I know there are lots of options but there are lots of options and having people vouch for any of them would  help.

Sound that is overly “8-bit” would probably not be a good fit, because my graphics will not be; I don’t do pixel art, I am not any good at doing pixel art, and in the same amount of time and resolution I can make nicer-looking (to me) smooth line art. Also, my appreciation of game soundtracks tends to start around the 16-bit era where decent instrument synth started coming into play.

So, any advice, comments and such, please chime in!

Pre-Dare Infodump!

Let’s get this checklist done before the site inevitably goes down/catches on fire in an hour and a half.

Photostream? http://www.themindstream.net/ldtimelapse/ (auto-reloads, will show placeholder until Chronolapse’s scheduler kicks in.)  Check!

Github? https://github.com/jlbrewer/LudumDare24 (Will host both source and executables.)  Check!

Twitter: @themindstream – Check!

#LudumDare – themindstream also.  Check!

Apply Windows updates and get any distractions/nags like Steam out of the way? Check!

Fridge well stocked and tea supply full? Check!

Assurance from bosses that I don’t need to be pulled away for anything short of a fire on the server rack? Check!

Confidence in coding ability? (cross fingers behind back). Check!

Time to play the waiting game.

When code blows you a raspberry, make Jam

Game Screenshot

They don’t move at the moment, but the program sees the input…

So things started out well for me. I came up with a decent idea out of the gate: You play as a group of neanderthals, the Stone Age evolutionary also-ran competitor to Homo sapiens. Using Civilization-style turn, movement and combat mechanics, you’re given an increasingly hostile environment you will inevitably succumb to the forces of natural selection against the better-equiped Homo sapiens, so the goal is simply to survive as long as possible. Play continues either until you run out of food and starve (prey animals like mammoths wander the map) or are killed off. I knew I don’t have enough coding experience to be able to pull off some of the fancy mechanics other people are doing, so contained within one map, this seemed doable.

Well coding experience still bit me in the ass.  Here’s how things have gone down so far:

6 pm: LD Starts.

8 pm: Decide that I have a good enough sense of the mechanics that I can at least start writing code, so fire up the python editor and lay out the basic Pygame framework, some sprite classes. Look on the web for advice on making tile-based maps which I haven’t done in my practice.

9 pm: I’ve thrown together some stick-figure placeholder graphics and decided to go with random map generation that I can fine-tune later.  Hello 2d arrays, my old nemesis.

12:30 pm: Victory! My map generator is working, and can translate grid coordinates into tile placement coordinates. I’ve earned myself some sleep.

4 am: FFFFFFFFFF- This sleep thing isn’t working out well tonight. Pull down some podcasts to in an attempt distract my brain from the fact I can’t sleep.

6 am: Damnit, this isn’t working. Make a pot of oatmeal for early breakfast.

6:3o am: Eating the oatmeal had made me sleepy enough to fall over and actualy sleep somewhat

8 am: Wake up about when I had planed to. Make a pot of tea and open Photoshop to work on proper tile art until the left side of my brain wakes up enough to deal with code.

10 am: Ok, let’s try to get these neanderthal sprites working with turn-based movement.

2 pm: It seems I don’t really know how to deal with state management very well. My loops are spinning without regard for whose turn it is and aren’t receiving input consistently. I’m geting to the point where I’m starting at the screen for long periods of time without work.

5:30 pm: Wake up from a nap. My code is glaring at me defiantly.

7:30 pm: Talking through the current tangled mess that is my code with my boss suggests that my way forward is going to involve a lot of refactoring. Here we go…

11:30 pm: After a slow and tedious refactoring process I realize that one of my big assumptions about how Pygame, looping, event.wait() and the Clock() works was wrong, and suddenly my event handler is behaving, even if the refactored movement code doesn’t yet. By this point the lack of sleep has me pretty braindead and I know from previous game jams that not having my base code working by several hours ago doesn’t bode will for me finishing anything playable for the competition.

So in exchange for settling on going for the Jam deadline, I got a proper amount of sleep last night, for I knew without it I would only make myself miserable and even less competent. And being miserable defeats much of the purpose of doing LD in the first place.

With a clear head now, once more into the breach!

LD25

My Evil Plan.txt

Ok, so it wasn’t The End of The World As We Know It…

This was a bit hard for me to brainstorm on because I’ve done the villain/antagonist perspective on two projects already. And I got a bit of a late start because I had to finish some schoolwork before diving in. But after both paper brainstorming and bouncing ideas off some unaffiliated comrades, here’s what I’ve come up with:

You are a very Bond-esque Evil Overlord with a prized white cat. Said cat has a bad habit of getting loose in the villain’s evil fortress. Said fortress was designed by architects from the Galaxy Quest school of overly elaborate deathtraps.

That’s ok. This is just the sort of thing you have minions for. Sturdy but dumb robots that don’t mind being ordered on tasks that would result in their own destruction, and human henchmen who are much more squishy but somewhat less suicidal and able to disarm things that need fleshy braincells. Which is not to say that you can’t order them to their deaths. It seems to be all part of the fun for the cat.

Will probably add Tiled to my tools list. Learning how to integrate that on the fly will be Fun!

For now, sleep. I want a sanity check with my partner in the morning before committing any assets, but I’ve set up the git repo and stuff.