ChaoticEngine

GlobCombat

This project has been abandoned.

 

Postmortem of LudumDare 10: HERE.


Glob Combat 0.1.1 released

Here is version 0.1.1 of GlobCombat. No changes have been made to the game - this is purely a bugfix release, which makes it work on ATI hardware and which includes a Windows EXE version.

 

GlobCombat 0.1.1 for Windows

 

GlobCombat 0.1.1 for Linux

 

 

Windows version created

Wednesday, 19 December 19:37

Unfortunately I haven't had a lot of time to work on LudumDare related things in the last two days and the time I did have was spent in fruitless attempts to make a windows version of CEngine + GlobCombat using py2exe. This was quite tricky, because py2exe can't handle Python eggs and PyOpenGL 3.x is distributed in egg format - it involved using a hack found through lots of searching with Google, until I finally found a hack (on a foreign language site).

 

After creating the setuptools and py2exe setup.py file, I also had to add the following to the top of my main python file (globcombat.py):

import os
import sys

sys.path.insert(0, os.path.join(sys.prefix, "PyOpenGL-3.0.0a6-py2.5.egg"))
sys.path.insert(0, os.path.join(sys.prefix, "setuptools-0.6c7-py2.5.egg"))

 

Then run the setup with some special options:

python setup.py py2exe -e OpenGL -i ctypes,ctypes.util,weakref,new,distutils.util,logging

 

Then once the py2exe version was created in the dist/ subfolder, add the two egg files to the dist/ folder manually.

 

I'm just quickly going to see if I can do anything about some texture performance / corruption problems CEngine has when running on ATI hardware, then I will hopefully make a bugfix release that includes a Windows version.

 

Glob Combat 0.1.0 for Linux released

Monday, 17 December 04:46

Just submitted my final entry to LudumDare 10. My game was not finished, though the logic and art was nearly all done - it just needed some time on level design and a victory condition. I must still decide if I will do a Window port. The download is here - I'll be releasing this under the GPL sometime later after I've cleaned up the code.

 

The competition was fun and I learned a lot - I have several ideas for how I can improve CEngine now, so there may be some cool things happening as I continue working on this game.

 

Here are some last screenshots showing a before / after some chain reactions:

I set up some runes in spelling safe.

 

I then spammed a lot of water globs, followed by some random globs after I had a glob in the same row as the Air rune. The water glob will trigger the Air rune, release an air reaction, which will trigger the Fire rune, releasing a fire reaction, which will trigger the Earth rune, releasing an air reaction. Finally some of the globs may trigger as well if they are destroyed with the right damage type.

 

By now most of the globs are already dead.

 

Bad Day

Sunday, 16 December 22:26

The book I was using as a reference for implementing A* contained the following warning:


WARNING!

Beware! Search algorithms have the ability to create in the average human brain terrible amounts of frustration and confusion, leading to headaches, nausea, and sleep deprivation. Spontaneous and excessive howling is not uncommon. Please be aware that these symptoms are commonplace in the early stages of the learning curve and are not generally a cause for concern. Normal service is usually resumed within a reasonable length of time. (If symptoms persist, however, stay clear of busy roads, razor blades and loaded weapons. Seek medical advice at the earliest opportunity.)

 

I should have listened! I spent 6 hours this morning trying to get path-finding working with no success (I thought I was close several times). I then probably spent another hour in a state of dumbfounded confusion, wondering how I may salvage the situation.

 

The best I could come up with was to discard my old idea (get the design document here) and rework it into something simpler that doesn't require path-finding. The new idea is as follows:

 

Hordes of evil globs are trying to kill you! They are all rushing at you from the right side of the screen, any glob that reaches the left side of the screen will do 5 damage to you and die in the process - if you take 100 damage you die. Your only hope for stopping them are some elemental magic runes that cause elemental eruptions when a glob of the correct type steps on it  - this eruption may in turn cause other runes (or elemental globs) of the appropriate types to erupt in reactions of their own. Your supply of runes is very limited, so you will have to make clever use of chain reactions to keep the hordes at bay.

The elemental activation works as follows Air -> Fire -> Earth -> Water -> Air and Astral needs to have been touched by all 4 other elements to be activated.

 

So far the glob rush is working (I just need to add in the elemental globs, fortunately I have already completed their sprites). You can also place runes while your limited supply lasts. Next up is adding elemental runes and the chain reactions (should be fairly easy). The official deadline is 05:00 on Monday for me, but I have decided to give myself a deadline of 03:00, so I can be sure I still have some time for preparing my final entry in terms of installation and documentation.

 

Here is a current screenshot:

 

 

 

 

Day 2 Starts

Sunday, 16 December - 07:43

Good morning, it's time for me to get back to work, but before I do I will quickly give an overview of how my game will work.

 

