Escape from the elemental maze by triorph
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.
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.
| All OSs (tested in both windows and linux) | http://miek.dyndns-home.com/ludumdare/elemental_escape.zip |
| Source | http://miek.dyndns-home.com/ludumdare/elemental_escape |
| Original URL | https://ludumdare.com/compo/ludum-dare-21/?action=preview&uid=236 |
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 |
Have you tried building a windows exe with py2exe or similar?
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. :)
I tried to make an exe using py2exe, but it's having a couple of problems I don't really understand.
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...,
)
)
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.