← Back to Thought Police

Project Dragonpunk

by NathanEckenrode

Project Dragonpunk

This has been a journey for me starting mid December. See I had been doing this massive worldbuilding concept, which has nearly a thousand different villages, towns, cities, along with Provinces and Sovereign Realms. There was a bunch of procedural genration going on, not enough for my taste but enough. This involved making a burg individualized based upon a combination of the types of state and provincial governments, dominate cultures, religions and the biome type it was located within. I felt that all these different variables could go into creating unique places across the entire list. However my stumbling block was the place I w as keeping these records.

I am not slagging this software at all

Obsidian is a formidable piece of note taking software. It uses markdown based notes to keep track of what ever it is that you want to use it for, with extensive links between those notes possible. This was what drew me to it in the first place. Markdown is one of those software protocols which is open and transportable enough that you don't really feel locked into a particular piece of software. And it is easy to read whether it is being presented its web browser presentation or not. (Lots of present in that sentence!)

However a down side of markdown is that when you are using script to pull information out of the document there is a huge possiblity of making mistakes. You can't just set a variable and say that this needs to be places in the next document. Its messy and difficult to do. Because of the size of my vault, over 20,000 notes at one point, the need to be more efficient became very quickly apparent.

The Solution, My Nemesis, a Database

Because one angle of my entire process is having an excuse to play with all the developing AI models that are coming out now, I had been using it extensively in numerous ways. Sometimes as a sounding board for my ideas, which kind really sucks when the damn thing tells you that you are the most brilliant thing in the solar system or other sycophantic flights. But also the copy and paste errors. And friction.

Oh, yeah I was supposed to talk about databases here.

So in university, while studying Information Technology, there was this one class on databases which had three or four hours of homework every single night and was the hardest thing I have ever taken including Analytical Geometry and Calculus. I did not pass it the first time. The second time I scraped by, but honestly, I do not think I learned very much at all. Since then, I have set up MySQL databases for blogs and websites, done once and over. But this project needed something bigger, way more interactions, because the documents I wanted to slurp into it had so many different formats and templates that it was a nightmare to even consider doing on my own.

Of course, I leaned heavily onto Claude Code to help me. Oh boy did I lean. But By the middle of January, I still had Obsidian as my daily driver. I had to just buckle down and come up with a way to work this out. And then I found out about OpenClaw, it was called clawdbot then, and it promised to give my AI hands, so no more copy pasta and it all just turned into magic.

Magic isn't always the answer

So any D&D player knows that just because your character knows a spell and chooses to use it, does not guarantee it will be successful. They can do thing to help increase its chances of success but it is still a roll of the dice. Literally. OpenClaw as hands and Claude Code as brains, made it so that I could make some things happen with a whole lot less friction than if I was to do it myself.

So between the middle of February and today, I have been working on something I call Project Dragonpunk. Basically it is a database which I have hosted on a server. There is a core codebase which is a set of tools, and then there is an api set up to make it so that using these tools does not have to happen directly on that server. This means my view into the data is through what are called thin clients all they do is interact with the API functions to do their dirtywork on the database.

But how did you get the AI to write a huge codebase

I have found that the AI tools are remarkably good at spitting out a script for a specific one off task. Let's say I want to change a single thing on every single document in the database. They can spit that code out almost with out thinking. But tell it to write a huge bit of programming that has complicated and sophisticated details in it, they fail. Badly. Not as much as they used to but still.

So what I had to do was do a lot of explaining what I want, get a markdown document about that. Then make a seris of other markdown documents, basically a round robin course of editing, rewriting and reediting the documents until I had a really well researched and very specific design protocol. Then and only then could that Project be broken down into Phases and goals which supported each phase. And once that was all set up. I could turn them loose on it.

Turnt out for Waht?

Well, that didn't go smoothly at first. The Goals were still too large and disconnected. So I had to run them all through a process which made them all focused on the Project at hand. Everything had to really be tightly composed and pressed into that support. Nothing was in the instructions which did not actually need to be, and lots of things needed to be. But ultimately, a software project which was originally estimated to take me until late July, if I were actually a good programmer, finished up this morning. [HUGE CAVEAT: There is still the User Testing, which is basically just me pushing all the buttons and complaining that they don't work!!]

Next?

Oh this will be fun. Now that I have set the stage, I will be setting up new processes on top of this basic infrastructure that will finally tackle the issues I was facing in December. Which is enormous progress. I have some ideas about how to go about this, some old methods I was using can be revamped and set up into new workflows which are much more efficient and effective. But we shall see.