Random Patronage

We got a new Patreon patron (albeit fleetingly) for Chartopia. Strangely this person was called “Your Mother” and I wondered if, somehow, my own mother had found the site and donated. It seemed far fetched because setting up an account on Patreon is a bit more involved that when she found my codednotes.com site and left comments there.

Curious, I looked at this person’s account and this person couldn’t be more ‘not’ my mother.

It turns out that this person was the patron of numerous, let’s say, adults only, Patreon accounts. In fact, Chartopia was the only non-dodgy looking item on their list.

It got me wondering though, imagine if Chartopia’s claim to fame was with a fetish community? How weird would that be. After all, the porn industry influenced the VHS v Betamax scene (at least according to popular legend).

That would open up all sorts of issues though, first and foremost the ability to filter out AO content and then having to implement a rigorous reporting strategy. I just don’t need those type of challenges right now.

Ultimately though, that random user’s Patreon account was terminated due to not complying with Patreon Community Guidelines. They didn’t stay under the radar long enough to give us a dollar.

Advertisements

Exposing the recipe of the special sauce

One of the major differences between Chartopia and many other web-based role-playing random table generators out there is that a lot of information is hidden behind javascript.

Even non-roleplaying specific tools on the net like the amazing Fantasy Name Generator not only conceals a lot about how big and varied their selection is, but how it’s determining what name to give you.

Chartopia exposes everything.

Exposing the secret sauce
This chart view shows all the ingredients to what is a very complicated table. It would take a DM a long time to resolve this manually.

The true charm of Chartopia is being able to see the tables as if they were from a book. Sure, it’s not formatted to look like a book (although, with some clever use of css I could get it pretty close), but it doesn’t hide from you that, at it’s core, the data is from a table.

It means that Chartopia is not merely a database of massive amounts of data, but something that is trying to replicate the real world dynamics of pencil and paper rollplaying. If the table is a 2d12, then you’re going to see a minimum 23 possible results where results will favour the numbers around 10-13 (and 1 is unreachable).

But from here, the digital shortcuts come in to play. The names of other tables that would be called upon a certain roll can be linked via URL. Equations/formulas and other features such as Chartopia’s rollable lists can be styled to make them more obvious.

Take it a step further and we can show tables with formatting features such as images, bullet points, arbitrary links to, say, an online monster manual, rule book entry or the like.

So as much as the generators out there are useful, Chartopia does what they do with the quick-roll button. If you want to see the secret recipe that makes it all possible, then check out all the ingredients.

That is unless the author’s gone and made all the linked-charts private.

Being Entrepreneurial

Chartopia (the massive RPG random table library and editor) seemed like my best chance to date to make a piece of software that earns more than a token amount of pocket money.

How wrong was I.

Optimistically this project may just be a ‘slow burner’ so for the time being I’ll chip away at features. I thought the pain points we were trying to solve where perfectly valid though.

What is Chartopia trying to solve

So many books!

I thought one of the best selling points was that Dungeon/Game Masters would be the ability to leave all the books at home. Have you seen some of those game books? They’re huge. Try bringing those to a house party.

Just like Serato solved a massive pain point in the DJ scene by allowing DJs to leave their crates of music at home, I hoped Chartopia’s ability to have all of a DM’s charts in an easily searchable and manageable library would be a tempting prospect.

Streamlining play

Roleplaying games certainly aren’t the fastest moving activity out there so anything to help avoid flicking through books and doing complicated dice rolling across tables is sure a good thing.

Next to being a resource, Chartopia is a random table editor. Some tables get quite complicated when rolling on one table requires getting a result from some other table or tables (a name generator comprising of first and last names is an example). It gets even more complicated when you want equations e.g. d12 gold pieces or perhaps d4 items from a ‘table of random items’. There can be a lot of dice rolls and table lookups.

Roll just once.

The great thing about having a finished chart (or charts that link to other charts) is that with one button press, Chartopia collates all the results together and present the resulting text and numbers to the user.

Content management

