• The Deific's Guide to Creating, Exploiting, and Destroying Pocket Worlds

    In my LD38 entry, play a minor god with recently discovered powers of creation and destruction.

  • LD35 Entry - Werepenguin's Escape

    In my latest Ludum Dare entry, play the role of a werepenguin attempting to escape a mysterious facility.

  • Dehoarder 2: Vote YES Now on Greenlight

    Dehoarder 2 is now up for voting on Steam Greenlight. Vote today!

  • LD 32 Entry - Dirty Fork: Unleash the Mayhem

    Horrors! You have been given a dirty fork! There is only one appropriate way to respond to this insult: Food Fight! Play for free on Kongregate.

    Dirty Fork
  • Breaking Block Available for Android and iOS

    Wall destruction on a solar scale: Smiling Cat's latest game, Breaking Block, is available for free on the Google Play Store and the Appstore.

    Boss Fight
  • Prepare for Warp available for Android and iOS

    Intense spaceflight for your mobile device: Prepare for Warp is available for free on the Google Play Store and the Appstore.

    Prepare for Warp - Screenshot 2
  • Vintage Pachinko 2.2 Available for Android and iOS

    Smiling Cat's original mobile game/toy, Vintage Pachinko, is available on the Google Play Store and the App Store. Buy it today for only $0.99!

    Vintage Pachinko - Feature
  • Ludum Dare 26 Entry - Dehoarder

    Free to play on Kongregate. Because playing a game about cleaning a room is more fun than actually cleaning a room.

    Dehoarder - Screenshot 1
  • EARL's Warehouse - Keep Calm and Carry Boxes

    What strangeness is going in EARL's Warehouse? Play for free on Kongregate to find out!

    EARL's Warehouse

Ludum Dare 35

Ratings Well, for starters, I am pleased to announce that my Ludum Dare 35 entry, Werepenguin’s Escape placed #66 in the Humor category. I know a large part of that is due to the ragdoll effects in the game. I’ve been focusing on this category for the past two years, and I’m very happy to see that my efforts have paid off. My entry also fared pretty well in the Audio (#264) and Theme (#276) categories. Doing so well in audio was a bit of a surprise, however, that generated music IS damn catchy. It’s going through my head right now. That music was a gift from the muses to someone with only minimal musical talent.

Ivory Skies / MMMob

I’m hard at work with the Ivory Skies team trying to put together a playable demo of our game MMMob in time for GDEX in October. Lots of exciting stuff going on there, and we are finally getting some artwork integrated so there might be something pretty enough to show a screenshot of soon. A couple of months ago, we realized that the sea of the project was not as wide as we thought it was, however, now we are coming to the realization that the sea of the project is deeper than we thought it was. Still, everyone on the team is very excited, and from what I hear, others are getting very excited to have a chance to play this game.

System Building

My current main rig was last rebuilt from the motherboard up in March 2009. At the time I put some pretty beefy silicon stock into it such as a Core i7 920 and an ASUS P6T motherboard. Since then, this machine has seen several upgrades, but it is pretty much topped out now and is just now starting to have trouble keeping pace with the current generation of games. It is amazing and unprecedented for a machine to last me that long; in 20 years of system building I had never gone more than 3 years between rebuilds. But I think it is a sign of the times; I’ve said before that the gains realized from increasing tech speed are diminishing, so at this point I expect that my next system can last me just as long if built right.

Since I am rebuilding my system less than half as frequently as in the past, I can afford to push a bit steeper up the price/performance curve. So, premium parts are now on the table much more so than in the past. For a while I have been considering a system with very fast RAM and a PCIe SSD.

Finally, the last piece fell into place that made a full system upgrade worthwhile: NVIDIA’s announcement of the impending release of the GeForce GTX 1080. With this, I have planned and built what hopefully will be my next 6-8 year system:


  • Core Specs:
  • Intel Core i7 6700k
  • ASUS Maximus VIII Formula motherboard
  • G.SKILL Ripjaws V Series 64GB DDR4-3333 RAM
  • Intel 750 Series 1.2TB PCIe 3.0 SSD
  • Dual NVIDIA GeForce GTX 1080 8GB GPU (to be released)

