A Year of Failed Prototypes

It’s been over six months since I released my last game, and almost that long since I’ve updated this blog.

I’ve been busy with non-gamedev stuff, but I’ve also been hacking away in my spare time. Unfortunately, most of these projects haven’t really gone anywhere. So I decided to go through the ones that had some promise, record a brief demo video, and upload the code to GitHub.

One of the hardest things for anyone who does creative work as a hobby is finding the balance between quality and getting stuff done. For most of these prototypes, I didn’t they were good enough to keep working on them. So I let them digitally rot in some deep folder of my hard drive. Thing is – there’s some good stuff buried in there. By going through and at least getting the projects into a shape to share the code, maybe someone else can take away something useful. Plus – it makes me feel slightly more productive.

And who knows – sharing these prototypes may kickstart enough motivation to turn them into full-fledged games.

Open Ocean Test

Source: https://github.com/tdonlan/OpenOceanTest

This is a prototype built in XNA to simulate an open world ocean. You swim a submarine through the ocean, underwater passages and lots of different fish. The terrain is generated using similar algorithms used to generate the Platform Hack tile maps. Some of the fish (flocking) move with similar algorithms to some of the germs in NanoDoc. I also put together some code for skeletal-based movement, and was going to have the larger fish (whales, sharks, big squids, seaweed) move that way instead of sprite sheet animation.


  • How the divide the sea from the air? I could never find a surface that looked good. Right now I’m just using a fat line tracing an oscillating sine curve. But if I ever used any sort of texturing on for the waves, it looked pretty bad.
  • How to handle all the fish + terrain? Running collision on all the fish would have been too slow. And I was just spawning various fish at different depths, not checking if they were in water or in rock first. One solution was to just have fish get repelled by the thickest rocks until they were in the ocean, but this led to strange bugs. The other issue was when to save the state of the world? If the world gets large enough, you can’t store it in memory effectively, so you have to come up with some sort of “chunking” algorithm for the world, which can be a lot of overhead to program.
  • How to make a game out of it? I thought the game would be mostly a sandbox with some loose missions and some upgrade trees for various tools on the subs: harpoon guns, engines, fishing rods, manipulator arm. Maybe even a flashlight. Missions could be something like: find this exotic fish in this section of the map. Catch a 500 lb marlin! Pull up the treasure from the sunken Pirate ship! Fun stuff, but a good bit of overhead to implement (questing system, mini-map, etc)

Fishing Test

Source: https://github.com/tdonlan/FishingTest

This prototype was partially inspired by a tweet for a fishing game jam, playing Ridiculous Fishing, and also fond memories of fishing minigames in videogames of yore (Ocarina of Time). I wanted to find a gameplay mechanic that mimicked the gentle tug and pull of real fishing – finding a balance between reeling in a fish and having the line break.

Anyway, the core mechanic is basic math, but the most technical part of the demo is the physics of the fishing line. This was actually done using Farseer Physics rope joints.


  • Getting the mechanics to feel just right. The fishing line feels a bit too floaty. And the fishing minigame feels a bit too random – like the player doesn’t have enough control reeling it in. Once both of those variables are adjusted, I think it could be a pretty fun prototype.


Source: https://github.com/tdonlan/JSRPG

This is a rough RPG built in JavaScript. It was actually created to try to build a RPG plugin for Twine games. I wanted to create a nice framework for building gamebooks (like Lone Wolf), where you could read through a choose-your-own-adventure style text game, but also handle battles and inventory. The pure RPG battle stuff ended up working ok in JavaScript, but the Twine integration was a nightmare (worthy of a separate post).

This demo is just the standalone JavaScript RPG functionality. Most everything is data-driven, so you can customize the game however you like, using JSON and CSV files.


  • Building complex logic with JavaScript: Things like – I want an item to grant an ability – which would be trivial in a strongly-typed compiled language, are pretty frustrating to build in JavaScript. Since there are no real enums, you have a ton of code to check for different strings, which can get cumbersome.
  • Display Loop: Right now the battle loop does the logic, then just recalculates all the HTML and updates the div. Ideally, there would be a way to separate it into some sort of MVC pattern, where the logic and data of the RPG was broken up a bit better from the display. Right now it’s a tightly coupled mess.
  • Everything in the browser: all the problems with doing stuff in the browser – how to save state (to disk or server), how to prevent cheating (you can’t). At the very least, I think I proved to myself that using Twine + JavaScript to make a Lone Wolf gamebook system isn’t really feasible (at least for someone with my level of skill + patience). I’m thinking Client + Server or iOS App would work much better.

