Game is really simple, written in about 2,5 weeks. You are yellow SMILE and you have to fight with red SMILES, using one of eight types of weapons, including grenades.
There are friendly yellow SMILES too, they can provide some help sometimes ...
You will get experience points for kills, more for harder enemies, extra damage, killing spree's and couple of other things ...
There is infinity number of levels, generated randomly at start. You can travel between levels using elevators (green for going previous level, red for going next level).
After gaining new level of experience, you can spend some extra points for attributes like shooting accuracy, shooting range, learning speed, camouflage and else...
Game is 3d, but on 2d maps, there is nothing else but floors and walls ... and of course SMILES.
There is some nice physics, used to calculate movement of dropped weapons or grenades. There are many colourfull static lights and some dynamic (like flashlight for example).
Engine ... there is no engine There is only twodimensional array of tiles, generating THE MAP and onedimensional array of smiles, generating THE FUN. There is no sound also. Rpt. no sound. Sorry. Will be in next version.
Lighting is both static and dynamic. Static is precalculated after random generating the map, and dynamic is just simple as that: the same, but in realtime.
As far as I remember, most things in code (lighting, collisions, movement, ai) is done by crude and brutal pack of functions like ray4something. And it's really horribly written.
And one more warning: mostly second "start-game" after death will cause error: rotating camera, you are dead all the time. Of course you can exit using esc. And just run the program again.
MORE INFO, DOWNLOAD
You can see some more screens, download test versions at [www.randomworks.prv.pl](www.randomworks.prv.pl)(page in polish) or just download last playable version 1.3here (use button POBIERZ - sorry - whole page in polish)
AND WHEN YOU START THE GAME YOU NEED TO KNOW THE KEYS
Game is in english and below I provide information about keys used in game:
w,s,a,d - standard movement mouse X - rotate player
mouse Y - move camera up/down
left mouse click - shoot
r - reload
1 to 8 - choose a weapon
tab - next weapon
enter - use a elevator (when close to)
right mouse click - use a bonus (refreshment or bullet time)
z - on/off short player info
m - on/off map
c - on/off character menu
F2 - on/off precise dynamic lights
F3 - on/off FPS counter
Esc - exit
I hope you will enjoy it. You can write me: email@example.com
Hah, I love it. The military smiley made me laugh. Good job on the theme.
On the wish-list side of things, some sound and eventually some multiplayer would really do wonders =)
Very nice piece of game dude!!!! The advices I can give you are:
I was just wondering what API did you use, Direct3D, OpenGL?
I played the game, really liked it... And i was thinking it would make a decent multiplayer game if you polished it up some...
Other than that, I think you should make the health display more prominent... Maybe a health bar on the bottom right corner?
Nice clean game...
First, thank you for feedback
sound will be implmented in next version, but multiplayer I think not. The structrure of this game is so pure simple, that multi is next to impossible at the moment. There is much more features to polish in first place
And about API: I used Opengl without ANY extensions ...
your game is very nice; I like the game play and the feel.. it has something in it, i cant quite point it out, but something that makes it feel cool, hahaha.
anyhow, if you don't mind, how are you going about with your dynamic lighting? You hinted about some ray function, but i'm thirsty for more information =)
dynamic lighting uses the same calculation as static lighting, but in realtime of course it can use much smaller range for lights
algorithm goes like this:
- map is built by tiles
- every tile is a quad and has 4 points (corners)
- rendering uses this points for normal brute force opengl glVertex
- ... and glColor with calculated light in this point of world
- for every light
(where light has "strength", "range" and RGB "color")
- find tiles in range
- send rays for every 4 points of every tiles (used only for collision with walls)
- if no collision detected calculate using range and strength - add calculated color to 4 colors of tile
there is two possible algorithms for dynamic lighting: simple and accurate (in game you can change by F2)
simple is sending 1 ray for every tile
accurate is sending 4 rays for every tile
that's I hope is answer for your question
Very nice work and great concept.