Like many developers, I have had a number of side-projects over the years. They usually stay lit through a combination of motivations:
- personal pain point to remove
- desire or need to learn something
- boredom with the daily professional grind
- interest in a particular field
- hope that it will take off like wildfire (and become a software rock-star)
…or any changing combination of these over time. My “current” project has had elements of all of these.
About 7 years ago (or more), I was managing a D&D family game group as the Dungeon Master. Most of the preparation time was spent in drawing maps, planning adventures, and building non-players characters. Most of the game time was spent in fumbling through a slew of paper record sheets, maps, and rule books; basically exactly what I was expected to be doing.
Forcing creativity through a set of rules is the art of any art, forcing creativity through a concrete set of rules is an engineering problem. To truly master being a Dungeon Master (or a player for that matter) one has to have command of a large number of rules, both in the preparation and in the playing of the game. In preparing for game sessions, I was spending tons of time selecting things, cross checking rules, writing stuff up so I wouldn’t forget, creating easy to access NPC and monster cards.
I looked at game management software, but found they required a whole new set of personal disciplines in setting things up, and in playing the game (since the software would become the reference source). Basically with most DM software tools, the DM was an impedance barrier between the players and the (automated) content.
The solution to me was simple: automate the presentation of content (output) and automated the selection of actions (input) for gaming groups. If the inputs and the outputs are being automated, its a fair bet that the processing is automatable as well. At this point, three models were colliding: the game-world, the game-playing world, and my world of software development.
Around the 2005-2006 time-frame, Microsoft was launching .NET 2 and 3. For me, this was an opportunity to learn new things, both from desire and necessity; mostly from desire. In my pursuit of my ultimate system, I absorbed WPF/WPF3D, Open Packaging Conventions, WCF, and PLINQ; and honed many other development disciplines and styles (such as MVVM).
I occasionally got to use some of those technologies and patterns in my “daily-life” (except the WPF3D), but mostly my day job consisted of fixing other people’s over-designed systems, or trying to work through their analysis and design methodologies while still producing value; rather than solving interesting problems with automation. In other words, my side-project was exciting and under my control, other work was fairly rote, and boring; occasionally punctuated with the stress of working through other people’s design and planning shortcomings, without any real power to have executive control of the situation.
My interest in the the field of D&D game automation goes back to my childhood, and also involves a (conceptual) merging of game-world, game-play and software. In some ways, I believe myself (like many others before and since) went into software for game development. I actively avoided computer science during my education, since I figured I’d end up working on business systems (insert irony here).
I went with geography since I could work within an applied computer field on geographic information systems (GIS), remote sensing and automated cartography. I had to deal with geographic data sets, visualization, user interfaces, and working other team members on certain projects.
My game automation system allowed me to use some of what I had learned from GIS and automated cartography, but also what I learned from building distributed systems. It provided me opportunities to work with parallelism, OPC, LINQ, 3D visualization, virtual remote sensing, a rudimentary model of character knowledge and awareness. It also allowed me to treat roughly 960 pages of “core rules” as a requirements document. In short, all interesting stuff, unifying almost everything I knew to make one really cool system so I could get back to running and playing games.
Dreams of Glory
Cue the applause: once I was *done*, everyone who ever played D&D would see what I had accomplished, what was possible with the game system, and would make cool content so I could actually play (not just be a game master). Best, I would be at the center of it all, selling the tickets, answering the questions, planning new and exciting future features, and possibly changing the way FRPG is played forever…
Designing and coding against 960 pages of requirements takes some time. Considering that the tactical rules are fairly detailed and the capabilities many of the subsystems (especially the magic and spell system) are quite diverse, there has been a lot of deep abstractions needed to be pulled from the rules before a system could be built (or while the system is built). Some things, such as light propagation and attenuation had to be constructed from whole cloth. Gravity could not be in a fixed direction. The ability of three dimensional terrain to block attack, sight and magic spell lines had to be calculated for varying topologies.
As an automation system, game assets had to be constructable, storable and transferrable; game-flow based upon who is acting, what they can do, what/who they can do it to, what may happen to interrupt (and by whom), what the target may have to do, and what things continue to occur automatically in subsequent turns, all had to be tracked and applied in the game-world, and transferrable through the network in the game-play world.
Time *is* the Boss of Me
All of this takes time, about 7 years at the rate I have been going; using some evenings, many mornings for an hour or two, some hours here and there on the weekend. Basically using as much time as I had the endurance and family bandwidth to squeeze out from that time where life is supposed to occur when not at work. Space is also a little tight, finding the necessary solitude to work uninterrupted enough is a challenge during the evening and weekend hours.
At about year 4 or 5, the ultimate *end* (rock-star!) looked like it might never be in sight, so I started thinking about how to get more time without being “done” done. I needed something demonstratable (for whom, I was not quite sure, possibly investors). Minimum demonstratable meant closing a loop between clients and server while simulating two or more characters moving and attacking each other; which I finally accomplished by February of 2012.
By then Minecraft had been out for awhile (my son had an interest in it, so I had been aware of it for quite some time), and some big Kickstarter projects had made headlines.
Investment, Bootstrap or Kickstart?
I had thought about the investment route the earliest, but my concern was that it meant giving up some control and that my ultimate vision might get diverted (and finding investors and convincing them).
Bootstrapping seemed more appealing once I saw Minecraft, but I did not have the concept of sandboxing as a fun precursor to full gameplay. RPG setup is distinct from RPG gameplay. I did work more “previewish” aspect into my workshop utilities due to Minecraft inspiration, and have some workable plans for more ad hoc map building (morphable terrain and underterrain being a necessity for certain higher level spells anyway).
Kickstarter seemed like my best option (at least back in March 2012) given that I saw what I was doing as an “artistic” endeavor, or at the very least a labor of love. My wife wanted me to isolate the family from the game via forming a company to limit the liability. Hence I formed Turn-Based Realities, LLC (which took a few months in Pennsylvania), then I had to get a Kickstarter, but that needed Amazon payments, then I needed a video, then I had to write text, then I had to … (I wrote another blog post on this).
I was also a bit diverted by life during that time with a black belt test to prepare for, and a lot of shuttling my daughter to and from her practices with the DCA World Champion Reading Buccanneers Drum and Bugle Corps (she plays the timpani), we live 45 miles from Reading, PA.
I finally hit the right tone in my text, had enough pictures, produced a video, got my son to help with the music and being an extra set of hands; submitted, edited and launched. I pushed a few short postings to various RPG forums (trying not to be too annoying), but I’m not a pushy guy. I got one pledge from a guy I personally know.
My side-project to get more time was becoming such a side-project in itself, and I have no reputation in the RPG world to bank off of. Rather than spend more time and watch absolutely nothing happen, I decided that ending the Kickstarter was my better option.
Where does that put me? 9 months behind, but a little bit wiser. Maybe I’ll work more towards that bootstrapping thing…;-)
After some final polishing of the rewards (for clarity mostly) and verbage (to add some more of my personality), I have launched.
Now the real project begins, being discovered and funded without being flagged as a spamming troll.
Been busy preparing for the World Tang Soo Do Region 8 black belt test (3000 word essay, written test, technical form stuff), but I have managed to get most of the requirements to run a Kickstarter project out of the way. I am validated on Amazon Payments, so now I need to polish up the campaign by producing a video, figuring out rewards, etc.
What I had managed to do code-wise in the past month was create a resource package system, so that model and image assets can be handled independently of tactical maps. Also, since objects can be stored in packages, this should allow a “character pack” (or warband file) to be portable apart from a game host.
First, my need to code led me to initial implementations of large creature (2x2x2 cell) movement for LandMovement, FlightMovement and FallingMovement. There is still plenty to refine and fix there, especially on LandMovement with rising and descending on variable elevation terrain, and squeezing into narrow spaces; but overall I am quite pleased most work I did on medium/small creature movement has proved useful. Creatures that are huge and beyond will definitely need some additional work to "get it right".
Secondly: I moved http://www.guildsmanship.com to a set of pages that hopefully look a little smoother (and less scrappy) than the Ikosa Framework web-pages I was using before. I still have to repackage the Ikosa test client and test host for the new site, because apparently trying to simply move the junk in Visual Studio isn’t getting me anywhere (which is probably OK, since the deployment URLs are embedded in the packages anyway and need to change). Also the whole thing is lacking in images, and either my pixel guy (my Minecraft addicted teenage son) will get me some soon, or I’ll have to throw some XAML line-work together and rasterize it through KAXAML.
Thirdly: In order to get Amazon Payments setup on a business account, I need to provide a fax of a bank statement. Since I had just opened the account in the past month, I had none. My online access only provided me on the bank’s schedule, so I had to wait. I had no indication on when the bank’s schedule was going to hit, but I guessed at the end of the month…and I was right! So now I need to print and fax (what? is this the 1990s?!?) a copy of my statement to Amazon, in order to keep the Kickstarter thing moving…
Getting started with Turn-Based Realities, LLC is sort of like trying to figure out the rules while “playing the game”. First some history:
I realized awhile back (and only decided to act upon it this year) that unless I invested much larger contiguous blocks of time to my Ikosa Framework, I would never get this vision of automating turn-based realities out of my head. I thought of several avenues (none of which would happen until I made my move) such as getting investor help, producing simple tools, or producing a cut-down game-experience to get going.
In all of those scenarios, my best option has been to continue pushing the coding along until I had a workable demo, or a cut-down game. I became aware of Kickstarter (like many people) earlier this year, and began to see this as a vehicle to “kick-end” my vision.
Deducing the rules (and making the moves):
- Kickstarter Account (to use Kickstarter)
- guidelines suggest Facebook for identity
- should probably do a video (*sigh*)
- need an Amazon Payment’s account (alright, now household finance needs isolation from this)
- Facebook Account (to help prove I am who I am to potential backers)
- Now all the women in my life know what I’m up to
- All of my Mom’s friends think my picture is scary-looking (that’s just me)
- Change picture (look better in profile anyway, thanks to my non-centering eyes)
- Acquiring Guildsmanship.com (branding for Guildsmanship and Battle-Scapes)
- Would’ve liked to do this via the company, but don’t have that yet
- Also, setup a WordPress account to track my ramblings…
- …make is a WordPress premium account
- Moving ownership of hosted Source Control provider would be good as well
- Founding Turn-Based Realities, LLC (so help isolate work from home)
- Use LegalZoom.com
- Wait for State of Pennsylvania to wave magic bureaucracy wand
- Alright, done (about a month later)
- Business checking account for TBR-LLC (so I can set up Amazon Payments)
- Find time to set up an account
- Answer awkward questions about volume of transactions (um, none? maybe lots?)
- Set up account (yay! TD Bank!)
- Discover from Amazon Payments you need to instantly validate using online TD Bank service
- Creating online account access to bank account (so Amazon Payments can validate the account)
- Possibly wait 2 business days for online account setup to be finalized
- Yay! next day (go TD Bank! you are rocking it for me)
- Amazon Payments account (to use Kickstarter)
- Fill in information
- Validate bank account (business account requires manual validation! and a bank statement !!! ERK, brand new account, I have no statement…)
- Tax interview not so bad, except the LLC with a single owner is taxed like an individual
- Polish up KickStarter Project (and Profile)
- Video! Ug, but OK
- Rewards! OK, gaming software is the reward…?
- I’m a software guy, not a T-Shirt guy! (maybe a fulfillment shop?)
So this is the big campaign before the “Campaign”.
Just a quick posting that ties together all the various things I use to describe my obsessive development activity:
Turn-Based Realities, LLC (my limited-liability company) develops Guildsmanship and Guildsmanship: Battle-Scapes using the Ikosa Framework.
All pretty simple, actually. Except I don’t like to call Guildsmanship a game, its more of a “game” management system that is playable (semantics to some).
Just started the process to create a business in Pennsylvania (about 35 days, since I didn’t take LegalZoom up on their “gold package” 7-10 day hand-delivered to state offices offer).
I grow weary of waiting; so as soon as I can (a song I’ve sung before), I’m going to open up free downloads of the client and host packages I use in testing the Ikosa Framework. I just need to (re-)finish the melee and ranged tactical cover checks using the new source/target corners strategies, strip out the channel security from the Net.TCP channel configuration (so clients don’t need to muck about with certificates for encryption), and build some ClickOnce installers for client and server.
…and find some time to do all that 🙂