Observable Events Revisited

Back in May of last year I wrote about my ObservableEvent library, which is a simple, efficient observer pattern written in Swift. You can see the original post here. Since that time there have been a couple of things that I wanted to change and improve. Its time for version 2.0.
Continue Reading…

Posted in Game Programming | Tagged , | Leave a comment

GameSoundEngine: A simple sound engine for iOS games

Recently while working on my latest SpriteKit game, it came time to start adding sound to the game. Looking back on how I implemented sound in my prevoous games I had always relied on a sound library to help with the sounds. In my early games I used the cocos2d SimpleAudioEngine. More recently I have been using ObjectAL by Karl Stenerud. Both work great and are easy to use, but were not an option this time. Neither has been updated in a while and I also wanted a swift interface. After looking for another sound engine and not finding anything that meet all my needs I decided to create my own sound engine called GameSoundEngine.
Continue Reading…

Posted in Game Programming | Tagged , , | 8 Comments

SpriteKit universal app using SKScene scaleMode

Writing a SpriteKit game as a universal app that runs on all iPhones and iPads can be challenging due to all the different screen sizes and aspect ratios. Fortunately SpriteKit provides a scaleMode property on SKScene objects to help solve this problem. But even using scaleMode still requires planning and thought upfront to get things setup correctly. It is also important to do this planning early in your project as it will have an impact on your game’s coordinate system and art asset size. In this post I will share the approach I used in my latest SpriteKit game.
Continue Reading…

Posted in Game Programming | Tagged , | 2 Comments

SpriteKit shaders

In todays competitive market mobile games need to be highly “polished” in order to be successful. One important aspect of making a game “polished” is adding subtle little animations that make the visuals interesting and engaging, providing extra eye candy for the user. The game I am currently working on has an under water theme, with a cartoon style. I thought it would be great to have the backgrounds of the scene have a gentle under water distortion look, so that it looks more alive and less static. This is a perfect job for a custom shader.
Continue Reading…

Posted in Game Programming | Tagged , | 1 Comment

Observable Events in Swift

When writing code for video games there are certain design patterns that always seem to come up. The observer pattern is definitely one of those patterns. Take for example the iOS game I am currently working on, where each level has one or more goals. To successfully complete a level the player must complete all of the level’s goals. The game is a word-based game so the goals for a particular level might be:

  1. Score 10,000 points
  2. Spell 3 words with 5 or more characters

Each goal instance needs to observe different events in the system so that it can track the player’s progress towards completing the goal. In the example above the point total goal needs to observe the game score, and the word length goal needs to know whenever the player spells a word so it can check the length of the word.
Continue Reading…

Posted in Game Programming | Tagged , | Leave a comment

Welcome to the Endless Wave Software blog!

It was six years ago when I started Endless Wave Software to realize my long time dream of creating mobile games. At that time Apple had just started shipping the iPad. Games like Angry Birds, Doodle Jump, Fruit Ninja and Cut the Rope were at the top of the charts. I was a mobile industry veteran with over a decade of mobile application development experience, but I had no real experience in designing and building games. It has been a fascinating and challenging journey since then. Along the way I have had some success with games like the award winning Simply Twisted. But I have also had many failures with several games that never saw the light of day. This blog is now part of that journey, where I hope to pass on some of what I learned and share my experiences creating games.
Continue Reading…

Posted in News | Leave a comment