chaotikza

LD10

Matt’s Custom Library

CEngine is a Python library I started writing mid-2007 for doing a remake of Chaos: Battle of Wizards by Julian Gollop. The library uses PyGame and OpenGL and is still far from complete – I haven’t even started on the remake yet, but there is some functionality in the library that may be useful for this competition.

Feature list and download.

Tags: library, opengl, python

First & last update for today

I have been keeping a fairly detailed journal of my progress at my LD10 Progress Page, just haven’t gotten around to posting the link yet until now. To summarise for everybody that’s too busy to check the link (probably everybody) I’m fairly pleased with my progress and though I am slightly behind schedule, it’s not a train-smash (yet).

Here’s a current screenshot of my game which I have decided to call Glob Combat, it will be a RTS / puzzle game:

Latest Glob Combat screenshot.

I was going for cute globs, but I’m not sure if they look cute or diabolical:

A glob.

GlobCombat: Final Entry (incomplete)

Here’s my final entry for LudumDare 10:

GlobCombat-0.1.0 for Linux

This was my first LudumDare and I’m disappointed that I did not finish, but on the other hand I guess I’m also kinda surprised I got as far as I did. Most of the game logic and art is finished, but I didn’t have enough time left to add gameplay and polish stuff like a menu and highscore list. It is possible to run the game to see the artwork and play with the logic a bit (see doc/README for details).

My biggest mistake was spending 9 hours on trying to get A* graph search working (especially with about 2 years gone since the last time I touched that kind of stuff). Should have given up on that path and re-designed after 3 hours instead of 9 – then I might have had a playable entry.

I did learn a lot (and I am going to learn a lot in the coming weeks as I work to finish this game and to improve my library to make things easier for next time). It was fun in spite of the setback.

Here’s a screenshot from just before I started packaging it up for release:

GlobCombat

Tags: final, incomplete

GlobCombat Windows & ATI Release

After a long struggle to get it working, I finally have py2exe version of my game. This release also includes a bugfix to my library, which lets the game run on ATI hardware (the texture loader wasn’t enforcing power of two texture sizes).

Sorry it took so long, but I didn’t have much time to devote to LudumDare in the 2 days after the deadline and I had a really hard time getting PyOpenGL to work with py2exe (for details on how to make it work see my journal).

Here are links to the new release files:

GlobCombat 0.1.1 for Windows (6MB)

GlobCombat 0.1.1 for Linux (1.5MB)

Tags: final, incomplete, Windows

Some documentation

Here is some longoverdue documentation for the Windows version. I only realized yesterday that the README file was not included in the Windows release (and even it was, it would have been unreadable due to different end-of-line conventions between Linux and Windows).

To save everybody from having to download the 6MB package again, I am just posting a separate README.TXT.

Just to highlight it, you can create new globs on the right hand side of the screen by pressing NUMPAD 1 – NUMPAD 4 the elemental type of the summoned glob corresponds to the order of the runes on the control panel, so NUMPAD 1 summons a Water glob, NUMPAD 3 summons a Fire glob. If the game was finished globs would rush at you in pre-configured waves, but I didn’t get that far.

In addition, here is a screenshot showing the relationships between the 4 elements:

Element relationship diagram

Red lines indicate how runes (and once implemented, globs) are activated by different elements. If an Air glob walks onto a Fire rune, a fire reaction will ensue. If an Air rune is triggered by a Water glob and there is a Fire rune in the area of effect of the resulting Air reaction, the Fire rune will be triggered by the Air reaction.

The green arrows shows against which elements globs are resistant. Air cannot harm Earth and vice versa. Water cannot be harmed by Fire, but Fire can be harmed by Water.

LD18

Daring to Dare!

I’ve decided that I will dare to enter Ludum Dare this coming weekend as my schedule is looking relativaly clear!

I’ve only tried once before and my entry sucked, but I learnt a lot then and I’ve learnt a lot since, so hopefully this time I’ll at least be able submit something that’s at playable. Good luck to everybody – looking forward to playing all your submissions next week!

My weapons of choice this weekend will be:

Programming

  • Java
  • Slick2D (built on top of LWJGL, so sorry to FreeBSD users :P)
  • NiftyGUI

Graphics

  • GIMP
  • InkScape

Sound

  • SFXR
  • Audacity

Progress Update

Here’s my first quick progress update!

I’m calling my game Rainbow Hero – here’s the main menu screen and some gameplay screenshots:

