Release Pandora Microbes!


I come back from holliday and get that nice update.


Great :) .


You'll get a new fortress soon with protecting walls and some improvements.
 
It crashes when I want to save a self made level.


I didn't unlock the self made levelpack if that's the problem.


The level editor only allown 13x19 but levels can be 14x19.


If I load 14x19 it's fine but when I lower to 13x19 and want to increase again it has no effect.


From 12 to 13 is fine.
 
Shouldn't be a problem that it's not unlocked. Yes, the level editor puts some stronger restrictions on things like level size than the actual restrictions - this is intentional. I could increase the limit a bit, but you can indeed circumvent it by loading a larger level.


The crashing is of course not intentional :)


Can you reproduce it? What does the file /tmp/pndrun_microbes.out say?
 
pndrun.out:

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


PND : /media/mmcblk0p1/pandora/menu/microbes0.8.pnd


PND_FSTYPE : Squashfs


APPDATADIR : /media/mmcblk0p1/pandora/appdata/microbes


APPDD_FSTYPE : vfat


PND_CPUSPEED : <unset>


EXENAME : run


ARGUMENTS : <unset>


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


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


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


Mounting the Union FS : mount -t aufs -o exec,noplink,dirs="/media/mmcblk0p1/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: in_evdev: found "keypad" with 84 events (type 00100013)


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


omapsdl: found 2 evdev device(s).


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


OK.


Setting video mode: 800x480x32...fbdev: /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: [OGG]


Supported music decoder: [FLAC]


Supported music decoder: [MP3]


num: 2


Found joystick nub0


axes: 2


found left nub!


Found joystick nub1


axes: 2


found right nub!


Level pack Tutorial: max lvl=5


Level pack Microbes: max lvl=13


Level pack Gadgetoid: max lvl=1


Level pack Self-made: max lvl=100


Loading music: data/music/menu.mp3


Music loaded


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...


Loading level bg image data/bg.png


ok


Loading menu bg


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


Loading level images...


Loading level bg image data/menubg.png


ok


Loading menu bg OK


Init menu


Intro message


Loading done


Loading level 1


Loading 30 enemy waves of max size 25


Done


Loading thing data from data/techtree.dat


Loading level 1


Loading 30 enemy waves of max size 25


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.dat


Loading level images...


Loading level bg image data/bg.png


ok


Loading level 2


Loading 30 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 3


Loading 50 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 4


Loading 50 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 5


Loading 20 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 6


Loading 40 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 7


Loading 50 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 8


Loading 50 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 9


Loading 40 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 10


Loading 75 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 11


Loading 40 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 10


Loading 75 enemy waves of max size 20


Done


Loading thing data from data/techtree.dat


Loading level 10


Loading 75 enemy waves of max size 20


Done


Loading music: data/music/loop4.mp3


Music loaded


Loading level sounds from data/sounds/


Loading enemy data from data/enemies.dat


Loading thing data from data/techtree.dat


Loading level images...


Loading level bg image data/bg.png


ok


frames:500 in 22051 ms (22.67/30 FPS), menubg: 10 enemies / game: 0 enemies


Loading music: data/music/menu.mp3


Music loaded


Loading level 10


Loading 75 enemy waves of max size 20


Done


Loading music: data/music/loop4.mp3


Music loaded


Loading level sounds from data/sounds/


Loading enemy data from data/enemies.dat


Loading thing data from data/techtree.dat


Loading level images...


Loading level bg image data/bg.png


ok


Loading level 1


frames:500 in 18704 ms (26.73/30 FPS), menubg: 15 enemies / game: 0 enemies


Loading level 1


Exiting: Could not open level file for writing!


real 0m44.572s


user 0m19.195s


sys 0m0.750s


