Keep on keeping on these days

I spent an evening at a post-party for a game developers conference in my home country. It was a good time, albeit super busy and since most of my dev is under the radar here I don’t know many of the players anymore. I spoke at the conference over 10 years ago, so it’s good to see how the industry here has changed.

I have been very busy making games, it’s always been the thing I do just about every night after work and when I’m getting serious it’s something I do in the mornings before work. I put out a great game a couple months and took some trials at advertising in different ways and have had pretty bad success and it’s costing a lot of money for me. However I see it as a learning curve, and hopefully gain some insights. Unfortunately for me making games is just the main focus, and selling / promoting is not. (As you can probably tell by this website and it’s infrequent updates).

While I wish I could be more successful at this business I’ve been running for over 20 years, I’m very happy with what I’ve done. I’ve independently published more games than the big studios in my country, and I’ve done it all on my own. I’m not comparing the games to others, mine are card puzzles, with some word puzzles and a quirky other games / apps mixed in for fun. So they are no AAA titles or quirky indie treats, just casual games I like to play. I do have well over 100 projects I’ve started, 20 of which are viable and I have 5 ideas that need starting.

For now, as the last game I put out less than 3 months ago ‘Tri Towers’ is probably the best looking game I’ve made. It isn’t reaching the market I wish it would, I know it’s a great game and the best of it’s type in it’s class. I can’t force people to find my games and I can’t afford paying $20 to unity for each install of a free app, so a bit of a rock and a hard place. Instead of burning myself out, I just started focussing on my next game a game that is the spiritual sequel to my first IOS game, ‘Mojo Video Poker’.

A short while ago I brought the original Mojo Video Poker back to life, after a single customer emailed me saying that they loved the game but it no longer ran on their device; I decided to take action. The game was written in the original cocos2d, and was stuck in 32-bit so it wouldn’t run on new devices. I spent a couple days trying to update and patch the code and sure enough I got it compiling in 64-bit! What a treat, I wrote the customer an email and said it’ll be back soon. I’m glad I made one person’s day, so while I’m not big and this customer probably paid .99 to me 10 years ago, I was happy I could help. Since the game was so old I decided to make it free, and add in some ads. Originally there were 2 flavours of the game a free and a paid one, this was before advertising or in app purchases. I like the idea of a free app, and if you run out of credits you can optionally view an ad to get more. This felt like a better mix than trying to get people to buy coins (even though that would be the most profitable according to the ‘insiders’) but that wasn’t my preferred approach.

So where’s that leave me today? I don’t know, I’m just about done with Mojo Video Poker 2 aka Video Poker Extravaganza aka Massive Video Poker aka Mojo Video Poker Deluxe… I don’t know but I’ll find a name one day soon as I’ve already sent it off to translation. So I hope to finish this game in the next couple weeks, just adding some sound fx and testing now. Maybe get it out in a 0.9.0 state, then add some lingering features and call it a 1.0.0 shortly after. I have a feeling this game will do nothing, so I don’t want to stress too much longer and just get it out. After all the time and hard work in Tri Towers, it’s a great game but not getting the traction I think I’ll focus on making more games and try not to go broke promoting them for the moment. Maybe if one gains steam like 11s up did I’ll go from there.

Projects in this space:

  • Mojo Video Poker 2 – coming soon
  • Clinactrac version 2 coming soon
  • RJL – weird platformer concept
  • B&B – A game mapped out on a whiteboard since 2014 in my garage I want to make a PvP
  • Beat Bloxx Redux (I found the code to the original beat bloxx and made it 64 bit and re-released it, which inspired me to make an actual sequel I’ve started)
  • T.I.E. – A puzzle platformer across dimensions…
  • BTG – A game tied into my band, some ideas around an old scum style game.
  • 1MB – pew pew pew
  • CR – 4th in my series of card puzzle games following Tri Towers, 8s Wild, 11s Up
  • Plus whatever I think of next

I may not be anyone that anyone’s ever heard of but I’m keeping busy and hoping that the folks out there playing my games have a good time doing it, as I love making them.

