Aside Posted on
Hi all! For those reading here that don’t follow any of my other social media accounts: exciting thing! I just started a new comic blog over at https://lipsumdrake.wordpress.com/
Since this is all part of the WordPress network, any accounts created here will also work over there for commenting purposes.I hope you enjoy it!
Since my very simple proof of concept of King Under the Mountain last weekend, I’ve been continuing to work on the game. I can’t promise a releasable version in the near future because this is still a side project of mine, but I’d like to have a playable alpha as soon as possible, so you can pick it up and give me your thoughts.
I am currently experimenting with Unicode support. I have a build option set up that currently toggles this behavior, and I’ve doubled the X width of each display character to accommodate. Surprisingly, this looks great in both modes! But, there’s a problem.
Certain fullwidth characters, such as Emoji, behave badly with my terminal software. Rendering Apple Color Emoji, for example, has a transparency channel that makes Terminal.app look like Swiss cheese, as each character cuts a transparent region out of the back of the window. I haven’t yet found a good way to reconcile this, though it does look substantially better in other terminal software that doesn’t use Apple’s full color equivalents.
That’s my current quandary. My next steps after this are to rewrite the UI and make characters able to interact with one another.
Are these dev posts interesting to you all? I’d love it if you let me know.
For the last several weeks, I’ve had a game idea bouncing around my mind. So, taking the excuse of this weekend’s Ludum Dare game design competition, I decided to start writing it:
King Under the Mountain* is a text-based roleplaying game where you play as a dragon. Not content to simply pillage and burninate the local villages and farms, you also take up the wing of politics, toothily coercing neighboring peoples to champion your cause. This plays out similarly to Dwarf Fortress, except with loftier goals and a bit more political intrigue in mind.
Written in C using ncurses**, this game is in very early alpha and isn’t yet playable. Most of the game exists as notes and code snippets I’m still in the process of writing, but world generation is far enough along that I can at least post the teaser above.
Like Dwarf Fortress and Nethack, this game is designed to be a roguelike with primarily procedurally-generated elements guiding play. Certain elements will be mutable to the player from the start, such as their name, gender***, and specific world characteristics. Of course, randomizers will be available if one prefers to start playing immediately.
I’ve found writing this to be surprisingly therapeutic. I’d missed this level of ultra-simplistic, low-level coding in time spent in higher-level languages such as Python and Go. In a way, getting back into C feels like rediscovering my roots.
Would you be interested in this game if I ever released it? Since it’s a terminal app written in C with low-spec systems in mind, hitting all major OSes wouldn’t be especially difficult.
* I had considered this name before the competition’s theme, “Beneath the Surface”, was announced. It’s a double entendre cited here, referring both to the dwarven ruler, the King of Erebor, and to the dragon, Smaug. Get it?
** I had originally planned to use this to study the Go programming language. However, this plan ground to a halt when I discovered that no complete terminal UI library existed for the language. So instead, I settled for using ncurses directly, taking many stylistic, code layout, and presentation decisions from Nethack.
*** This will be substantially more open-ended than binary. I’m thinking free input for all pronouns, up to some number of characters apiece. It doesn’t fit everyone, but it should serve the needs of the gamut of genders people express in my audience. I intend to make all text conform to these, too, which will make localization difficult. I’m still ambivalent on how to translate this, if I ever get that far along.
Two days ago, I flew as a dragon in immersive 3D. As otherkin, this satisfied a personal goal of mine, and it was wonderful.
This bears some explanation: I recently acquired a copy of the Oculus Rift Developer Kit 1 from a good friend of mine. Hooking this up to a copy of the CtrlAltStudio’s modified Firestorm Viewer for Second Life, I then proceeded to buy one of these to fly around in:
Seawolf Dragons have a bit of personal history for me. Specifically, they’re based on (and were eventually endorsed by the developers of) the dragon models from Horizons: Empire of Istaria (now Istaria: Chronicles of the Gifted). Istaria was where I flew as a digital dragon for the first time, albeit while watching a third-person render of my dragon protagonist moving through the skies as I played via mouse and keyboard.
At the time, Istaria was important enough to me that I had gotten in on its initial closed beta nearly a year prior to its official launch. When the first Adult Dragon Rite of Passage went live on all shards on March 12th, 2004, I pulled an all-nighter to be among the very first group of dragons to attain flight on the Life server cluster.*
The Rite of Passage succeeds as a soaring spiritual experience for fledgling dragons, and that tradition continues even today, as YouTube attests. For the young dragon, it’s a graduation ceremony to (literally) bigger and better things. I, of course, immediately used this to fly up along the game’s trademark sheer cliffs and jagged mountains to surprise crafters whom, alarmed by seeing a huge dragon flying towards them for the first time, cheered me on once I’d landed in their midst.
By contrast, this flight was quiet and personal, but just as moving. I watched through my avatar’s eyes as I flew, looking down on a tiny facsimile of the Istaria I knew and loved a little over a decade prior. As I twisted and tilted my head to see the digital equivalent of a rising sun, I could crane my neck to look and fly wherever I wished to go. Even though my primary controls remained mouse and keyboard, the verisimilitude was beyond incredible.
To fly as a dragon has been one of my goals for most of my life. It’s why I chose to program in the first place, why I’m a technologist and computer scientist, and why I pursue 3D and game design as my occasional trade and hobby. Being able to achieve it in such a simple and mundane way elates me, and makes me wish for VR to only continue to succeed. Not bad for a tiny video monitor and accelerometer connected to a set of fancy goggles.
I just hope that Facebook doesn’t ruin this for everyone. I am convinced that everyone, otherkin or not, should be able to experience this.
* Technically second; our party leader ascended first.
It’s 1:30 AM, and I am reading a Charles Stross novel through a tiny monitor hovering precariously in front of my face.
I do not know what convinced me to illicitly load a copy of Kindle Cloud Reader onto Google Glass. At first glance, it didn’t seem like a sane idea: I expected the font to be terribly maladjusted, the display to contort itself awkwardly, and the viewer to spin 90 degrees on its side, as if I was attempting to divine the complete works of Geoffrey Chaucer from a bowl of alphabet soup stapled to my face. But after a few burps and hiccups, it works startlingly well, offering its now-sepia-on-black rendered text in crystal clear, paragraph-length bites. I click a small mouse in my right palm to turn each page; they haven’t gotten the input model down for this app just yet.
Most readers have probably noticed that I’m a huge nerd. It’s actually a bit more than that: I’m a posthumanist mad scientist.
I’m not saying this because I’m evil, build deadly robots, or have an iron-clad plan to take over the world (though that would be incredibly cool). A more useful metaphor might be one of the Red Mage: I dabble in the margins, connecting the disparate sciences together to see what sticks, without the devotion of complete study. The results are oddball, bizarre, and categorically insane, and I have journals, disks, and reams of unsorted media filled to the brim with experiments and thought logs.
This dabbler mindset is incredibly useful, because my diverse creative interests gives me good predictions of what people will invent next. It also gives me tremendous versatility, which I find value in every single day. But, it also results in shallowness and lack of depth for any specific topic. For this reason, I rarely clear the top rungs of any given vocation. (If I somehow do so accidentally, I will actually move on, so I can keep learning.)
I’m this way, in part, because I greatly enjoy being a tourist in any given field. I especially enjoy the process of rapid study and reverse engineering; to me, it’s a puzzle. To a lesser extent, this tourism writ large has generated in me an obsession with creative autonomy and self-sufficiency that gives me this strangely seductive sense of ownership over the bizarre ideas that pass between my ears.
I call myself a posthumanist mad scientist because, while so many of my projects are whimsical and short-lived, this agenda isn’t: I have a long-standing goal to transcend humanity. Maybe it’s strange that this is so immutable and matter-of-fact for me. This manifests itself as small snatches of disconnected ideas and obsessions about virtual worlds, augmented reality software, and modes of expression that let me be the charming, shiny creature that I wish to be. But they want for more cohesion, which I suppose I’m working on.
I’m not really going anywhere with this, I just wanted to share. Even though tinkering with technology and ideas is what I do, it feels so far off the right end of self-actualization that it makes me deeply self-conscious. I guess I’m still figuring out how to manage that.
One of the biggest problems I’ve had with maintaining a blog is allowing myself to just being conversational. I tend to obsess over keeping things just to the high points — big ideas, big projects, things I’m working on that are relevant to other people’s lives — without really discussing the small things.
But, as close friends repeatedly inform me: those small things are meaningful. They capture sort of a slice-of-life that gives progression and context, making the person at the other end of the wire feel that much more real. This is the essence of what has become digital watercooler conversation: these little scraps of vicarious life are what makes other people just seem less alien.
So, I’m going to give it a shot and see if I can maintain anything resembling momentum.
Let’s start with some random Goldkin facts you probably didn’t know about me that you might find interesting:
- If you’ve been reading some of my other pages, you know that I’m a dragon. Did you know that I’ve been stating this openly for over twelve years? It’s kind of scary to think about, in hindsight.
- My birthday is February 19th. These means that, in addition to being born roughly one month before Spring in the shortest month of the year, the modern zodiac has a hard time classifying me. I have sort of strong opinions about how confirmation bias is responsible for most of modern day astrology, but I never could figure out if I was supposed to be an Aquarius or a Pisces. They’re kind of fitting to my demeanor, though.
- You’re not getting the year or how old I am, other than “late 20s”, however. See my previous post for why I’m kind of touchy about giving out my full birthday.
- Many people know I’m a software engineer from my public profiles, but did you know that I’m also a security engineer? I have sort of a longstanding history reverse-engineering viruses, malware, and exploits, though I’m a bit rusty these days for wearing so many hats where I work. You should ask me about it sometime, though. I love talking about it.
- Before getting into security, I was very big on virtual reality. I still am. I have ambitions of making a virtual dragon avatar that is just like I envision me to be. It’s why my 3D modeling skills are as good as they are, even though I post my work sparingly. (This is also something I enjoy talking about!)
- That I am writing this post at 2:47AM on a work night and really should go to bed?
Actually, that last part is what will cut this short for now. I just want to try something informal and sort of see where things go from there.