Already, even without the GPUs, just using the integrated graphics, this machine is burning up the charts on everything BUT 3D, and is staying cool and quiet while doing it:

Benchmark XMP Disabled XMP Enabled
Passmark 8.0 – CPU Mark 11,522 12,071
Passmark 8.0 – 2D Graphics Mark 959 1,005
Passmark 8.0 – Memory Mark 3,163 3,769
Passmark 8.0 – Disk Mark 12,168 13,418

The big surprise here is the blazing score in 2D graphics – the Passmark in-app comparison charts showed this rig as coming close to or surpassing a typical GTX 980 rig in every 2D subscore, even without its dedicated GPUs. This chart also shows the importance of getting high-quality, high-speed RAM AND enabling XMP in the BIOS. Going with DDR4-3333 speed memory over the minimum DDR4-2133 speed memory gave me a nice boost in performance not just in memory benchmarks but across the board, though only after configuring the BIOS to allow the system to take advantage of the faster speed memory. For me, a 5-10% boost in performance means a few more months in the rig’s useful life, so I think it is worth it.

If reality were not a factor, the only part that I would swap out is the CPU – it would have been nice to have an LGA1151-compatible 8 core CPU by now, though it would be easy/cheap enough to swap out once the Kaby Lake/Cannonlake processors are released if the gains warrant. I just couldn’t see going with anything other than an LGA1151 setup.

Overall, though, it’s an exciting time to build a system, especially if your main rig has not been rebuilt from the motherboard up in 7 years. Once complete, I expect that this rig will be fast enough to:

  • Leave skid marks on the carpet.
  • Retroactively fix the frame rate of game sessions I’ve played over the last few months. (Not just make the games run faster now. But make them run faster in the past when I was playing them on my old rig.)
  • Commune with the Speed Force.
  • Emulate a Tardis.

I’ll post additional benchmarks once the GTX 1080s are installed.

Ludum Dare 35

posted by Duke
Apr 12

It’s that time of year once again. The time when US income taxes are due, the time when old man winter finally passes out in the middle of Ohio in a fit of drunken rage, and the time when I participate in the upcoming Ludum Dare.

Preparations are all just about made. My schedule for the weekend is clear, including the day before and after the competition. My rig and tools are ready to go, and I’m paying close attention to the theme voting.

Reviewing last year’s retrospective, I see two key areas to focus on for improvement: Game controls, and making sure to get to bed at a reasonable hour. Focusing on humor is also something that always serves me well, and will continue to be a goal. Maybe, hopefully, my inspiration this year will be for a 2D game, which would be less complex to pull off, though if I do go 3D, I’m going to try my hardest to use the stock CharacterControllers in Unity. That should help a lot with the controls.

If I do manage to keep it to 2D, maybe a WebGL build will be possible. If I do anything 3D, though, I’m not going to touch Unity’s WebGL deployment, which continues to disappoint even in Unity 5.3. At this point I’m left with the obsolete WebPlayer and downloadable .exe’s as distribution platforms. Not an optimal situation. At any rate, I could rant about that for a good long time; I’m still plenty sore at ALL players involved for rendering my older games inaccessible to many without providing a VIABLE path to move them forward.

Back to Ludum Dare… another reason I’d like to do a 2D project is that I just have not done a lot of it. Even for things that could be 2D like Breaking Block, I tended toward 3D. Chroma Invader from way-back-when was really the only serious 2D project I did. Hence my surprise when other developers tell me they stick to 2D because they fear the complexities of 3D. I’m kind of the opposite – I stick to 3D because I fear the complexities of 2D artwork, because I suck at drawing things that are not abstract. Ludum Dare is one of the places where abstract 2D can actually work well.

As always, I hope to do well, and have a blast while doing so. And create and release a new game.

Mar 27

When I launched the Dehoarder 2 Steam Greenlight campaign, I had outlined three possible outcomes:

  1. The game makes a huge spash and passes through Greenlight almost immediately.
  2. The game takes a huge dump and gathers a huge percentage of No votes, project dies.
  3. The game gets a good receiption, but just does not get enough views and votes before falling off the first pages of Greenlight. The project sits in Greenlight for a good while until enough votes trickle in.