11s Up Version 3.0

Exactly 1 year after 2.0 hit the app stores Version 3.0 is ready. This is a complete graphic rehaul, the core engine was re-written and I found a gameplay issue that was not true to the original game. Also added a new initial based leaderboard (a requested feature to know who in the family is winning!). This was a labor of love of my most popular game currently. I’m really proud of the work the artist did, and the work I spent cleaning up the game.

While it doesn’t suit everyone I find most people really enjoy the changes. If you haven’t played it, please pick it up and let me know what you think! (If you have issues please let me know, leaving it on the app store is a hard way to find out something didn’t work the way you expected. 🙁 )

11s Up!
Download on the App Store
Get it on Google Play

Taking in visual ideas

I’ve been frantically programming and working on no less than 5 projects in parallel in my non 8-5 day-job hours. The new games are coming fast and I’m having a blast trying out new ideas. But I’m always hitting the wall when it comes to assets or ui design. I’m great at proving a concept quickly, but then my attention can fizzle as the details drag out. Historically I’ve done all my own assets, (and it shows).

But recently I took a stab at UpWork and for one small project to ‘revamp’ my ui, a great UI/UX designer helped me really make the app stand out. This was on 8’s wild, he then helped me with 11s Up which is getting ready for a major refresh (Version 3) as well.

With the success of that, I now am not waiting til the end of a project and am trying out new ideas and working with more artists. I currently am working with 4 artists on 2 projects, so 2 for each goal. This is giving me a way to try people out and see different opinions for the same problem. I’m getting impressed with some of the interpretations of my ideas, but I’m also learning that I may need to provide more hints to them at the start of the project. But to be fair I wanted to see what they could do with limited input to see if they could come up with something beyond what I can imagine.

In the middle of this experiment, but so far I’m really happy with the opportunities UpWork has given me as a developer to free up my time focus on code and use a worldwide pool of talent to help me out at a budget I can set. It’s not a completely cheap exercise but it’s saving me a lot of time and the results 50% of the time are above and beyond and that’s worth it.

Some before / After views of the games above.

As well as those I have some new ideas that don’t even have games ready I have artists helping me flesh out. Very exciting. Now if I can get the ios 14.5 releases done this weekend I probably won’t be waking up at 2:30am to blog post.

Daily dose of new ideas

After a very busy weekend of doing app updates and releases (8s Wild! is pending with both google / apple right now). I have had a big explosion of new ideas, prompted by me looking at Unity Asset store sales. I have that crazy mind that when I look at assets, walk in a hardware store, or walk outside in nature; the same thing always happens. I think ‘what can I make with this, what can I build with that, and what could I film here’? My brain always challenges me with those questions, and I do get disappointed when I realize I can’t do it all, I do love that I keep that flow going.

So today, I came up with 3 brand new game ideas, a great idea of packaging 3 other games in a better way, and a grand concept of trying to get someone to help me out for 3 months.

How many of these I’ll get to, who knows as last night I started a new idea that I was having fun with as well. But the key is that I’m pushing it and I’m not letting the day to day get in the way of me having these great moments. I feel invigorated, but now I’m at my desk job so will have to wait til I get home to get cracking. 🙂

Ideas for my own future reference:

  • Run ‘n Plode
    • Arcadey-puzzle aim to make 1 player first, and set a stretch of XX sales to multiplayer
  • Multi-Game for Desktop / Tablet
    • Build 1 more bar game and package it into a multi package, so I can have a ‘paid’ app and remove ads
    • This is due to the changes in IOS14, I hate ads but it’s my only revenue stream. I’ll try giving people the option to buy a game outright like the ‘old days’
  • Crazy Fast Poker
    • Poker game based on bar game rules
  • H20 Tumble
  • Card Tile Temple Raider

That’s it for now, keep dreaming!

More releases… want to get back to developing

