About Mjiig


Ludum Dare 27
Ludum Dare 24
Ludum Dare 22
Ludum Dare 21

Mjiig's Trophies

Mjiig's Archive

Timelapse and a Post-Mortem

Posted by
Tuesday, August 28th, 2012 4:37 pm

This blog post comes to you in two parts. Firstly, I finally got around to editing the two days of my timelapse footage together, and it can be found here: http://www.youtube.com/watch?v=HWgxnj_boIk Sorry it’s so long, youtube’s editor doesn’t have a facility to speed it up, and once I had uploaded it once I didn’t want to have to do it again after running the video through ffmpeg. Also sorry it’s so silent, I don’t have any nice royalty free music at my immediate disposal.

Now, onto the post-mortem:

What I’m proud of:

-The maps, I love the map generator I wrote, especially given how quickly I wrote it and how simple the logic is. Essentially all it does is divide the whole map space up into 5*5 cells, in about half of those cells it puts a randomly sized room. Every room gets a corridor that goes out of one side of it and continues until it hits open space. Up until a few seconds ago I thought it was possible for the algorithm to produce isolated sets of rooms (which would be considered a bug), but actually it turns out that it can’t! At least, not in any way that I am currently aware of.

-The art, although by most people’s standards the art is pretty rubbish, by my standards the art is fantastic, especially bearing in mind that all of my previous Ludum Dare games have relied entirely on primitives for their visuals. Annoyingly the art looks much nicer when blown up about 20 times, but no one ever sees it like that of course because that’s not how my games shows it…

-The dedication, although this still falls a long way short by the standards of many Ludum Dareers that I see, it’s a lot better than it usually is for me. Normally a huge percentage of the time I’m meant to spend working on my game is spent playing minecraft or dwarf fortress or something, and that’s not really the case this time. Watching the timelapse it’s fairly obvious that nearly all the time was spent on things relating directly to LD, and within that a vast majority was spent on my game.

What I’m less proud of:

-Balancing, my game needed a lot more time put into it to make it properly balanced. I found in the last few hours that all the changes I made threw the game between two extremes, of being incredibly easy to get ridiculous numbers of levels without any skill or thought, and being impossible to get past level 2. The main reason this happened I think is because my attempts at balancing the game almost always involved me making 2 or 3 different changes in one direction, so I’d never really be sure how much of the resulting change was down to any given change in the code. As a consequence it’s very easy to rattle through levels in the published version of the game, as proven my a friend of mine getting to level 20 on his first try while at work :)

-Music and SFX, didn’t exist at all in the game, and they really should have, especially since I had so much time left at the end of the comp that could have been used to get these done (and put off porting until the next day). I think the main reason I didn’t go for these is because I have literally zero experience with either making sound or with using it in allegro 5 (the graphic library I use).

-The combat system, has loads of flaws, not least of which is the fact that you have no idea what’s really happening when you’re fighting so often you’ll die without even realising you were in trouble. A lot of this could be fixed with a few small changes, such as adding sound affects when you hit a monster, changing it so that a single attack action by you or a slime didn’t cause both of you to take damage and by having enemy stats automatically display when you start a fight.

-The interface, not much to say here, but the game could have done with in game instructions/an explanation of all the arcane numbers down the side.

-The theme, the original premise of the game would be that you would kill all the weaker enemies and the stronger ones would survive and breed so each wave was better than the last. That didn’t really work out that well because there was never a reason not to fight to the death, so I added a mechanic whereby offspring were stronger than their parents around half the time, but they still didn’t get harder fast enough to be noticeable.

What I plan to do different next time:

-So the only thing I can actually think of to put in this category is erm, everything! Next LD I enter I plan to use JS and HTML 5 because I think it’ll be fun to target the web for a change, and I refuse to learn flash or java. I also hope they’ll allow for a much more pleasant development cycle than my horrible mix of C  and C++ (due to a switchover when I finally realised why g++ wasn’t playing nice with allegro) that might even mean I get a bit more done. So I guess now would be a good time to start wondering where a good place to learn Javascript it :)

Linux tester wanted

Posted by
Sunday, August 26th, 2012 10:48 am

I would greatly appreciate if any Linux users who do NOT have Allegro5 installed would be able to test my game quickly to check that I’ve got the static linking correct (I know I’ve messed it up before…). Here’s a link to the .zip

