# 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 24
# self = https://watcher.sour.is/conv/sdzpmwa
It’s still very, very young and obviously not yet finished, but I made a little pool billiard game for DOS:
https://movq.de/v/71b4f0230c/MVI_6870.MOV.mp4
(Full disclosure: Back in the day, there was a very similar game called “Magic Pool”: https://movq.de/v/06a59f5876/s.png https://movq.de/v/b82807d277/s.png It had a higher resolution with more pixels, but also way more flickering. My program took quite some inspiration from the UI of this game.)
Programming on DOS is surprisingly enjoyable and rather easy to learn, assuming you know a tiny little bit about 8086 assembly – that’s necessary to read docs like this one, which describes the mouse driver API:
https://stanislavs.org/helppc/int_33.html
All this is certainly *much, much* easier than anything we have today. Try getting a pixel on the screen with modern OpenGL. 😒
On the other hand, getting high resolution timestamps is hard(er). The resolution of _dos_gettime()
is only ~55 ms, which is unusably low. It took me quite some time to sift through this and the source code of DJGPP, now I have a short function that gives me timestamps of ~900 ns resolution:
https://www.xtof.info/Timing-on-PC-familly-under-DOS.html
It’s still very, very young and obviously not yet finished, but I made a little pool billiard game for DOS:
https://movq.de/v/71b4f0230c/MVI_6870.MOV.mp4
(Full disclosure: Back in the day, there was a very similar game called “Magic Pool”: https://movq.de/v/06a59f5876/s.png https://movq.de/v/b82807d277/s.png It had a higher resolution with more pixels, but also way more flickering. My program took quite some inspiration from the UI of this game.)
Programming on DOS is surprisingly enjoyable and rather easy to learn, assuming you know a tiny little bit about 8086 assembly – that’s necessary to read docs like this one, which describes the mouse driver API:
https://stanislavs.org/helppc/int_33.html
All this is certainly *much, much* easier than anything we have today. Try getting a pixel on the screen with modern OpenGL. 😒
On the other hand, getting high resolution timestamps is hard(er). The resolution of _dos_gettime()
is only ~55 ms, which is unusably low. It took me quite some time to sift through this and the source code of DJGPP, now I have a short function that gives me timestamps of ~900 ns resolution:
https://www.xtof.info/Timing-on-PC-familly-under-DOS.html
It’s still very, very young and obviously not yet finished, but I made a little pool billiard game for DOS:
https://movq.de/v/71b4f0230c/MVI_6870.MOV.mp4
(Full disclosure: Back in the day, there was a very similar game called “Magic Pool”: https://movq.de/v/06a59f5876/s.png https://movq.de/v/b82807d277/s.png It had a higher resolution with more pixels, but also way more flickering. My program took quite some inspiration from the UI of this game.)
Programming on DOS is surprisingly enjoyable and rather easy to learn, assuming you know a tiny little bit about 8086 assembly – that’s necessary to read docs like this one, which describes the mouse driver API:
https://stanislavs.org/helppc/int_33.html
All this is certainly *much, much* easier than anything we have today. Try getting a pixel on the screen with modern OpenGL. 😒
On the other hand, getting high resolution timestamps is hard(er). The resolution of _dos_gettime()
is only ~55 ms, which is unusably low. It took me quite some time to sift through this and the source code of DJGPP, now I have a short function that gives me timestamps of ~900 ns resolution:
https://www.xtof.info/Timing-on-PC-familly-under-DOS.html
Honestly, this whole DOS thing is “what I’m here for”. I find it super interesting and I haven’t been this motivated to do computer stuff in a long time (probably since I wrote my X11 window manager).
All the topics and concepts are challenging but relatively easy to understand in the end. The same goes for old-school computer graphic topics, like raycasting (or even basic raytracing, for that matter, that’s an old technique as well). You can read up on that and dig through it in a weekend or two. That’s just great.
And it’s in stark contrast to most of the “modern” topics that we have today. Like … try using Kubernetes or Terraform. Try learning Rust. It’s all gotten so convoluted and complex, it’s not fun anymore.
Honestly, this whole DOS thing is “what I’m here for”. I find it super interesting and I haven’t been this motivated to do computer stuff in a long time (probably since I wrote my X11 window manager).
All the topics and concepts are challenging but relatively easy to understand in the end. The same goes for old-school computer graphic topics, like raycasting (or even basic raytracing, for that matter, that’s an old technique as well). You can read up on that and dig through it in a weekend or two. That’s just great.
And it’s in stark contrast to most of the “modern” topics that we have today. Like … try using Kubernetes or Terraform. Try learning Rust. It’s all gotten so convoluted and complex, it’s not fun anymore.
Honestly, this whole DOS thing is “what I’m here for”. I find it super interesting and I haven’t been this motivated to do computer stuff in a long time (probably since I wrote my X11 window manager).
All the topics and concepts are challenging but relatively easy to understand in the end. The same goes for old-school computer graphic topics, like raycasting (or even basic raytracing, for that matter, that’s an old technique as well). You can read up on that and dig through it in a weekend or two. That’s just great.
And it’s in stark contrast to most of the “modern” topics that we have today. Like … try using Kubernetes or Terraform. Try learning Rust. It’s all gotten so convoluted and complex, it’s not fun anymore.
ha, I remember being a kid on the 90s and mind-blowed of seeing a pool/billiards game made on QBasic. Didn't know of trigonometry or physics, so for me it was like magic.
ha, I remember being a kid on the 90s and mind-blowed of seeing a pool/billiards game made on QBasic. Didn't know of trigonometry or physics, so for me it was like magic.
Never made a game like that (I don't enjoy digital billiards, got to say) but was always on my mind of something cool to exist.
Congrats!
@movq Hui! What's the deal with the red progress bar thingy at the bottom?
@eapl.me Yeah, the 3D pool games were just crazy magical to me back then. 😅 But you’re right, nothing beats a real-life pool table. All of these games are quite awkward to play and don’t feel “real” at all. 🥴
@eapl.me Yeah, the 3D pool games were just crazy magical to me back then. 😅 But you’re right, nothing beats a real-life pool table. All of these games are quite awkward to play and don’t feel “real” at all. 🥴
@eapl.me Yeah, the 3D pool games were just crazy magical to me back then. 😅 But you’re right, nothing beats a real-life pool table. All of these games are quite awkward to play and don’t feel “real” at all. 🥴
@lyse It sets the cue ball velocity. 😅
@lyse It sets the cue ball velocity. 😅
@lyse It sets the cue ball velocity. 😅
@movq Oh! I thought that's some precalculation of the animation maybe. :-D
@lyse Ah, no, that’s all happening in real-time. 😅 It’s surprisingly fast, even on that old machine. Okay, well, is it really a surprise … Actual games have *a lot more* going on. 😅
Here’s an updated video, I tweaked the graphics a bit:
https://movq.de/v/67b6ec085d/MVI_6871.MOV.mp4
And because it’s cute, here’s a video of the program that all this is based on:
https://movq.de/v/20d284000d/balls.mp4
A simple physics simulation that I did a while ago, with ASCII art rendering. (Oh god, this was in 2015, almost 10 years ago.)
@lyse Ah, no, that’s all happening in real-time. 😅 It’s surprisingly fast, even on that old machine. Okay, well, is it really a surprise … Actual games have *a lot more* going on. 😅
Here’s an updated video, I tweaked the graphics a bit:
https://movq.de/v/67b6ec085d/MVI_6871.MOV.mp4
And because it’s cute, here’s a video of the program that all this is based on:
https://movq.de/v/20d284000d/balls.mp4
A simple physics simulation that I did a while ago, with ASCII art rendering. (Oh god, this was in 2015, almost 10 years ago.)
@lyse Ah, no, that’s all happening in real-time. 😅 It’s surprisingly fast, even on that old machine. Okay, well, is it really a surprise … Actual games have *a lot more* going on. 😅
Here’s an updated video, I tweaked the graphics a bit:
https://movq.de/v/67b6ec085d/MVI_6871.MOV.mp4
And because it’s cute, here’s a video of the program that all this is based on:
https://movq.de/v/20d284000d/balls.mp4
A simple physics simulation that I did a while ago, with ASCII art rendering. (Oh god, this was in 2015, almost 10 years ago.)
@movq That's pretty cool! Next level would be to let the half-balls roll properly. :-P The ASCII art remind me of moving unicellular organisms. Cool stuff, but I would not want to program that. :-)
@movq Ah, the gunsight. :-)