Archive for the ‘EARL’s Warehouse’ Category

Whither Prior Games?

posted by Duke
Nov 11

Today I wanted to talk a bit about my plan for my back catalog of games. It’s great to have a history of games, but sometimes measures must be taken to reduce costs and consolidate brand power. If you are a fan of Smiling Cat games, please read as the below may affect how you enjoy those games. My players are important. If you will be negatively impacted, please comment and let me know.


  • EARL’s Warehouse and possibly Chroma Invader to get free Windows releases.
  • Retiring from Kongregate and GameJolt coterminous with these Windows releases.
  • Thrust or Bust and Snowflake support to be discontinued at that time as well (and Chroma Invader invader if it does not get a Windows release).
  • Considering Dropping iOS support.

Web Player Games

Unity Web Player died long ago, a casualty in the war against insecure browser plugin technologies. Unfortunately, I have 4 games that I have released exclusively on the Unity Web Player platform (ordered by how awesome I think the game is):

  1. EARL’s Warehouse
  2. Chroma Invader
  3. Thrust or Bust
  4. Snowflake

EARL’s Warehouse is a project that I’m particularly proud of. This game has a lot going for it, both gameplay-wise with its interesting puzzle mechanics, and technically with its home-rolled voxel engine that actually performs well in Unity. EARL’s Warehouse also highlights what was so awesome about the Unity Web Player’s performance – in some areas (the penultimate level of The Depot specifically) it was pushing over 1 million triangles per frame, through a web browser, in 2013.

Chroma Invader Screenshot 6Chroma Invader was a quick project that was my take on the quarter-eating days of the early “wave progression” arcade games. This was my second game, and it was the first game of mine to earn any sort of recognition, picking up “Browser Pick of the Week” honors from the now-defunct site back in December of 2010.

Thrust or Bust will always hold a special place in my heart as my first game release, back when my doe-y eyed dumb ass thought that all I had to do was build it and they would come. Its flaws are apparent to me today, but it was a very ambitious first effort, much larger than it should have been for my first game.

Snowflake was kind of a psuedo-jam game, created over a long holiday weekend. If you haven’t played it, don’t bother; it’s not particularly good by any measure.

I have Windows builds of all of these games except Snowflake. My current thinking is to release the Windows build of EARL’s Warehouse as a free download in the run-up to the release of Dehoarder 2. I’m not entirely sure about Chroma Invader, but I might release the Windows build of that game, too. Unless there is someone who really MUST have Thrust Or Bust, though, I was going to retire that title. Forget about Snowflake, it is being retired; it would be too much effort to bring the project from what was probably Unity 2 all the way up to Unity 2017 just to create a new build of what I consistently rank as my worst game.

In addition to these Unity Web Player exclusive titles, I also have Unity Web Player versions of my first 4 Ludum Dare entries (Dehoarder, City Beneath the Surface, Dirty Fork, and Werepenguin’s Escape). These have always been available as downloads for Windows, so I have much less concern there.

Most/all browsers now refuse to load Unity Web Player unless you hold your mouth a certain way, if even that. Given that, I think that my game pages on Kongregate and GameJolt aren’t doing anyone much good any more. When the Windows releases of EARL’s Warehouse and Chroma Invader are made available, I will be retiring all Unity Web Player content from Kongregate and GameJolt.

If I have any Mac/Linux users who are still enjoying these games on Kongregate or GameJolt, I want to hear from you! Unless I know that there is some demand for Mac/Linux builds of my current Unity Web Player content, I won’t feel that it is worth my limited time to target these platforms.

Mobile Games

Currently I have 3 titles available on mobile:

Vintage Pachinko
Breaking Block
Prepare for Warp

My biggest problem overall on mobile is iOS. With the release of 64-bit, I do not have 64-bit builds of any of these games anywhere near ready. These titles were all created in the days of Unity 4, so they are several versions behind, and I know at the very least that Vintage Pachinko requires some effort to work with the newest version of Unity. In addition, as someone who lives primarily in the Windows world, developing for iOS is a huge pain. It requires me to maintain a separate Mac computer, which never gets turned on unless I’m creating a iOS build of an app, which means that it always needs hours and hours of updates and upgrades before I can even start being productive.

