Release Pandora Microbes!


_wb_

Microbe
Staff member
Joined
Apr 5, 2012
Messages
5,390
Age
42
Location
Brussels, Belgium
screenshot.png



http://repo.openpandora.org/?page=detail&app=microbes.wb


Tower defense game: you are an immune system and have to defend against invading microbes.


More strategy/tactics involved than in a typical TD game:

  • no fixed microbe paths
  • the microbes attack and destroy your units
  • your units have several modes of operation (e.g. focus on faster/stronger/meaner microbes, multi-attack or increased range with less damage, ...).


Many different units (range, speed, healing, boost other units, slow down microbes, ...). Several different microbe types.


Your feedback is welcome in this thread.
 
im still waiting for my unit, so cant test this.


but it looks great and the idea sounds very interesting. especially as im working on my doctoral thesis about the human immune system. :)
 
Oops, I should probably put in a disclaimer: this game is absolutely not biologically accurate! ;)
 
Oooh! This looks right in my ballpark! My Pandora is currently winging its way from ED to me, with a new LCD cable and shell and stuff, but when it arrives I'll try this immediately.
 
If you get unexpected quits, please copy/paste the pndrun log (it is in /tmp) here. Or tell me how to reproduce it. If you lose, it should say "game over" and go back to the menu.
 
Began Level 2 from the tutorial pack, done nothing but speed up the game to lose.


--->Game over, then a screen with the different units en a big HELP on the bottom and then back to XFCE.



Code:
=======================================================================================

PND			 : /media/SD1/pandora/menu/microbes0.4.pnd

PND_FSTYPE	 : Squashfs

APPDATADIR	 : /media/SD1/pandora/appdata/microbes

APPDD_FSTYPE : vfat

PND_CPUSPEED : <unset>

EXENAME		 : run

ARGUMENTS	 : <unset>

=======================================================================================

[ START ]--- Mount the PND ----------

Mounting : mount -t squashfs -o ro "/dev/loop1" "/mnt/utmp/microbes"

Mounting the Union FS : mount -t aufs -o exec,noplink,dirs="/media/SD1/pandora/appdata/microbes=rw+nolwh":"/mnt/pnd/microbes=rr" none "/mnt/utmp/microbes"

[SUCCESS]--- Mount the PND ----------

[ START ]--- Starting the application (run ) ----------

Initializing SDL...omapsdl: opened tslib touchscreen

omapsdl: in_evdev: found "keypad" with 84 events (type 00100013)

omapsdl: in_evdev: found "nub0" with 3 events (type 00000007)

omapsdl: in_evdev: found "nub1" with 3 events (type 00000007)

omapsdl: in_evdev: found "gpio-keys" with 16 events (type 00000023)

omapsdl: skip /dev/input/event5 as ts

omapsdl: found 5 evdev device(s).

omapsdl: detected 800x480 'lcd' (0) screen attached to fb 1 and overlay 1

OK.

Setting video mode: 800x480x32.../dev/fb1: 800x480@32

fbdev initialized.

xenv: X vendor: The X.Org Foundation, rel: 10704000, display: :0.0, protocol ver: 11.0

xenv: display is 800x480

OK

Supported chunk decoder: [WAVE]

Supported chunk decoder: [AIFF]

Supported chunk decoder: [VOC]

Supported chunk decoder: [OGG]

Supported chunk decoder: [FLAC]

Supported music decoder: [WAVE]

Supported music decoder: [MIKMOD]

Supported music decoder: [TIMIDITY]

Supported music decoder: [OGG]

Supported music decoder: [FLAC]

Supported music decoder: [MP3]

Level pack Tutorial: max lvl=2

Level pack Microbes: max lvl=0

Level pack Wesnoth: max lvl=0

Level pack Sci-fi: max lvl=0

Loading level -1

Loading 1 enemy waves of max size 15

Done

Loading enemy data from data/enemies.dat

Loading thing data from data/techtree.dat

Loading level images...

ok

Loading level 0

Loading 5 enemy waves of max size 20

Done

Loading enemy data from data/enemies.dat

Loading thing data from data/techtree.dat

Level loaded, computing paths...

ok

Loading level images...

ok

Loading level 2

Loading 9 enemy waves of max size 20

Done

Loading thing data from data/techtree-tutorial.dat

Loading level 2

Loading 9 enemy waves of max size 20

Done

Loading music: data/music/loop1.mp3

Music loaded

Loading level sounds from data/sounds/

Loading enemy data from data/enemies.dat

Loading thing data from data/techtree-tutorial.dat

Level loaded, computing paths...

ok

Loading level images...

ok

frames:100 in 5692 ms (17.57/30 FPS), menubg: 2 enemies / game: 0 enemies

frames:200 in 9060 ms (22.08/30 FPS), menubg: 2 enemies / game: 3 enemies