I just need to be sure that the game runs and displays a window, so long as it does that I’m happy (for now :) )

Thanks in advance

Enemies and Art

Posted by
Sunday, August 26th, 2012 2:44 am

So, checking in an hour or two into the first day I now have enemies that path find towards my character (which took freaking ages, C is hard work…), and some rubbish programmer art. The worst thing about the programmer art is that it actually looks pretty awesome at 2000 times zoom, which of course no one ever sees… Anyway, now to add combat dynamics. Then finally the evolution code. Fun fun fun…

Level Generator

Posted by
Saturday, August 25th, 2012 9:31 am

So I finally have a functioning level generator working after several hours of work. It produces levels that looks something like this:

Not quite ideal but certainly good enough for me for now, hopefully a little more pretty will be added with a tileset if I have time. It’s a “kill everyone in the dungeon”, so making sure the whole dungeon is connected is very important. Right now that isn’t technically guaranteed but it’s sufficiently unlikely that I don’t care. Now I need to add a controllable player to that map, add some enemies, and write the enemy evolution code. Easy right?

Two Ideas

Posted by
Saturday, August 25th, 2012 6:15 am

I just got back from Judo, finally get to start coding. I’ve got two potential ideas at the moment, and I need somewhere to use as a sounding board to pick between them. So here we go:

Evolution Of Enemies

The premise of this one is fairly simple, and has the benefit of being actual evolution rather than intelligent design. On the other hand  I think everyone might be planning some variation on this. Essentially, a bunch of enemies with totally random traits spawn, you get to go beat them up. Every so often two of the living enemies get to breed with each other, creating a new enemy with both of the parents traits, plus or minus a few mutations. Over time as you inevitably kill the weakest of the enemies first the average quality of the enemies gets better and winning becomes increasingly hard. The other main problem with this is that I don’t know exactly how I’d make the traits system work, which would be a major factor.

Build an organism

Played on a 2D grid, spanning the entire window. You start with a single nucleus right in the center. Various environmental hazards then proceed to walk onto the screen which are all capable of ripping your nucleus to shreds. Fortunately for you, just before they walked on screen you had the importunity to build yourself a few phagocytes, into which the unwitting hazards walk getting themselves killed. This repeats with increasingly vicious hazards that you have to wrestle with, including such scary things as pathogens (which can pathfind around defenses), carcinogens (which takes over a square you control, turning it into a useless tumor) and toxins (which spread out like a liquid until they are absorbed by liver cells). At the same time you have to expand your organism to defend itself against these new attackers using extra phagocytes, lymphocytes (which act as antibody turrets), mitochondria (which make everything they touch more powerful), and chloroplasts (which make mitochondria even more effective).

Okay, having typed that out, even though that later one isn’t actually evolution it’s a lot more fun sounding, and I’m sure I’ll be able pass it off somehow as being the same *goal* as evolution, even if it’s not driven by natural selection :)


And BOOM, an idea is formed. I wonder how much of it I’ll actually get done in time…

EDIT: Change of plan. Going back to idea 1, but in a 2D dungeon crawler-like thing (similar gameplay to legends of yore), you win if you wipe all the enemies out, you lose if they kill you. The more rounds you survive the better. Simples (I think…)

One half-baked game coming right up!

Posted by
Thursday, August 23rd, 2012 6:34 am

That is to say, I’m in! The usual tool set for me, Allegro 5 and C, though I might use C++ this time around if I feel like it, I’m not 100% sure yet. I don’t use many more tools since I’ve gotten past the game logic section of Ludum Dare before running out of time, but I will almost certainly be using GIMP for level creation (and possible a bit of sprite creation if you guys are very lucky).

Looking forward to i!

I’m out for LD23…

Posted by
Monday, April 2nd, 2012 4:59 am

I can’t justify entering this LD. I’d absolutely love to be a part of the 10 year anniversary and I’ll definitely follow along from the sidelines but the dates don’t work out, it’s the weekend before I go back to school for the last of my exam revision and it’s a bit too much pressure and time already without be throwing LD into the mix.

Definitely in for LD24 though :)


Time lapse and post-mortem

Posted by
Monday, December 19th, 2011 5:08 am

First things first, I made two separate time lapses for the two days, because I scrapped all the work from the first day so it’s fairly irrelevant.

First day: http://www.youtube.com/watch?v=sosMxT4hCq0