#gallery-1 { margin: auto; } #gallery-1 .gallery-item { float: left; margin-top: 10px; text-align: center; width: 33%; } #gallery-1 img { border: 2px solid #cfcfcf; } #gallery-1 .gallery-caption { margin-left: 0; } /* see gallery_shortcode() in wp-includes/media.php */ demonstration Rainbow Hero Menu Screen

I’m trying to make an arcade puzzler similar to bomber-man, but using enemies as weapons – this will literally work by walking up to an enemy, mind-controlling it (using your Rainbow Super Power, which Double Rainbow Zombie accidentally gave you while kidnapping your girlfriend) and then using the controlled enemy’s (generally destructive) ability to overcome other enemies / obstacles in the level.

Unfortunately I have to go watch sports and pretend to like it now :( – so more progress will only happen later tonight… Hoping I can get all the gameplay building blocks done by midnight, then grab some sleep and start adding content tomorrow.

Progress Update 2

I’ve made pretty good progress for the first day (personal record), considering how much time I had to spend watching rugby and entertaining guests :P! I’ve got 1 enemy type fully working, as well as the mechanic for taking control of enemies and using them to blow stuff up – obstacles for constructing a maze are also working…

I’m a bit worried that I won’t have enough time to add content tomorrow like levels and add polish tomorrow, but I figure it’s better to attack the remaining coding bits tomorrow morning when I’m fresh (doing so now will result in disaster). My rough TODO list for tomorrow is:

  • Code levels & transitions.
  • Code level exit.
  • Add 2-3 additional enemy types.
  • Design & build 4-5 levels.
  • Add sound.
  • Polish, polish, polish!

Oh, yeah – here’s a screenshot:

Going to get some sleep now…

Finished At Long Last

This is my first time finishing an entry for Ludum Dare and finishing a game in general (I usually end up with half-finished projects). The code is basically feature complete except for some ideas I didn’t initially plan for, if I had more time for level design and building this game could’ve been a lot nicer… as it is I’ve only got 4 levels done and they’re not much fun, but still: I’m quite happy with what I’ve accomplished in such a short time!

Good night all – it’s 03:00 in the morning here, so sleepy time now… looking forward to playing everybody’s awesome looking entries!

Here’s a link to my entry and a screenshot.

LD18 Post-Morten

I’ve been too busy at work and at home (and sleeping this afternoon ;-)) to write a post-mortem yet, but now I’ve finally got some time – so I’ll just jot down some quick lessons learned…

The previous time I participated in Ludum Dare I spent a lot of time designing a very complex puzzle game, it was so complex that I failed to complete development of the features needed to build interesting levels and gameplay… so this time round I went in the opposite direction and hardly did any design at all, fearing that I won’t be able to finish an entry. So this time round my game is pretty much feature complete – it’s just not much fun :-(!

Once I’d finished coding all the features, I found that it was quite time consuming and difficult to build interesting puzzler levels, I think this stemmed from a number of problems:

  • Enemy features were not interesting enough
  • There wasn’t enough interesting interactions between enemies
  • I was quite tired / sleep deprived by the time I started on level design
  • Designing good puzzles takes time, I think the time constraints on this competition maybe make puzzle games a poor genre choice (too dependent on good content)

I also had boatloads of problems with publishing my entry, I wanted to do Java Applet or JNLP, but I still haven’t gotten around to either – both are a bit difficult to get working, so this is something I should figure out how to do before competition as part of setting up my tool chain.

So my list of things to do differently next time:

  • 48 hours is a long time (6 work days) – even if you lose 12 hours to sleep, etc. you still have 4.5 days.
  • Following from the above:  spend at least 4-8 hours on design at the start (including level design on paper) you’re too tired in the last 8-16 hours to design fun levels then.
  • Tool-chain setup should include testing web publishing of the game.
  • Puzzle games are a poor choice of genre, rather do something more arcadish with running or jumping or shooting.

All that said, I’m still quite satisfied that I managed to complete an entry – flawed though it may be… I can’t wait for LD19 as I definitely have lots of room for improvement!

October Challenge: Airship Traders

I had a bit of a slow start over the first weekend, but made up for it somewhat yesterday and this morning, so I’m in for the October challenge after all!

I’m making a trading / crew management game which I’m calling Airship Traders. It’s set in your standard fantasy world, except in this world wizards are a dime a dozen, so being a wizard doesn’t really make you very special – you have to go the extra mile, like becoming a rich and famous Airship Trader for example!

Having learnt from LD18 that I’m not very good at art / graphics I’m scaling back graphical ambitions way back this time round – going to go for a fairly simple 8-bit look similar to that of Chaos: Battle of Wizards. This game will include a bunch of personal firsts, including:

  1. Non-trivial mouse based interface (Working)
  2. Map larger than the screen (Working – with a functional mini-map)
  3. Mix of random-generated and file-based content (TODO :P)

I’m developing in Java with Slick2D and here’s my first screenshot (just colored boxes for now, graphics will be added once the gameplay is working):

Towns, trade goods, large map with mini-map and mouse controls - all working :-)

