MTrop.net

Programming

This page has most, if not all of the programming projects that I've done or have been involved in. Some may be useful. Some may be fun.

DoomTools

https://mtrop.github.io/DoomTools/

DoomTools is a suite of utilities and tools used to make compiling projects for doom easier. At its heart is a toolchain organizer called "DoomMake" that assembles projects into WAD files with all of the used resources necessary to run the project.

Some individual tools have seen popularity on their own, such as DECOHack, a program that takes a modified version of a logic modding language called DECORATE and compiles it to a patch file called a "DeHackEd Patch" that is used to modify Doom's behavior.

DoomTools also comes with a GUI version of itself, as well as a self-contained IDE for managing DoomMake projects and assembling them.

DoomStruct

https://mtrop.github.io/DoomStruct/

DoomStruct is a library for Java that reads and manipulates Doom Engine data structures and other data. It's entirely standalone and requires no other dependencies to use.

I was fed up with the fact that there were a bunch of libraries for Doom in other programming languages like Python and C, but none for Java, so I wrote one! Its goal is to be able to allow the user to perform low-level tasks as well as high-level ones, and adhering to an API philosophy that enables such a thing.

DoomStruct powered the late Wad-Archive.com and lies at the heart of DoomTools. One day, it could power your Doom-related Java projects!

TAME (Text Adventure Module Engine)

https://tame-if.com

TAME is an engine used for writing Interactive Fiction, and deploying them as web applications (or other stand-alone environments). What sets TAME apart from most other engines is that it governs just the logic of the application itself, and operates like a command-driven state machine of sorts and spits out "cues" that a presentation layer can interpret to create a rich adventure game!

TAME uses its own scripting language, TAMEScript, in order to allow users to write the logic for how their world works, and its documentation contains interactive examples, since TAME can run on a web browser!

Black Rook Software

https://blackrooksoftware.github.io/

Black Rook Software is a host of different libraries and other code that I use in all of my projects. A lot of the code I write is custom so that I can control its scope, and never use less than what I need for various projects.

There are libraries for all sorts of tasks, such as JSON parsing, expression resolving, scripting (via RookScript), SQL and Redis server interfacing and object-wrapping, and more! Even a Web Application wrapper and bootstrapper!