Prepare for Warp was delisted by Apple earlier this year seemingly because it simply hadn’t had an update in a long time. It didn’t have a history of crashes or any complaints that I received, but I got a nastygram all the same that said update or else without outlining anything that specifically needed to be updated. I’m not happy about that, but nor am I going to create updates for the hell of it when I have nothing of value to deliver, especially for my least popular mobile title. That’s insanity. Breaking Block is probably next.

Also weighing heavily is the fact that iOS sales are not even covering the developer program fee at this point. We’re far enough down the long tail of these titles that the revenue is approaching zero. They were never making me rich, but at least they used to pay to keep themselves going and then a bit more.

Because of issues like these and the distraction that they create for my current development, I’m seriously considering pulling out of the iOS market entirely, though I haven’t come to a final decision on that yet. If I don’t pull out of iOS, I will require a few weeks away from Dehoarder 2 in order to update my entire catalog in one big push. Hearing from those of you who want to continue to see these apps on iOS will certainly sway my decision. My final decision will probably be made in February when my annual tribute of $99 to Apple is due.

If I do let my Developer Program subscription lapse, the net effect is that my apps would no longer be available for download through the AppStore, but would continue to function on devices on which they were already installed.

I have no complaints about the Android environment, and as long as they continue to make my life easy I will maintain the Android/Play Store versions of these apps.

Full Steam Ahead with Dehoarder 2

Of course, my immediate future platform-wise lies with Steam. Dehoarder 2 at the very least will be on Steam, and probably several project after that. The future is difficult to predict, however, as the above clean-up plan shows.

Speaking of Dehoarder 2, I just received the latest batch of models from Arvex, and will be working today to integrate them into the game. With this latest delivery, we have just one more batch to go, and then I think the object set for the game’s release can be finalized.

Listen as the folks at Multivarious Games discuss several games by Smiling Cat Entertainment, including both Ludum Dare entries Dehoarder and City Beneath the Surface, as well as EARL’s Warehouse.

Thanks for the shout out, WMVG, I really appreciate it!

For the impatient, the bits regarding Smiling Cat run from 28:10 to 34:30, but you should really listen to the entire podcast as WMVG is a great group of game developers.

The Depot - Breaking GlassI am proud to announce that after many months of work, EARL’s Warehouse: The Depot has been released and is, as always, free to play on Kongregate.

Explore the underground warehouse depot facility, and discover and solve the mystery of Sigma, one of the EARL models that disappeared in the Gremlin Invasion that EARL fought off in the first two chapters. This chapter makes extensive use of light and darkness to build an overall feel of mystery and suspense. It also bears mentioning that some of the new puzzles are the most challenging in the game so far.

If you haven’t completed the first two chapters, do not fret, with this update the first level of every chapter should be unlocked for play, allowing you to progress through each chapter independently. A new bonus level also awaits for those who complete The Depot, filled with over a score of cannons!

The Depot - Cannons!Not only are there new puzzles and story to be discovered, but there are also several long-awaited improvements, including being able to pick up boxes via keyboard controls and better camera control.

I hope that you will find this new chapter an exciting, fitting extension of the EARL’s Warehouse game and story. Over the past seven months, EARL’s Warehouse has become my highest rated game on Kongregate, and my goal is to make the game even better with this new release. As my flagship web game, expect to see continued support for EARL’s Warehouse into the future, with possible plans for yet more levels, a level editor, and puzzle walkthroughs.

Please support Smiling Cat and play and rate EARL’s Warehouse today!

A Good Feeling

posted by Duke
Sep 7

I just completed what should be the release build of EARL’s Warehouse: The Depot, uploaded it to Kong, and I am ready to flip the switch next Saturday to take it live. This will make four projects already completed and released in 2013, with four months yet to go! I am already planning to complete and release at least one more project, and very possibly two, before the holidays settle in.