I was really hoping for outcome #1, but based on my past experiences and my research, I knew that outcome #3 was more likely. That is exactly what is happening. It is also the hardest outcome to deal with. Though at least I didn’t end up with outcome #2.

It looks like Dehoarder 2 will probably get Greenlit… eventually… If I can find about 1,000 or so more people to view the page and vote along the yes/no/unvoted percentages I’ve been seeing so far.

In the meantime I am left with a dilemma – do I continue actively working on the game, and risk that Greenlight success is months or even over a year away? Or do I switch to a purely marketing focus on Dehoarder 2, and begin laying groundwork for the next project, knowing that at any time I may have to put that aside to finish Dehoarder 2 when it does get Greenlit? Or do I do some mix of the two? So far the mix seems most sane.

As far as that next project… It’s actually one that I started quite some time ago, but got away from me in terms of complexity and effort required. This next project will actually be developed under the label Ivory Skies, and will be a collaboration that includes developer Mike Arps from Upways Games, artist Patrick Jesson, and artist/secret marketing weapon StarlightSkies (who is not to be confused with my wife Gill). Our game is something that we just don’t see enough of on Steam: A simulation/builder with a unique and long-overdue theme.

So far we have the groundwork laid for the simulation engine, with moddability built in right from the start. We have some basic terrain and character rendering, and some really sweet scenario-level scripting capabilities. We’re all really excited about the project, and are looking forward to a joint booth presentation of what we have so far at GDEX in October.

Workshop Tile Animated v2Finally, the great day is upon us, when the sun shines upon both you and me, because Dehoarder 2 is finally up on Steam Greenlight! (Steam Client Direct Link)

Please, for the sake of the world, your children, and your children’s children, do the right, just, and moral thing and vote YES on Steam Greenlight for Dehoarder 2.

In all seriousness, though, please go out there and vote YES on Steam Greenlight for Dehoarder 2, so that this great game can see the light of day.

Also, here is a new trailer to mark the beginning of the Steam Greenlight campaign. Special thanks to M. Joshua Cauller for his advice in creating this trailer. We had a great conversation that really helped me to focus on just what I wanted this trailer to be.

Again, please vote YES on Steam Greenlight for Dehoarder 2.

An example of trying to establish a good balance between reality and absurdity.

An example of trying to establish a good balance between reality and absurdity.

So much to do, yet so little time to do it in.

Preparations for Steam Greenlight continue, along with development of Dehoarder 2 itself. Day One of the Greenlight campaign is very important, so I am taking extra care that everything is properly in place.

One of the main showpieces for the Greenlight campaign is a second trailer, which is about 75% complete. I’ve also been bringing the game to a state where it is polished enough to be given to a small handful of streamers. Which, if by chance, you happen to be a streamer who is interested in quasi-exclusive access to play and stream the game before it is released, please let me know.

On the technical side, one thing I’ve done which is helping immensely with testing as well as generating footage for the trailer is to expand my in-game console functionality. At this point, I can invoke pretty much any function of the Dehoarder 2 game engine by typing a command. I can add and delete objects, play with the in-game clock, set counters and flags, and lots of other god-like stuff. It really saves a lot of time setting up test scenarios and video capture, and if you are making a game of significant complexity, I definitely recommend taking the time to set up a comprehensive console that can talk to your game’s engine.

Here’s hoping that my next blog post will be to announce the launch of the Steam Greenlight campaign.

Full Steam Ahead

posted by Duke
Dec 19

Next month, I plan to launch my Steam Greenlight campaign for Dehoarder 2. This means that while I usually take about a month off this time of year, this year that will not be happening. Sure, I will take some time off, just not my usual amount.

For starters, there is another trailer to prepare, and I have an ace in the hole on this one. I’ll play my cards close for now, but I will say I’ve been getting some very helpful and direct advice from a pro who is very excited about Dehoarder 2.

I’m almost happy enough with the interface to allow the game to be played “in the wild”, a very important step toward getting this game in front of a beta audience. The game is very nearly following “The 5 Golden Rules of Input“, even if the process of getting there felt a bit like The Doctor’s escape from the confession dial.

