Escape from the elemental maze by triorph

[raw]
made by triorph for LD21 (-)
You are a ball of plasma trapped in an elemental maze. As you explore you can find different elemental modes to aid you in escaping unscathed from the numerous monsters out to get you.

Keys:
Arrow keys: movement
Esc: Exit
1 - raw mode (default mode. Gives you more health)
2 - light mode (enemies notice you more, but after 5 seconds you get path finding to nearby objects of interest)
3 - plant mode (slower movement but decreased damage from enemies and increased health regen)
4 - lightning mode (take damage over time but damage nearby enemies)
5 - water mode (enemies lose all friction and have worse control (doesn't work well, don't use))
6 - shadow mode (enemies less likely to notice you, but you take more damage)
7 - air mode (you move a lot faster, but are extremely vulnerable to damage)

Tested in both linux and windows. You need python2.6 (or greater but not 3.0), pygame and python_openGL to run.

Can download pygame installer for windows easily, but I found for pyOpenGL I had to download setuptools and run from the command line

To run the game, just run the "elemental_escape.py" file.

c:\python26\scripts\easy_install.exe PyOpenGL PyOpenGL-accelerate

Known issues:
-Framerate is quite low (I think due to locking inefficiencies between movement and drawing threads)
-Water mode allows monster to go very fast due to poor drag model.
-Sometimes you (and monsters) can cut through the walls at their ends (not a big deal but not perfect)
- breadth first search for path-finding (light mode) is inefficient. Maximum path-size is probably a good idea so the light-mode only checks for nearby items.

ToDo:
- Text to the screen for detailing keys to use, powers from the modes, that you've won the game, or lost the game, etc.
- Better graphics (including animations), sound.
- More than one kind of enemy, more interesting escape from them.

Tips on playing the game:
- Monsters are less agile than you are. If you quickly dodge them effectively they can't find you.
- You always start in the bottom-left of the maze, and the exit is always at the top-right of the maze.

Also just a warning: I should've said this earlier so sorry to those who put the effort in and were disappointed. I did this game in very little time and I'm not really very experienced in game programming. The main problem is that I got it working and then didn't tweak it to be actually fun. So this game isn't really very good and I am aware of this. Only download if you're willing to try a not so good game and give it the rating it deserves.

Ratings

Coolness 0% 418
Overall 1.29 499
Audio 1.00 371
Community 1.00 529
Fun 1.29 495
Graphics 1.29 487
Humor 1.00 466
Innovation 1.29 499
Theme 1.43 496

Feedback

馃帳 triorph
21. Aug 2011 路 23:28 UTC
Whoops. I said tested only in python meant tested only in linux.
Amadeus
23. Aug 2011 路 04:31 UTC
Are your files still hosted? I am getting a could not connect message trying to download your game.
Shigor
23. Aug 2011 路 10:31 UTC
Can't download too...
Felipe Budinich
24. Aug 2011 路 03:30 UTC
couldn't download either :-/
lilserf
24. Aug 2011 路 03:55 UTC
Yup, can't download.
Shigor
24. Aug 2011 路 18:07 UTC
After I went through a lot of trouble to get python and all dependencies running on windows I found it wasn't worth my time. This is one of the worst entries I've tried.
馃帳 triorph
24. Aug 2011 路 20:25 UTC
Sorry Server went down. Should be up now.
tcstyle
25. Aug 2011 路 18:29 UTC
A pity I haven't figured out to start it yet. Have to check the pyopengl lib again.
Have you tried building a windows exe with py2exe or similar?
kevglass
26. Aug 2011 路 13:30 UTC
Download still failed for me. Server is up atm?
Cosmologicon
28. Aug 2011 路 06:15 UTC
Sorry, this is unplayably slow for me. It looks like around 1 fps, and the collision detection completely fails, so it jumps between inside and outside of the maze.

Based on the appearance of the graphics, there's no reason it should be anywhere near that choppy. I haven't looked at your source, but I don't think you should have separate threads for moving and drawing. I think pyOpenGL might be overkill for this. Maybe a regular old pygame game would be good for next time, if you decide to use pygame again.

Anyway, I'm not frustrated. This is Ludum Dare after all. :)
ExciteMike
28. Aug 2011 路 21:44 UTC
I strongly recommend using py2exe to package games up for a windows release!
demonpants
29. Aug 2011 路 20:03 UTC
Can someone tell me why Python devs are so against making executables? I am not a python dev, so I don't know what I need to get this to run. No instructions of any kind... You've got the least ratings of any of 699 games right now, and this is why.
ExciteMike
30. Aug 2011 路 02:40 UTC
Well, I got it to run, but with it constantly jerking back and forth and having such a poor framerate, I couldn't stand to play it for very long :( Congrats on getting something mostly working, though!

I tried to make an exe using py2exe, but it's having a couple of problems I don't really understand.
Mjiig
30. Aug 2011 路 18:27 UTC
Server is down for me right now I'm afraid. I can't test the game if i can't get it :(
summaky
04. Sep 2011 路 12:38 UTC
I can't play it under Linux. It shows the window but shortly afterwards it crashes with the following traceback:


File "elemental_escape.py", line 203, in <module>
game = escape_game()
File "/tmp/engine.py", line 36, in __init__
self.after_init()
File "elemental_escape.py", line 17, in after_init
self.texture_set.load('air')
File "/tmp/gl_sprite.py", line 89, in load
self.textures[texname] = texture(texname, texappend)
File "/tmp/gl_sprite.py", line 24, in __init__
self.load_texture_image(texname, texappend)
File "/tmp/gl_sprite.py", line 51, in load_texture_image
self.texture, self.width, self.height = self.loadImage(filename)
File "/tmp/gl_sprite.py", line 43, in loadImage
GL_UNSIGNED_BYTE, textureData)
File "/usr/lib64/python2.7/site-packages/OpenGL/latebind.py", line 45, in __call__
return self._finalCall( *args, **named )
File "/usr/lib64/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
raise err
OpenGL.error.GLError: GLError(
err = 1281,
description = 'invalid value',
baseOperation = glTexImage2D,
pyArgs = (
GL_TEXTURE_2D,
0,
GL_RGBA,
40,
40,
0,
GL_RGBA,
GL_UNSIGNED_BYTE,
'\xff\xff\xff\x00\xff\xff\xff\x00\xff...,
),
cArgs = (
GL_TEXTURE_2D,
0,
GL_RGBA,
40,
40,
0,
GL_RGBA,
GL_UNSIGNED_BYTE,
'\xff\xff\xff\x00\xff\xff\xff\x00\xff...,
),
cArguments = (
GL_TEXTURE_2D,
0,
GL_RGBA,
40,
40,
0,
GL_RGBA,
GL_UNSIGNED_BYTE,
'\xff\xff\xff\x00\xff\xff\xff\x00\xff...,
)
)
marudziik
08. Sep 2011 路 20:06 UTC
@demonpants Most of the time because py2exe isn't all that great.
But in this case... Sorry, I'm using Python myself for work and after some time wasted on getting all dependencies to work, I decided to move on. This isn't a Python/PyGame competition, there should be at least some info on what to get to make this work.
GigaClon
12. Sep 2011 路 22:07 UTC
no executable