[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


You can also reproduce it.


Load my "Grand fortress", edit nothing and save to slot 1.


I'll try it with a level that's not 14x19. Perhaps that's the problem.


Edit: Tried with level 6 and also crashes.


Do I have to delete the appdata folder first?


I'll try.


Edit 2: Doesn't help.


I also unlocked "self made level" levelpack.


Doesn't help either.


It's up to you now to find the error :) .
 
Last edited by a moderator:
Well the problem seems to be this:


Exiting: Could not open level file for writing!


I'll investigate this further...
 
OK, here's a quick fix suggested by Neelix:


in appdata/microbes, create the folder "levels" and a subfolder in it called "3"


so the folder appdata/microbes/levels/3/ should exist. Then saving should work. This will be fixed in the next version.
 
I fixed the version on the repo, so new downloads should not have this bug anymore. Forgot to increment the version number though.
 
Oops, I introduced a bug that crashed the game when you select the "self-made" level pack. Fixed it, it's on the repo, bumped the release number this time.


Sorry about this - I should have been a bit more careful :)
 
I noticed a memory leak, after playing for a long time microbes uses lots memory and the Pandora grinds almost to a halt.


Not a big deal but maybe run valgrind over it or use a malloc wrapper to trace stuff or something like that.


The new evil pac-man microbes are great, thanks :) haven't tried the editor yet
 
Last edited by a moderator:
OK, got valgrind to work and I think the memleaks should be gone now, or at least the big ones. There still is a small one caused by SDL_mixer, which will get automatically fixed if the firmware gets the latest version of SDL_mixer, but it's not a very important one (I could fix it now by including my own SDL_mixer but I don't think I'm gonna bother).


How much playing do you need to run out of memory? If it's a big problem, I'll upload a new build to the repo, but if it only occurs after a few hours, I'll just wait until the next version - I don't want to spam you with updates :)
 
finally had some time to spend on microbes. Overall it's a great game, so I only have some random nagging left (no flaws, or errors) :

  • The pause screen flashes at a very high speed (maybe it has something to with my Pandora set to 1000 MHz), which is kind of annoying (or worse if you have some kind of epilepsy).
  • I like the new design of the enemys - but I don't like the style contrast the defending cells have to them - maybe the defending cells graphics could also be generated ?


My personal experience with tower defense games is, that playing them gets a little dull after a while as the underlying principle is just too simple to keep me wanting to play it. Two thoughts that could "spice it up" a little:

  • Do the three different cell types in the third evolutinary step (Neutrophil, Eosinophil, Monocyte) have different effects on different targets ? Specialization could bring in more strategic elements
  • Don't give the player the power over the full arsenal in the beginning - the player should wan't to proceed to the higher levels to get new toys to play with
 
I'll look into the pause screen thing - looks like a bug.


I don't really feel like re-doing the graphics for the defending units, but I see your point. On the other hand, the contrast makes it visually clear what is yours and what are the invading microbes, and it makes sense that the invaders "stand out".


The idea of specialization is good, maybe something like having a bonus or penalty against particular microbe types (the 4 types at the moment are bacteria ("walkers"), viruses ("swimmers"), viruses that can go through your defenses ("flyers"), and berserkers).


The last point about not getting all the units at once is also a good one; to some small extent this is already the case since the tutorial levels give you less units to play with. It could be a good idea to make it more incremental.


Currently the levels are not very coherent, there's no "big story" behind the sequence of levels. The game would be more interesting if it had real "campaigns", scenarios with many levels. However I kind of suck as a writer (not that lots of text is needed, maybe the level titles are enough, but still there should be some kind of plot), and I'm not very good at designing levels, so I'm kind of hoping that somebody could help me with that. Since there's a level editor included now, there are no technical hurdles left :)
 
You could add a storry mode.


This mode allows you to make a storry based gameplay.


In the storry mode you alwsys play the levels in a certain order.


After each level you go into some kund of upgrade shop whic allows you to uy more units or upgrade them. You might also add the feature to buy more life points (I mean the 10 you usually have).


That mode will make the player to save as many energy as possible.


In free mode you have what you have now plus additional stages and a better stage select screen.


For units:


In my oppinion the purple big pacmens are a little to big.
 
