I’ll admit – I’ve been stuck in a bit of recursive doom-scrolling behavior. There’s a lot going on, and I’ve been capturing a small small fraction of it in a goofy digital scrapbook as I continue to shelter at home (in my best effort to prevent myself from being part of any chains of transmission during a global pandemic). A reoccurring theme is that a small number of “bad actors” take action that cause grief for a disproportionately large number of other people. Anyone playing games online will be very familiar with the behavior, but under different names: “Hackers” and “Cheaters” may be more familiar.

Prior to in-game monetization being a norm there’s another label associated with bad actors in the gaming industry: “Pirates”. Business needs and game development weren’t nearly as integrated as they are now, so many a game were released that had trivial security around piracy, contrasted by games that included incredibly obtrusive “anti-piracy” software to “solve the problem”. Anyway, this isn’t a history lesson, the point is – the behavior of bad actors can have a fairly significant disproportionate effect in areas you would never expect.

Understanding the potential harm a bad actor could pose is critical in deciding how to approach it. In many RTS games for example, core underlaying peer-to-peer network strategies cause the game to fail if one computer does something the other computers don’t expect. This simultaneously solves network problems (how computers agree things are happening in the same virtual space) and also the “Cheater” category of bad actors in a multiplayer environment – but also it doesn’t disallow cheating in the single-player experience, a space where if you do manipulate the environment for your favor it doesn’t create a bad time for anyone else.

Getting to know Bad Actors

I don’t think it’s fair at all to assume all those whose behavior may fall into the group labels I’ve identified so far (“Cheaters”, “Hackers”, and “Pirates”) as bad actors. Fairly consistently – whether it’s in games or real life – the primary trait of a bad actor is to take the action knowing or suspecting the scope of damage they may cause, but either just don’t care or the damage is the intent in the first place. There are various benefits to behaviors, and when people observe other people taking action that’s advantageous to them it validates making the same decisions for themselves, jumping ahead and not even suspecting their actions could be causing damage (it’s so common so it must be fine!).

Identifying bad actor behavior in generalized cases helps build preventative measures – reactive measures are really expensive in an effort:outcome ratio (and depending on the game, those efforts may never happen as once a game is released effort may be redirected to new projects where it’s much more efficiently spent)

  • Hacking
    • Dramatically lowers the barrier of entry for cheating or piracy
      • Very disproportionate effect by enabling other bad actors
    • High risk of forcing reactive response for business desires
    • May provide benefits!
      • “Modding” unless fully supported requires quite a bit of hacking, and sometimes a modded experience is the best experience a player can have in a game
  • Cheating
    • Player vs. Player environment
      • Creates a very poor experience for players not also using cheats
      • Disproportionate effect slowly builds the more they play
      • Player vs. Player is already high anxiety for many players, even the idea others are cheating can cause players to disengage (sad times, bad experience)
      • Viral effect, to enjoy the game players may feel they must also cheat as well
    • Multiplayer cooperative
      • Reduces impact of players not cheating on the game, reduces other players challenge
      • Depending on game, may impact monetization
    • Single Player
      • Reduces personal challenge, zero disproportionate effect
      • Depending on game, may impact monetization
  • Piracy
    • May impact monetization
      • It’s really hard to say by how much, there’s no data on an argument of “Each pirated copy is a lost sale”
      • Anyone whose lived paycheck-to-paycheck knows this can’t be 100% of the cases, when you don’t have a lot of money you take what you can but don’t take what you can’t (afford)
      • Also (and completely anecdotally) people who do have the means to purchase things with what would effectively be pocket-change for them will take something for free if it’s easy enough instead of paying for it – so yes, there would be at least some lost sales
    • Potential viral advertisement
      • Epic Games explicitly uses the offer of free games (that otherwise wouldn’t be free) to draw people to their platform
    • Enables Bad Actors outside of the game
      • Pirated copies are very susceptible to hacking and may be packaged with malware/viruses etc.
      • Disproportionate effect not just within your game but now creating personal security vulnerabilities for people

It’s not an exhausted set of examples but I do hope it sets the stage that not all behavior in these realms necessarily indicate a bad actor. In fact, there’s been cases where behavior usually associated with a bad actor can have beneficial effects for a game or its community of players. I think the most succinct method of identifying a bad actor is that they have a tendency to act in bad faith, and unfortunately, attempting to meet an entity acting in bad faith with well-intentioned or good-faith actions only feeds the bad actor.

Motivations of a Bad Actor

I created this heading to explicitly say: the motivations of a bad actor are irrelevant.

