As promised, Spellunk is now available for download in the two major app stores (and the Windows Store).

Google Play Open Beta

iTunes via TestFlight (email me to try it)

Windows Store

Apple does not offer an open beta channel and the game it is not quite ready for a full release. I did a full release to the Windows Store because (sadly) no one uses it anyway…

If you are interested, you can find the source code on gitlab. This is the current version of the game.

SpellunkApplication.cs

Okay, the user interface needs bit more polishing before I would consider it a completed game. But this is a functional game ported to Invention and is an improvement on the original version. The app is responsive and is playable on a phone, tablet or desktop machine.

The game board is custom drawn with two overlaid canvas panels. The bottom canvas is for the tiles and animations and the top canvas handles the user selection of tiles. The drawing is split over two canvas so the selection can be redrawn without having to redraw the underlying tiles.

Structurally, this is a simple application with one main screen and five additional screens. The corresponding C# file is annotated under each of the screenshots.

This is the screen when you advance to the next level.

SpellunkAdvance.cs

When your game ends you can type your name in the high score ladder.

SpellunkLadder.cs

When you tap on a word it launches a screen with an embedded web browser. I have integrated with wordnet.princeton.edu as a proof of concept. This is a bit of a carryover from the original version and I should look into extending Invention to support the inbuilt spellchecker and definitions lookup present in Android and iOS.

SpellunkDictionary.cs

Tapping on the cog brings up a menu to let you end your game, view the high score ladder and contact the author. If any exceptions occur during the game, there will also be a send faults button to email the stack trace.

SpellunkMenu.cs

Lastly, there is an interactive help screen.

SpellunkHelp.cs

This has been an important exercise to get the platform ready for wider adoption. Working with nuget packages instead of directly with the source code led to a couple of moments of ‘where is the API documentation?’ and ‘what does this method do again?’. If I have those questions then I still have some work to do! But it is exciting to see Invention coming together as a viable solution for cross-platform app development.