[156] Moat of Babble
- Conlan Walker
- May 23
- 2 min read
Three projects this time, so they are a little bit random-ish.
I'll start with the one that looks the coolest, and the one I actually bothered recording a video of. I previously made a metaball demo in JavaScript, because I wanted to make a more optimized version of something I was another person do. That was at least a couple of years ago, so I wanted to make a version of it with more features in C++:
Since I already technically made it, this was trivial to make, excluding the Win32 part.
The second thing is something made during a workshop. I only bothered taking one screenshot of it, because it's not that important, other than the fact I learned a lot while making it. It's a simple physics game in Godot 4.4 (which now has a built-in physics engine!)

As for the fourth thing, I did some VGA programming in DOS. No really, I installed a copy of FreeDOS running on an i486 machine, installed with Borland C++ 3.1 (don't be fooled, it's non-standard C++, and the C part that is there is C89, which makes it a lot more tedious to use).
Speaking of tedious, I initially tried to use DJGPP instead of Borland, but its compilation speed could be best described as glacial compared to modern systems. Compilation of a simple 'Hello world!' program could take as long as a minute or two, as opposed to less than 10 seconds in Borland, which is a breath of fresh air compared to DJGPP.
The VGA code was all written in an environment that looks like this:

It isn't so bad to look at once you get used to it, really. My main problems with it were that I couldn't use the mouse at all, and I had to use non-standard controls otherwise (including for copy-and-paste!)
Here are some stuff I did with this:



I was originally going to make a port of the raycaster maze game I make in Win32, but my drawing routines seem to be too slow to render a raycasting scene in its current form.
I wasn't using the standard library at all for any of this, including the rand() function, which led to some interesting quirks about the maze generation itself.
Even that wouldn't necessarily be a problem, however even input was a pain, since I had to invoke bios interrupts to talk to the keyboard in a semi-efficient manner.
Which would also be fine, until I started getting undefined behavior that resulted in failures to start the program sometimes, and inexplicably. So I guess I'll figure that out at some point.

I will at some point create a cross-compiler setup using a Watcom C/C++ Fork, to make development less of a pain.
Now for the boring code:
Since Pastebin wasn't working last time, I'll add the code for the steganography project to this post instead:
And the metaball demo (not counting the Win32 parts, since I've already shown that):
And the Godot thing:
And finally, the VGA stuff:
Comments