SpriteKit game development – Part 1

spritekit

Here’s a new series that actually began during Christmas holidays of 2017.  I had bought a shiny new MacBook in the Spring of 2017 so that I could get serious about iOS and MacOS development.   I studied several books and online tutorials on Objective-C and a little bit of Swift.  Fast forward to Christmas where I came up with my idea for writing a game that I’ve always been meaning to write.   This would be my third game.   I wrote a C++ game in the 1990s that was left unfinished.   My ambitions were too grand.   Here’s a shot of the gameboard in brilliant VGA.  Yes…DUNE!

just the board

Years passed and the advent of .NET presented a learning opportunity.  I would create a tile based Dungeons and Dragons homage to Ultima III.    I wrote this first in VB.NET with a proxy wrapper into the DirectX 2D Libraries.   I then ported it to C# targeting native DirectX libraries.   Unfortunately I don’t have a screenshot of that game and the libraries are no longer easily available.   I spent a lot of time on it and yet abandoned it as well.

The concept for the new game would be set in the Frank Herbert Dune universe.   I wanted to use the Traveller RPG game rules, with a mixture of Dungeons and Dragon’s Gamma World.   Mixed in would be a dialog based “choose your own adventure” plotline similar to Knights of the Old Republic game for XBox (awesome, awesome game).  I decided to use Apple’s Swift language so that I could learn a new skill and develop my portfolio on GitHub.

So, I studied and completed this course: https://cartoonsmart.com/role-playing-games-with-sprite-kit-and-swift-3-subscriber-access/    I recommend this site.   The tutorial teacher, Justin Dike, has a great sense of humor, easy disposition and very fun set of courses.

After finishing the tutorial, which was about 55 videos about 16-25 minutes each consisting of about an hour a video (watch, pause, write code, test, debug), I was ready to begin.

Using http://www.hacknplan.com to track my issues in a Trello like interface Jira board.  I’m already having to adjust my sprint because I’m behind!   It’s amazing that free resources like this are on the internet.

Using Articy https://www.nevigo.com/en/articydraft/overview/ (available via Steam) to do my storyboarding.   I bought it for $100, which I thought was super cheap.   When I get further along in my game engine I’ll start designing the flow of the game with this pretty impressive application.

I created a GitHub repo and initialized it with the iOS game kit created from the tutorial.  Then I created a develop and a feature branch.   Check it out here:  https://github.com/BacchusPlateau/DuneTraveller

The first step was to convert the iOS project to a MacOS target.  Even though this article used Obj-C (which I studied last year), the directions were applicable to Swift projects, and I was very grateful:  https://www.raywenderlich.com/70837/how-to-port-your-sprite-kit-game-from-ios-to-os-x     That took a few hours to tweak and get the new View (SKView) hooked up to the new build target.

The next step was to comment out all of the UIKit references from the iOS project and retrofit them with mouse and keyboard events.   That’s what I’m currently working on.  It’s difficult translating the iOS touchesBegan and touchesEnded to desktop events.  There isn’t a lot of documentation on desktop SpriteKit game development, but I’m relishing the time spent.

Stay tuned for my next update in the series.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s