Project Info and Downloads

All files are provided as-is, with no current plans for maintenance, revisions, or updates.

Random name and UT bot generator

A fairly simple C++ program I wrote to randomly generate names, and also pick random bot settings for Unreal Tournament. Generated names range from 5 to 8 letters long and follow a weighted probability distribution from a source I've completely forgotten, based on English frequencies for first letter of a word, two-letter sequences (e.g., the letter 'a' is common, but two in a row are rare), and last letter of a word. The program generates a set of three names to begin with, then allows you repeatedly reroll your least favorite one while keeping the other two, which tends over time to steer the results you keep toward options you prefer.

If using this to roll up bots, note that some of the skins it can pick are custom. The Rumiko model, at least.

Download source code (4.5 KB)

Unreal Tournament CTF level "Paradox River"

After finding out about how to use the engine's ability to link two remote locations, I had an idea about a paradoxical river that flowed into itself, looping endlessly if you kept following it downstream (or upstream).

The original version of the map has the river connecting to an otherwise-inaccesible cavern stocked with supplies, and a high waterfall on one side of the central area. A major problem with it was that, because I'd decided to make this a Capture the Flag level, the whole cave thing was just too far out of the way for anyone to realistically bother with, no matter what I put in there. Unless it was one of the actual team bases, but asymmetrical CTF levels are notoriously prone to imbalanced gameplay. That particular concept would have worked better in a Deathmatch or Domination map, but I'd decided on CTF, and that's what I was sticking with.

The revised version simply links both ends of the river to each other, with a mini-waterfall inside the connection. It also has more varied lighting and (in my opinion) an improved overall design. The added bridge over the river gives a less awkward route across the middle, while irregular tunnels curving through either cliff wall result in paths that aren't out in the open. Extra walls jutting out of the cliffs also provide some additional cover, and it's even possible, with some skillful translocator use, to get up on top of the cliffs themselves, where there's a moderate supply of sniper ammo (not to mention a high vantage point) as a reward.

The bases themselves, which have a "fire and ice" sort of theme that I'm rather fond of, remain mostly the same between versions. Each side has a sniper tower built into the cliff wall and another sniper nest down a tunnel at ground level. The revised version also gives a chance for players to spawn on a platform directly above the other team's flag! I'm honestly not sure whether that's better described as "exciting" or "ridiculous", but it seemed like a good idea at the time. Or at least a novel one.

I've demonstrated the revised version of the map, with some commentary about the map itself as well as the Unreal Engine and UT in general, on YouTube: https://youtu.be/4uMLg61rb5I

Download both maps (857 KB)

Pointless Text Adventure Game

As I recall, this started as a class project that I then expanded a little more. It's written entirely in MzScheme, a varient of Lisp and an... interesting... language to use. Unusual syntax, lots of parentheses, and probably not meant for this type of program.

Basically, all you can do in the game is move around, interact a bit, and get eaten by a troll, but I still think the code is fairly interesting, and it's easy enough to expand if you know what you're doing. The setting is loosely based on my college campus, and the named characters, as I recall, were some of the Computer Science professors.

If you want to get it running, you'll need an MzScheme interpreter. I haven't tried it in years, so depending on what's changed since then, an older version of the interpreter might be necessary.

Download game code (13.3 KB)

Java-based MUD with some Japanese support that needs a real name

I can't remember whether this sprung out of a class project or if it was something I did just for fun, but either way, this was an attempt to create a functional MUD (Multi-User Dungeon, the text-based precursor to modern MMO games) with multilingual support.

People can connect (with a Telnet client or similar), walk around, and perform a few basic actions... and that's about it. The dungeon itself is similarly minimal, with only a few unremarkable rooms to explore. If nothing else, the way it's designed should make it relatively simple to add new commands. I have no idea how well it would scale up to large numbers of players. Probably not very.

Download server code (41.5 KB)

Nameless and Extremely Incomplete Verge3 Game