Towns, trade goods, large map with mini-map and mouse controls - all working :-)

In terms of trying to sell my game, I’m not even going to bother with app-stores (they all seem to require that I learn a new set of development tools or APIs, which is a bad idea considering the complexity of my game PLUS I’m in South Africa, which isn’t supported by Google App Store and probably some others – I didn’t even bother to check the rest).

My plan for selling a copy is to have a free-to-play 15 minute demo downloaded from my website (with ads), with a PayPal payment required to buy the full game that doesn’t have a time limit (I think this is similar to what BigFishGames does). This will entail making some improvements to my website, so my deadline for finishing the game is 23 October, so that I can dedicate the last week to building the sales infrastructure. If that looks like its not going to happen before the deadline, I’ll probably go to one of the handful of Java games portals with ad-revenue sharing and just try to drive traffic there from my website.

Good luck to everyone participating! I’m already having tons of fun, hope you all do too!

Comments

05. Oct 2010 · 04:25 UTC
Seems neat. I look forward to seeing your progress throughout the month.

Airship Traders: Progress Update 1

I’m still going along rather slowly, but I think I’ve made enough progress in the last couple of days to justify an update again :). I failed to stick to the promise I made myself that I won’t add graphics until the gameplay is working, so here’s the much nicer 2nd screenshot:

Towns, Terrain, Basic Trade Goods, Basic Town Simulation, Basic Random Map Generation, Loading data from file - all working :)

Towns, Terrain, Basic Trade Goods, Basic Town Simulation, Basic Random Map Generation, Loading data from file - all working :)

Gameplay isn’t really happening yet, so the priority list of features to implement next are:

  1. Airships (essential for gameplay)
  2. Trade Interface (essential for gameplay)
  3. Better Town Simulation (essential for sustainable gameplay)
  4. Better Map Generation
  5. Fog of War / Exploration

This project is probably more than I can do in a month, but I’ll be happy if I can manage about 60-80% completion, I can always still polish after October and then start selling it (it’s at least designed to have enough gameplay to be salable ;-)) . Still having lots of fun with this project! 😀

Comments

08. Oct 2010 · 15:22 UTC
A strategy to meeting the deadline would be to focus on core game-play features and post-pone the rest until later. There is no reason you can’t get the game up and running, start selling it and make improvements down the road. You might pick up a fan in the process who brings good feedback to the table.

Airship Traders: Nothing to see here!

Not making much progress this weekend and the next two I’m going to be otherwise occupied, but I’ll do my best with whatever time I can get on weeknights…

Just thought I’d share this:

GAME DEVELUPMINTZ?!

GAME DEVELUPMINTZ?!

Our cat doesn’t approve of my game development habit :P! Other than that, nothing to see here…

*Edit: Fixed lolspeak…

Comments

bear
10. Oct 2010 · 18:47 UTC
Maybe give you cat more food as you make your games? He would want you making games every single second!

Airship Traders: Update 2

Update number two coming to you at 02:00 in the morning from a dark and (mostly) sleeping South Africa…

I’ve just finished my first pass at more advanced map generation and I’m very happy with the results (actually just very happy that it’s working at all 😛 – this is my first time trying random map generation)! Most of the credit must go to the writer of this article at the RogueBasin on generating cave maps with Cellular Automata… I was looking for inspiration and found that some of the caves generated could pass for outlines of islands, so I adopted the algorithm described there and then just added some additional custom passes to make things look a bit fancier :). All in all I’m quite pleased with the results so far, but still need to add:

  • Rivers
  • Towns
  • Maybe some more terrain types

I’ve also got a basic ship which can teleport around the screen (normal movement going gradually from point-to-point is a near-future todo).

Here’s my latest screenshot:

Cool looking randomly generated map and a semi-functional Airship! :)

Cool looking randomly generated map and a semi-functional Airship! :)

LD20

Warm-up Game (and I’m in)!

I’ve written a little warm-up game to re-familiarize myself with my tools and to make sure everything is working after a few months hiatus from game development due to real-life issues (read work). It’s basically in unfinished, unpolished prototype state, but it’s playable: Java Webstart! Took approximately 12 hours of work and the theme was the first idea that popped into my head that was simple enough to execute in less than 24 hours…