I have been on a release rush, but so many old projects have a lot of issues due to their age to get re-released. One hangup was on updating libraries for Retro Art Studio, and I couldn’t get the binding to work in XCode, but after too many hours for a quick update I finally found a solution I think. I’ll know shortly when I can test the build once published by Apple’s Testflight.

I released the first version of 8s Wild! on Android, updated 11s up with a bug fix, and did sdk udpates for Mahjong 3d, and Retro Art Studio.

What is next?

  • IOS Release of 8s Wild
  • Start the UI Updates to 11s up for version 3
  • Get back to work on the word game
  • Deep think about whether to do Video Poker or K-game next
  • Think about follow up to Retro Art Studio
  • Try to come up with a solution for free vs paid games going forward
    • Go back to ‘free / premium’ 2 versions to limit the privacy implications
    • Keep in-app purchases
    • Add more in-app purchase options beyond ‘remove ads’
  • Above is hard but I want to find a way to make this a more sustainable pursuit (after 25 years, seems like I should be able to do something)

So many releases

While I get ready to launch a new game (8s Wild) today, I have been going through my old games. Most of them have a bit of dust on them, but are still played by a handful of people. But they have outdated libraries, that needed updating to keep them fresh.

I went and revisited Mojo Mahjong 3d and Retro Art Studio. I updated the libraries and prepared new bundles for release. After a bit of fiddling around with these old projects (> 8 years!) I then get asked to re-upload images, and also now comply with Apple’s new privacy policy. The new policy is a whole world of questions that I really had no idea how to answer. The reality is I don’t collect any information of my users, I really just make games and put them out there. However I do use analytics and advertisements, which do use a bunch of permissions. I only use the big players such as Google AdMob and Unity Analytics / Ads.

Luckily searching around I was able to find what permissions they use, and when you type it all out it sounds intimidating and hopefully I don’t scare off my users. But to break it down, I need ads because let’s be honest no one pays for small games. I’ve tried but no one is interested in buying games at any price, so I need ads. I try to not over use them, but they are in there as that’s the only way I can fund this game company. I’m sorry but people just don’t buy games for mobile, especially casual games like this. There’s no micro-transactions, loot boxes, or any thing like that, just ads.

But that threw a loop into just doing a quick update, then came in all the new devices I need to get screen grabs for. So once again another running around gathering those, updating the stores and publishing. Then to find the certificates, etc. I think I’m close to getting them up on their respective stores, for about 5 different apps.

I will make note that I am sadly unable to update Mojo Video Poker anymore for IOS, that was my first mobile game and my favorite. It is filled with sweat and tears, and will always hold a spot in my heart. I do think I should do it justice and remake it properly (Something I’ve started many times) but just finish it, bring in some ui help and put it out there.

I also would love to do a paid game again, so I didn’t have to account for ads, or in-app purchases, just a game you bought it you own it you got it all… the way I like to buy things, but I think I’m in the minority now.

Well, in short I’m very busy and I don’t even know if anyone reads this website so it’s a bit cathartic to write about these things.

Thanks for playing, stay safe.

What have I been working on? (2018-Apr 2021)

It’s been a long time that I’ve been too busy to even look at this site. So what have I been doing? Well like any indie developer I work a day job or two, I also have a family with a couple kids that take heaps of my time. But I do always program and make new things. I spent about a year and a half in hardware, working on MCU’s for a variety of things professionally and for hobbies. I really got into micro gaming consoles based on MCU hardware such as the pyCade, ArduinoBoy, etc. Microsofts Make Code Arcade was a bit of fun running that on some actual hardware. I love these devices for nostalgia but also to try to get my kids into some programming.

As far as games, a couple years back I made a game called 11s Up! It was based on an old tabletop bar game collection I used to love to play. When Lemmy from Motorhead passed away, I remember this being his favourite game as well so I cracked out a version of it from memory and released it in under a month. Life got in the way and I forgot about it for over a year. When I looked back I saw it had a little traction and following. I then started playing it and realized the rules weren’t arcade perfect and there was a lot to be tweaked. So like any good developer I started from scratch and re-wrote the whole game from ground up. It continues to do good for my size games grown a couple users every week, which I’m really happy with.

