This page permanently redirects to gemini://yaky.dev/2024-02-29-dark-streets-tech-demo-1/.
Dark Streets Tech Demo 1
Playable demo of a Wolfenstein-like FPS I have been developing on PICO-8.
=> Download the cart | Play in the browser
About
Dark Streets is a first-person shooter for PICO-8, mechanically most similar to Wolfenstein 3D or Blake Stone, but also inspired by Doom, Blood, and Ion Fury.
I have been slowly developing this game in my free time over the last year and a half. I referenced LoDev and a paper by Amanatides and Woo for some of the raycasting steps, but the rest of the code and graphics are mine.
Big thanks to other PICO-8 first-person games:
=> Trial of the Sorcerer
=> Caped Feline Arena
=> Star Beast
=> Whiplash Taxi Co (not a shooter, but is first-person)
Raycasting renderer
Since the setting of the game is a city, I specifically wanted to write a renderer that could draw tall buildings, short objects, doors, and interiors. I think I am pretty close.
- Pretty performant: Everything below takes up only 50-60% of CPU, unless you go crazy with geometry and distances.
- Fixed camera height: This makes walls look better. Originally, I had variable camera height and headbob, but that made textures a bit too jagged.Might reconsider based on performance later.
- Variable brightness: Based on distance, using draw palettes.
- Floor textures: Pretty basic, using horizontal TLINE
- Multiple floors! Normally, I see raycasters render just one floor (Caped Feline Arena and Anarch are notable exceptions), so this is a bit unusual, and it allows more interesting designs.
- Ceilings. Although texture-less, ceilings are rendered separately from the sky, and allow for features such as archways, underpasses, and building interiors.
- Animated doors: They are also rendered halfway on the tile to stand out from the walls.
- Z-buffer and clipped sprites: This piece is not very efficient yet, but works pretty well.
Gameplay
You can walk around, open doors, pick up and fire weapons (but can't kill the enemies yet).
- Variety of objects: Solid obstacles, ceiling decor (can be walked under), floor decor (cannot be walked through, but can be shot over)
- Five weapons: Infinite pistol, shotgun, gatling gun, flamethrower, and a rocket launcher (unfinished).
- One large level, hoping to keep it like that for final game. Might not be possible with number of objects per level.
- Health and weapon pickups.
- Weapon switching: When picking up a new weapon and when running out of ammo.
- Enemies: Basic move-aim-fire behavior, in beginning stages.
Known issues
- Looking through open doors is slow. This is due to calculations on which vertical slice must be rendered for the door on each ray.
- Adding many objects will slow the game down a lot, due to many visibility and collision calculations.
=> home
email me: hi@yaky.dev
CC BY-NC yaky.dev
Proxy Information
- Original URL
- gemini://yaky.dev/2024-02-29-dark-streets-tech-demo-1
- Status Code
- Success (20)
- Meta
text/gemini;lang=en-US
- Capsule Response Time
- 788.364427 milliseconds
- Gemini-to-HTML Time
- 0.596035 milliseconds
This content has been proxied by September (ba2dc).