Books have tactile appeal whereby one can flick through the pages, mark them, use the index. Digital can never replicate the feel of books (ebooks are only better if you’re always on the move and need the space). That means Chartopia has to better the books in some other ways.

Ctrl-F

Yes, search. If search is better than an old-school book index lookups or flicking through the pages, then we have a winner. Searching through all charts ever created probably isn’t desirable, so Chartopia also has a folder structure. It’s one-to-many meaning a single chart could be added to many folders so it’s not like a traditional Windows/Mac file system (short of using symbolic links). This allows the DM to somewhat prepare a game or just organise their charts in an alternative way to just keyword-tagging them.

Content – The impediment (yet key) to success

Herein lies the biggest  hurdle to Chartopia being useful; content.

Pinterest is useless without content but who makes the content? The users do. But if there’s no content, why should users be there in the first place? The content is the first thing you see when you go to Twitter, Pinterest, DeviantArt. You don’t see an editor to make your own content, you see the preexisting content of others.

Unfortunately making content for Chartopia isn’t as trivial as ‘pinning’ a few images so in order to demonstrate what useful content looks like, I had to trawl the internet looking for random tables shared on blogs and .pdf files. Thankfully there are users contributing a few charts now but unfortunately the bulk of content I had to manually (via copy-paste and lots of regular expressions and implementing a .csv importer) add to the site. The best I could do given the material was sourced elsewhere, was put in a citation field.

It’s a slow process but it also helped be better understand some of the pain points of the editor. Thankfully the front page is now full of chart content for users to browse.

Potential Customers

Scott assured me there were many, many DMs out there that would find Chartopia immensely useful. It’s feeling more and more like a Trump-like assurance.

I suppose technically Chartopia is SaaS (software as a service) but I’m yet to figure out a way to monetise Chartopia. This is not good considering that servers aren’t cheap and this is costing me a reasonably amount of money dispite the incredibly modest amount of traffic.

Maybe we just need to advertise

Yeah… I may have to bite the bullet and try some of those shady-looking advertising sites. Perhaps getting some targeted ads on role playing sites may help us.

At most all we can do at the moment is post articles, share via word of mouth and get some blog time on other sites. Scott has been writing articles about Chatopia at Nerdarchy.

Still in ‘beta’

There’s the cliche that if your software has no bugs, then you’ve released too late. Well, I can tell you that Chartopia is very much released and very much has bugs. There are so many useful features that need to implemented though, that I feel that Chartopia is in perpetual beta. I suppose if gmail can be in beta for over 5 years, Chartopia can do it too.

Turning a profit

Chartopia has been (and still is) a great hobby project (albeit a very long, more than 2 years to date hobby) and I’ve learnt a lot but gosh, it would be useful if this thing could pay for itself.

Unlike Pinterest, which currently has no monetisation and therefore makes no money, I want to actually make a useful service that people are willing to pay for. I may just have to sell-out and try Indiegogo or something.

When roleplayers want new material, I want Chartopia to be the first place they refer to. It’s starting to look like a lofty goal.

Introducing Chartopia

About October 2014 I, by chance, randomly met someone at a house party who participated in a lot of role playing games of the pencil, paper and dice variety. It became know that I was a software programmer and, as is quite often the case during these types of settings, he said “oh, I have an idea for an app”.

“Oh, yeah?” I said.

I typically humour these people (politely, of course) and hear what they have to say; after all, it’s a house party.

It’s now February 2017 and I’ve been working on Chartopia all that time. It turns out the idea had some merit and a couple of months later I chased up Scott, whose idea it was, and got him to flesh out some of the details. I finally had an excuse to learn python (via Django) and get involved with web development again.

What is Chartopia anyway?

I like to think of Chartopia as the Pinterest for roleplaying random tables, or perhaps the DeviantArt of RPG random tables. On the surface it looks like a giant, searchable repository of random tables that anyone roleplaying-inclined can search/browse their favourite genre of roleplaying game and see what material exists.

Under the hood though, Chartopia is a chart editor, rolling, discovery and sharing tool. Here’s a brief run down.