On the leftmost side of the map, is your wizard: you have been banished to a pocket plane and you are trying to escape,

but the exits are guarded the Faerie Rulers of the Elements - you will have to defeat them to make your escape. Unfortunately your magic is extremely weak on this plane and a direct confrontation is not advisable, luckily you have found some creatures on this plane that have some very interesting properties. You have decided to call them globs and you believe that you may be able to build magical chain reactions using these globs (charmed with a simple cantrip), thereby destroying the guardians without having to get close enough for them to destroy you.

 

Due to your weakened magic you can only directly affect the 3 columns on the leftmost side of the map (this is called your zone of control or ZOC), the actions available to you are:

  • Charm / summon a glob in your ZOC.
  • Instruct a glob in your ZOC to go to a square (anywhere) and enter a potential state (ready to chain react). There are 5 different elemental states that do different things when triggered.
  • Trigger a glob in your ZOC, potentially setting off a chain reaction.

 

There are some further details and ideas I may add if I have time (this basic design will not make for a very challenging game):

  • Guardians summon minions of their own to attack you or to disrupt your chains.
  • Limited resources (globs and slowly recharging mana).
  • Areas on the map that may randomly erupt in reactions of a specified element type.

 

Well, that's about it, time for me to go write some code...

 

Art & Coding - Update 3

Saturday, 15 December - 23:28

Last update for the day - I've been up for slightly more than 17 hours so I'm pretty exhausted by now. After completing this update and posting my first update on LudumDare I will take a shower and the get some sleep (about 6.5 hours if all goes well). I have decided to call my game Glob Combat.

 

Progress on the code is a bit slower than I had hoped for, was going to spend the last three hours before sleep on implementing the chain reactions, but I found myself busy trying to figure out A* again, which I haven't looked at in more than a year since first using it. I also did some refactoring late this afternoon (I'll probably be glad I did it tomorrow). It's not too bad though, I'm actually fairly pleased with my progress - the only potentially difficult core features that are outstanding is:

  • path-finding
  • chain-reactions

 

Worst-case I just use the 3 hours I had allocated for doing music tomorrow, for additional coding.

 

Worst-worst-case I don't sleep between 00:00 and 05:00 on Monday (fortunately Monday is a public holiday) - would rather prefer to sleep and do a Windows port first thing in the morning though.

 

I know I promised an explanation of how the game will work, but I'm too tired now - will do it first thing tomorrow morning. In the meanwhile, here's a current screenshot:

 

 

 

 

It is now possible summon, select and morph globs in your zone of control (3 leftmost columns). As soon as the path-finding code is done and the globs can move out of your ZOC, they will also morph into the potential type you had selected when you issued the move order upon reaching the target square.

 

Art & Coding - Update 2

Saturday, 15 December - 16:06

Just a quick art update - I have finished the basic glob images (no animations yet):

 

A Glob
A Glob

 

 

Air Potential
Air Potential

 

 

Earth Potential
Earth Potential

 

 

 

Fire Potential
Fire Potential

 

 

Water Potential
Water Potential

 

 

I just realised I haven't given any details on how the game actually works yet, will provide some details in the next update (by then most of the logic should hopefully be implemented).

 

Art & Coding - Update 1

Saturday, 15 December - 14:56

Map class is now being displayed (terrain is just monotonous grass for the moment) and there is a cursor on the map that shows you which tile will be affected when you click. The cursor is animated and there is a normal and error version of the cursor, so I will be able to show a player that a move is impossible (eg. no path to target square). Here is a screenshot of the map:

 

Basic Map & Cursor
Basic Map & Cursor

 

 

The map took me a bit longer than I hoped - I discovered that my Sprite class doesn't perform quite as well as I remembered. When I threw the 576 static sprites for the map at it ran at about 8 FPS (on a 8800 GTX with a fast CPU!). Fortunately I was quickly able to fix that with a quick hack that makes a display list of the map tiles (the map is static so it only updates between level loads anyway) - that got me back up to above 30 FPS (my target is 30 FPS).

 

Next up is the art for my main characters: the globs as well as the code and logic for them - this will probably make up the largest part of the code, so I don't know how soon I'll update again. Hopefully it will go a bit better than the map...

 

Art & Coding Phase

Saturday, 15 December - 12:29

Just finished my lunch of warmed up pizza and energy drink, so it's time for the real work to begin.

 

The first thing I need to do is to create the Map classes and the rendering for that, followed by basic interaction with the map using the mouse (my game will be almost completely mouse driven if all goes well). I am aiming for a resolution of 800x600 with the bottom 150 pixels allocated to the control panel. The tiles will have a size of 25x25 pixels, giving a 32x18 tile map.

 