Given how well this little project went I’m definitely in – whether for vanilla or jam will be determined by how much time I have over the weekend or how bad the theme is…

My tools are:

  • Language: Java
  • Libraries: Slick2D
  • Existing codebase: Chaotic Game Logic Library, Jumpers (for both ignore releases and just use SVN trunk)
  • Graphics: GIMP, Inkscape
  • Sound: sfxr & musagi (in the unlikely event that I have time to add sound)

Good luck to all and I’m looking forward to seeing some great games (and hopefully making a decent one for once)!

Comments

recursor
27. Apr 2011 · 23:10 UTC
Your little warmup game is actually pretty cool!
28. Apr 2011 · 07:30 UTC
I’m in LD20 too 😀

Good luck 😀

My chaotic little workspace

The competition started 04:00 local time and it’s now 08:15 – I’m still half asleep and I have no idea what kind of game to make out of this theme… going to go have breakfast somewhere and stock up on supplies while I try to come up with an idea…

In the meanwhile here’s picture of my chaotic little workspace:

Matt's Chaotic little workspace...

Tags: LD20, workspace

Comments

30. Apr 2011 · 04:58 UTC
I have that same case.

Breakfast, Supplies and a Concept

Breakfast? CHECK

LD20 Day 1 Breakfast

Supplies? CHECK

LD20 Supplies

Concept? CHECK

My concept I’m going to start fleshing out now is to do a tribute to Gauntlet where the player that plays alone gets a special item to help with the difficult levels that are designed for 2 players (tying in to the theme). This is probably more than my poor art and sound skills can manage, but its the best idea I can come up with that actually seems like fun to me – so here goes nothing!

Starting design work and timelapse capture now…

Tags: food, foodphoto, journal

Progress Report

Just a quick progress report before I go grab some sleep (no screenshot because it’s just boxes and lines at the moment):

  • I have a tank that moves realistically enough.
  • The tank has a turret that can be controlled by AI or can follow the mouse for the player.

I still need:

  1. Guns – lots of guns! (I lie, just 2 actually)
  2. Enemies – lots of enemies! (Same lie)
  3. Terrain
  4. Intro, menus, etc…
  5. Graphics
  6. Sound

So as of now I’m very far behind, but I think I’ll be able to accomplish a lot more tomorrow – in theory there should be fewer distractions from working on the game… if not then I’ll switch to jam to polish it a bit more on Monday (a holiday here in ZA fortunately).

Good night all!

Lone Tank: Progress Update 2

My game has a name now and I’m making good progress (although I’m starting to doubt if I’ll have something polished / non-prototype by deadline – unless perhaps if I stick to purely vector graphics – tempting). The game now also has :P:

  • Lots of guns (4)! 😛
  • Lots of enemies (2, but with 2 more within easy reach)! 😛

So next up:

  1. More work on enemies.
  2. Terrain.

Here’s a screenshot:

Lone Tank Screenshot 1

A tank with cannon & machine-gun, surrounded by enemy infantry with rifles and grenades.

Breakfast happened in two parts today, something light to start off and something a bit more substantial later:

Breakfast Day 2

Rusks & coffee followed by eggs on toast a bit later.

Taking a bit of a break to work on dinner before the the big all-nighter…

Lone Tank – Submitted

I got my game submitted about 10 minutes before the submission deadline – that was the longest 80 minutes of my life – phew!!!

Things that went wrong:

  • Initial concept failed, because the art requirements were too difficult for my poor skills…
  • Only managed to come up with another concept 13 hours in…
  • Performance issues about 6 hours before deadline, requiring implementation of more efficient hit detection!
  • Struggled with Java Webstart in-spite of having done a warm-up game as a test before the competition started.
Grid Based Broad Phase Collision Detection Debugging

Almost failed to finish due to having to do this...

Things that went well:

  • My most complex and complete game in an LD so far (ignoring graphics / sound) – in spite of the 13 hour penalty due to my theme problems!
  • My base code library performed pretty well (the hit detection issues aside) – also made many improvements in the course of the competition.

All told I feel like a winner! For about a week of work spent on Ludum Dare warm-up and competition I have:

  • 2 good prototype games that can easily be fleshed out into nice games.
  • Massive improvements to my base code library that will help my all my other projects.
  • I had a lot of fun!

Thanks for a great competition and well done to everybody that finished a game – to those that didn’t: keep trying and better luck next time!

Tags: post-mortem, postmortem