The Schlep Boxes have had a long-overdue upgrade. Each one is now a full-fledged junk fountain, complete with opening animation. Also, the plastic storage tote makes its debut as a higher capacity junk fountain. Rooms are starting to be populated with more than just random junk. It’s starting to come together, but it still needs more work.

So, I’ll be here plugging away while sipping hot cocoa, eating Hickory Farms, and listening to Christmas music. I’ll be happy, though, because this is what I love to do. I hope that all of you and yours have a great holiday!

Nov 21

Gamepad support in Unity. It looks deceptively easy, if you look at the Input API. Just a collection of buttons and axes, Right?

Of course, the devil is in the details. You can go ahead, get your button mappings set up using your 360 controller or your PS4 controller or your Logitech or what-have-you. Run it, and it will all work great. On your gamepad. On your OS. The minute your game goes to someone who has a different brand of gamepad, or sometimes even a different OS, your gamepad support breaks. Up and down on the right analog suddenly rotate the camera left and right instead, none of the face buttons work, and other controls are similarly mismatched. Why? Because no one in the game controller industry can seem to agree which button is the first button, which axis number should correspond to up and down on the left analog stick, etc. The situation is especially bad with XBox-family controllers, with these correspondences being different on all 3 major OS’s.

Of course, you can make players go through a one-time controller set-up, a digital game of Marco Polo where the game asks you to press a particular button and then listens to figure out which button that maps to on your controller. But, that is not really an acceptable user experience today.

Imagine if we still had to write different code to accommodate different graphics cards, like we did with the first generation of 3D accelerators. It would be a total nightmare! Yet, this is pretty much the nightmare that we face when trying to support game controllers. Very early on, the concept of the Hardware Abstraction Layer (HAL) was applied to 3D graphics accelerators, so that, to our code, all accelerators looked and worked the same (save for differences in capabilities). These days, rarely do we have to even think about whether a user is running with an nVidia or AMD/ATI graphics adapter.

Unfortunately, no such animal exists for gamepads at the system level, at least not to the degree that we can ask a system-level library like DirectX, “Give me the status of the left analog stick’s Y-Axis”, and have it mean the same consistent thing across devices. The closest thing we have is the USB HID specification, but it is really made for very generic input cases, and specifically does not solve the problem of establishing consistent button/axis mappings across devices.

So instead, we are forced to build databases of controller configurations, and build (or buy) our own abstraction layers that hopefully support every controller under the sun, knowing that somewhere, someone has a controller that has not been accounted for and is incompatible.

Unity also does not help much in this regard, which is a shame. A well-documented lack of run-time configurability of inputs (as recent as 5.2) all but assures that serious game development projects must come to a point where they need to build or buy a replacement to the built-in input system.

For purposes of Dehoarder 2 gamepad support, I’m going to try the InControl component from Gallant Games. It seems to integrate the best, even allowing me to hook in to the newer uGUI event system, so that I can use built-in Unity functionality like controller-based menu navigation.

I could have tried building something like InControl myself, though it would have taken me dozens, if not hundreds of hours to get it working right. Plus, I’ve only ever had experience doing such code on the PC, not OSX or Linux platforms. All of that mess, vs. $35 for something that has been well-polished and likely supports more scenarios than I’d ever need. Easy decision.

I’m still trying to find a good way around paying $65 for a library that allows me to inject icons (like controller buttons) into my text, though…

Nov 17

A long time ago (think October 2014), I had the crazy notion that Dehoarder 2 was going to have dubbed lines of dialog. I even recorded a few. However, I soon realized that dubbing all lines of dialog was going to be a monumental task, and so dubbed lines have been out of scope for a while (at least for the first release).

The problem with this is that all my events were written with this real-time dubbing in mind. Subtitles would display for a fixed period of time, and could not be advanced or delayed to accommodate different reading paces. Now that real-time dubbing is out and the few dubbed lines are removed, it became glaringly apparent that control over the pace of the dialog needed to be given to the player. The main playtesting symptom of this problem, impatient button-mashing during cutscenes, indeed manifested during the expo.