This may sound strange, a lot of discussion around these topics devolve into motivations, whether someone is “innocent” of poor motivations for their disruptive actions – and from a development perspective, it really doesn’t matter. Whether someone obliviously ruins a significant number of peoples good time or maliciously takes joy in it, it’s still ruining other peoples good time. Attempting to assess motivations implies a reactive approach, so indulging in debates of motivation (for example, to apply targeted punitive measures) is a fairly exponential spend of time and energy that doesn’t prevent the damage in the first place.

Appeasing a community with punitive measures (ex: targeted banning) may yield some loyalty from that community, and in some cases that loyalty may be very important – but if the underlaying systems/rules/structure are enabling bad actor behavior, well, it will never stop and you’ve now committed to punitive maintenance.

Preventative measures

The games industry has an advantage that many other industries (or say, governing bodies) do not have – if something isn’t working, you just create a whole new virtual world from the ground up with the lessons learned. Analytics can be a powerful tool if the goals in analyzing that data are to learn (as opposed to ‘prove a point’), but they can only inform in hindsight. Lessons learned need to be applied in new work, and in a live environment that can be… tricky. But! Whole new virtual world? Much less tricky (but still tricky if creating a follow-up in a series, gotta be careful of expectations set).

There’s no magic bullet, the environment is changing all the time at a very rapid pace (one of the reasons I absolutely love creating games) – but there are a couple things I’ve learned that I’ll share

  • Don’t trust the client
    • Basic idea – if you find you’re spending a lot of energy trying to secure something on the client… just don’t, if your game gets popular enough to attract bad actors you’ve started an uphill battle in keeping the client secure
    • Reminder! If it’s not a multi-player game then the “Cheating” category are extremely limited in affecting others game experience (some online communities, like speed running, may have opinions though – be aware of your audience)
  • Don’t assume what you’ve been doing is infallible
    • Games with zero thought into security may not run into adverse effects of Bad Actors
    • I honestly believe a very small portion of humanity would fall under the Bad Actor category – chances are you could simply never have attracted them
      • All about risk management – imagine a Bad Actor will end up in your game, how can you mitigate potential damage? Not taking action and not suffering direct consequences could just mean a lucky dice-roll
      • Reminder about disproportionate effects, small numbers of Bad Actors can impact the experience of a very large number of players – a horrible situation when caught completely by surprise
  • Leverage a server for secure game logic with third-party hosting services
    • One of the massive shifts in gaming is the acceptance that networking is something that can be an expectation
    • Hosting services (ex: AWS, Microsoft Azure, there are many) need to be very good at keeping on top of their own network security (ex: preventing DDOS or other network attacks), offload that headache
  • Deterministic simulations for sensitive game areas, client presents, server authoritative
    • In Soulite Monsters the game server and client were written in the same language (C#) thus easily shared code, the client would do all the hard work of drawing images, UI/UX flow, and presentation elements for the player, even showcase rewards/combat for the player – but the server would run a very trimmed-down simulation of certain mechanics, some examples
      • Player Inventory (due to either bug or malicious intent, if the client inventory fell out of sync from an action the server had absolute authority)
      • Expedition generation (scroll consumption) and choices within
      • Monster Combination
      • Village Upgrades
      • Combat
      • Merchant Transactions
  • Learn from others experiences
    • Don’t just rely on your own games, participate in other game communities, see what kind of impacts Bad Actors have on them

Bad Actors exist outside of games

I’m pretty sure throughout our lives we’ve all been (or are even actively being) impacted by Bad Actors in all sorts of situations. Sometimes people (or groups!) simply have very strong motivations and refuse to act in good faith (even if they have learned to at least appear to be acting in good faith). I’m nearing 40-years old, I’m tired of that garbage, I can imagine others are well. I highly recommend that if you feel someone is not acting in good faith, or operating as a Bad Actor, to go beyond what is happening in the moment and dig into how to minimize that type of impact on your life.

Observe, learn, build preventative measures – actively engaging may be forced on you at times, unfortunately. With enough preventative measures preventing Bad Actors from soaking up reactive energy, well, the imagination really is the limit of where you could be putting that energy instead.

Personal anecdotes I don’t feel really impress the effect of the disproportionate effect of Bad Actors, so I shall leave you with some real-world examples

I figured my neglect of this online journal hit an all-time high so I thought I’d do it while Angel investigates Roblox Studio, a tool used to make games for Roblox. “Who needs a bridge?!” was just triumphantly shouted as a bridge was blipped out of existence in a game anyone in the house right now can play, load, and (now) find an absent bridge.

Of course the resident 7yr old, being a Roblox veteran, piped up in reply to the rhetorical question “YOU NEED THE BRIDGE TO CROSS THE WATER!”

This is already fun.

So I didn’t know too much about Roblox, and I still don’t, I have research to do. What I did know was…

  • Platform, not a game – relies on users to create content/games for other users
  • Multiplayer online focused
  • Games looked very primitive
  • Plagiarism galore, from movies to music to assets from other games (“Mario”, “Mickey”, etc. etc.)
  • The kids like it

That was my information launching point as my news feed started getting spammed with how much revenue Roblox Developers were pulling in. The same flurry of news articles let me know that the company has recently started being publicly traded and is has a pretty high evaluation. Those two things alone really piqued my interest, based on what I already knew!

Back in the days I was working for corporate entities (fingers still crossed I can avoid that scenario in the future) I put together a business plan for self published games. That plan was the seed of what I’m attempting to accomplish now and had a time-frame of around a year and a half. Part of that plan was to leverage the flexibility I have by not convincing dozens of people a decision is great (not even just great, but you won’t believe how great it is! Let me show you in this 22 slide Power Point presentation! So can I do the 1hr of work now?) before making it. The pandemic has already thrown any specific examples in the plan for a fairly significant loop, but that’s cool, I get to lean on that flexibility! Lean right into Roblox Development.

I’ve finished my first project Read Play Game, and what I’ve accomplished with it I’m very proud of. I’m in the process of Game #2, intended to be available on PC (itch/steam/etc) and Mobile, and potentially consoles as well if things look good. I had estimated Game #2 to be around 6-8 months of work to launch with monetized features, and additional couple months to iterate and check the metrics and see if it’s a good candidate to bring in enough money to pay the bills. I’m still quite a bit of work away from showing anything publicly for it, so right now seems like a great time to put a pin in it and see how viable it would be to bring in revenue from a Roblox project.

Now, to the people who I pester to read my things, you may be asking yourselves “what about those agnostic systems, those seemed cool and beneficial” – yes, and they still are, for Unity or almost any other engine that would support C# as a language. Also I have every intention of revealing Game #2 at a future date whether this Roblox experiment yields positive results or not (I already have the title copyrighted, once you have the fancy paper you just gotta finish the thing), so those systems and tools will definitely get lots of use. Due to Roblox’s unique development pipeline it would be difficult to bring in work or tools from other game engines in general, so that’s one negative in Roblox’s favor. I have the list about what I knew about Roblox, now here’s what I’ve learned so far about developing for Roblox:

  • Creators see 24.5% of revenue generated from their games
    • Face-value this doesn’t seem like much, I’ve included an image of how that’s split below these bullet points – as an independent developer my App Store Fees are 30% and I don’t have to worry about platform or support infrastructure
    • Even if I 100% make a game myself and put it on an app store, after fees and taxes I’m realistically seeing less than 50%~ by the time I actually get to claim any money, cutting that in half to not worry about a whole lot of things (including managing multiple platforms like Play Store, iOS, Steam, Itch, etc. etc. etc…) is actually not a horrible deal
  • Roblox Studio is… not horrible
    • I think only other developers would understand what a big deal a brand new tool not being horrible is, I may grow to loath it (or love it!) once I start actually creating with it instead of just poking around, but it’s a good initial impression
    • It is in a weird space of competing with Unity or Unreal, but instead of building out to multiple platforms (PC, Console, etc. etc.) Roblox provides the platform, just one for me as a developer to worry about
  • The company is now publicly traded, and the current content is rife with plagiarism and copyright infringement
    • Why is this a big deal to me? Well, the estimated $250,000,000~ dollars developers are expected to earn this year is probably going to earn the attention of license holders, since a good chunk of those dollars are earned with an IP that some Roblox developer doesn’t own
    • License holders are more likely to start paying attention, I think there’s a good chance content within the Roblox Platform may start getting taken down due to infringement… which may create a comfortable vacuum for small original games to fill
  • Lua is their programming language of choice, and I am very familiar with Lua
    • In Dawn of War 2: The Last Stand I built the behavioral AI entirely in Lua, an AI that was adaptable enough to replicate all player heroes on Wave 16 and getting me very angry yells across from the office as the AI beat players with their own abilities
    • During my time at Relic I was asked by a lead engineer to look at all their single-player scripts, they were apparently running at > 100ms~ sometimes spiking to > 1000ms~ (this is real bad, that’s a full second of a frozen screen) on the Xbox 360 – got it down to a chill 0.01ms~ spiking at maybe 0.1ms~ and kept all the behavior the designers wanted, they didn’t need to lift a finger and they could build off my work to add new content without sacrificing performance
    • I even have Lua experience in a server:client relationship thanks to a mobile project I worked on!
  • Expectations are low on the platform currently, games are fairly primitive
    • I expect competition to heat up due to other seasoned developers seeing what I’m seeing, but most of them work for corporations and will still be debating over power-point presentations while I can jump on this and hopefully get in early
Shamelessly snipped from https://developer.roblox.com/en-us/articles/developer-economics

So while I’m stepping away from a big comfort zone (Unity + smorgasbord of systems I’ve made, tools I’ve made or purchased, and assets I’ve made or purchased), those perks will be traded by my bullet points above. I expect to have a game the whole household here can play in a fraction of the time it took to get Read Play Game on itch. Within a month I’ll be able to judge if generating revenue as a Roblox Developer is actually plausible for a real-life adult with a real-life household to support, and even if I find out it isn’t plausible perhaps a break from Game #2 is just what it needs for me to come back to it refreshed and roarin’ to go.

I’m writing this while procrastinating calling the coroner’s office. It won’t have much if anything to do with games or development, but seeing as I’m pretty sure the majority of people who end up reading this are friends and loved ones this feels like a more appropriate space than a social media account. Words I can share for when I don’t quite feel up to talking.

All I know at the moment is that my mother has passed away, she was found in her home yesterday and no foul play is suspected – that’s all the officer who came to deliver the news had to offer, the coroner will have more information.

I don’t know much about my mothers life before me, nor do I know anything about her life in the last 15 years. What I do know is she struggled with significant mental health issues, issues that had me every 1-2 years living with a relative for a period of time (longest period was my Dad for a school-year) while she recuperated in Alberta Hospital, for all the friends I’ve met in BC – Alberta still has dedicated medical hospitals for mental health. The fact BC doesn’t is red-flag number… un-countable at this point. Stopping my immanent tangent on how subversively dangerous a crap performative government with a pretty faรงade can be… now. Also, thank you autocorrect for that fancy c back there.

Didn’t sleep much last night, my mother isn’t something that has occupied my brain space over the last decade. Rather than sleeping I couldn’t help myself mining for memories from the depths of… wherever they go. Reconciling the person who was dragged out of the house when I was in Grade 3~ by police due to erratic and violent behavior (the neighbors were incredibly concerned about my health, but only inanimate objects suffered any damage), who ripped the telephone out of the wall only to throw it into the dishwasher while declaring our dead grandfather was coming to visit. This is the same person who when I was a child with chronic nightmares would sit by my bed until I fell asleep, every night. Even when I was being a brat and making whiney noises of discontent if I was conscious enough to know she was slowly sneaking out of the room.

I got about this far before talking with the corners office. I don’t have much more to say on the topic, my next online journal update will be closer to the topics I usually talk about in this space, going to take a break for awhile first though.

Todays online journal topic was inspired by Angel, my lovely wonderful partner who couldn’t give two petrified rabbit droppings about the benefits of bit shifting.

Hilariously, as I’m writing this Angel sits down beside me and all interest was lost in what I was doing purely from the title alone. Speaking of that inspiration… so I was verbally trying to explain to Angel what Bit Shifting was and how it could help me. I was havin’ trouble with just words and I know Angel loves both visuals and spreadsheets, so I originally created this as an example to aid my whimsical desire to explain something

The idea here is to be able to use a single number to represent different types of content or even blend those types of content together

So that’s jumping right in – what the heck am I trying to do!? Well, the game I’m working on right now has a need for me to define some kind of pattern for content. I didn’t actually know that right away, my steps to reach that realization looked something like this (I bolded the relevant line):

  1. Concept (I want content that players interact with in this way)
  2. Prototype (Create a stand-alone scene in Unity to test my theories to make sure I can actually do this thing)
    1. This got to leverage other tools I’ve already made for other games
    2. Part of this process is showing me what I don’t have tools for
  3. Pipeline (Figure out how I’m going to create this content)
    1. Tools already existing: Is there friction here?
    2. Manual labor: What tools can I create to reduce my own labor?
  4. Creation (Start creating content for the game!
    1. Tip: Don’t be shy about taking steps back if you have a good idea it’ll save future time

In this particular case I have built up tools to help me out, so I get to use past work for some easy wins, hurrah! But something was bugging me, if I want specific patterns of content… I didn’t have a great way of doing that. Honestly, my impulse (because working solo means no one has to suffer through horrible workflows except me) was to define the pattern in plain old text, relying on my ability to mentally graph it all together.

That was a horrible impulse. It probably speaks a lot to my current mental state.
Note: If you find yourself pushing to mentally crawl forward rather than stopping to see how you can run, or even sprint, maybe read my previous post

Okay okay, so I keep using this word pattern. It’s a word that I’ve kind of described for myself for a specific need in this current game, but I also run exercises in how something that is super generic could be re-applied to other genres of games entirely, giving me a toolset of Genre Agnostic Systems to leverage for future games!

I tried to be super lazy and see if I could procedurally generate reasonable results, or maybe use a simple 2d image to map areas, but each of those approaches ended up having a lot of… bloat. Giving me a lot of things that I don’t need while also not making it as easy as I’d like for what I need. I ended up with a more direct approach: Build out my own data structure (that gets to leverage a data pipeline I already have!) to define patterns of game content, in… spreadsheets!
Note: Anyone who knew me in the 2000s may have heard me rant and rage against spreadsheets for game data – I’ve since found sheets useful for certain types of data, and here’s one example

I like to imagine how different genres would use this pattern data, I’d encourage anyone reading this to provide their own imagined applications in the comments! I included a legend in the first image, I’ll recap what numbers mean what hypothetical thing to be interpreted and used by a game

1Basic Obstruction (player may obtain tools to pass)
8Barrier (cannot pass at all)
128Extra Special Reserve
Types of game content represented in the pattern

What we have so far: the ability to define, in a grid, content that will appear in a pattern. That content can easily be combined by adding numbers together (2 + 4 = Monster + Treasure) (1 + 4 = Obstruction with a Treasure… presumably if you can remove the obstruction) – we can reference that pattern by name but likely we’ll use other methods to pick from a pool of patterns that make sense based off of a broader context (like narrative or theme)

  • Action Game with a mini-map
    • World can have pre-placed or procedurally placed areas where patterns of content may exist in the world while exploring, these patterns appear most visibly in the mini-map, but also viewable from a birds-eye perspective in game
    • Type of (Monster/Treasure/Barrier) of broader category determined by a mix of area theme, player progression, and any potential special events
    • Mixes are exclusive – one or the other is picked for added variety
  • Dungeon Crawler
    • crossroads and fancyRoom are examples of this
    • 128+ tiles are room entry/exits, moving to this tile changes the room (new pattern)
    • Perhaps shovels are a mechanic that can be collected and break after use, all (1) squares can be smashed with a shovel to move through
    • Mixes are inclusive, something can be an obstruction and a Monster
      • Not sampled: Room/Monster combo (3) – fight it or smash it with a shovel, either way allows movement through
      • Sampled: 132 is a special exit combining 128 + 4 (Treasure) – an exit that leads explicitly to a “Treasure Room” (pulls from treasure room patterns of rooms)
  • Match 3
    • Overlay patterns on top of a generated puzzle to apply unique block mechanics, quick example
      • Basic Obstruction: Need to match multiple times to consume the block
      • Monster: Earn experience for player character when consuming the block
      • Treasure: Earn currency for the player account

I like to start with 3s, I figure if I can have 3 plausible applications off-the-cuff then the creative box I have to work within is probably big enough.
Note: The game genre that I’m working in right now is none of the above, no spoilers!

The patterns can be nested as well, with a game having multiple uses for patterns! In a Dungeon Crawler example, a whole dungeon could be made up of dungeon patterns stitched together procedurally, with pattern cell data determining which pool of room pattern content to draw from when someone enters a dungeon room cell (entering and exiting that “dungeon cell” by the 128+ cells in the room).

I could even see an application for Read Play Game, where perhaps a player drops in a hedge-maze and a pattern is determined to both give the player options of movement (North/South/East/West) and what events could happen as they meander through. I’m excited at the possible things this is going to help me make! Also it solves my current problem.

I hope that made sense, I’m going to find out by sending Angel a link ๐Ÿ™‚

My general plan for January was pretty simple: Take some time off around Christmas, take my concepts and initial idea-proving work and come back at it refreshed and full of energy and pep!

Things did not go as planned.

I found myself just as exhausted as when I decided to put a proverbial pin-in-things in December. “This ain’t right” I thought – I mean, I explicitly stated I was taking time to relax, so I should have relaxed right?! That’s how it works!

That is, apparently, not how it works.

So I’ve learned at least one thing, I don’t know how to relax right now. That’s… a step, but doesn’t really guide me to how to, y’know, force that relaxation on myself so I can get back to the high levels of energy that I’m used to. The level of focus that in the past meant a new person at my desk interrupting me every 5-15 minutes with brand new questions, swapping topics to solve problems while threading in my own work without a hitch. I had it! I want it back!

I’ve swapped people at my desk to assist in questions around school or helping get a cup that’s in the high cupboard, but I find myself playing catch-up far more than I used to when I sit back down to get back at it. We’re living in some pretty crazy times with some massive disruptions in all sorts of things, I’ve even started a “scrapbook” of things I just stumble on in my day-to-day that really highlight the… casual insanity. I’m hoping years from now some of the massive problems that have been exposed lately world-wide are addressed and that I can look back on that scrapbook with friends and have some head-shaking reminiscing moments. The state of the world is occupying my brain space much more than I’d like, is that it?

I don’t know. It could be a number of things, this is very new for me (a phrase I’m sure many people in their own scenarios can relate to in 2020 and… beyond…). Tackling new frontiers is very important in game development. Staring the unknown straight in the eye and saying “… I will google that” as opposed to passing-the-buck is a solid skill to have. To leverage that skill though, you really should have a basis of foundation to ensure you’re asking the right questions, to even know what you should be learning. Just try googling “how can I force myself to relax?“, there’s a plethora of suggestions out there, but also I don’t think I’d be asking the right question to begin with, I think the problem is more complex than I’m even able to articulate right now.

So where to go from there? Well, I’m trying to make Gilroy Games a sustainable source of income for my entire family. I’m my best asset, I can leverage my experience in both game design and engineering to accomplish any array of tasks generally assigned to a group of people, sometimes faster than the group. That’s not a flex, years ago when I was a single person assigned to a project (and only half my time at that) the progress of that project was praised and directly compared to fully staffed other teams in the company. It’s a phenomenal advantage to reduce communication time between workers to nothing (honestly, that praise is what planted the nugget that it’s a totally reasonable thing that I could just make my own games).

So the hard truth I need to accept: My best asset is not functioning at peak proficiency.

This is a problem I’m not familiar with solving. Just like I buy assets or modules to help speed things along in areas that I know from my experience would save me a ton of time (or in the case of assets, hit an artistic quality level I could never hit myself!) I think I’m going to need some outside help. I’m going to try something that is radically new to me. I’ve now had two chat sessions with a therapist.

Way I see it, it can’t hurt to talk to an objective human about this weird problem I’m having, a weird problem I’m having trouble even putting into words. I think this very post is an indication I’m doing something right – cause if I’m being real here the bucket of work that contains things like [journal updates, page updates, business administrative work, promotion] are for me some of the hardest things to do, requiring the most amount of energy. Here I am, doing it!

It’s a strange thing to ask for help when you don’t necessarily know what kind of help you’re even asking for, when part of the help is… defining what’s being asked for. I think that’s probably true when it comes to mental health in general, so all I can say is I encourage anyone reading this feeling any weird vagueness like I’ve described, just go for it. It’s a strange industry that weirdly specializes in that exact scenario.

Lesson learned this month: I need to keep working on and investing in myself if I want the games I make to be the best they can be.

I’ve now registered for my third copyright! The second one will get used later, thanks to the beauty of creating games for myself I get to make that decision without many an hour spent preparing presentations then selling them both inside of outside of meetings. It’s really quite refreshing.

I took a stay-cation from creating games in the wonderful world of warcraft, whose new expansion has given a small group of friends and I the excuse to be online together almost every evening. The bulk of 2020 socializing has fallen right in December and we were loving it. Alas, it’s time effort gently shifted from friends and fun times back to growing my personal game library and the journey to become a truly independent game developer (this next one hopefully makes money).

I wasn’t idle in December on the creation front, I have some prototypes, tested theories, and settled on a clear direction where I’m headed (which was a ninety-degree turn from where I originally thought I was going before I relaxed my brain for the first time in the year). Game #3 I’m hoping will be much more accessible than Game #2 (numbered by intent to create thus now chronologically out of order) and I genuinely am shocked anything similar hasn’t been done before (I looked! In a lot of places, not just the first page of a google search!), I’m super excited to bring the idea to life.

Certainly more accessible than a whole bunch of text that then lets you pick an option out of small boxes of text, haha. Read Play Game, you were a joy to create, but I understand your financial unviability. It’s okay though, it served as a great launching-point for this grand new adventure. Learning, it can’t be converted to a direct ROI for an investor (and I don’t have to, ha!) and yet it is absolutely invaluable.

Due to several combined factors (including a decision months ago to stop purchasing alcohol – that stuff is expensive in BC) I’ve fairly dramatically expanded the time I can take to create games before falling back into a corporate environment to pay the bills. I’m going to use that advantage to not charge right ahead like I did with Read Play Game. Many decisions were made based on how to save time, like which GUI framework to use. Since then I’ve learned quite a lot, let’s continue with the GUI example: I own NGUI, and am familiar with it, so that’s what I used. Since then I’ve seen quite a few very handy and time-saving Unity Asset Store items that leverage Unity’s built-in GUI solution… and well, I’m kind of tired of not being able to take advantage of them. So perhaps I’ll make the switch, or maybe I’ll discover it was a huge mistake and run back to NGUI. Either way, I’ll have learned a thing, and I think that’s much more important than having something fully playable as fast as possible right now.

Speaking of the asset store, what a perfect time to be an independent developer. There are technical items I’ve seen senior developers take weeks to deliver (then more weeks to bug fix, then refactor because they weren’t happy with it, then bug fix…) that I can just straight up purchase for less than a skip-the-dishes order. They’re tested, have reviews, and are supported over time. There’s a whole freakin’ RTS Engine that I bought because why not?! (current dream: Next game can financially support my family and I can whimsically make an RTS with it, no profit all fun) Not to mention the art assets, things that not just save me time but give me something I couldn’t possibly create even if I had all the time. In combination with so much going open source, so many services having free tier options (like how I do Cloud Saving in Read Play Game), I really feel my options are quite broad to create something fairly complex/large in a reasonable timeframe.

My own personal optimism for 2021 comes from an excitement to create, and I can’t wait to see what comes out the other end of that process.

Not just released but it already has its first update!

Read Play Game is available on itch.io, and my entire experience with itch has been fantastic. If anyone reading this is ever considering working on a game to share with others I highly recommend it as a starting ground. I plan to migrate it over to Steam (complete with achievements!) but feel that can wait for the new year.

I’m enjoying that this means several things
– I can make games entirely from my own home by myself
– Those games can be supported (Demo and Full Version are two different projects on two different platforms and both received multiple updates, and will continue to get more!)
– I’ve identified a fantastic launching-pad platform for any new game
– Lessons learned in how to build for a browser playable WebGL game (or demo)
– Tech that I built for Read Play Game is already being reused in Game #2!

Ah yes, that final point, I’ve started Game #2! This game has slightly different goals, predominantly this is going to aim to be a source of revenue. I’m hoping to combine my experience with free-to-play game models with the freedom of not chronically chasing the demands of [insert executive or investor who is responsible for funding a full team] to design and build a monetary model that works for the game. A model where I offer ways to support the developer (me!) and family with tangible in-game rewards whose existence hopefully won’t detract from the experience for players who prefer to just enjoy things for free.

Compared to games I’ve worked on in the past I have incredibly humble financial goals. I would be ecstatic if next game alone paid the bills, and I do have contingency plans in place if that indeed does happen (games that have very low chance of recouping their costs, like Read Play Game, but are a joy to create and may have a small audience who has fun with them – like a full PvP RTS style game! I may have already purchased a Unity Asset explicitly to jump-start this potential)

…but Game #2 will not be an RTS. It will be built to be playable on mobile devices with a free download or potentially PC/Console platforms with a pay up front price that includes all “permanent upgrade” style purchases from mobile. This game has significantly higher scope than Read Play Game (it will take longer to make), but it will definitely be done before my savings drain entirely and I’m forced to rejoin the corporate world to pay the bills.

It’s exciting! As exciting as it is, I don’t see the value in sprinting right now to have something playable ASAP. It’s December and we’re almost a full year through a pandemic, I’ve put a ton of my energy towards Read Play Game over the last 5~ months. This last month of 2020 I’m hoping to relax, something I’ve learned can’t be forced but I find it helps to state my intent. Stave off that “you must always be productive!” guilt, and on that note, I hope everyone can find a way to relax before the big 2021 – I’m sure we all need it.

The political weaponization of social media means that some habits I’ve developed over the years to relax are now doing the exact opposite. It’s a rough time; a collision of poor governmental policies (regardless of political party in power) and some real serious immediate global threats is leaving everyday life a little extra tense.

Except New Zealand, wow are they rocking it. I’m beyond jealous and am seriously considering changing citizenship just to retire there.

Also, y’know, the totally random things happening on a daily basis

The pandemic has effected everyone in their own way, and families, speaking of which, here’s my local family in its full glory (taken 2019)

I live with the two wee-ones right in the center with their mom (beside-ish me and my pink shirt), the other two younger ones spawned from me and the other other mom-looking-person many a year ago. Due to the pandemic, family hang-outs between households have been 100% digital. Two auto-immune diseases already took out one liver in one person there (this was taken post-transplant!), no one in the family is willing to risk this virus colliding with post-transplant medications and auto-immune diseases with no known cure.

Tablets with video chat will go up in each home so we can shout across about a dozen kilometers in victory, defeat, or random hilarity over whatever game we’re playing (usually Ultimate Chicken Horse, though Among Us is a new favorite). It’s not the same as all sharing the same couch, but I’m still glad for the chance to have fun all together as a family since all the standard gatherings (Thanksgiving, Christmas, etc. etc.) are out.

Being adaptive, in general, is pretty important for many-a-reason. Doesn’t mean it’s easy, at this point we have three-quarters of a year of making these kinds of adaptations in our lives. Fatigue periodically sets in, and personally for me, I’ve had a tricky time learning that I can also take time and relax. In a workplace I have a 100% win rate at winning (always beer) bets with co-workers who didn’t think I could get something done in an amount of time. Productivity is part of my working personality, so when I have an amazing opportunity to grow my own personal projects, treating myself to some extended time (so from my perspective, more than an evening or weekend) away from being productive is… weird.

So that’s what I’m doing! I’m formally taking a break, today and probably tomorrow. Except for writing in this online journal, because of course I have to feel like I did something ๐Ÿ™„ ๐Ÿ˜…

Also I’ve been thoroughly enjoying Ratropolis, now that I’ve finally had my fill of Hades I have a solo-thing I can indulge in for hours on end, a personal favorite method of relaxation.

I feel I’ve tied up the most dangerous and experimental ideas for Read Play Game (feel free to try the Demo!), so I feel the risk for my small first independent project is nice’n low. That feels good!

Experimental like the interplay I wanted between the Standard (coming soon?!) and Demo version, taking advantage of the Cloud Saving. I just released a Demo update with some final slippery bug fixes from switching between the two versions with all sorts of crazy rewards back and fourth. In fact, you can even use a Standard Theme while playing the Demo!

Then I look at how much content is left to create and I think, oh my, that’s going to take time isn’t it. My goal is to create enough that I would be happy myself purchasing it for a small amount, then keep adding more as I take a break from next project (or the project after that! etc. etc.). It’s getting there! I have all the Protagonists ready to go (there’s 5!), a whole bunch of perks, doubled the themes from the Demo, and roughly double Story content to navigate.

I’ll be honest, I am excited to start up a project with some 3d gameplay in it. I’ve set up a prototype to test a couple theories for the next project, as per my style I answered the hardest questions first (can I do thing?! … yes! Yay!) so now I feel I’m standing up my next development-date while I wrap up Read Play Game. Sorry Mystery Game 2, it’s done when it’s done, and I don’t dare fall down your early-times rabbit hole of exploration and fun.

Words/phrases can get adopted as jargon and begin to mean many different things depending on who you ask. I tend to be more verbose than catch-phrases (ex: Data-driven Design) cause I hope to keep what I’m tryin’ to say clear. When it comes to game development in my brain I’m rooted in the catch-phrases of “Data-driven” and “Systems Oriented”, which to me are philosophies I feel that are important. Combined and with buy-in I’ve both experienced and witnessed within entire teams…

  • Less code, more content
  • Larger creative box for ingenuity
  • Improved re-usability (within game, or across games)
  • Lower development times

So these benefits are pretty vague and generalized right? I can’t tell you that your team (or in my current case, solo-endeavors) will be 10x more productive, or that you’ll only need 10% of the workforce to accomplish the same output as [points at other team]. You won’t be able to magically shrink schedules by a determined amount by changing your philosophy, which is generally the priority when working in a corporate structure.

No, I don’t have metrics on these benefits, but I do have over a decade of anecdotal observation. Also, and more importantly right now, I have a personal story.

Last lil’ bit I’ve been working on my first personal project, Read Play Game. We’re together… basically almost always, so my partner is privy to many of my thoughts as I’ve been workin’ on it. Generally that flows something like:
Me: “I’m excited about this thing! It’ll mean this, and that, and because of these things I get to take advantage of…
Partner: “That sounds neat, but also most of this isn’t sticking with me, is that okay?
Me: “Yeah I just wanted to share out loud…
Partner: “Cool, long as I’m not gonna get quizzed, keep going

It wasn’t long til I had something to actually interact with (and now a demo available!) and all those ramblings I exposed to poor Angel connected some dots when they could be experienced. Out of the blue
Partner: “Do you think, using what you talked about, I could do … [idea]
Me: “Totally, easy-peasy, the systems don’t know or care that all I want to display is text, you could easily have images, animated bits, anything, it’ll all stack on top of each other – choices could be images too, frankly you wouldn’t need a single line of text anywhere and still use all the same underlying systems

Unintended consequence: My partner would like to make a thing with the framework I’ve been building for my own thing.

Angel is not a game developer, has no formal training in anything computer science or art, but with what I’ve built and what I’ve shown what it would take to create it (data for behavior, some tools for making the art), feels confident they can bring their idea to life.

I think that’s super cool, so I’m going to spend some time setting up an environment with examples.