Before I start coding, I will first create some terrain tiles, so I have something to draw when it gets to that part of the code. I quickly want to experiment with using my cellphone camera to snap some shots of grass & dirt and then scaling that down to 25x25 pixels...

 

Design & Planning Completed

Saturday, 15 December - 12:09

Just completed my design document and printed it out. I'm quite happy with it as it is a very complete specification, there should be no surprises, technical or otherwise. It also includes some ideas for things to add if I end up having time left and ideas for balancing the game if it is too easy (I'm more concerned with it being to easy than too hard at this point).

 

From a technical point of view my game is not terribly complex, it simply tile-based 2D which I can do with CEngine. The only AI (unless I have lots of extra time) is simply a path-finding routine.

 

I reckon I can pull this off. Now making a quick break for lunch and then coding & art phase starts (I was planning to do code and then do art afterwards, but I've changed my mind - evolving the two together will make it easier to try and overcome the shortcomings of one with the other where necessary).

 

Design & Planning Phase - Update 1

Saturday, 15 December - 09:49

Design document is coming along nicely. I have a 3 page introduction describing most of the intro sequence / story and detailing what the different levels will be like. There will be 6 levels (will have to see if I manage to finish that many). I am now going to flesh out the details of how the different concepts will work.

 

Here's a synopsis of the story:

You are a powerful wizard who has been banished by a rival to pocket plane. He used the authority of the Arcane University to convict you for performing inhumane experiments (OK, so some kittens died in your experiment to prove a new theory that you are tentatively calling Evolution, it's not THAT bad).

On this pocket plane your magic is significantly weaker and action-at-a-distance is nearly impossible, the portal leading out of the plane is guarded by one of the Elemental Faerie rulers and you are too weak to fight him. Luckily you discover some cute, gullible creatures (called globs) that you can control with a simple Charm spell, they store potential elemental energy which can then be unleashed by providing the appropriate trigger - using these you can form a chain to your captor and then unleash a chain reaction to destroy him.

Fight your way through the 5 elemental rulers and then face your arch-rival, to escape your planar prison!

 

Design & Planning Phase

Saturday, 15 December - 07:45

Breakfast: Check - Fried eggs & toast.

Shower: Check.

Awake: Well, roughly.

 

As part of my design & planning phase I was going to make a long list of game ideas that fit the theme, select one and then design a game around that one. I allocated 4 hours (08:00 - 12:00) for this, however out of the three ideas I've had so far I like one so much that I'm not going to waste further time on idea selection. The idea is loosely based on MEE (described below) - it will still contain wizards, faerie kings & queens and blobs, but you will have to use the blobs to cause chain reactions (since your weakened magic can't reach across the map on the pocket plane you were banished to).

 

The main advantage of this idea is that since I already had some stylistic ideas for how the blobs would look, I don't have to come up with a new look & feel for my game, I can just focus on designing the gameplay. I'll probably shave an hour or two off of my planned 4 hours too - more time for coding & art will be handy!

 

Competition Start

Saturday, 15 December - 06:35 (GMT+2)

The competition started 1 hour 35 minutes ago with the theme: Chain Reaction. I just woke up, so the next hour and 25 minutes will spent waking up, having breakfast and showering (all while trying to come up with extra ideas other than the one I had when I first heard noticed this theme in the voting.

 

I ended up having an awesome idea for the Evolution theme last night. You are a wizard that has been banned to a nexus plane for doing inhumane research (you think they were just jealous of your achievements). In this plane are 5 portals to the kingdoms of the faerie kings of Air, Earth, Fire, Water and Astral magic. Your magic on this plane is very weak, but you have found some strange creatures (you are calling them Blobs) - they have no arms or legs, but they are very tough and their short life-cycle means they evolve quickly. Perhaps you could evolve yourself an army of Blobs to assist in defeating the Faerie kings and assuring your escape. It would have been a slow-paced RTS called Magic Enhanced Evolution (MEE).

 

Theme voting - round 3

Thursday, 13 December - about 09:00 (GMT+2)

Checked the LudumDare page this morning and saw that round 3 of the theme voting has opened. I was pleased to see that at least 3 of the themes that I liked had made it through to the third round. I have voted as follows for round 3:

  • +1 on Chain Reaction: I have a really cool idea for this one, may be hard to pull off, but definitely cool.
  • +1 on Colonization: I like this theme, because it allows for almost any setting from history, fantasy, sci-fi.
  • +0 on Evolution: This could be an interesting theme, so I don't mind it, but I would prefer Chain Reaction.
  • -1 on the rest: Don't want to compromise the chances of the above 3 themes.

 

Looking at the results of rounds 1 & 2, it looks like it would almost certainly be between Chain Reaction and Evolution (a surprise turnaround probably isn't out of the question though).