Treeways

On a mission to be the best game dev generalist I can possibly be, serving others best I can.

This site exists to update people that are waiting on me to finish these projects, and to keep myself accountable.

Currently extremely busy. Will hopefully update this site daily.

Projects

Sorted by priority. Everything will get completed eventually, until further notice.

Summary of Projects

As of right now, I'm working on several Archipelago randomizer projects. The others are side projects.

The Minecraft and Sonic CD randomizer projects are very different in most ways, but similar in others. They both involve adding client support on top of a scripting language, the former which I've used much more than the latter. So my hope is that by completing one project, the other will be easier, and vice versa.

The CrossCode randomizer is a different can of worms, since I mostly work on the data used for generation - however, it'd be cool to take on more roles once these other randomizers are in a good state.

My other projects are more experimental. I'm interested in developing them for other reasons. They are not as high priority at the moment.

AP Minecraft Multiworld Randomizer

A full client rewrite is planned down the line - one focused on modularity, maintainability and flexibility for any kind of modpack. This will include first-class vanilla support for the latest version of Minecraft, KubeJS support for various versions, and core client code that is easy enough to port to beta and legacy versions of Minecraft.

I'm putting in my all to offer the best I can. If all goes well, this could bring wide support to modded Minecraft randomization for the broader community.

We'll be making the vanilla implementation work for everyone, from casual players to modded veterans. We plan to bring full feature parity from the old randomizer to the new one, and create a very sturdy foundation for adding new features on top of it.

Technical Details (Thus Far)

I've been very particular with separating core client functionality with implementation-specific functionality, to create really maintainable code for the sake of all future parties.

We'll be decoupling the core client connectivity from randomizer features, so that it's relatively easy for modpack developers to get involved with making APWorlds for their modpack of choice. This should result in much less of a maintenance burden, and an easier time updating the vanilla randomizer when new versions of Minecraft come along.

The plan is to backport the core client to major versions of Minecraft which modpack developers wish to support. We will also be providing KubeJS bindings for those versions so that modpack devs can implement hooks on the script level - IntelliJ will not be required. However, devs will still be welcome to create a Java mod that uses the Archipelago core mod as a dependency.

For convenience's sake, we'll be rewriting the instance manager which the original randomizer's APWorld had, to best support headless server hosting. This way, the .apmc file is modeled in a way that also allows for manual client patching, if desired.

We're working to fill in the blanks and document everything officially. Discussion about the rewrite is going by quick, and going smoothly.

As I learn more about the Archipelago API, I will likely be working on this randomizer in tandem with the Sonic CD randomizer, so I can have a bit of room to fail there too. This project has more moving parts, after all.

  • Initial planning (88%)
  • Archipelago architecture writeup (0%)
  • Archipelago API research (33%)
  • APWorld + data generation (0%)
  • KubeJS Archipelago addon (thin wrapper + client) (0%)
  • Vanilla implementation (0%)
  • Very solid documentation for modpack developers (0%)

Sonic CD (RSDKv3) Multiworld Randomizer

Things are going smoothly.

Still need to check out the standalone randomizer.

  • Preliminary research (100%)
  • Archipelago API research (33%)
  • Game data processing (40%)
  • APWorld (0%)
  • SCD Client (15%)

Special thanks to the Retro Engine Modding Server. The RSDK tooling that exists is really incredible.

CrossCode Multiworld Randomizer (Data Generation)

Right now I'm working on extracting and representing data for a new tradesanity feature.

Lots going on in the CCMWR space right now, which is really exciting. I'd like to learn more about Archipelago with some of my other randomizer projects, so that I might contribute in other ways outside of data analysis as well.

  • Document tradesanity mechanic (100%)
  • Extract trader data (100%)
  • Filter and sort trader data (33%)
    1. Filter and sort ingredient data (0%)
    2. Filter and sort result data (0%)
  • PR (0%)

Codename "Islets"

Unannounced - and going smoothly. 20% complete.

HSAPI aka. "libhopscotch"

Shoutouts to MagmaPOP.

  • Planning (65%)
  • Code architecture plan (50%)
  • HSAPI specification (hsapi.dev) (50%)
  • Examples and documentation (0%)

treeways.dev

There's definitely more to be done.

7% complete; 40% as a plain source of information.

Works well enough for now.