Second day: http://www.youtube.com/watch?v=618xpEi5rvM

As for the post mortem, it’s fairly obvious what went wrong, I wasted the entire first day. In future I think to do well I really need to think through my ideas more fully in advance to make sure they’re both good ideas and ones that I can reasonably do in the time I’ve got. Had I started with the work I’d done on the second day I would have been able to add both nicer art and the only missing feature: moving enemies that have to be killed with kittens. Secondly I need to realize that when I’m doing Ludum Dare it means putting aside the whole weekend, not just several hours a day. If you watch both timelapses you can see there’s huge amounts of time just sat in front of IRC or the the code with no changes happening. This is usually because I’ve gone and started watching TV or something, which really doesn’t help my goals.

What went well? I learnt how to use the allegro_image addon, I actually got some working code written in a library I’ve been neglecting pretty much since the last LD and perhaps the most important thing from my point of view, on the second day I was far more efficient than I was at the last LD, or usually am anyway. If I can keep up that rate of work across two days in future I think I can make a pretty serious game next time.

(Windows build should be done by evening today for any who are interested).







Posted by
Sunday, December 18th, 2011 6:18 pm

Having thrown out all of my code and started from scratch, then rushing to finish in just one day, I barely managed it. The result is a game even worse than my last LD offering, but a game none the less. It’s currently only available on Linux, but a Windows port is forthcoming, and I would appreciate it greatly if anyone with a Mac and Allegro would produce an OSX build for me, since I don’t have access to a Mac development machine.

I hop you enjoy my meagre offering at least a little bit, and that it doesn’t distract you too much from the real show.

See you in April!

Linux Tester Needed

Posted by
Sunday, December 18th, 2011 5:02 pm

I’ve already done this in IRC with Awesome3000, but just want to make sure that it’s a real problem and my linking not a quirk on their machine. If anyone could download this file, unzip it and run the a.out executable enclosed then tell me what happens it would be an enormous help.

Thanks a lot



Posted by
Sunday, December 18th, 2011 8:31 am

That’s right, plural. I know have a win condition for each level and 3 levels. The first element of the story has fallen into place. Just need to add kittens, enemies and lava now. (It’s probably best not to ask).

Starting from scratch was a good idea

Posted by
Sunday, December 18th, 2011 6:40 am

Doesn’t mean I’m going to finish, but in the last few hours I’ve done everything I failed to do yesterday, and have a basic platformer engine sitting in front of me. Now I just need gameplay and levels…

The levels are just 64*64 .png files, black is platforms, white is space, red will be lava and green will the end (but neither of those is implemented yet).

From Scratch

Posted by
Sunday, December 18th, 2011 3:12 am

Still aiming for the 48 hour deadline, which gives me about 16 left, but no code to speak of since I hated everything I wrote yesterday. I will however default to the jam if it looks like I’m going to fail here

Should be fun :)

The Disaster

Posted by
Saturday, December 17th, 2011 3:28 pm

I spent today trying to knock together a very basic platformer using a .png file to store the levels… in C. As a result it took me the whole day and I achieved nothing. Not sure what I’ll do tomorrow. I still want to make the same basic game but there’s no way this source is going anywhere in 24 hours. I suspect I’ll end up doing the same thing, but on a much much simpler scale, which uses a large pixel grid for the levels, not the “one px of the file is one px on the screen” approach I’m currently taking. Some of the code can be salvaged but not much… If I start running out of time the game will become a jam game for lazy reasons, but I hope it doesn’t come to that.

Wish me luck.

Being alone…

Posted by
Saturday, December 17th, 2011 1:36 am

I woke up about half an hour ago, and mucked around for a bit checking Facebook and things then checked the theme. Alone… Your alone in most games, so how do I stress it especially here? My first thought was having some allies that you lost as you played, but I’m not sure I’m good enough to make a game on that basis that will be fun. I may make a non-scrolling platformer based on that idea. It still won’t be very good, but I think I’ll give it a go.


I’m In…

Posted by
Sunday, November 27th, 2011 5:50 am

I’m not yet 100% sure that I’m going to have time yet since I have a lot of stuff going on, and I haven’t checked dates yet, but it should be fine so I’ll just blindly assume it will be. Will be using C and allegro 5. I may even try and make a timelapse this time.

One crappy game made of little colored dots you say? Coming right up!


[cache: storing page]