As I look back over Smiling Cat’s timeline, I am astonished that I have accomplished more in this year alone than all other years combined. It is a very good feeling. I’ve never loved any other work this much. I sit down to start work early in the morning, and reluctantly step away around dinnertime, not feeling drained or beaten down, but exhilarated and uplifted. I hope I can continue to devote time to game development and eventually transition to doing this as a full-time career. If I can manage five releases in a year with this as a part time gig, I can pretty well imagine what would be possible if I were developing games full-time.

WarpGame Proto ScreenieMy prototyping session last week quickly yielded some awesome results. I’m pleased to announce my next project, tentatively titled “Prepare for Warp”. It will, as promised, be an Android game release. It is already well into development at this point, and I’ve handed my phone around to a few people, who generally describe the gameplay experience as “intense”.

Today, I plan to work more on “Prepare for Warp”. I will probably finally add some texturing to some of the main 3D objects, maybe add some more detail to the ship model, and open up a few higher difficulty levels. It took me a while to beat the current hardest levels but now they seem too easy! There are actually only a few features left to add before the gameplay should be completely stable, so I’ll probably focus on that as well.

Please join me on Kongregate next Saturday morning at approximately 7:00am EDT for the launch of EARL’s Warehouse: The Depot. I’m looking forward to releasing this epic expansion to EARL’s Warehouse, and hope that you enjoy all of the new puzzles and the new story!

Sorry, no post last week due to family circumstances. At any rate, there has not been much to report, since Smiling Cat is in a transition between wind-down of one project and prototyping for the next. So far I have a couple of ideas that seems like they will bear fruit, but I’d like to test them out in prototype to see if they are actually any fun before announcing publicly what they are.

One important happening in the last few hours is that the Ohio Game Dev Expo has been moved to December 7. I’m still very much looking forward to the event, and I hope that many of you can join me there. However, this date change does mean that the launch of EARL’s Warehouse: The Depot will no longer happen at the Expo, as I have no real reason to delay the release of a game that is done by nearly three months. The release of EARL’s Warehouse: The Depot will go on as planned on September 14.

Instead of launching EARL’s Warehouse: The Depot at the Expo, I now hope to showcase one or two new mobile games, which may still be in development at that point. In a way, I think this is a good thing. Showcasing new mobile games alongside existing web-based games will more accurately reflect the future of Smiling Cat, since my focus for the near future is going to be mobile games.

That’s all for now, this week I mainly wanted to get the word out about the change of date for the Ohio Game Dev Expo, and clarify that the release date for EARL’s Warehouse: The Depot will remain the same in light of the Expo’s date change.

EARL's Warehouse Proto to NowNext week will mark the one year anniversary of when EARL’s Warehouse was born as a concept and the prototype was started. As you can see from the picture, EARL’s Warehouse came quite a long way from its early builds to its latest test build.

Today, I thought it would seem fitting to discuss and evangelize a bit about the prototyping and iterative development that went on in EARL’s Warehouse on the eve of this development anniversary.

For the first prototype, EARL was nothing more than a cube floating on top of a box, and his warehouse just a grid of grey cubes. He didn’t even have a name at that point; the entire project had a placeholder name of Bloxxel. When he picked up boxes, they simply disappeared, only to reappear when placed. The physics sucked, and often EARL would suddenly jump to the roof. Beneath this rough implementation, though, my First Impressions team found a gold nugget of fun that came from moving boxes around a voxel-based world to solve puzzles.

Slowly, over time, features emerged from the prototype design. Just enough work was given to each area of the game each time it was touched to take it to the next level. Boxes gained powers. One map turned into four maps. Some sound effects and a couple of cool music tracks were added. Crude physics gave way to more refined physics with less roof-jumping glitches. Placeholder graphics were replaced with flat textures. New robots were introduced. Four maps turned into ten maps. More sounds and music were added. Physics calculations were optimized. Bumpmaps were added to the graphics. Robots and powers were balanced and tuned. Ten maps turned into 24 maps, and so on.

Prototyping and iterative development as exemplified above are both very important to independent game development. Both are crucial techniques for preventing wasted work.

An early, rough-looking prototype like the one inset in the picture allows rapid experimentation to see if an idea will work or is total garbage. For every prototype like Bloxxel that gets made into a game like EARL’s Warehouse, I have 3 or 4 prototypes I will never touch again, because the concept could not be made to work in practice. The sooner a project is runnable the better, because that is all the sooner you can determine if the project is gold or garbage.

