TheMozg/awk-raycaster
Fork: 76 Star: 2414 (更新于 2024-10-22 15:34:10)
license: MIT
Language: Awk .
Pseudo-3D shooter written completely in gawk using raycasting technique
awkaster
Bring some old-school fun to your terminal! Explore the dungeon and shoot monsters in this pseudo-3D game inspired by the classic Wolfenstein 3D and Doom.
Running the game
gawk -f awkaster.awk
You need gawk
version >= 4.0.0
OS X users must install gawk
first. The easiest way to do this is to use Homebrew. Once it has been installed, run the following commands:
brew update
brew install gawk
NetBSD users require gawk
. The easiest way to do it is install it with pkgin:
pkgin install gawk
Alternatively install from sources using the pkgsrc framework:
cd /usr/pkgsrc/lang/gawk && make install
OpenBSD users require gawk
. The easiest way to do it is install it with pkg_add:
pkg_add gawk
Alternatively install from sources using the OpenBSD ports:
cd /usr/ports/lang/gawk && make install clean
Your machine will now be ready to run awkaster.
How to play
Your objective is to navigate the map and activate exit elevator, killing hordes of monsters in the process.
Controls:
- WASD - movement
- J/L - turn left/right. Hold shift to turn quicker
- spacebar - shoot
- num 1-4 - change color mode
- x - activate elevator (arrives after 1000 moves)
Adjusting resolution
By default game resolution is 64x48 "pixels", which are just a pair of ASCII symbols. That means your terminal needs to be at least 128 chars wide. You may change variables w
and h
to your liking.
Game engine
Wall rendering is done using ray casting. Monsters and projectiles are added after that as sprites. Ray casting is a simple rendering algorithm that doesn't require any 3d modeling or complex computation.
You can find an excellent tutorial here: http://lodev.org/cgtutor/raycasting.html
最近版本更新:(数据更新于 2024-09-04 22:56:21)
主题(topics):
3d, awk, game, raycast
TheMozg/awk-raycaster同语言 Awk最近更新仓库
2023-02-08 22:58:07 soimort/translate-shell
2021-05-18 17:05:41 alecmuffett/eotk
1970-01-01 00:00:00 dumblob/mysql2sqlite