frames:300 in 12443 ms (24.11/30 FPS), menubg: 2 enemies / game: 13 enemies

Exiting: Chose quit in menu

real 0m17.799s

user 0m4.938s

sys 0m0.391s

[SUCCESS]--- Starting the application (run ) ----------

[ START ]--- Restoring the frame buffer status ----------

[SUCCESS]--- Restoring the frame buffer status ----------

[ START ]--- uMount the PND ----------

[ START ]--- Waiting the Union to be available ----------

[SUCCESS]--- Waiting the Union to be available ----------

auplink:plink.c:223: AUFS_CTL_PLINK_MAINT: Inappropriate ioctl for device

rmdir: failed to remove `/mnt/utmp/microbes': Device or resource busy

[ START ]--- Waiting the PND mount dir to be free ----------

[SUCCESS]--- Waiting the PND mount dir to be free ----------

cleanup done

[SUCCESS]--- uMount the PND ----------

=======================================================================================

Return code is : 1
 
Strange, I cannot reproduce this. Are you sure you didn't press any buttons or click the screen?
 
Here my feedback. (You wanted me to post it in the thread)


See also my PM for more soundfiles.


Finally there's an easy mode. Now hard mode is no problem to play. I need an easy mode to learn how to use each unit.


Your microbe that attracts enemys is BRILLIANT again.


Could you add defence as a parameter? All units have the same ammount first but you could make some units boosting your own defence and some weaken enemy's defence. (I don'tknow if that's a good idea)


Also nice to see you made some "classical" tower defence ways.


Do you really want to name you game "microbes" microbes is simply one theme. Of course you could keep it main theme if you like it but I'd suggest to name it more compulsory. If you want to I'd give you some suggestions.


Could you redesign your tech tree a little? For my feelings it's too much based on one cell. The other two units don't even have a tree.
 
Finally there's an easy mode. Now hard mode is no problem to play. I need an easy mode to learn how to use each unit.
I have no idea if the hard and insane modes are actually doable, it could be too hard in some maps. I can do the first level of both level packs in insane mode, but I don't know about the next levels...

Your microbe that attracts enemys is BRILLIANT again.
Thanks, I haven't seen such a unit in any other TD game, I think it allows cool strategies in some levels.

Could you add defence as a parameter? All units have the same ammount first but you could make some units boosting your own defence and some weaken enemy's defence. (I don'tknow if that's a good idea)
Maybe I could make boosters also boost max HP points (you would still need healers or heal manually to bring it to its boosted max HP though, to keep things balanced).

Also nice to see you made some "classical" tower defence ways.
Those are easy to do now, since there's a terrain type that block microbes and one that blocks building.

Do you really want to name you game "microbes" microbes is simply one theme. Of course you could keep it main theme if you like it but I'd suggest to name it more compulsory. If you want to I'd give you some suggestions.
I'm open to suggestions. I'd keep microbes the main theme though, unless someone creates a better theme.

Could you redesign your tech tree a little? For my feelings it's too much based on one cell. The other two units don't even have a tree.
Yes, it is a bit unbalanced, but the nice thing is that it is based on the "biological techtree", which is unbalanced too, since almost everything originates from the myeloid progenitor. I already deviated a bit from this (I put the attractors separately, which is needed since you want them as a first build so you know if and how the attraction affects the path). Also note that I currently cannot have more than 4 items at a time in the build menu. Suggestions are welcome of course.


Hematopoiesis_%28human%29_diagram.png
 
Making you tech tree similar to th real tech tree is nice. Leave it the way it is.
 
Strange, I cannot reproduce this. Are you sure you didn't press any buttons or click the screen?

Eh that's it ! I click the screen.


What's the problem ? This game is to be played with the touchscreen too, why would I want to exit by clicking the screen ?


Thanx for this cool game tough :)
 
Yes but I don't use it with the touchscreen myself so I haven't found all the bugs in it yet. You probably clicked in a location that correspond to the "Quit" menu option or something. Should be an easy fix :)
 
Bugs:

  • Some of the sounds crackle on my Pandora (doesn't go away with external speakers, either).
  • Apparently there's an energy bonus that's carried across levels if one level was completed successfully (how can this be a feature?).
  • Sometimes the very last few microbes (usually when "3 Microbes left" or so) arrive much, much later than the rest of the last wave (as in, 30 seconds, 1 minute, or more). So far I've experienced this on several maps in insane mode, it were always Berserkers that arrived very late, and eventually they came in from off the left edge of the screen. I've been using the speedup function extensively in these games, turning it on and off frequently.
  • Repairing does not check whether the available amount of energy is sufficient.



Some feature requests and suggestions:

  • Quick "Retry" function in pause menu
  • Consolidated start button pause menu and esc key pause menu
  • Unpausing with game button A
  • A very prominent warning on low unit health
  • 'Hold key down' temporary speedup function, where the game is sped up for as long as a certain key is held down. (For instance, holding down the '1' key speeds up 3x for as long as the key is held, holding down the '2' key speeds up 9x for as long as the key is held, etc.)
  • The unit mode change sound /may/ be better if it was shorter, maybe only the first half of the current sound.
  • On unit mode change, display the current mode somewhere around the unit's firing range indicator (in addition to the in-menu display).
  • When opening the build menu (currently game button B) , do not remember the last used unit type in order to prevent falsely placed units. Instead, add additional absolute key mappings for upgrades. (For instance; use the Q, W, O, and P keys for the 0th, 1st, 2nd, and 3rd menu item respectively; or use D-Pad directions while game button B is held down; or implement upgrade queues and give a dedicated key to each possible unit in the tech tree.)




I have no idea if the hard and insane modes are actually doable, it could be too hard in some maps. I can do the first level of both level packs in insane mode, but I don't know about the next levels...
It's quite doable, so far I've played insane up to and including 'Microbes' level 2 (which includes all of 'Tutorial'), and I think the remaining levels might be possible, too. There are quite a few 'hidden' tactics in this game, such as good mast cell placement to avoid unbalanced healing, timed upgrades for free healing, shaping long and/or winding paths and splitting enemies between them through temporary placement of units, or sacrificing energy to defer a number of enemies from a wave and then destroying the own units before they are destroyed by enemies. In other words, just what an insane difficulty should be like.


Often, the difficulty of either the very first or the last ~3 to ~5 waves is quite extreme in insane mode, but so far I wouldn't want that to be changed. However, during the very first wave in insane mode, a lot depends on exact unit placement, which is a bit unfair because that first wave moves out quite early (try 'Tutorial' level 4 in insane mode). I would defer the first wave in insane mode by about 1 second or so, probably way less (it's called insane mode, after all).

I'm open to suggestions. I'd keep microbes the main theme though, unless someone creates a better theme.
What about nanobots that have replaced the human immune system in the future? Then it would at least make some more sense that someone manually places them like in a tower defense game.
 
Last edited by a moderator:
Thanks for the very useful feedback!


I already found the berserker and repair bugs, they have been fixed. I'll have to look into the sound issues - is it only the sound effects or also the music? Does it occur mostly in "crowded" moments when there are a lot of microbes around and a lot of action going on? Could you check the pndrun_microbes.out for buffer underruns? It could be that the game is just taking too much cpu to prevent the sound from keeping up, causing buffer underruns. If those are the problem, things should be better in the new SZ1.51 and in the new version which will do frame dropping if needed and uses some NEONized code from notaz to make rendering more efficient.


The energy bonus transfer (1/4th of the remaining energy gets added to the starting energy of the next level) is supposed to be a feature, not a bug :) - the idea is that you get rewarded for playing levels in a row versus doing lots of restarts. It is trivial to change this if you think it is a bad idea - also perhaps the bonus should scale down in higher difficulty settings.


Your feature requests are good, I'll try to implement as many as possible.


It looks like you playtested quite well, you have discovered quite a few tactics, like healer placement: yes, their target selection is kind of basic: whatever is in range and needs healing, top-to-bottom left-to-right first, which gives quite unbalanced healing. Maybe I could add another upgrade for the healers to do smart healing, i.e. lowest hp first.


There will be a 3 seconds delay before the first wave starts coming. I could make it shorter in higher difficulty settings.


I've tried Insane until "Microbes" level 4 succesfully, however this is on my current version which has slightly different unit balance.


Nanobots is a cool idea, but perhaps as additional units, because the current units already refer to the human immune system (in names and graphics), and I don't want to throw that away. I'm not too worried about things not making sense - it's just a game after all, and to make it biologically/technologically accurate would be impossible and would probably take the fun out of it.
 
[...] the sound issues - is it only the sound effects or also the music? Does it occur mostly in "crowded" moments when there are a lot of microbes around and a lot of action going on? Could you check the pndrun_microbes.out for buffer underruns?
It's mainly the sound effects. The crackling also happens when there is 1 non-shooting enemy and I've placed a single unit that's shooting the enemy. In that situation there's a crackling sound when the sound effect for shooting ends.


There have not been buffer underruns during that session.


I also noticed that the transition between two music loops (or a 'joint spot' inside a single music sound file?) is sometimes a bit bumpy (maybe the timing is slightly off somewhere). It also crackles there.

The energy bonus transfer (1/4th of the remaining energy gets added to the starting energy of the next level) is supposed to be a feature, not a bug :) - the idea is that you get rewarded for playing levels in a row versus doing lots of restarts.
I thought so, but I don't think it really makes sense as it basically introduces two branches of difficulty. I don't think this is very elegant, apart from having some balance problems (for instance, by building the right kinds of units throughout a game, one could usually regain quite a lot of energy by destroying units shortly before the level ends, thereby gaining a long-lasting significant advantage in the next level by being excessively superior in the beginning.)

It looks like you playtested quite well, [...]
Not a lot actually (yet).

[...] healer placement: yes, their target selection is kind of basic: whatever is in range and needs healing, top-to-bottom left-to-right first, which gives quite unbalanced healing. Maybe I could add another upgrade for the healers to do smart healing, i.e. lowest hp first.
If it's top-to-bottom left-to-right, then that explains why some units are sometimes neglected. That's quite arbitrary, I really think this should be changed urgently as it neither serves realism nor a game mechanic. Maybe near-to-far, then random would be a better default (non-upgraded) behavior.

Nanobots is a cool idea, but perhaps as additional units, because the current units already refer to the human immune system (in names and graphics), and I don't want to throw that away.
I meant that the tech tree with all its units and names remains, but the units become robotic instead of biological. In other words, a reverse-engineered human immune system that's reimplemented with nanobots. That gives you a 'story' (human immune system destroyed/insufficient in the future), makes some of the non-realistic things a bit more plausible, and gives some room for weird future experiments.
 
Last edited by a moderator:
[...] the sound issues - is it only the sound effects or also the music? Does it occur mostly in "crowded" moments when there are a lot of microbes around and a lot of action going on? Could you check the pndrun_microbes.out for buffer underruns?
It's mainly the sound effects. The crackling also happens when there is 1 non-shooting enemy and I've placed a single unit that's shooting the enemy. In that situation there's a crackling sound when the sound effect for shooting ends.


There have not been buffer underruns during that session.

OK, I'll have to sanitize the sounds then, could be there are some clicks in them.

I also noticed that the transition between two music loops (or a 'joint spot' inside a single music sound file?) is sometimes a bit bumpy (maybe the timing is slightly off somewhere). It also crackles there.

Yes, sometimes the SDL_mixer looping seems to be not very fluent. Maybe I'll have to reduce the buffer size or something.

The energy bonus transfer (1/4th of the remaining energy gets added to the starting energy of the next level) is supposed to be a feature, not a bug :) - the idea is that you get rewarded for playing levels in a row versus doing lots of restarts.
I thought so, but I don't think it really makes sense as it basically introduces two branches of difficulty. I don't think this is very elegant, apart from having some balance problems (for instance, by building the right kinds of units throughout a game, one could usually regain quite a lot of energy by destroying units shortly before the level ends, thereby gaining a long-lasting significant advantage in the next level by being excessively superior in the beginning.)
Yes, maybe I should remove this "feature".

[...] healer placement: yes, their target selection is kind of basic: whatever is in range and needs healing, top-to-bottom left-to-right first, which gives quite unbalanced healing. Maybe I could add another upgrade for the healers to do smart healing, i.e. lowest hp first.
If it's top-to-bottom left-to-right, then that explains why some units are sometimes neglected. That's quite arbitrary, I really think this should be changed urgently as it neither serves realism nor a game mechanic. Maybe near-to-far, then random would be a better default (non-upgraded) behavior.
Yes, I could change that. The current behavior is just very easy to implement. Actually random would be a bit tricky to implement: you don't want a new random choice in every frame, so you have to remember the choice for some time, but then the target could be destroyed in the meanwhile and so on. Lowest hp first is easier to do, I'll just make that the behavior.

Nanobots is a cool idea, but perhaps as additional units, because the current units already refer to the human immune system (in names and graphics), and I don't want to throw that away.
I meant that the tech tree with all its units and names remains, but the units become robotic instead of biological. In other words, a reverse-engineered human immune system that's reimplemented with nanobots. That gives you a 'story' (human immune system destroyed/insufficient in the future), makes some of the non-realistic things a bit more plausible, and gives some room for weird future experiments.
I see. Yes, sounds good. The enemy microbes could then also be bio-engineered killer stuff like berserker bacteria ;)


If someone would like to invent some storyline along these lines, either in plain text or graphically as one or more 800x480 PNG images, feel free to do so and I'll put it in the game.
 
I'll just pop in to say that I like the proposed backstory, since it gives the player a sensible role as the master AI controlling the nanobots and a more logical way energy is converted to units that fast (some kind of energy-matter conversion that creates the nanobots) and from dead enemies to energy (matter-energy conversion targeting system needs static enemies). The enemy spawners could be some kind of spores from a biological weapon that attack the body using a wide range of bacteria and virii to render any natural defenses moot. You could even have some "friendly unit spawners" in some levels that create the kind of stuff you already have, but as a lot weaker versions. The possibilities with this storyline are quite diverse.
 
Back
Top