Iterative development allows you to quickly gather feedback on whether a project is heading in the right direction. By adding a few working features at a time to a runnable project, you can spot wrong turns quickly and make corrections. If you do too much work without pausing to gather feedback, you run the risk of wasting a lot of work that can be expensive to undo.

When doing iterative development, it is also important to address the highest-risk elements of the project first, so that you can quickly identify and address any project-crushing issues that may arise. It is important to iterate across your project, touching all areas, and not get too bogged down in seeking perfection in any given area. When all relevant aspects of the project have had some work, then it is time to restart with the oldest aspects of the project, and apply insight gained from other areas of the project.

There are many ways to apply these techniques. One of the easiest is to use an established game engine like Unity 3D, GameMaker, or any of the other offerings that are out there. Nowadays, most of them are cheap, if not free. And if it’s not cheap or better, it doesn’t fit with the philosophy of inexpensive prototyping and iteration. A mature, well designed game engine lets you easily play around with and re-arrange elements to explore game concepts. Interactions can be mocked up and refined quickly and easily.

Another way to incorporate iterative development is to commit yourself to delivering a playable build of your project at the end of every work session. I do this, and it keeps me honest about making sure I am leaving things in working order as I iterate, and has other advantages as well: I am always ready to give a demo of all of my latest projects, if needed. If done right, it takes no more than 5-10 minutes to perform the build and do a quick smoke test. (Note: Always keep your old builds for a while in case you discover a showstopping issue deeper than a smoke test can penetrate, especially if you demo often.)

I find that keeping a prioritized backlog of small-to-medium sized tasks serves to both keep me productive, and to promote iterative development. Each work session I will look over this list, pick out a few items I would like to deliver, and then focus on delivering only those items, getting sidetracked only if some other task blocks me from completing those items.

Some of these techniques I discuss from a solo developer point-of-view, but many have team-based analogues that they were distilled from. Nightly builds for team projects are common, as are Scrum-style product backlogs containing stories broken into tasks that are then assigned to individuals or teams. The basic concepts of delivering early and often are still there, and are at the heart of any prototyping or iterative development effort.

Iteration. It’s one of my keys to getting things done.

So while I climb down off this soapbox here, I’ll just dust off and say that testing continues to progress well for EARL’s Warehouse, and I am still on-target for release on September 14 at the Ohio Game Dev Expo. I hope anyone near Columbus who is reading this blog will be able to stop by and see all of us Ohio game developers there. As game development winds down, my preparations for the expo will be heating up.

Aug 10

Today I worked on the tool that will generate the optimized maps for each level of EARL’s Warehouse: The Depot. In theory, its job is to determine what blocks within the master map can possibly be seen by the player in each level, then save an optimized copy of the map for the level that contains only those blocks.

In practice, I am still working out a few kinks. The concept sounds simple enough, however, you start realizing things like the fact that you have to test multiple points (each corner) on each block, and that the resulting algorithm has a O(m^3 * n^3) performance profile that results in literally 10 billion Line-Of-Sight calculations and thus is the type of thing you leave running overnight… Not very good for testing.

With such a slow, methodical algorithm, at first glance it seems that it would be quicker just to hand-tune the levels, until one realizes that CPU time is a lot cheaper than human time, especially when that CPU time is spent while the humans are sleeping.

I’ve done what I can to speed this processing up, such as skipping processing on empty blocks, tweaking algorithms, multithreading, etc., and it seems I am at about 400 minutes to process an average map, and it doesn’t look like it’s going to get much faster than that.

Testing is going well, earlier this week I went through all of Chapter 1 and most of Chapter 2, and have made a few fixes and tweaks. Some were a long time in coming, such as shortening the jump a bit on the first Dash block level to make it less brutal.

Overall, I think I am still on-target for a September 14 release date. More updates to come!