Chart Editing

Roleplaying gamers often make their own charts, the simple ones exist as blog posts but the more complex are either in spreadsheets or perhaps buried behind some javascript options on a website. Spreadsheets are okay, but they’re quite bespoke and get complicated quickly if you have tables that roll upon other tables. Javascript pages are cool, but they’ll only serve a specific task. I’m pretty sure it would be difficult to scale.

Chartopia address this with an editor that looks a bit like a spreadsheet but offers the ability for the user to enter in certain markdown-like formatting to create more complexity (or, euphemistically, more valuable and useful tables).

  • Rolling for a result on one table can automatically roll on other tables, collate the results of those multiple tables, then display it to the user.
  • You can add dice equations (such as 2d12+4) that are automatically calculated when the table is rolled on.
  • You can make small lists of objects that are calculated if they’re rolled on; e.g. [gold; silver; copper] would roll a d3 and select one item from the list.

Rolling

The best part of the editor is that, once done, only one button press is required to collate a result (across multiple tables and with all the equations calculated) and display it to the user.

Discovery

…and so given the above, let’s say you’re one of those people that never ‘creates’ their own content but ‘consumes’ a lot (e.g. I browse Pinterest but I never contribute any new images), you could search and browse all these amazing random tables and be one click away from checking out the table, or one press away from rolling some results on it.

The site’s discovery tool is so easy to use, it’s far better than sifting through people’s personal blogs.

Sharing, Publishing Tools

Naturally in todays Internet world, there are sharing tools such as Twitter and Facebook links (e.g. “Hey, I found this awesome chart on Chartopia!” type links to social media); they’re kind of a token gesture. More useful I reckon are the export tools so that the user can easily copy paste their own chart into  their blog or export to .csv (for they spreadsheet users out there).

More to come

There’s way more to share about Chartopia (I’ve been working on it for over 2 years after all) but I’ll cover that in subsequent posts. I’m also shamelessly trying to make Google associate the key words “roleplaying, rpg, random tables” with Chartopia’s website, so I need to write some more.

Back after a 2 year hiatus

“It’s been a long time…”

According to the calendar I haven’t posted anything here for 2 years. There’s a couple of reasons for that. The biggest is that AppFog’s hosting services ended and I had to migrate to a new service. That turned out to be a good learning exercise but ultimately a pricey one.

Slack as I have been with it, I came to the realisation that all that email traffic from AppFog about massive server loss some time ago actually affected me. Everyone’s apps hosted in the Asia Pacific region got wiped out but (holy moly I’m lucky I suppose) it didn’t wipe out the databases. As much as I wouldn’t exactly miss it if my entire programming blog history suddenly vanished forever, it seems a shame to lose what is essentially my programmer’s “Dear Diary” of content going back to 2008. So the WordPress app was dead (so I couldn’t use the convenient export tool) but I was able to recover the wordpress sqlite database. I’d have to manually apply that database to a new WordPress app.

And so began the process of rehosting codetactics.com.

Why are you so expensive, CenturyLink?

I eventually moved the blog to CenturyLink via Bitnami’s creation tools, CenturyLink being the successor to AppFog. It had a healthy trial period credit which seemed like a good deal but there was a catch. It turns out they charge you, then credit you back the charges. The result was that I was paying tax, a lot of it.

The thing is, despite the ‘generous’ credit that would have taken a couple of years to run out, the actual cost of running a basic WordPress server with next to zero traffic was crazy expensive. Something like US $25 a month or something (AWS is about US $5 all up for a lot of services). CenturyLink even posted me invoices all the way to New Zealand charging me tax of US 0.19c. Now, that was okay initially until randomly that tax got way higher than 0.19c, meaning that somehow my bill for that month got super high (albeit credited).

Back to WordPress.com