With that “success” I got re-invigorated to get back to making games, I have another game similar style bar-arcade card game I’m 99.99% done with, I even enlisted the help of a UI designer. That’s going to hopefully be wrapped up and announced in my next post. I also have asked the UI Designer to do a refresh on 11s up so that will get a major update soon.

I am trying to watch the comments on the app stores (I wish people would contact me directly, but app stores give that sense of anonymity I guess. ) But I try to fix issues or make enhancements customers request. Unfortunately I can’t get rid of the ads, because I need to pay for this somehow. (And I make probably .001c per ad so I’m not making much of anything, but it’s enough to pay my software license to keep building games each month). That’s another post for another day…

I also made a small word game, this is functionally done but needs some graphics. I have one more tile puzzle game that’s about 80% done, but would probably take 2 months to get 100%. And I have one of my classic games to revisit and make new again, and a brand spanking new game knocking around in my head. I wish I could do this full time, but I’m running late for work so fingers crossed I get another hour tonight. 🙂

From the crypt

I have resurrected this really old website. I’ve been struggling to try to throw together a new website, and realized I’d much rather be programming games. Most of the game information is from 2013, which amazes me that in 2021 most of these games are still kicking! I have new games I need to get up here, so instead of starting from scratch I’ll just add on to this old boy for now.

Teaching kids to make games through stories (Text adventure Engine post #1)

Screenshot of Adventure Engine v .000001

Screenshot of Adventure Engine v .000001

I have been pulled apart for so long, it’s nice to get back into gaming!

My son turned 6 just recently, and I wanted to see how far we could go to make our first game together. I thought we’d start where I did, at adventure games. My first real game memory is ‘Adventure’ for the Apple ][. I’m sure there were many before that, but this game stuck in my head. It was so simple, but fun.

So I decided to see what we could do in a long weekend. I started with him drawing a maze on a 8×8 grid. He did this by drawing doors on the walls, and this would be a path. Then I asked him to find a dead end and draw a key in it. I explained the point of the game will be to walk through the maze going North, East, South, or West to find the key and get to the door and find the trophy.

What would be required from me:
* Some JSON data structure to hold the room information
* Keys to identify which doors were available
* Descriptions of the room

So I started with the basics of the JSON data, with that above.

Then I realized there should be some actions, (other buttons that the user could press, e.g. ‘look around’). So I fleshed out the json to take ‘actions’ these would generate buttons to be pressed. The default was ‘look around’, when that was pressed we’d display alternate text.

* Alt text if you looked around

I defined the Data structure, then called him over. The next step was to build out all the rooms. He first labeled each square from 0-0, to 5-5 for his grid, this would be the id in the json object per room. Then he read aloud the doors, ‘North, East, South’, etc for each room and I would enter ‘nes’, as they were called out for each room into the json. I then sent him on his way and piped in some clever text for the description and alt-text.

At this stage I got the game up and running within 4 hours. I then sat my son down, and he started to read and do a couple rooms then got bored, as he didn’t see any pictures. (* ok so he’s spoiled with modern gaming, my bad). So I added some simple graphic placeholder, then I worked on items. The idea is that kids slightly older could program this by hand, but better define tools later. Once again everything is text based, so I used tokens for items, e.g. $key is a token that looks up the item dictionary to get the appropriate item.

Here’s a sample item.
{ id: "$key", desc: "Red Key", type: "inv", value: "key_0001" }
The action is defined as:
'Take $key'

So the $key is detected on load, the text is swapped out with the ‘Red Key’ text, and displayed on screen. The item can then be taken, ‘Take Key’ and it’l be added to the inventory. This was some of the more clever code. So now I added tokens (simple variables), and then I needed to add conditions.

* Simple variables (such as a key) that could be added to an inventory and used.
* A way to stop people from going into rooms with conditions (such as a key)
* Verbs (Take, Use, Drop)

Now we had verbs, if you took an item, it would go in your inventory. If you dropped it, you’d lose it. If you used it, it’d be consumed (like use key on door).

So now to stop the user from going into rooms they don’t have the prerequisites done, I added that into the engine. So if a room has a preq of ‘$key’ they cannot go in unless that item is in the inventory. Also we need to express why, so if you have a preq, you have a preqdesc which is alt text that is displayed stating the condition you haven’t met.

The game is now fully playable, sitting at around 180 lines of code, 100 lines of html / css, + json / images.

Next I added some doors…

So now we get into dynamic doors, we already know the directions, and that enable / disables buttons. So I used that same logic to overlay images to draw doors for valid visible paths (North, East, West). And the game is now coming to life a bit. I still don’t have zombies, but they’ll come soon enough. Below is a screenshot of the engine and game in progress.

My long term goal is to make this actually an engine we can use to teach kids to make some games and learn story telling through games. The tools I aim to be simple and easy to use. Unfortunately my front-end skills are terrible, but the app design and data is beautiful. 😉

Til next update!

Let’s have a merge party – Safe Git Merging

As an indie developer I spend a lot of my time working on my own, however as a contract developer I work in teams of many other developers. Most of the time when I’m contracted I am brought into project in a frantic state of playing the little dutch boy. As a result merges go haywire and sometimes we don’t pay enough attention and undo a fix due to a git conflict.

Here’s the workflow I use, and I try to encourage others as well, it keeps things safe.

First if you’re doing a quick fix, generally the remote branch you started from hasn’t changed. But if it’s a several day fix, you may find that your remote branch you started on has had updates. You want those, and if you’re really paying attention would have merged those as you went along.

My workflow on a team are these processes.
1) Create a version branch that you’re working on.
2) Everyone branch off that version when applying fixes / features to the next version
*3) When a fix is done, do a pull request (code review, if not using Bitbucket / gitHub)
4) When approved, merge back into the develop version, and delete the fix branch.
5) other developers should then update their working branches to make sure they pull in the changes made, as their commits will happen on later.

