So… it’s Febtober already and I was supposed to have finished writing AND publishing this post last month and begin working on another post already but… everything just kinda got away from me in January which just felt like juggling irons in fire so… I wasn’t able to get this post out and for that, I sincerely want to apologize to my readers for not journaling more studiously.

Of note last month, I was diagnosed with 5 dental cavities. The first time in my entire adult life too, because I give amazing oral… uh, care… to myself on the reg because among my SUM = bitch father‘s addictions was a love of the moon sugar and due to his Skooma needs I watched the living eruptions of calcium in his mouth chip, rot and completely wither away as he eagerly downed yet another full 64 ouncer!

As a result of that traumatic childhood experience I learned that brushing and flossing are DAMN GOOD ideas, so you’ll have to forgive me if out of the past 20+ years of cavity free adulthood that I’ve experienced, in recent years I’ve had maybe more than a few exhausted nights of parenthood where I laid my head upon my body pillow at the end of the day, not having brushed my teeth… or my hair. 😛

And it really wasn’t that bad getting the fillings done and the dentist made the effort to make me as comfortable as possible during the procedure so I guess I can’t complain… except… that he also clipped the underside of the tip of my tongue with the drill! Though thankfully I was well and truly anesthetized so I didn’t feel a thing and it ended up not being any worse than if I had bit my tongue.

Now, not placing any blame here but there was a rubber “bite block” in my mouth and although it wasn’t red or ball like it was still a little gagging if I’m being honest! 😉

So… I may or may not have bitten the dentist while he was drilling… hard to say who fired the first shot but I’m fully healed now so I figure we’re pretty much “even” so long as open hostilities don’t resume the next time he’s in my mouth… er… you know what I mean!

So anyway… we’re making a game… well.. actually I’m already greased up past elbow-deep (Damn it!) in the development process and today we’re going to start catching you up to where I am so that you can follow along and enjoy the adventure of developing a real game together along with me and that means that YOU PERSONALLY have the very real opportunity to help shape how it turns out just by leaving a comment on these posts. 🙂

Now, my regular readers (can I say “regular” readers if I post so infrequently? 😛 ) will know that I’ve created game like software in the past on my blog but that was more of a demo/proof of concept (I wanted to test how well WebGL would work as a “platform”) but what’s different this time is that you and I together are gonna Katy Perry “go all the way tonight” but instead of “tonight” it’s… however long it takes us to “finish” our game! 😛

I haven’t decided if it’s going to be mobile game app, a “Steam Exclusive” or if I’ll be like Bethesda and Blizzard and sell to Microsoft but… as far as I am concerned, the distribution platform is the LEAST interesting part of this project so.. Microsoft can have their bot call my bot and maybe we can work something out… maybe!?

And speaking of bots, by nature I’m a “bot builder”, I innovate, I automate and outsource as much as possible to “the droids” that I purpose-build because I’m a lone indie dev and no matter what I’m working on, bots can significantly “extend” my ability to “punch” above my “weight class” sometimes and this project is no different.

What IS different for this project however is that these posts will be more of a “dev log” format than tutorials due to the complexity of “juggling” all the “spinning plates” involved but where relevant and or interesting (and time permitting) I will describe some of how my bots work and of course you should feel free to ask questions in the comments section below each post. 🙂

So to begin, I had one of my Spider Bots scrape Twitter for hundreds of tweets about game development and then… threw away all the images and text of each tweet because I only wanted those sweet-sweet hashtags!

All text that was preceded by a “#” was separated out and put in a text file with each line of text in the file representing a single tweet and hashes were space delimited.

Example:

#MadeWithUnity
#ScreenshotSaurday
#madewithunity #gamedev #indiedev #indiegames
#screenshotsaturday #madewithunity #lilgatorgame
#gamedev #indiedev #madewithunity #unity3D
#madewithunity #screenshotsaturday
#gamedev #indiedev #madewithunity
#screenshotsaturday #indiegames #gamedev #madewithunity
#madewithunity!
#unity #shader #realtime #mocap #madewithunity
#indiedev #indiegame #madewithunity #solodev #gamedev
#indiedev #indiegames #gamedev #madewithunity
#indiegame
#gamedev #indiedevhour #indiedev #indiegame #IndieGameDev #madewithunity #screenshotsaturday #Caturday
...

Then, I wrote some un-optimized PHP code that would count the times each unique tag (converted to lowercase to “catch” all tags with different capitalization) appeared so that I could find which hashtags were most common/prevalent and then exported a CSV file with the results.

Un-optimized Hashtag Counter:

<?php

$data = file_get_contents("MostCommonHashtags.txt");
$data = explode("\n", $data);

