• 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
Sep 10

Workshop Tile Animated v2I just finished adding the last major feature to the expo demo of the Ivory Skies game MMMob. This is great news, not just because MMMob is going to be a totally awesome Sim/Tycoon game, but also because it means that I get to start shifting my attention back to Dehoarder 2!

It has been a point of consternation for me that there is just not enough time/energy to do everything all at once. After a 40 hour work week, there are only so many productive hours left that I can put into game development work. So, I am very pleased that I will be able to return to focusing on Dehoarder 2, hopefully until its completion.

When we last left Harry and his hoard, he had met neighbors, his best friend, someone from waaay out of town, and government employees, both local and federal. He had the ability, but not necessarily the will, to get a job. Most of his day consisted of cleaning up trash and tending gardens.

Now, Harry’s story will continue to unfold. The antagonists will start antagonizing. Advances and setbacks will keep the boat rocking back and forth. The unexpected and absurd will be lurking around every corner.

Dehoarder 2 is officially back in active development! Check in later for more details on where Harry’s story takes him.

Summer of Coding

posted by Duke
Jul 30

It has been way too long since I have given an update, especially on the heels of the Steam Greenlight approval, and for that I deeply apologize. My goal is to be giving these updates at least once a month, though last month’s update was completely missed. This lapse in posting is not due to inactivity. When my workload gets super-heavy like this, I tend to withdraw into my work to the exclusion of all else.

The bulk of my progress has been made on MMMob, my collaborative effort under the Ivory Skies studio name. We’re desperately trying to get something playable by GDEX in October. It’s coming along pretty well, and we should be willing to share some screenshots soon, after our artists finish taking a first pass at some models, sprites, and UI.

Some work has been done on Dehoarder 2, but not as much as I’d like. As soon as the pressure lifts from the Ivory Skies expo crunch (I hate that term and what it represents), I’ll be able to devote more time to it. To be honest, once the voting slowed down after the first couple of days of the Greenlight campaign, I thought it was going to take many more months before Dehoarder 2 was Greenlit, if it was ever Greenlit at all, which is how the commitment to the MMMob expo scope happened.

I try my best to not get into situations like this, but here it is, and I think it is the Egregore of Game Development testing me. All I need to do to pass is continue stepping up, while somehow retaining my sanity.

May 27

Workshop Tile Animated v2So my Friday was being pretty mundane to fairly crap – Get denied a GTX 1080 (that’s ok, I think I’ll wait for the ROG card after all), take my wife to an appointment, almost get run off the road by a cement mixer, watch a movie, check my email and BAM!

“Your title, ‘Dehoarder 2,’ has been Greenlit!”

I just stared at the phone for a moment, blinking, not quite comprehending what I was looking at. Then came a huge wave of excitement, and apparently some latent-onset short-term Tourette’s.

Words mostly escape me at the moment, except to thank everyone who supported the now successful Dehoarder 2 Greenlight campaign.

Now I need a plan.

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…