# I am the Watcher. I am your guide through this vast new twtiverse.
#
# Usage:
# https://watcher.sour.is/api/plain/users View list of users and latest twt date.
# https://watcher.sour.is/api/plain/twt View all twts.
# https://watcher.sour.is/api/plain/mentions?uri=:uri View all mentions for uri.
# https://watcher.sour.is/api/plain/conv/:hash View all twts for a conversation subject.
#
# Options:
# uri Filter to show a specific users twts.
# offset Start index for quey.
# limit Count of items to return (going back in time).
#
# twt range = 1 13
# self = https://watcher.sour.is/conv/p6gk6qa
Last week of my vacation. I made a little racing game for real-mode DOS that uses ray casting for rendering. There’s not a lot of game logic, except for lap timing and the tiles next to the walls have very high friction.
The tracks are procedurally generated. You can select one from the command line. (I love that concept very much.)
Getting the basic game done wasn’t too hard. I could reuse a lot of code from my little pool billiards game.
But … oh my goodness, the performance? The video was made on my Pentium 133, which is *very* powerful for the DOS era. And yet, it barely makes it above 25 FPS. I already used a couple of tricks (no floating point in some parts, try to keep an eye on cache locality, …) and I’ve passed on texturing the floor. The hot code paths are those that copy data in memory, like reading a pixel value for a texture and then copying it to the VGA buffer.
I’ve learned to appreciate games like Duke Nukem 3D a lot more now – how on earth can they be so fast? 🤯 I’ve got some homework to do …
https://movq.de/v/18f0d4be8d/MVI_6951.MOV.mp4
Last week of my vacation. I made a little racing game for real-mode DOS that uses ray casting for rendering. There’s not a lot of game logic, except for lap timing and the tiles next to the walls have very high friction.
The tracks are procedurally generated. You can select one from the command line. (I love that concept very much.)
Getting the basic game done wasn’t too hard. I could reuse a lot of code from my little pool billiards game.
But … oh my goodness, the performance? The video was made on my Pentium 133, which is *very* powerful for the DOS era. And yet, it barely makes it above 25 FPS. I already used a couple of tricks (no floating point in some parts, try to keep an eye on cache locality, …) and I’ve passed on texturing the floor. The hot code paths are those that copy data in memory, like reading a pixel value for a texture and then copying it to the VGA buffer.
I’ve learned to appreciate games like Duke Nukem 3D a lot more now – how on earth can they be so fast? 🤯 I’ve got some homework to do …
https://movq.de/v/18f0d4be8d/MVI_6951.MOV.mp4
Last week of my vacation. I made a little racing game for real-mode DOS that uses ray casting for rendering. There’s not a lot of game logic, except for lap timing and the tiles next to the walls have very high friction.
The tracks are procedurally generated. You can select one from the command line. (I love that concept very much.)
Getting the basic game done wasn’t too hard. I could reuse a lot of code from my little pool billiards game.
But … oh my goodness, the performance? The video was made on my Pentium 133, which is *very* powerful for the DOS era. And yet, it barely makes it above 25 FPS. I already used a couple of tricks (no floating point in some parts, try to keep an eye on cache locality, …) and I’ve passed on texturing the floor. The hot code paths are those that copy data in memory, like reading a pixel value for a texture and then copying it to the VGA buffer.
I’ve learned to appreciate games like Duke Nukem 3D a lot more now – how on earth can they be so fast? 🤯 I’ve got some homework to do …
https://movq.de/v/18f0d4be8d/MVI_6951.MOV.mp4
@movq Very cool! what language is used for the coding?
@stigatle Almost 100% C. A tiny little bit of inline assembly, but it’s just a few instructions.
I use Open Watcom V2 to cross-compile it directly from Linux, pretty handy.
@stigatle Almost 100% C. A tiny little bit of inline assembly, but it’s just a few instructions.
I use Open Watcom V2 to cross-compile it directly from Linux, pretty handy.
@stigatle Almost 100% C. A tiny little bit of inline assembly, but it’s just a few instructions.
I use Open Watcom V2 to cross-compile it directly from Linux, pretty handy.
looks nice!
Good idea reusing that engine (based on Wolfestein was I reading?) for a racing game 😀
@eapl.me Yeah, the good thing about racing games is that they’re so simple. 😅 No story needed, no complex game logic. It was perfect for this little toy project. (It’s not the actual Wolfenstein engine, though, it’s just the same method of rendering. 😅)
@eapl.me Yeah, the good thing about racing games is that they’re so simple. 😅 No story needed, no complex game logic. It was perfect for this little toy project. (It’s not the actual Wolfenstein engine, though, it’s just the same method of rendering. 😅)
@eapl.me Yeah, the good thing about racing games is that they’re so simple. 😅 No story needed, no complex game logic. It was perfect for this little toy project. (It’s not the actual Wolfenstein engine, though, it’s just the same method of rendering. 😅)