Once upon a time, I stumbled across a game creation kit called Verge (short for Vecna's Extraordinary Roleplaying Game Engine) that was basically meant as a freeware alternative to something like RPGMaker. Many dabbled in it, but few ever completed anything. For my part, I never really figured out what I wanted to do with it in the first place, and just ended up making a few maps, a tileset, a character sprite sheet or two, and eventually menus and a primitive combat system that were both buggy enough that I'd just as soon forget about them. Why didn't I just use the ones built into the engine? That's the thing... there weren't any built in. Which is probably a big part of the reason that finished Verge games were practically unheard of.

Anyway, that was all in Verge2, an older version that I can't even get to run anymore except in DOSBox. After Verge3 was released, I ported my overworld map and tileset, and a few of the other assets, into that, but not much else. What's left is at least playable, and I think looks pretty okay. There's almost nothing to do, though. It's more of a very basic proof of concept than anything else.

 

The world map tiles are mostly original, with some exceptions that will be fairly obvious if you've played FFV. I like how the water turned out, and the animated tiles I intended for HP and MP healing spots aren't half bad, though the forests definitely need work. The town map tiles, on the other hand... yeah, they're blatantly ripped from FFVI. And so is the player sprite, though at least she has a full recoloration, plus some extra intermediate animation frames when walking up or down.

Unfortunately, I can't get MapEd 3, the map editor, to run in Windows 10 (though the Windows version of MapEd 2 runs just fine, oddly enough), so there's not much I could do with this at this point even if I had any idea where I wanted to go with it. At least I was able to correct a coding issue to make character movements around fadeouts not look extremely awkward anymore (by using EntityMove instead of PlayerMove so that the movement happens in the background instead of everything else waiting for it).

There's an outside chance I might look back at my Verge2 menu code and try getting some of that debugged and working in Verge3, especially if I can get the map editor working, but don't expect that any time soon, if at all.

Verge homepage: https://archive.verge-rpg.com/

Download game files (1.68 MB)

Verge3 Automatic Dynamically Sized Textbox Tech Demo

 

VergeC, the programming language for Verge, comes with a lot of basic functionality for dealing with things like player inputs, engine-specific file types like tilesets and character sprites, and sound, music, and graphics in general. It's fairly bare-bones otherwise, though, and has always been short on more advanced conveniences. Not to mention lacking all sorts of features that you'd probably expect an RPG engine to come with out of the box, like inventory, menus, and (as the developers kept lampshading in their demo game) a combat system. You can do all sorts of things with it in theory, but have to roll your own versions of just about everything.

And so I decided to try writing a textbox function for Verge3 that automatically resizes the box to fit the text it displays. This is a tech demo showcasing the results. There's also a bit of Japanese text, but I kind of cheated to get it to happen—that specific message merely uses a custom font that displays those particular Japanese characters in place of the numbers.

I've run through the tech demo and shown glimpses of the underlying code, with some commentary, on YouTube, though I seem to have accidentally skipped one of the signs: https://youtu.be/Q2AYO1SuQqM

Download textbox tech demo (424 KB)

(incomplete) Verge3 port of Creepy Caverns

Created by 16-year-old Anthony Ramos on an Atari 400 using Atari BASIC, Creepy Caverns is a fairly simple (although rather impressive for the time) action-adventure game focused around exploring a randomly-generated dungeon and hopefully surviving long enough to defeat the fearsome Megawump to win. The August 1984 issue of Antic magazine featured it as Game of the Month, helpfully providing a full program listing for readers to type in so they could play the game themselves.

At some point, I got the idea of trying to understand how the code worked and port it to something that would run on a PC. Since I was already familiar with the Verge engine, and both Creepy Caverns and Verge basically work on a top-down, tile-based system, it seemed like a natural fit. Over time, I was able to reproduce most of the core functionality, including level generation, basic gameplay, and monster behavior. Other parts of the game, particularly the final battle with the Megawump, were put off for later.

I never did get around to finishing it. There are no sound effects, the player charcter doesn't animate or change colors to match the room, the Megawump encounter is completely missing except for a placeholder message, and worst of all, the monsters don't even "dance" when you die! On the other hand, I did add some debugging/cheat functionality like god mode and a map, and improve the level generation routine to ensure that all rooms would always be reachable—the original has only a handful of rudimentary checks, such as ensuring that you don't start too close to the Megawump and that certain special items won't appear in the same room as each other, and will occasionally create disconnected layouts, some of them entirely unwinnable.

Included with the download are the source files I based things on. There's a dump of the Atari BASIC program listing in a8_print_tmp5.txt, and CreepyCavernsABAS.txt is sort of a pseudocode conversion of that to something more readable, minus the parts that I finished porting completely.

I've demonstrated this port, with some commentary, on YouTube. See the second half: https://youtu.be/Q2AYO1SuQqM

Between recording that and posting the game, I've made one minor change. Room transitions now include a brief delay and momentarily blank out the screen. They felt too abrupt without it, especially compared to the Atari original, which pauses for a second or two to do some processing every time you switch rooms.

For comparison, here's my gameplay demonstration of the original Creepy Caverns game: https://youtu.be/QwdY9g87USg

Download incomplete Creepy Caverns port (993 KB)

Random Sentence Generator

Don't care for fancy sound or graphics? Want something that isn't affected by whether or not you can run the map editor? Well, here's a random sentence generator I wrote in Verge3 at some point, back when I thought "defenestrate" (to throw out of a window) was the most hilarious word ever. And you know what? I'm not sure I was wrong about that.

The program has a limited vocabulary of various categories of words (which you can easily expand by adding more words in the functions at the end of randText.vc and updating their random number ranges accordingly). It's designed to use a variety of similar sentence structures within certain constraints, and of course the exact structure it picks is randomized, too. The results may not make much sense, but at least they should always be grammatical!

Come to think of it, I could probably rewrite this in javascript and have it run right here on the webpage. Maybe later.

Download sentence generator (756 KB)

Maps for The Faery Tale Adventure

An older game from Microillusions with a massive world, The Faery Tale Adventure included a number of mazes with important items inside. Here are some maps I made to guide me through the main ones, plus a map of the entire overworld pieced together from many, many screenshots of using the in-game bird totem item that shows an overview of your surroundings.

Click any of the images to enlarge, and note that they're based on the MS-DOS EGA version, so the graphics (and keyboard shortcuts where applicable) may not quite match other ports, though the geography should be essentially the same. (The original Amiga version and later Genesis port have superior color depth, not to mention sound quality, whereas the Commodore 64 port suffers from severe hardware limitations and is markedly inferior in all of graphics, sound, and performance. And the DOS CGA version, of course, has the worst color depth of all.)



Full bird totem map


Annotated map


Map to the magic wands in the dragon cave
(entrance in northwest mountains, east of stone circle)


Map to the witch's castle in Grimwood
(skip the statue until you can fly)


Map to the bone and gold statue in Hemsath's Tomb
(entrance at end of road southwest of Tambry)

Also, I've demonstrated parts of the game, with some commentary, on YouTube: https://youtu.be/U5q8e6kMH5g


And while I'm at it, here's a bare-bones walkthrough of the game. Many of these can be done in any order.

That was maybe a little too bare-bones. Then again, maybe sharing any walkthroughs or maps at all goes against the game's whole open world exploration concept. Hmm. Well, either way, click the link below if you'd like to see a more detailed guide.


E-mail questions, comments, suggestions, corrections, etc.