This is a horse that is pretty hard to switch midstream, though the benefits are worth it. Every single Subtitle event action is being changed over to a new Dialog event action (and there are hundreds). Dialog actions are a new animal in Dehoarder 2. Visually they look similar to subtitles, but behind the scenes they pause the running of events until the player decides to continue. I kept Subtitle action available for those rare cases when they are more appropriate than the new Dialog action, and to ensure a smooth transition.

So, if you find yourself in a position to decide between real-time and player-gated dialog for a game, do yourself a favor and get that decision right the first time. You will save yourself a big headache that I have inflicted on myself.

The new dialog system will remain even if dubbed lines eventually return. Even with dubbed lines, not all players will be playing with audio enabled. There were also several dialog lines that were getting “lost in the gameplay”, as they were not a part of a cutscene but were spoken during gameplay. Now that the player interacts with that dialog, it is less likely to become lost.

This is the last big action item from the expo feedback, so once this is done, I can return to content and story. Of course, the holidays are nigh upon us, as is the time for getting some work done for Ivory Skies, so I will be busy as always.

Character control. One of the most important aspects of any game, and yet, I perennially struggle with it. Ludum Dare entries City Beneath the Surface and Dirty Fork both got heavily dinged for clumsy controls. I knew that Dehoarder 2 still had some of those same issues going into the expo, despite many hours of effort toward eliminating them.

Luckily, these issues did not detract significantly from peoples’ fun with the game at the expo. Still, I cringed every time I watched someone slowly climb Harry up his driveway using my clumsy, rigidbody-based, custom written character controller. I winced every time someone plowed up the steps, only to get hung up on the threshold between the stairs and the floor. I wanted to pull my hair out every time someone got caught on a doorway multiple times while trying to maneuver into a room. I knew that all of these points of frustration were my doing.

So, earlier this week I took an extreme measure. I disabled my rigidbody-based, custom written character controller, and replaced it with the stock Unity character controller. After two minutes of playtesting, I reddened my forehead thoroughly with multiple open-handed percussive blows from my palm. Why hadn’t I done this sooner? All of the aforementioned issues were gone.

Controlling Harry now feels smooth and silky, more like driving a BMW and less like driving a turnip.

So yeah. I think it might be a while before I try to implement something custom for 3D first/third person character control again.

Nov 9

Sunday was another solid day at OGDE, and a great close to the expo weekend. Traffic continued to be heavy throughout the day, and many more people got to enjoy Dehoarder 2. And enjoy it they did.

There was a second Dehoarder Live competition, this time for the BB-8 throw pillow. Amazingly, the contest ended in a tie, so we had to go to the first tie-breaker: Smiling Cat Trivia.

I actually got a chance to walk the show floor myself and try some games. The Pedestrian definitely lived up to my expectations after staring at it cattycorner from my booth all weekend. It was a delightful puzzler where you guide a pedestrian silhouette from street sign to street sign, where each street sign is a platforming segment of the level. Then you have to connect up the portals from sign to sign in such a way that the pedestrian can make it to the exit. The background environments are also beautiful and complement the more simple street-sign style artwork well. This one will definitely be on my watch list, and has my vote for “Best in Expo”.

I love marble maze games. Marble Madness was a favorite growing up, and the Kororinpa games for the Wii held my attention for hours. There never seem to be enough marble maze games out there. So I was delightfully surprised to find two marble maze games at our growing expo. Rad Roller was a fun play and had an interesting gravity mechanic – press a button to increase gravity to make the marble sit down after it jumps to a precarious ledge. Sphere Complex is a marble entry that seems to have a focus on speedrunning. In fact, there was a competition for best time in progress all day Sunday.

Another good, well polished puzzle platformer is Adventure Lamp. In it you use your lantern helmet to hit switches and stun enemies in order to advance. It has lots of timed platforming, and the levels themselves are very quick and small, giving the game a good flow.

There were too many games for me to try them all in the couple of hours that I was able to be away from the booth, though I really enjoyed the ones I did play and meeting all of the developers behind those games.

After three high energy expenditure days, I was definitely ready to close up shop when the floor closed at 5. It was another great year at OGDE, and I look forward to next year’s expo!

By the way – for all of those that did not get to see the booth, I have uploaded a video tour that I filmed Friday evening: