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.

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 this may not be the case.

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 despite 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.

Digital Door Knocking

Every so often I get emails from people offering some kind of ‘service’ that they think either of my mobile games might be a good fit for. When I say ‘they think’, the reality is that they probably page scraped my contact details among many others from some kind of product review site, then just blanket emailed us all.

Today I received a similar email but a variation on the theme.

Hi Glenn,

I was reading your blog http://blog.codetactics.com/2013/06/05/porting-a-cocos2d-x-ios-game-to-android and thought that your knowledge would be of great value to our users, who pay our experts a premium for advice.

Our platform, called Wizpert, is a fast growing community of experts, where users seek advice and coaching on computer and mobile programming languages, including Android, iOS Java and more.

If you decide to sign up, you will also get a customized Wizpert button to place on your blog – it will allow engaged readers to connect with you directly at your convenience for a live conversation.

Please go to http://wizpert.com/register_expert?beta_key=iOS and create your quick profile – it doesn’t cost you anything and takes just 2 minutes!

For more information, pls see our FAQ section on the site, or feel free to contact me personally with any questions.

All the best,
Michael
————
Michael Weinberg
Founder, CEO
Wizpert – NY, NY
917-251-2445

Maybe they scraped my existance from LinkedIn or Stackoverflow exchange or something but what I find unusual is that they actually found a very specific blog post out of many many posts that I’ve made which, to be fair, is actually an example of what they’re after.

I’ll admit to having an interest in tutoring (I’m a part time music teacher after all) but I have way too many other things going on to indulge in another tangent. Still, good on them for being aggressive in trying to grow their product.

Motivation Molifiers

There exists many opportunities during application development where one’s self esteem takes a hit. One starts to question if they’re creating their app in the best possible way or even worse, why they are even bothering to create it at all. It’s made worse by having a day job that sometimes saps the life out of you to the point where you dare not look at a screen any more, although usually that can be remedied by some vigorous post-work exercise.

The internet is full of clever people

The internet is the Cave of Wonders holding fast amounts of valuable knowledge; there’s so much there that you can’t possibly absorb it all. Likewise there are huge amounts of amazing projects for us to admire but a lot of the time they serve to show us how much further away our own projects are from completion.

I’m continually trying to brush away those thoughts, continually telling myself my little mantra of “do a little bit every day, then it will be done” but alas, there will be something that I stumble across on the internet that gives me pause.

Here are some of the themes that stifle my enthusiasm.

Mapping tools, apps, visualisations and libraries

Mapbox GL, although not a game, has done an amazing job of making OpenStreetMaps data look amazing.

Then there are the Geoweb3d guys that take OSM data and make amazing visualisations as demonstrated in this youtube video.

More closer to what I’m doing, there’s this guy’s awesome OSM/terrain data render inside Unity. Still not a game but it looks amazing.

Any game that has a map-like feature

Even today I stumbled across a gameplay video which had an awesome looking map feature. Homefront 2‘s main protagonist can use a mobile phone with a map feature that is used to coordinate attacks (and things). Then there is Watch Dogs‘ complementary iOS game that uses a fantastic map interface and also Battlefield 4’s Commander Mode. That Commander Mode really makes me jealous because it uses abstract map styling and incorporates game play like airstrikes and airdrops.

Other Strategy games

Did you know that Slitherine/Matrix are working on a new 3D Close Combat title? Games from the Close Combat series are some of my most favourite games of all time and yes, I’m trying to rip off some aspects of the game play. Seeing them make this new title makes me a little envious that they can take all the game logic of their very mature (2D) series and re-write it into a new piece of art.

Any Indie game with an amazing art style

It doesn’t have to be Indie but the downside of following the likes of TouchArcade and PocketTactics is that you see some fantastic looking titles. When I say looking I mean in art style rather than game play. I have a looong way to go before I should afford the luxury of messing with art because the gameplay really needs to come first. Eventually that day will come though and I’ll need to make something look amazing or else, seriously, who’s going to give a damn.

Motivation

So what does motivate me? Dare I say it, I really want to create dramatised versions of current (or very recent) world conflicts. Putin is being cheeky in Ukraine and the Islamic Front are doing a Genghis Khan through the Middle East. Imagine being able to brings aspects of those conflicts in to a game. A bit morbid perhaps.

Chauvinism, Criticism and Harassment – my comment on the topic.

Last week was the week the game industry showed its lack of maturity by essentially bitching about the drama surrounding Anita Sarkeesian and Zoe Quinn. I even saw another article about Phil Fish and naturally the comment section was going all out, saying things they’d never say to people’s faces.

It’s all a bit embarrassing really and I’m not sure why people care so much. Yet, here I am writing a blog post about it so obviously I care? Or do I? Yes, I seem to care enough to get involved in the mud slinging, even though what I try to do is actually pass around some bags so people can clean up their mess.

Here was my contribution to one comment section [edited for typos]…

“This comment section has basically reinforced the point that there is essentially a lot of hate directed at certain professionals in the industry. The problem is that commenters continually attack the player instead of the ball and continually try to find fault (which may be minimal) instead of trying to find what may be insightful.

Case in point are the ridiculous accusations directed at Quinn. All I’m going to say about that is for people to look up Kotaku’s response the allegations. It’s almost like people want or expect there to be something solacious and to hell with what really happened, so long as it *could* have happened.

And the hate directed at Sarkeesian is mindless in that it’s not like many people offer rebuttals to what she has to say. In fact, most of her videos are matter-of-fact in that they merely report instances of tropes and create an awareness of their existence. Culturally we get so used to the status quo that we need the efforts of people such as Sarkeesian to enlighten our thinking a bit more.

In regards to Phil Fish, I think people forget how much that guy toiled to get his game released (watch Indie Game: The Movie). Not everyone can handle media (and social media) in such a way that is dry enough to be palettable to everyone in the world. A more recent example is the maker of Flappy Wings who basically hid while all the conspiracy theories died down.”

*sigh* I don’t know why I bother. I find that people want want to discover a big conspiracy, just like a Hollywood movie but more often that not, the simplest explanations will suffice.

I endeavour to be level headed in these debates. I like jousting with my left leaning friends and conspiratorial friends alike but I do so with the knowledge that I’m as biased as everyone else. I like to appreciate all points of view (Re: Ukraine and Russia) but in the end I still feel compelled to pick a side. Will I get all bitchy with someone who disagrees with me? No, but I’ll still try and make a thought provoking remark on an Al Jazeera Facebook post about the Ukraine conflict (which is a cultural and geopolitical puzzle that I suspect doesn’t bode well for Ukraine).

Anyway.

Come on guys. The rest of the world must be thinking what the hell is wrong with our industry given the way we’re behaving at the moment.