Archive for the ‘MiniLD #39’ Category
Pacmob is now available on iOS
Tuesday, February 12th, 2013 5:38 amThe running game I made for the mini LD 39 is now out on iOS (for free), after long week of “in review”, and because Apple don’t like that my graphics looks like pacman ^^”
So, the web and android version looks like that :
and the iOS version is like that :
Have fun!
A Stick in the Mud MiniLD#39 Post Mortem
What Went Right
1. Haxe/NME with HaxePunk
I really enjoyed Haxe as a programming language. It’s got some gotchas (like iterators are automatically created variables that only exist in loop scope and loop ranges are exclusive not inclusive) but overall it was a charm to work with. I’m also glad I got to use NME. This meant I could target mac, pc, mobile devices, and swf all from the same source. There were a few cross-platform few issues, but not as many as I expected.
HaxePunk is a game library built on top of Haxe/NME (based on FlashPunk) and that worked out pretty well. I bumped heads with the API a few times, but ultimately it was a time saver. Without it, I would have spent too much time working on my own game tools instead of working on my game.
2. Using Texture Packer and Tiled Map Editor
Texture Packer (TP) is a great tool for assembling all your graphics in one place. Tiled Map Editor (TME) is a decent (and free) tool for drawing level maps. TME needs a “packed” image to work properly. That’s the image below on the left. Although TME needs packed images, it doesn’t read the associated XML files that TP produces. So when you add new images to the folder TP is monitoring, TP annoyingly moves images around to make room. So the images get shuffled around and then TME’s map gets all messed up, carpet showing where grass should be, walls turning into desks, etc. The solution I used was to number my images (04_carpet.png) and tell TP to sort by name and use a short fixed output width. It was still a pain to remove images using this process, so I just didn’t. Bear witness to the first two tiles in the first image below, which were placeholder graphics.
I also separated sprites going straight into the game without TME. To better work with HaxePunk spritemaps, I make several spritesheets based on the image size. Mostly I worked with 64 x 64. But I also found it easier to deal with larger sprites as whole images, rather than breaking them down into 64 pixel tiles. This isn’t optimal, but it worked. Hopefully by time for my next game Spritemap will be updated to work with texture packer images rather than fixed tile grids. If it isn’t, I’ll make my own class. Below from left to right are the TME map tiles, 64×64 sprites, and 256×256 sprites.
3. Dynamic object creation
This worked out really well. I used Matt Tuttle’s Tiled Map Editor code (not currently part of HaxePunk) to read the TME file and create a scrollable map. This code and TME both also support the ability to add generic “objects” to the map. Generic objects can be given a name, type, and (most awesomely) properties. Here I’ve got a worker, an effect, and a zone. The zone is used to detect when you’re close enough to interact with the worker (and therefore the spacebar is active). The quest effect (smoke) is searched for when you complete the quest. The worker uses facing to determine which direction to face, has all of his speaking lines in one place, including the line he uses when you complete the quest. Color is an old prototype property I never bothered removing.
In my main game world, after loading the TMX map (that’s the extension for a TME file), I process all the objects I can find on the “items” layer.
var group = map.map.objectGroups.get("items"); for(i in group.objects) { var clazzName = ENTITY_PREFIX + i.type; var clazz = Type.resolveClass(clazzName); if(clazz != null) { var obj = Type.createInstance(clazz, [i, i.custom]); add(obj);if(Std.is(obj, Zone)) { var zone:Zone = cast(obj, Zone); zone.playerSignal.bind(playerSignal); } } else trace("Unknown object class found: " + i.type + " with name:" + i.name); }
So when it finds “Worker” in the Type field, it creates a Worker game entity dynamically, and passes it the properties I defined on the object. It uses those properties to bootstrap itself. This was very cool and has a lot of potential. Also I started messing with the HSL signaling library for cross communication. In this case, I’m binding the playerSignal() method to each zone, so the game world can know a zone is entered or exited, and can display the “press space to inspire!” message.
I started putting together a cascading notification system, where an object can receive a message (the only message I care about is “the quest just completed”) and can also pass on that message to other objects. In response to a message, the object can show, hide, or remove itself. So for example in the stolen lunch quest, two workers are arguing over stolen lunch. When the riddle is solved, the main worker is notified. The main worker has a property “notifies” that contains “arguingCoworker,lunchBags”. In response to being notified, the worker notifies the other worker (who speaks his “success” line), and notifies the lunch bags (which specifies “show” for its “onNotify” property, so the lunch bags suddenly appear). I’ll be doing more stuff in this direction.
What Went Wrong
To some extent, these “wrongs” were also successes. But I suppose that’s just because failure is just an opportunity for improvement.
1. Tried to move to HaxePunk 2.x.
Mid project HaxePunk 2.x was released and I tried applying it. Everything broke instantly. For the most part I did a good job of suppressing my natural tendencies to fixate on a problem, but I wasted a couple of days trying to get 2.x working properly before I came to my senses and rolled back to 1.72a. That’s just time you don’t have to spare during a jam, even a two week jam, not if you’ve picked a project plan with no slack in it. It’s a hard lesson to learn, especially for an aging dog like me, but I have to pick my battles. It’s my Achille’s heel. This was such a unwinnable battle that, in fact, a week or so later 2.x still doesn’t work with my post-compo build. The good news though is HaxePunk 2.x is adding support for hardware accelerated blitting, so it’ll be worth the growing pains.
2. Started late, dreamed big.
I started a few days late, missing out on the initial weekend. And of course I picked new tools and game styles I’d never done before: Tiled Map Editor, Texture Packer, HaxePunk-Tiled (that’s the TMX reader), and orthogonal 2.5 perspective. This is all great learning stuff but it made it really tough to make the deadline and things had to get dropped out. I also put together 10 puzzles, plus a bonus puzzle and an easter egg. If you haven’t played the game (feel free, it’s here), it’s about an alien who is fascinated with a piece of old poetry, and uses that poetry to inspire his coworkers. The way that works is you go up to a coworker, hit spacebar, pick a stanza from the poem, and then see if that dramatically solved the worker’s problem. I came up with the puzzles first, and then worked backwards to make the poem. That was a challenge, and probably not the best way to approach it.
It was a race to the deadline, which shifted on me. I thought it was 10PM GMT-5 on Friday and they extended it to Sunday. So I busted my backside to get as much as I could in there literally down to the last moment, and then I noticed the submission was still editable. In retrospect, this probably helped me, because I was able to slow down over the next two days and address some glaring issues that I couldn’t get in by what I thought was the deadline.
Still, there wasn’t enough time to do everything. I wanted to add an end game cinematic, where after stealing from the guy who was stuck in the elevator you have a change of heart and learn from Hrothmok’s mistake. A FIRE-O-METER got dropped; this would have filled every moment you weren’t at a desk (tap tap tap!). The meter would fill rapidly if you gave a wrong quote and the boss would try to find you if the meter went red. The plants were originally a place you could hide from the boss. Now they’re just silly. Using aliens instead of humans was a time constraint compromise. Human animation was harder. I started messing with Spriter and would have loved to get some neat animation in there but there was just no time. And finally I needed a lot more art. The place was barren.
3. Three votes
For those who gave me feedback, thank you so much! I was very happy to receive it. I was unhappy with the lack of voting from the members. There were only 12 submissions. I voted for 8 of the 11 other folks, holding back from two who had voted for no games and one who had voted for one but also received some votes. I knew that Mini LDs had less participation than the regular compo, but I expected more than 3 folks to rate my game. The lack of feedback is disappointing given the amount of work I put into it. How do you get better if you don’t get critiqued? I kept checking to see if someone else would rate my game. I didn’t know when the voting was going to end, I couldn’t find that information anywhere. They also didn’t announce the rankings (here) although maybe I’m being impatient. I made it to the top two, if you consider 3 votes statistically significant.
At this point I’m a tiny bit soured on Mini LDs. I’d rather come in last place and get lots of great feedback.
I do see that other Mini LDs have gotten more participation. I guess I was surprised to see the ratio between compos and minis to be so extreme (1327 vs 12). But it was a good experience overall and I’m looking forward to entering the LD#26 jam in April. I hope that the lesson “pick your battles” sticks because I’m going to need it to stay focused for 48 hours.
If anyone is curious, Hrothmok – the protagonist of the poem – is a portmanteau of Hrothgar (of Beowulf fame) and Darmok (from the ST:TNG episode).
TimeZone: RPG about procrastination…
I had meant to submit this for the latest MiniLD, but couldn’t quite make the (generous) deadline. However, I’m very pleased with how it turned out, so I thought I’d share anyway. In particular, the 3d modelling went well but was time consuming. The code went smoothly, although I need to figure out a better system for triggering plot events…On the downside, I didn’t get to any character modelling, so I just used a standard rig for every character, which is less than ideal. Although there is music and sound, it was done in less than 3h, so it doesn’t really fit.
Here’s a bit of the concept. I got bit carried away with the writing (: So much fun:
The discovery of Procrastination, as it came to be known, was, like many great discoveries, almost instantly abused. At first, governments and corporations fought to control the Timezones in the hopes of untold financial gain, then, inevitably, for untold power. However, the effective creation and control of a Timezone is a complex and consuming task, and only those with the most sophisticated technology had any hope of emerging victorious from the ensuing turmoil. In the end, one group, as terrifyingly ruthless as they were intelligent, managed to gain complete control over all Timezone activity. They continue to hold that position today – they are the Disciples of a Strict Chronology.
Looking forward to April
Just got done with GGJ / Game a Month for January. Check out our result here:
http://peculiar-motion.com/?p=127
Cannot wait for the next big jam.
A Stick in the Mud – MiniLD #39 submission
I’m pleased to have finished a game for mini ludum dare #39:
http://www.ludumdare.com/compo/minild-39/?action=preview&uid=17811

The theme was hindsight. I’m surprised more people don’t do the miniLDs. Two weeks is a luxurious deadline in comparison to the 2-day compo. I didn’t complete the compo last time so I think the mini was a good step for me.
Zombie Forever Postmortem
My postmortem for my Mini-Ludum Dare #39 entry Zombie Forever has been posted. The link is http://blazinggames.blogspot.ca/2013/01/mini-ludum-dare-39-postmortem.html . Quick summary for those too lazy to read it:
What went right:
- Going with a Jam challenge instead of going solo
- Zombie feel
What went wrong
-over-ambitious tendencies strike back
-AI resulting in humans killing each other and turning into zombies.
Game will be submitted tonight
Thursday, January 24th, 2013 3:27 pmOver the course of the past 2 weeks I have worked on a game for minld39. The game is not a finished game but I am in 1gam so I’ll continue to work on it. It’s called Light Years Ahead, I think. (Not at my computer right now + the name might change) It’s nothing to brag about, just a side to side space shooter like Galaga. What I’m most happy about is that I have conquered the art of infinite objects and I can carry this skill to different games in the future.
Game submission tonight;I’m pumped.
Mini LD #39 Entry – Pacmob
Thursday, January 24th, 2013 10:51 amHere is my entry for the mini LD 39 :
http://www.ludumdare.com/compo/minild-39/?action=preview&uid=10471
Click to know the hindsight
Actors with multiple Textures
Hi all!
This is a shameless re-post of my Stack Exchange Game Development question of the same name.
In my 2D side-scroller game I have a bunch of actors being drawn, each of which has a single, non-animated Texture (a png image). These actors all inherit from a base GameActor class.
I want to add some more NPC’s (e.g. tanks or cannons) that have one texture that doesn’t move (the base) and another that rotates to shoot at things (the gun / barrel). How should I structure my Actor class hierarchy so as to allow for this? Should I refactor my base Actor class to allow for N textures? Or should I create a brand new sort of Actor for things that need > 1 texture (and then have to manage these actors separately from ‘regular’ actors)? Or is there a better approach I can’t see?
Thus far I’ve been opting to keep things as simple as possible (KISS, right?), but am not sure how to proceed.
Any pointers greatly appreciated.
You are the Asteroid! Post-Mortem
Short and sweet and located on my blog.
http://rainbladestudios.blogspot.com/2013/01/post-mortem-ludum-dare-25.html
You all rock, by the way. Keep it up. I love the community here.
The Launch – Post Compo version on Kongregate
We have finalised a post-compo version of The Launch, fixing a few bugs and reducing the resolution to a more laptop friendly 1280×720.
The How to Play guide has also been improved.
Aside from that, the game is mostly unchanged but it should be alot more accessible now as its possible to read the instructions.
Please play and rate it here:
http://www.kongregate.com/games/tupperwarespoon/the-launch
October LD Redemption
Since my October Ludum Dare disappointment of not completing the challenge it’s been hard to even consider writing one line of code. However I really wanted to stay at it but my motivation for game creation was at it’s lowest point…
So over Christmas break I got a chance to play some AAA games, which I’d have to say were a bit disappointing. But also got to dig around the indie community and play their games which was inspiring!!
And that really motivated me get pick myself up and get back to the joy of creating games. Then I heard about OneGameAMonth and read McFunkypants blog about his 12 games in 12 months and I was sold… I’m back into it!
Fast forward to now and I’m happy to announce a playable wave mode of Zombie Tales called Zombie Days (I thought I’d really mix it with the title!) it not as in-depth as Zombie Tales is going to be but I used all the tech I developed Zombie Tales to build this random generated zombie shooter.
Anyways I feel like I have redeemed my past failings by at least getting something playable with the same feel.
Click the image to go to the Unity webplayer. It takes a little time to load the first time… ENJOY!!
My first animated pixel art!
Humans were always fascinated by fire!. I made this now in a bit less than 3 hours and I’m proud of myself! This is my first animated pixel (actually second, my first was a shitty running person).
Graphicsgale is a great program for this kind of work and I found out it works fine in Ubuntu using Wine (something I had often problems with). The free version doesn’t export to gif, but you can export a series of images and convert them from command line with imagemagick (example here: http://ubuntuforums.org/showthread.php?t=1034104) .
Would this be the end of Game Jams in America (HR 287)?
http://thehill.com/images/stories/blogs/flooraction/jan2013/hr287.pdf
6 SEC. 2. RATING LABEL REQUIREMENT FOR VIDEO GAMES.
7 (a) CONDUCT PROHIBITED.—It shall be unlawful for
8 any person to ship or otherwise distribute in interstate
9 commerce, or to sell or rent, a video game that does not
10 contain a rating label, in a clear and conspicuous location
on the outside packaging of the video game, containing
2 an age-based content rating determined by the Entertain-
3 ment Software Ratings Board.
MiniLD 39 Entry
My entry for MiniLD 39 has been posted http://www.ludumdare.com/compo/minild-39/?action=preview&uid=15656 The hindsight for this entry was what would I have done had a school shooting right before LD#25 had not happened and I went with my original idea for that theme instead of a non-violent game.
Bad Hotel in IGF
Friday, January 18th, 2013 2:27 pmHey, I guess I should have written this update a few weeks ago… Bad hotel, a game that I made back in LD20 and then remade for iOS in a more finished version with my company has been nominated for a IGF award in the audio category. Super exciting, off to GDC!

Animated pixel art?
Hello. I have seen beautiful pixel art in the games here. I have been doing pixel art myself for some time, but it was always static. Now I think I should learn animation. I usually used Gimp to create graphics, but Gimp has close to no support for animations. So… what program do you use to create animated pixel art?
Layers, filters, or anything fancy isn’t necessary. All I need is a pencil tool, preferably a color selector, and a dynamic preview to see the animation. It seems like not much, but I don’t know any program like that. Also, I would kind of like it to be free~~~
Thanks in advance.
My Mini-LD Game – Mini Ninja
My Mini-LD game is one that I started but never finished.
It was a one-button game titled “Foxy Ninja”, which I’m renaming to “Mini Ninja”.
In it, you play as a ninja who has to perform various tasks to infiltrate a castle and kill the samurai that killed your master.
The game will feature the following player actions:
- Walking and jumping
- Walking and sprinting
- Walking and stopping
- Charged-up jumping
- Throwing shurikens (ninja throwing stars)
- A final boss fight
It will feature the following obstacles:
- Holes in the floor
- Spike floors
- Retracting blade traps
- Laser traps
- TNT boxes
- Enemy ninjas
- Final boss
I will post more about this as I go and will be uploading it as a demo (and eventually a finished game) on Flash Game License as I progress.
Punks, Jams and Ira Glass
Last time I entered LD #25 giving MOAI a spin and being generally out of practice with game development. I was not able to complete my (surprisingly complicated) game idea in the time provided. I chose MOAI because I’d been exploring different game platforms and that was my first stop. Since then I’ve been looking at Haxe + NME + HaxePunk. For those who wonder:
Haxe is a programming language based on Actionscript. The compiler is multiplatform and can target C++, SWF, Neko VM, PHP, Javascript and to some extent C# and Java. This means you can use the same source code to compile multiple targets and produce native (read: fast) executables. NME simplifies this build process a good deal and adds project files, asset management, and a graphical API among other things. HaxePunk is a port of FlashPunk to work with NME. It’s a game library, providing a particle emitter, sprite maps, entity management, collision detection, and animation. An alternative to HaxePunk is Flixel, or you could roll your own game library on top of Haxe/NME.
One thing I like over MOAI is the greater variety of targets. I can compile and run my game in the Neko VM using nme test myproject.nmml neko, which builds pretty fast and launches the game. Then change neko to flash to build a SWF instead. Then change it mac or windows and it begins churning out C++ and creating a native build. Or change it to ios, android, html5, linux, etc. That’s pretty nice. Caveats include you can’t build some targets from some platforms (notably IOS from Windows), and there are some gotchas where some behaviors are slightly different between platforms, but overall I’m pleased with this set up.
Although I’m late to the party I thought I’d commit to producing a game for MiniLD 39, and use it for One Game a Month. I figure I come up with a game design that I think should be completable in 2 days … then with some luck I have a chance at just finishing it in 8 days.
Editor: Sublime Text 2
Language: Haxe/NME
Framework: HaxePunk, HaxePunk-AI
Visuals: Photoshop, FilterForge
Audio: Audacity, VLC, Bfxr, Autotracker-py
Version Control: Copy and paste
By the way if you missed the keynote video by McFunkypants at One Game a Month, he ends it with this great quote from Ira Glass:
Nobody tells this to people who are beginners, I wish someone told me. All
of us who do creative work, we get into it because we have good taste. But
there is this gap. For the first couple years you make stuff, it’s just not
that good. It’s trying to be good, it has potential, but it’s not. But your
taste, the thing that got you into the game, is still killer. And your
taste is why your work disappoints you. A lot of people never get past this
phase, they quit. Most people I know who do interesting, creative work went
through years of this. We know our work doesn’t have this special thing
that we want it to have. We all go through this. And if you are just
starting out or you are still in this phase, you gotta know its normal and
the most important thing you can do is do a lot of work. Put yourself on a
deadline so that every week you will finish one [thing]. It is only by going
through a volume of work that you will close that gap, and your work will
be as good as your ambitions. And I took longer to figure out how to do
this than anyone I’ve ever met. It’s gonna take awhile. It’s normal to take
awhile. You’ve just gotta fight your way through.
In for MiniLD #39… and other things
This time I’ll be making an entry for MiniLD #39. But not just it! I’ll also submit it for “OneGameAMonth” and a local competition “Digital Wind”.
I’ll make a point-and-click game with scenes from my memories. Not something happened to me, but something I thought about but didn’t use. For example, a scene from a dream I saw several years ago. It’s great, isn’t it? I feel like all of myself are coming into one place.