On my 512MB Pandora it ran out of memory after about 1 or 2 hours. It's not a big deal can just restart the game, but might lock up the Pandora for people who don't understand what's going on. I'm not sure if it happens while the game is idling on the front screen, or only during actual gameplay.


For me one difficulty with the game in the harder modes, is that you lose a lot of energy as well as a cell when you get hurt. This means any slip the lets even one microbe through is fatal or a massive setback, you can probably not build anything to fix the situation! In that case, might as well have just one cell in the first place. It's great fun to play this game, but I'm not sure that "double punishment" gives the best gameplay. It's like a reverse handicap, if you're doing worse it makes it harder rather than easier. Do you know what I mean? It plays well anyway, and it's realistic, please don't feel you have to change it.
 
The memory leaks occurred whenever a level got loaded (new level start or restart) - some of the old level data would not get properly free()'d. Fixed now.


Maybe the double punishment is a bit too strong - if it happens near the start of a level you'll most probably have to restart. Maybe I'll keep it, but just make the amount you lose smaller.


What about the energy bonus for speeding up? (see also the new paragraph in the story, about energy-saving underclocking which makes things appear faster) Is this a feature that should be kept, removed, toned down or up?
 
Oops, I introduced a bug that crashed the game when you select the "self-made" level pack. Fixed it, it's on the repo, bumped the release number this time.


Sorry about this - I should have been a bit more careful :)

Are you sure you have fixed it ? Cause after I selected that pack it crashed, and now it doesn't start anymore, i just hear "Pandora", then crush...


And another note, after every gadgetoid level I had the "Unlocked Self-made" message.


Here is my log if can be useful.

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

PND			 : /media/POWERSD/pandora/menu/microbes0.8.pnd

PND_FSTYPE	 : Squashfs

APPDATADIR	 : /media/POWERSD/pandora/appdata/microbes

APPDD_FSTYPE : vfat

PND_CPUSPEED : <unset>

EXENAME		 : run

ARGUMENTS	 : <unset>

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

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

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

Mounting the Union FS : mount -t aufs -o exec,noplink,dirs="/media/POWERSD/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: in_evdev: found "keypad" with 84 events (type 00100013)

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

omapsdl: found 2 evdev device(s).

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

OK.

Setting video mode: 800x480x32...fbdev: /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]

num: 2

Found joystick nub0

axes: 2

found left nub!

Found joystick nub1

axes: 2

found right nub!

Level pack Tutorial: max lvl=7

Level pack Microbes: max lvl=13

Level pack Gadgetoid: max lvl=7

Level pack Self-made: max lvl=100

Loading music: data/music/menu.mp3

Music loaded

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...

Loading level bg image data/bg.png

ok

Loading menu bg

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

Loading level images...

Loading level bg image data/menubg.png

ok

Loading menu bg OK

Init menu

Intro message

Loading done

Loading level 1

Loading thing data from g¶Šb±[¯~W±{R±~R³…X¯€Q²…U¶ŠX´‰X·‹\¶Ž]¸`»™j»šj»™j»›n¼Ÿq½›o½žp¾ q¾ t¾ w¼›u½›{À ƒÂ¤‹¾¤—¾¨š½¬ŸÂ´¬Æ½¶ÆÁ¹ÇżÇŽÆÅ»ÆżÇŹÆÀ­¾©Ž³‰b®qC¨],¤V"¥M¨I£@¤@£> 9£=¤9¤1¤-¤/

¥2£*˜

Exiting: Thing data file not found!

real 0m2.849s

user 0m1.609s

sys 0m0.508s

[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


Anyway I'm astonished at how better the game is from my first play !! Very good work !! ;)


And thanks for the route lines !! I'm a bit colorblind and it's difficult sometimes to distinguish the different terrains, so that lines are my heroes !! ^_^


EDIT: I edited the savefile and changed "level pack" from 3 to 2, and now the game start with gadgetoid pack selected, but if I change it to Self-made it's still a crush
 
Last edited by a moderator:
Back
Top