$tags = array();
foreach($data as $line){
    $line = explode(" ", $line);
    foreach($line as $tag){
        if(trim($tag) != "" && !empty(trim($tag))){
            @$tags[strtolower(trim($tag))] += 1;
        }
    }
}

$f = fopen('MostCommonHashtags.csv', 'w');

foreach ($tags  as $tag=>$count) {
    fwrite($f, "$tag, $count".PHP_EOL);
}

fclose($f);

CSV Result Example:

The results of the code above looks like this:

#madewithunity, 122
#screenshotsaurday, 1
#gamedev, 333
#indiedev, 281
#indiegames, 89
#screenshotsaturday, 137
#lilgatorgame, 2
#unity3d, 38
#madewithunity!, 1
#unity, 11
#shader, 3
#realtime, 2
#mocap, 1
#indiegame, 240
#solodev, 21
#indiedevhour, 19
#indiegamedev, 140
#caturday, 1
#indiedeveloper, 13
#indiegamedeveloper, 17
#indiegaming, 7
#pixelart, 142
#gamedevelopment, 178
#rpgs, 1
#3dplatformer, 8
...

Now, I effectively have a list of hashtag terms associated with “Game Dev” that I can use to “start from scratch” analyze the “lay of the land” and you can do this for ANYTHING not just when developing a game, but anyway… while this doesn’t say which are the “best” terms (that’s a different bot 😛 )… it does say which ones are the “most used” which is a reflection of what the game devs thought were the “most important” for advertising their games which is kind of like asking all of those professionals for their honest advice (for free) and without having to have a conversation with any of them. Maybe it’s just me but all of that feels like a “win”!

So given this information combined with a second factor/dimension/indicator (like how many replies/likes/retweets a tweet has) and a sentiment analysis of it’s text, I can build a system that scores my propagan… uh.. “advertising attempts” for likelihood to gain “traction” (positive user interactions) to maximize engagement and financial return on my unpaid indie efforts. 😉

More importantly though, there is a lot of “actionable” information provided by this simple frequency analysis on my scraped tweets and their collective hashtags.

I found that, even accounting for spelling variance and abbreviation, the vast majority of dev’s seem to be developing with Unity:

#madewithgamemaker 2
#madewithgodot 7
#madewithunreal 17
#madewithunity 122

Now, it could simply be that Unity dev’s tend to be more vocal about the gaming engine they develop with… but even still, the pattern is quite well established and it’s fair to conclude that the Unity Dev “community” is currently larger and that COULD/MAY translate to more/better informational resources (tutorials/boilerplate code examples) being available (at this time) to you.

I already occasionally develop using Unity so this is more of a confirmation of my confirmation-biases than a new confirmed bias fact gained by me, but you might find it biasing.

I also found that Saturdays are the day to release screenshots:

#screenshotsaturday 137

Maybe I can occasionally do a Screenshot Saturday?? Would you like that? #Beg for it in the comments below, um… please?!

And that Wednesdays are the day for wishlisting/wishlists but… that wishlisting and Wednesday is ~4.88 times LESS popular than screenshots on Saturday:

#wishlistwednesday 25

Ah Wednesday, not quite as good as your siblings Friday, Saturday and Sunday are you? But at least we can all agree you’re way better than Monday! 😛

Additionally it can be said that people like puzzles, metroidvanias and platformers… or at least game developers seem to really think that players do:

#puzzlegame 46
#metroidvania 81
#platformer 134

Also, the lone RPG is ~2.3 times less mentioned than puzzle games and that platformers are ~6.7 times MORE talked about:

#rpg 20

I found a lot of other things too but of course all of this is just a starting point that informs my planning and in any case here’s some charts I generated from my data:

Most Common Game Dev Hashtags Chart 1
Most Common Game Dev Hashtags Chart 1
Most Common Game Dev Hashtags Chart 2
Most Common Game Dev Hashtags Chart 2
Most Common Game Dev Hashtags Chart 3
Most Common Game Dev Hashtags Chart 3

 

Pretty right? Which brings us to today’s wallpaper.

I can assure you that future posts in this series will be “prettier” but I tried my best to find a way to bring all the charts together into a wallpaper and I hope you like it.

Dev Log Begining Wallpaper
Dev Log Beginning Wallpaper

Along with this wallpaper, its time for the musical accompaniment for today’s post so here goes… I’ve traveled too far to go back to the place that I’ve started… so instead we’ll just begin right here and see where this project leads us, much love to you all!


So like… I have a Patreon n’stuff but like… you don’t care, I barely care… but it’s a thing and now you know about it.

But, if all you can do is Like, Share, Comment and Subscribe… that’s cool too!

Much Love,

~Joy