SpaceTest Asteroid Clone

Source: https://github.com/tdonlan/SpaceGameTest

This is an iOS game built using Cocos2D. I had this idea to do an asteroids game where you could destroy asteroids and enemy ships, collect minerals, level up your ship, etc. Right now the prototype has the flying around part working pretty well – it feels a lot like the classic game of asteroids. It’s using touch screen controls to steer and shoot.


  • Does this game belong on iOS? I think my original intentions were larger than the limited screen real estate of an iPhone. The touch controls felt a little sluggish, especially the precision required for shooting and flying a spaceship through asteroid belts.
  • Parallax backgrounds in Cocos2d – there’s a built-in parallax functionality, but it’s not infinitely scrolling in 2 directions. I ended up hacking together a system to draw a background starfield and have it scroll as a function of the player’s movement. But it never felt very smooth. One of the biggest frustrations I’ve had with Cocos2D is finding a middle ground between using CCSprite to draw a static sprite object, and using low level OpenGL calls to draw lines and other primitives. Makes me miss XNA Spritebatch…
  • Realistically, I could grind on this game for a few months, find some decent art, and have something publishable on the App Store. Unfortunatly, my ADD kicked in and I was off to the races on something else. We’ll see if I pick it up again.

NanoDoc for Windows

I’ve finally ported NanoDoc, my XBox Live Indie Games Shooter from 2012 to Windows.  The gameplay is the same, but now the nanobot is now controlled with the mouse, and the controls are slightly different.  It’s totally free, and can be downloaded here!

Check it out!

I’m in the process of porting the game to HTML5 as well, but that’s a bit more involved (and may not ever happen, depending on the performance of the swarming germs, let alone HDR effects).


Some New Games!

I recently released three small games. Heartline – for iOS, The Party – web/TWINE, and Starvin Stu’s Spud Farm – my LD48 XNA game.

The Party
The Party
Starvin Stu’s Spud Farm

All three games are free, so check them out!

I’ll be doing postmortems on each of these games and their respective tech stacks. Lots of fun stuff learned in the process.

New Year, New Plans

It’s already halfway through February, but I’ve been kicking the tires behind the scenes.

This is a big transition year for Daydalus Studio. I think it’s safe to say that I’m leaving Xbox Live Indie Games behind for good. XNA itself is officially dead, but I love the API enough to stick with it for a few more games (utilizing MonoGame). I’m also going to be putting out a few games on iOS. Here are some brief overviews of what I’m working and hope to release this year!

1 or 2 quick iOS action/puzzle games – I’m using Cocos2D, which is almost nicer than XNA in some regards (built in support for primitives, animation, basic collision). However, ObjectiveC and the iOS stack is a somewhat frustrating to work with, so I doubt my iOS games will be as complex as my XBox Live games. The goal is a quick little action / puzzle game that uses minimalist art (shapes, colors) and is released as free to play. I may sell bonus levels for a dollar.

ios2 ios1

“Open World” Ocean Game – I’ve had a prototype running of this since I worked on flocking for NanoDoc. It’s a lot of fun to see colorful fish “flock” in schools. This game would be somewhat of a sandbox, where you could explore, fish and buy upgrades. It would be built in XNA / MonoGame and released on PC via Desura / Steam.


Thief in the Night – This is the big idea I’ve been churning in my head for years now. Stealth mechanics are all the rage these days, and I’ve always loved stealth games. This game would have a top-down world, line-of-sight stealth, lockpicking and pickpocketing minigames. And on top of that would be a dynamic story with dialog trees and mini-quests. It wouldn’t be a full RPG with stats, but you’d be able to craft better gear. I have some promising tech demos for this now (2D shadows using Krypton, Pickpocketing with Farseer physics, etc) now to pull it all together into an alpha.

Stealth1 Stealth2

Platform Hack 2 – I’d like to go back and do Platform Hack right, the way I originally intended. A full metroidvania world (connected levels where you backtrack), with procedurally generated stages. I’d probably use all the same assets. I’d give the player a bit more control (infinite wall jumps, etc) to prevent getting stuck. The frustration of super-high hitpoint enemies and the deadly grappling hook would be revised.


Stay tuned for more news on these projects!