Here’s a crude example:

Here we are with our 3 branches
Screen Shot 2014-08-22 at 10.59.15 am

In this case you can see that everyone started from develop/1.0.0.
We then created 3 branches off that. Branch 1 bugfix_ticket_355 was committed first as it’s a step ahead. Let’s say 355 was then merged to develop

Screen Shot 2014-08-22 at 11.01.36 am

Now you can see develop is a step ahead of our other tickets. Well since those haven’t committed yet we may have some conflicts. We never want to push conflicts, so here is where my workflow kicks in.

2 Scenarios: Developer A has the feature 353 ticket. Developer B has the 345 bugfix
Developer A, knowing he just had a remote merge as he did the pull request, then updates his local branch with the changes.
DA -> Git fetch
DA -> git merge origin/develop/1.0.0

Developer B does not update, as he was in the toilet.

Now look at the repo:
Screen Shot 2014-08-22 at 11.05.08 am

Developer A is up to date, Developer B is not.

Seasons change, time passes. Developer B is ready to push.

So before pushing to the remote this is what Dev B should do:

— Safe Merge —
>git fetch origin
>git checkout -b remote_merge //branch off the bugfix working branch, in case something goes wrong your original branch is intact
>git merge origin/develop/1.0.0
>!–conflicts–! – Grab another dev to review with
>resolve conflicts >git mergetool< >git commit -m “resolved conflicts with remote”
>git checkout bugfix… branch //return to the actual working branch
>git merge remote_merge
//Safely merges as you already resolved all conflicts, now safe to push up
>git branch -D remote_merge //delete the local merge branch as it’s not needed anymore
>git push origin
–Code review, rinse repeat

This becomes second nature after a while, but I just thought I’d document it here. It may sound like gobbly goo, or too much work for something ‘simple’, but just wait till a bad merge comments out a feature that takes your app down for a couple weeks of investigations just to find out you did a bad merge.

Rules to live by:
When working on team, all conflicts resolved in tandem.
Pull requests work, do them.
Never push up a branch without testing the merge locally. Leave your remotes clean.