It happened more quickly than I thought. All of the development loose ends that needed to be tied up are now tied up, and EARL’s Warehouse: The Depot is now dev complete and is ready for extended system testing.
By dev complete, I mean that all coding and map editing is done; the only edits that will happen in those areas now are tuning (gameplay and performance), and bugfixes.

System testing will involve testing the old levels as well as the new, to make sure that no regressions have occurred, and will also involve testing the infrastructure of the game, such as making sure levels get unlocked when they should, and all UI elements do what they should.

Beyond testing, the only other tasks that remain involve finalizing the assets that need to wait until maps are stable and tested, like creating screenshots for the level select thumbnails, creating optimized versions of maps for each level, and determining the times for bronze, silver, and gold for each level.

Right now, I am targeting the release of EARL’s Warehouse: The Depot to coincide with the Ohio Game Dev Expo on September 14. I think I am well on track to get there, and am really looking forward to it.

So, having unexpectedly reached this major milestone with my project today, I am going to reward myself with a few extra hours of downtime, and attack the system testing starting fresh with my next work session.

Today, I set out to finish decorating levels in EARL’s Warehouse: The Depot, adding physical representations of lights, more beams and trusses, and of course, lots of tongue-in-cheek signage. All was going well for a couple of hours, then, suddenly, the level editor crashed while saving the master map for The Depot. It turns out I was pushing dangerously close to the 32-bit process memory limit with both the Unity IDE and the level editor loaded. When I reloaded, I discovered a zero-byte file in the place of the master map, almost 3 months of work on that beautiful masterpiece gone.

Except… Wise Duke had a version control system in place, with commits made at the end of every work session, plus a fairly extensive history of server backups to choose from. Instead of losing almost 3 months of work, I lost only two hours of work!

I immediately changed my editor to make a hard backup of any file replaced while saving, turned down the egregiously high view distance in my editor to reduce memory usage, and was able to resume work and actually complete my goal of decorating The Depot today.

All the time I spent earlier this year upgrading my server, my version control system, and my backup system really paid off. If you are doing any sort of serious software development, make sure you have these things in place. Bad things do happen to good files, and preparing for that inevitability is well worth your while.

Also, if you are creating a custom editor for your project assets, strongly consider implementing a system that will back up replaced files on save. If I had that in place before today’s visit by mayhem, I would have lost maybe five to ten minutes of work.

Jul 20

Sorry no post last weekend, not quite sure what happened besides running out of time.

After overhauling the end boss level, and finally coming up with an exciting idea for the bonus level (lots of cannons!), EARL’s Warehouse: The Depot is now level-complete. I already have a laundry list of tasks going that need to be completed before the expansion is release ready. The main tasks remaining are adding decoration to each of the new levels, and a thorough end-to-end system test of the game, which hasn’t been done in a while.

Today I’m working on 3D models for a couple of new block types to give The Depot some more character. I’m sure industrial railings and chain link fence will look pretty cool adorning the warehouse units of The Depot. They will also make it easier for me to constrain EARL within the boundaries of the level without obstructing views. Once I finish those models, I’ll start going through the new levels one-by-one and decking them out with some character. This includes signage, beams, trusses, and lights in addition to the new railings and fencing. The monthly COGG meetup is also today, so the work will be stopping early in order to attend. I presented at the last two meetups, so I’ll probably just sit the sidelines for this one.

I just now noticed the Ohio Game Dev Expo going on here in September – seems to have been announced in the past week. I most definitely plan to be there in an exhibitor role, more info to come on that.

I had a sudden inspiration last weekend for a social mobile game, and Gill and I were really excited about it. Alas, when I researched the next morning, I found that several of the unique mechanics that composed my game idea already exist or will soon exist in other games. Oh well, that happens. Ideas are cheap. It would require quite a bit of server infrastructure anyway for all of the shared media that would be generated. Maybe it will still happen, though, if I can refine the concept to be different enough from the other games I found, and find a viable solution for the infrastructure. I’ll keep it on the back burner for now.

Probably, though, I should be starting with a somewhat less ambitious project for my next foray into mobile. Something I can deliver inside 2-3 months. Something simple, and fun, and addictive, and awesome. I just have to figure out what that something is.

Time to go figure out some 3D models, more updates to come!