I was not prepared to stick with a service that was, on paper costing a lot more than AWS (where my other project is hosted). I’ll admit that I’m a web server novice and I couldn’t figure out how (if it was even possible) to somehow scale back whatever setting was required to stop CenturyLink costing so much; the servers were certainly not under load. Their invoice was way more complicated than it needed to be too and I gave up trying to understand how they’d come up with the costs they did. So many of the line entries were vague and repeated. It was not a good example of how invoicing a customer should be done.

So to cut a long story short, I gave up on the idea of having my own privately hosted WordPress blog and moved everything to an wordpress.com hosted site. Thankfully I could now use that convenent WordPress export tool and it was a trivial task to move. It means my codetactics.com domain name can only redirect to codetactics.wordpress.com (there’s no masking allowed) but at least it’s not costing me. My other projects and domain names cost enough as it is.

 

 

No more Failed State

Unfortunately I have not worked on Failed State in all this time. I’d love to but I started Chartopia at www.d12dev.com and it’s taken over 2 years of my developer free time (more on it later) . I did notice that someone has made an amazing looking Unreal Engine plugin for OSM data though. Nice.

Another side project

I really, really, really want to work on Failed State but I started another side project that has the potential to make a fair chunk of pocket money. As a result I’ve completely put the game on hold as I work on getting this side project to a minimal viable project. Actually, just getting it into a prototype so that some live testing can be done on it would be a good milestone at which to then spend a couple of weeks on Failed State again.

I write this after just after reading about Putin potentially getting cheeky with Georgia again, more specifically, in Samtskhe-Javakheti.

It also comes a few days after continued fighting near the Donetsk airport. Just look at how much Open Street Map data has been contributed to the Donetsk region. The contributors have almost accounted for every single house to the immediate south of the airport. Amazing.

Lots of data means lots of layers and therefore lots of z-fighting; something I still haven’t found a solution for yet.

One day it’ll be fixed.

Failed State Progress (or lack thereof)

It’s been over 3 months since the last time I posted about something Failed State related. I’ve rambled on about a bunch of other topics but nothing that actually explains away anything constructive.

I’ve also been overseas for four weeks to have a long needed adventure. Now that I’ve gotten the travel bug shaken out of the system a bit, it’s time to get back into the coding projects. Did I miss these projects while overseas? Not really because I having too much fun to care too much about stuff outside of what I was in the midst of.

I have to actually refer to my version control history to figure out exactly where all that time went. It seems that this has happened…

  • Oh, my tanks and infantry units fire projectiles now. That’s kind of a big deal.
  • Cool, sound effects. That happened too. I sourced the audio from combat footage in Afghanistan and some M1A1s firing on a weapons range.
  • A unit (the interactive element on the screen that could be a tank or whatever) now comprises of “entities”, e.g. a squad of infantry could have 5 soldiers/entities.
  • Added handling of when and whether one unit can attack anther unit. e.g. if a target goes out of line of sight, the attacker eventually cancels the engagement.
  • The entities of a squad all have their own firing timings and can be individually wounded, incapacitated or KIA. Because the game world is too high level to see and individual entity, I show them as little health-like icons above the unit icon.
  • Added some rotation to the camera as it zooms out so that as the altitude increases, the angle becomes more satellite-like. Conversely, as you zoom in the view is more 3D.
  • Ah, yes. My great fun and games with the Unity A* library I’m using. I had to make certain areas traversable for infantry but not for vehicles, but the heuristic had to add a penalty when traversing buildings because it’s slower than taking open streets. I had great fun with this because of various confusions not just with reading the API but because I even forgot what my own code’s logic was doing. Whoops.
  • Better colouring of building areas when they’re occupied but units. It cool to see the map light up with team colours as it’s being taken over by the player.

So, there has been progress despite the significant number of other things I’ve had going on lately, which is a relief. Unfortunately none of those things result in spectacular screen shots; this is the best I could do.

Upon making this screenshot I remembered the biggest oversight of the moment; shooting from and into buildings. Because of the line of sight intercepting with buildings, it’s impossible for one unit to shoot from one building into another building. In fact, you can’t even shoot from within a building at an enemy unit in the street because of the line of sight collisions. Whoops. This is going to require some work.