GLforth
About
GLforth is an OpenGL engine written in Gforth.Gameplay
You were playing a nice game of chess when suddenly the holodeck failed, security mode was disabled and you were attacked by Tron-Observers from the evil kernel32. Luckily you have found a rocket launcher from the Umbrella cooperation to defend yourself. Try to survive as long as possible, maybe someone (not the masterchief!) will come through the halo in the center of the world and rescue you ;)Authors
- Gerald Wodni ( Programmer - Maintainer )
- Daniel Abouakil ( Artist, Debugging - inactive )
- Norbert Sattler ( Artist, Debugging - inactive )
Screenshots
r18
r29
Benchmarks
Normal Game
CPU | GPU | Graphics-RAM | Resolution | Multisamples | Average FPS |
i386 1800MHz 512 KB Cache | GForce 8800 | 512 | 1024x768 | 4 | 626 |
2 | 1 | 2048 | 1280x1024 | 64 | 42 |
Dual Athlon 2,3 GHz | Radeon HD 3450 | 512 | 1024x768 | 1 | 120.040.1 |
pentium dual core 2.7ghz | radeon something | 512 | 1280x1024 | 1 | 974 |
x86_64 8x3400 MHz 8512 KB Cache | GeForce GTX 645 | 1024 | 1280x1024 | 1 | 60 |
Cube Benchmarks
CPU | GPU | Graphics-RAM | Resolution | Multisamples | Cubes | Average FPS |
i386 1800MHz 512 KB Cache | GForce 8800 | 512 | 1024x768 | 4 | 15625 | 13.39 |
64 | 640x480 | 1 | ||||
256 | 640x480 | 4 | ||||
i386 1800MHz 64 KB Cache | GForce 4 | 128 | 1024x768 | 1 | ||
i386 1800MHz 64 KB Cache | GForce 4 | 128 | 800x600 | 1 | 1024 | |
fdbv | 242334 | 64 | 640x480 | 1 | 2345245 | 3453453 |
1333 | 1000 | 128 | 1280x1024 | 8 | 4 | 50 |
fg | 64 | 640x480 | 1 | |||
64 | 640x480 | 1 | ||||
2048 | 1280x1024 | 4 | ||||
4444 | 4555 | 512 | 640x480 | 64 | 555 | 3555 |
Problems / Feedback
Feel free to submit your ideas and experiences or problemsDocumentation
Control
- Keys
Key Action ESC Exit Game (clean exit) TAB Toggle Console-Active W,S Move Forward/Backward E,R Move Up/Down F Toggle Flashlight P Toggle Presentation Mode J Next Slide K Previous Slide - Console
Basically you can call every word from the console, once it is found, it gets executed, and if nothing crashed a green smiley is displayed. If the word is not found, a red smiley is displayed. However, if you use words with stack effects or other side-effects, the program will most likely crash, so here is a list of useful commands:Command Result enemies-show Displays enemies (play the game) enemies-hide Hide enemies (stop the game) houses-show Show 2 houses houses-hide Hide houses test You get a green smiley
Settings
- gams.fs
- window-width, window-height: window (contents) resolution
- window-fullscreen: instead of creating a window, glforth will render on the whole screen
- window-fovy: player's field of view angle
- window-clipping-near, window-clipping-far: elements outside this range will not be rendered
- player-movement-basic-speed: based upon this value the players frame based speed will be calculated
- fps-update: specifies the milliseconds between the environment updates (in the future the world will be updates after every frame)
- gl-multisamples: anti-aliasing factor (0 disables it), leave this to 0 until your gforth renders without problems
- cube-number: enables cube-benchmark (0 disables it), the number itself specifies the cubes per dimension
- debug-mode: will output some additional information to stdout during the game
- enemies.fs
- enemies-number: Number of allocated enemies
- enemy-dying-decrease: Alpha loss per world update
- rockets.fs
- rockets-light-offset: OpenGL features 8 lights supported by the GPU, this number specifies the first light used by rockets, together with ↓ this value must be ≤ 8
- rockets-number: number of allocated rockets
- rocket-segments: as a rocket consists of a cone, a pipe and a circle its not possible to display it without jaggies, increase this number to make the rocket "rounder"
- rocket-length-scale, rocket-diameter-scale: rocket's size in OpenGL-Units
- rocket-max-distance: maximum distance from world-center (when a rocket passes this distance it will self destruct)
- rocket-destruction-distance: rockets proximity ability, once a rocket gets this close of an enemies center it will blow up and kill the enemy
- world.fs
- star-number: Number of displayed stars
- star-seed: seed of the star-placing random generator
- star-size: size of a star (in OpenGl units)
- world-sections: quads per dimension (in OpenGL units)
Requirements
- Gforth 0.6.9
- libtool (also required by Gforth 0.6.9 itself)
- libSDL
- libGL
- libGLU
Downloads
- glforth_r18.tar.gz
first release
- glforth_r29.tar.gz
presentation-version for the EuroForth 2008
( features presentation mode + slides and in-game console ) - glforth_r30.tar.gz
Fixed game-loader to use the final c-interface of gforth 0.7.0+
- glforth_r43.tar.gz
Support for multiple games added
boolean-takeover added