Japanese podcast about games: “Game chomp chomp”(ゲームモゴモゴ)

Recently I discovered an awesome podcast that discusses a variety of games, and one of the hosts actually works the business of developing them.

While you’ll need to know at least some Japanese to appreciate this, if you do it’s a great way to study up on Japanese as well as the art of game making.

You can more details about this podcast in my post here (on my blog about Japanese study).

Mobile Game Review: Lost Echo [iPhone/iPad]

I discovered this game from the promotional category “15 Greatest Storylines” in the iTunes store for iPad/iPhone. Most of the mobile games I download are free, but an impressive trailer plus the fact that the game was on sale ($0.99 from a usual price of $2.99) was enough to make me buy this game. Lost Echo has been out for some time, released on Sep 2013 for the first version.

This game is an authentic adventure game where you control the main character, following a storyline that gets pretty mysterious after the first few minutes of play. The game’s graphics are all 3D rendered in real time, and depending on where you move the camera angle changes, sometimes gradually and sometimes suddenly.

When I first saw this game’s trailer on my iPhone, I was blown away by the graphics, but after playing it for about an hour or so on my iPad my impression dropped a notch. This is not only because the larger screen size shows off the flaws more easily, but because the design quality of the environments varies significantly, with some contain areas of very simple geometry that stand out. Also, the app preview shows some of the more interesting and better-designed areas, which is only natural from a marketing point of view. Overall they have done a great job with texturing the environment to create realism without using too many complex models.

I’ve been playing for around 90 minutes total time, and the story and dialogue is pretty well-written so far. I am not sure if they are purposeful, but I feel there are similarities to some of the Final Fantasy Games (story and dialoge-wise), plus Half Life series (mostly visual). I haven’t played many true adventure games on iPhone/iPad, but it’s great to know there are some serious adventure games like this on mobile devices. The only drawback story-wise is that sometimes I feel this game devolves to a click fest where I have to just click on everything in sight until I hit upon the right object.

The controls on the game take some getting used to be able to efficiently navigate the world, but even given this learning curve I think there are some things that could be improved. For example, clicking on a location to move there does not normally show any UI confirmation, unless you have happened to click on a hotspot representing a object or other important place. This makes for a frustrating experience, especially because sometimes it isn’t clear whether the place you clicked on is a legal location to walk to. Usually I end up clicking many times quickly to make sure the character starts moving.

There was one scene I just played involving a card game where clicking on a button on an overlaid menu to look at my hand of cards didn’t work properly – instead it acted as if I was trying to touch something on the backdrop, giving me the message “This is a wine crate”. Eventually I figured out I had to click my cards on the table first but I was almost ready to give up. There is one more short scene involving fixing a rattle that was surprisingly hard to control, and I feel that part should be cut completely from the game since it didn’t add anything tangible to the experience.

I also had to struggle with the camera angle, since it would change unpredictably and sometimes I didn’t know where I had to send my character to force the necessary angle change. I think some of this is unavoidable in adventure games with dynamic camera angles, but I think they could refine things a bit. Once you get to the camera setup on each area it’s not that bad though.

For some reason, part of the time when I was playing this game there was no music, even though I had my volume turned up all the way. When I went back and played the next day music was suddenly working, and from what I’ve heard it’s pretty good. This issue might be related to my device, however. Another thing that I experienced once is my iPad getting extremely hot after playing for a few minutes, though this too could be a device-specific problem (it’s an older model).

Almost immediately after starting this game I could tell it was a low-budget effort – not in a negative sense but rather that the team tried to do the best with limited resources. For example, the fact that areas are reused several times in the story, and also the fact there is a lot of dialogue. Both of these things could be attributed to their storytelling style, but with a big budget I’m pretty sure would exposed more areas to be explored.

Looking at the developer’s site (KickBack studios), the team is in fact very small with only two people, who must have worked very hard on this game (their first) in the last two years or so. I’d be very happy if I could ever make a game this cool that could get such visibility from Apple, and I’m looking forward to this studio’s future releases.

Despite the few flaws and annoyances, for $0.99 this game is totally worth it, so I recommend you check it out on iPad or iPhone.

lostecho

You don’t use Unity 3D, it uses you

After seeing how so many people are picking up game engines like Unity 3D and Unreal Engine for their smaller scale game projects, I decide to do a little more research on what would be required to use one for an upcoming game idea of mine.

I chose Unity 3D to start with and downloaded the free version, and was able to run the editor tool and start playing with it pretty quickly. The interface was closer to something like 3DSMax or Blender in that content creation seemed to be top priority, with behavior and the programming parts secondary. On top of this, I was surprised that Objective-C wasn’t supported natively, though there was some sort of way to bridge this language and use it together with Unity.

Wondering how I could develop a platform specific (iOS in my case) game with the engine, I found there is a separate set of APIs which mirror those on the platform, and you actually generate a XCode project with the relevant files, and use that when you submit to the App Store.

This entire process was completely the reverse of what I am used to, making a project in XCode and just importing libraries as needed.

After some consideration, I decided to put Unity 3D on hold since it would require such a major shift in development style. Clearly, if I want to make a high quality 3D game an engine like this is necessarily, and there is also the extra advantage that I can easily port it to other platforms. However, the game I have in mind can probably be done pretty well in basic 2D, so I tentatively decided to prototype it first in the simplest possible way.

One of the reasons I made this decision is because my time budget is pretty tight. Had I been back in college when I had much more free time, it might have made more sense to just spend a few solid weeks learning Unity 3D. But for my current situation, I am not sure if that is worth my time. Also, I generally like to focus on writing gameplay and AI, with less of an emphasis on visuals, so I try to plan things so I can spend the most of my time on these elements.

While it’s true that many games these days decide to use a 3D engine just to look cool or extra realistic even when the gameplay doesn’t require it (ex: Smash Brothers), in my case I am not sure if the extra time to use 3D is worth it.

Six nice things about advertising your game online

Though I’ve never been a huge fan of advertising (as a consumer or producer), after spending a few hours trying to push my latest game on various online spots, I’ve started to get used to it, even enjoy it a bit.

The main purpose of advertising is to get more people to learn about your app and actually download it, but there are some other perks that come along with the ride. I’ll mention a few which I’ve noticed.  Most of my efforts have been put into posting on forums and these items reflect that.

1) It’s a great form of market research – you can see what types of games are out there being marketed, as well as how they are marketing them (videos, contests etc). You can also get a feel for which games are getting more attention from the views on their posts. One might argue that looking at the various app store’s ‘popular games’ categories gives similar information, but often the apps that get that far have a large marketing budget, and those techniques don’t necessarily apply to the average indie gamer.

2) You can advertise your game using very small chunks of time, unlike development which may take you just 15-30 minutes to get ‘in the mode’ and actually start writing code. Once you prepare your screenshots, videos, and text for your posts, the actual process of posting is pretty quick and can be done in a few minutes. Often the most time is just spent registering for an account.

3) You can get much more feedback about your game, whether from hits on your various forum posts or comments. Much of this feedback comes quickly, sometimes in only a few hours. Though not nearly as nice as actual downloads, these can translate to some type of satisfaction or motivation to continue marketing your game.

4) After you have found the first few top forums and posted to them (i.e. Touch Arcade), you have to start spending a bit more effort to find those which are less popular, but have a chance to help bring in more users. Finding such forums can be rewarding, as can be the judgement process in deciding which are worthwhile.

5) Rather than using the same text for all posts, you can customize each one based not the form theme, user base of the forum, and what games seem to be popular on that forum. Through this process you can improve your writing, creativity, and ability to perceive trends. For example, if you find out a certain post on that forum seems to be getting a lot of hits, you can see if you can relate your game to it somehow.

6) Knowledge of how to advertise software online is a very valuable asset, since it can be applied to any of your future or past projects, irregardless of genre or platform.

Fallout Shelter – What’s so great about it?

Fallout Shelter was released a little over a week ago on iOS, supporting iPhone and iPad devices. This game developer, Bethesda Softworks, owns the rights for all the previous games, the first of which goes all the way back to 1997. I am a big fan of Fallout 1 and 2, and after catching sight of a few reviews that said Shelter was great I decided to try it out.

Fallout Shelter, like the rest of the games in the series, is set in a post-apocalyptic wasteland, where the remaining humans have to do their best to survive in harsh conditions. You play as an overseer of a shelter in the wasteland, and must manage it’s various buildings and inhabitants.

You start by bringing people found outside into your shelter, and assign them to various rooms and roles, for example a diner or power plant. Each of them has their own set of unique stats which influences their performance in their assigned role. As you gather more resources you can eventually build more rooms, unlock new types of rooms, and expand your shelter both horizontally and vertically. You can also assign characters to explore the surrounding wasteland.

The game’s main screen consists of a cross-sectional side view of the habitat with it’s various rooms. The visuals are quite beautiful with a combination of striking 3D and cartoon-shaded characters, though the base view in XCom: Enemy Unknown on PC is quite similar in terms of overall appearance. You can freely zoom out to the point you can see several rooms at once, or make an entire room fit the screen (I played on an iPhone 6).

So far, so good – up to this point the game probably sounds to you like it has great promise. Unfortunately, I saved the worst for last.

After playing this game for around two hours off and on, I got rather tired of it and wasn’t very motivated to keep playing. I tried again a day later, but after 5 or 10 minutes quickly got bored again.

Although I am a big fan of detailed simulation games like SimCity, this game’s scope is just too limited for me to get into the game world. For example, when you explore the wilderness, your are only shown the results of your character’s actions via a textual log. The rest of the time you are sitting staring at your base, which while pretty, gets old quick. I can see how the resource gathering can be addictive for some, but ultimately this game falls in the bucket of “games you play when you aren’t playing”, which means that to gather resources you have to wait minutes, though there is a “rush” option which can speed up production if it succeeds. I can see how someone could turn on notifications and just play this game in spare moments here or there, but I’m just not into those types of games. Of course there are ways to speed up the process by using actual cash via in-game purchases, but this game pushes these a bit less aggressively than other mobile games I’ve played in this genre.

I think Bethesda has done a good job of making a casual time-wasting mobile game in the Fallout universe, and from the looks of it they have addicted a great crowd of people. In all fairness, I think they built the exact type of game they intended to, and the usability is overall pretty good (except for a few times when I had trouble selecting a character when I was zoomed out).

But for me, the real allure of the Fallout universe was the element of exploration and adventure, which is mostly missing from this game. Having characters upset due to lack of food or electricity is much less exciting and engaging than being chased by a giant scorpion, and reading about that in text form doesn’t count.

For the younger generation who is already into these types of games, I can see how it became popular. But for those who are old enough to have played and appreciated the first two Fallout games, I have a hard time believing much satisfaction could come from playing Fallout Shelter. Though I’m sure Bethesda spend a good amount of time developing this game and will make some profit from the in-app purchases, ultimately I think it’s primary purpose is to act as a marketing tool for Fallout 4, which should be released near the end of this year.

[If you enjoyed this article, please consider checking out my latest mobile game, a unique puzzle game for iPhone]

References

https://en.wikipedia.org/wiki/Fallout_Shelter

https://upload.wikimedia.org/wikipedia/en/a/a1/XCOM_Enemy_Unknown,_illustration_of_the_strategy_UI.jpeg

A dozen tips for marketing your mobile game on internet forums

In the last day or so I’ve advertised my new mobile game on a few internet forums to try and pull in a few more downloads. I started with those which gave the highest hit count for my last game, and tried some new ones as an experiment.

Here are some tips for doing this for your own games (or apps), based on my experiences.

1) Make a list of sites you want to advertise on first before you actually make any posts. This will not only allow you to streamline the process, but also will let you focus more on which forums you want to post on.

2) Make sure you read the rules on each site before doing any posting. Getting your post removed, or worst, your account banned will only hurt your chances of getting many people to download your app. There are some basic rules which apply to most forums: no deceptive titles, don’t re-post the same content several times, post in the right sub-forum, etc.

3) Write the title and text in advance for your posts. For boards that are similar (i.e. game development boards) you can reuse these items, but feel free to write custom posts for the boards that have something unique about them. For example, one of the boards I posted on recommend giving details about how the game was developed, so I added a section giving that information. If you are not sure, err on the side of making customized posts for each site, since it will make your posts look less spammy.

4) Many forums don’t allow you to upload images and other attachments directly, so you must provide a URL linking to the image. There are many sites to host your images, and I ended up using http://postimage.org. It was free and easy to use, however it shrunk down the resolution to a pretty small size that wasn’t ideal. Some sites that do allow direct attachments will not allow you to scale them down manually, so consider re-scaling your screenshots and other images to a proper size before uploading.

5) Think creatively about what forums you can (safely) advertise to. For example, my latest game was related to board games such as Othello, so I advertised in a board-game related forum. To be safe, when you do this I recommend posting in the ‘Off-Topic’ areas, since often there is no to little moderation in them.

6) Before writing your posts, consider checking out some of the posts which have a large number of hits, and see what type of verbiage and style they use.

7) Don’t overlook the importance of the post title, often it is the only thing that decides whether users will start reading your post or ignore it.

8) For some forums, there are special ways to write posts advertising games. For example, on forums.toucharcade.com, there is a special meta tag of the form [appinfo=all]put iTunes URL here[/appinfo] which is supposed to (among other things) automatically get the app’s icon and show it next to the title on the post summary screen. I had mixed results with this, so make sure you check that any such meta tags are working either at preview time, or immediately after submission.

9) Many sites will allow you to embed videos from YouTube or other video sites in your post. Consider uploading your app preview (if you have one) to a video site and adding it to your post this way. You can use the same one you uploaded to the app store (if applicable), though you have the option of making a new one just for the purposes of advertising, the advantage being that you have less restrictions on time and content.

10) If you are maintaining a blog about your game, I would recommend to NOT include it in your post. Advertising your blog is fine, but do that separately. The reason is that if you imagine people only have the patience to click on one link, you want them going to your iTunes page rather than a page about development of your game. I wouldn’t consider your advertisement a success if you get a bunch of hits to your blog, but very few downloads to your app. For this same reason, (to go against what I just suggested in #10) you may want to even avoid embedding videos or if you do, include a easy-to-see link in your video’s description.

11) Make sure you test any links you include in the post, such as your game’s iTunes link. Particularly on iOS, I found out that even though my game was supposed to be on the app store, there was a delay of about an hour or two where the iTunes link I got wasn’t properly working and my game wasn’t actually in the store yet. If you want to be safe you wait until the day after your game goes live before advertising.

12) As the popular saying goes, “Hope for the best but prepare for the worst”. It’s a dog-eat-dog world out there with several hundreds of apps submitted to the iOS app store each day, and forums where mobile game marketing is done are often equally flooded. Keep your expectations low, but experiment as much as possible and learn as you go.

Three tips to be an effective hobby game developer

Being a hobby game developer is fundamentally difficult, since you have to divide up limited time between the rest of your life and game development, which is inherently a time-consuming activity. In this post I’ll discuss three ways to help maximize your time to be effective as a hobbyist game developer.

Use idle time wisely

In almost everyone’s life there are moments where we don’t have an opportunity to do proper game development, and yet our brain is free to think. These include when you are in the bathroom, shower, commuting, or putting a child to sleep.

During such times, assuming I have some mental energy left, I try to think about a game I am working on, either planning what I will code next or sifting through ideas that might improve the game. By doing such pre-planning, when I actually do have a few minutes of free time I can start working almost immediately.

Pipeline projects

When working on any project, there are usually times when you have to wait before you can proceed. For example, you might be waiting for app store approval, or feedback from a tester.

To make effective use of such times, it’s good to have a second or third project to fall back to so you can avoid wasting time. In an extreme case, you could be thinking about how to market a game that is already released, waiting on a second game to be approved for an app store, and planning what time of game you’ll develop next.

Say bye to TV

This time is really a good one for life in general, but it is especially true for hobby game developers that are time-limited. TV is really addicting and can be load of fun, but generally it is not a great way to learn new things or even exercise the brain (this is true even if you are watching a story with a complex plot). To avoid watching too much TV I don’t subscribe cable at home. Even though movies may seem more intellectual, I feel the are equally wasteful. The only good exception I can think of is if you are studying dialogue, camera angles, or editing techniques to apply to a game you are working on.

Strictly speaking, I could include other hobbies like reading, but at least those things exercise the brain better and it’s good to take a break from game development once in a while.

I’ve seen a recent study that says the average person the US spends almost 3 hours watching TV. Just imagine how much more could be learned, and created, if  even a fraction of that time was used for something more productive.

Game development: To Engine Or Not To Engine

Since I started scanning the posts tagged with “Game Development” on WordPress, I’ve noticed a great deal of talk about game engines, in particular Unity and UE4. Although I knew such engines existed for some time now, I was a bit surprised how frequent they are used, and how even games created by a single developer were using these.

So I’ve been thinking a bit more about game engines and decided to do a post on them. To start with, what are the reasons and pros/cons to using one?

Though I mentioned two 3D Engines above, there is really a continuum of choices for game developers, with increasing reliance on other’s code and less on their own. I’ll list some options out, very roughly:

  • Assembly-language code  [all code]
  • Low-level programming language (C, C++, etc.)
  • Higher level programming language (Basic, etc.)
  • Some programming language along with an engine (Unity, EU4, etc.)
  • Game-development tool with simple scripting or visual-based logic blocks (RPG Maker, Game Maker, etc.)  [no or very little code]

Generally speaking, the farther down on this list you go, the less time you have to spend on coding as many things are already done for you, or can be done with a few clicks or a simple script. In exchange, you have more limitations on the types of games you can create, including graphics, gameplay, and other elements. If ten people create a game with RPG Maker, there are likely to be many similarities between these games, whereas if these games were made “from scratch” in a low-level language, they would probably have much greater diversity.

There was a time when I looked at those using RPG Maker and the like with disdain, thinking “those people aren’t really developing games!”. But after some thought, I now realize that their choice to use such a tool frees up their time to focus more on game elements, like story, gameplay, and balance. While it’s true that someone making games is less likely to “make it big” by selling their game to a large audience, I’m still very far from that goal myself and surely, the joy of the act of game making itself, plus the pleasure of having others play your game are too important aspects to game creation. [As a side point, as a career building skill I still highly recommend learning some commonly used programming language, such as C++ or Objective-C]

For me, I learned to program around the same time I was introduced to computer games, and programming itself is a very enjoyable activity. Just writing code, tweaking it, and seeing the results can be fun, though it depends somewhat on what the program is doing and how tedious the code writing is. Because of this, sometimes I can end up spending a great deal of time on tweaking certain parts of code, and not necessarily focusing that much on the “game-making” aspect. In any case, I consider myself much more familiar with programming than game-making per se, and have much more to learn with the latter.

Having said that, regardless of your experience level you can choose any of the above options, given you have enough time. So which do you pick and why?

First off, for 3D I think you pretty much are forced to use an engine, whether it’s Unity or something else. Back in the day when 3D rendering was a much less mature technology, it might be possible to calculate your own 3D-to-2D mapping and maybe even apply simple textures (think of the classic film Tron to get an idea of what I mean). But now with advanced lighting, textures, animation, and so many other things to worry about it’s nearly impossible to do all this yourself. I knew a guy once whose hobby used to be creating graphics engines for fun, but ironically he never really did much with them, since the engine itself was the end product. Unless you have a pretty large team you’re not going to get by with creating your own engine and consuming it.

My knowledge of tools like Game Maker is limited, but I’m pretty sure most of those are 2D only, so wouldn’t apply to making 3D games. If you want to focus more on level development and don’t mind little to no control over the gameplay, you can always use something like Minecraft or Blocksworld.

For 2D games, I think you have a little more wiggle room since it’s much more feasible to write your own code to do things like display a grid of tiles and scroll them. This is what I choose to do for my first iOS game, as well as the one I am currently working on. I considered playing around with something like Unity which has support for 2D games as well, but due to concerns about the learning curve I ended up not using it. From the little research I’ve done, it seems that one of the reasons to use something like Unity is for it’s level editor, which is something you really don’t want to make yourself. Also, you would have to worry less about performance of animations and scrolling since the engine would take care of those for you. Given the opportunity, I’d still like to play with Unity sometime, however.

In the end, I think we all want to be able to say “I wrote a great game”, as opposed to “I wrote a great program”. And as long as we can customize the end result to our liking, the player shouldn’t really care what technology or set of tools was used.

Visual styles for games

When creating a game, a key element is how you display information to the user visually, and this will have a major influence on implementation times, skills needed, and how easy it is to divide up tasks among multiple developers. In this post I’d like to talk about some of the different categories available, along with each’s pros and cons.

2D

Writing a game that operates in a flat space in two-dimensions is a very common style, and even now I feel it is the most common one, at least for games done by small teams.

With 2D, you have a few different ways to create your assets:

  • Pre-rendered from 3D
  • Hand-drawn (generally requires artistic skill)
  • Drawn in-game (vector, geometrical, etc.)
  • Photographs
  • Mathematically generated

2D games can be further broken down into a few genres depending on the gameplay and constraints of movement. Here are just a few:

  • Static single screen, cannot ‘go’ anywhere (ex: Tetris)
  • Horizontal scroller (ex: Mario)
  • Vertical scroller (conceptually same as the horizontal scroller, though gives a different feel)
  • User is only shown a small piece of a larger map, and can scroll around at will

Pros

  • Spend relatively less time on graphics, compared to 3D
  • Can potentially do all coding in-house without using a third-party engine (though you have that option as well)

Cons

  • Types of games that can be done is limited
  • More and more games are moving to 3D, so it’s easy to look dated with 2D

3D

Writing a game in 3D means that a three-dimensional space is represented, usually with light sources, textures, and a camera of some sort. This is becoming the norm for more and more games, and more and more 3D engines are becoming available for no or low cost.

Pros

  • Nearly unlimited options for game types
  • Can polish graphics to the extent they are photo realistic
  • If done well, can be very intuitive to users

Cons

  • Almost always requires a 3rd-party engine (Unity, etc.), or spending significant time on developing an in-house one
  • 3D-related development and related issues typically take a great deal of time
  • Requires special skills to make textures, models, and animations
  • If done bad, can look even worse than 2D
  • Making intuitive controls can be challenging, depending level of freedom given to the user

Isometric

Isometric is a unique perspective where objects farther away from the camera don’t get smaller. Q*bert was one of the first games with this perspective, and XCom 3 is one of my favorites. You can see a few screenshots of isometric games here.

Isometric can implemented either simple projections so that it is similar to 2D, or can be used by configuring a 3D Engine to appear isometric.

Pros

  • Has a certain ‘nostalgic’ feel to it for those who have been gamers for some time
  • Can look more realistic than 2D, while taking much less effort than 3D

Cons

  • Freedom of camera movement and world construction is limited.

Text only

This is a style for the most part extinct, but was headed by classic games like Zork        in the day.

Pros

  • Spent no time on graphics
  • Prototype very quickly

Cons

  • Severely limits the type of game which can be made
  • Small, niche audience

Sound only

This genre is pretty rare, even more so than text only, but I’ve seen one or two apps on the iOS app store recently that use a combination of high quality sound effects and stereo sound to create a immersive experience.

Pros

  • Spend no time on graphics
  • Can be seen as “creative”

Cons

  • Very limited
  • Requires special skills to properly record sound effects
  • Small audience

Combination styles

The sky is the limit for which styles you mix and match. For example, classic Sierra games used a good mix of 2D graphics with a text-based interface. The Super Smash Brothers series uses 3D but in a mostly 2D way, emulating true 2D fighters like Street Fighter. Some games also use a combination of 2D and 3D, either simultaneously (like showing a 2D map at the same time as traveling through a 3D landscape), or switching between styles in different areas.

Though it’s probably rare, you can even switch styles in the middle of development – starting with a 2D prototype to prove the concept then switching to 3D for final implementation, or falling back to 2D when you realize 3D is not worth the effort for the given gameplay.

Lessons learned doing sound on iOS – the real story

A few days ago I wrote an article about using sound effects in iOS games. Just today I was doing some more testing and realized I had made a major mistake, and some things I said in that post were wrong. In this post I’ll let you know what I had did wrong.

I alluded to a single line change that would allow playback of MP3 files. Here is the specific line:

NSString *audioFilePath = [[NSBundle mainBundle] pathForResource:sampleName ofType:@”caf”];

I had simply changed the “caf” to “mp3” and since I was getting sounds I assumed things were working. The weird staticky sounds I got I explained by saying that several of the same sound were colliding and causing such an effect. Though sound collision can be a problem and sometimes it might make sense to have several variations of a sound effect, what appears to have been actually happening is that OpenAL didn’t know how to process MP3 and so it was just generating random noise.

After a tried a few different .MP3 files and they all sounded pretty much the same, I finally realized what was going on.

The solution was to return the code to use “caf” files, and use a line like the below to convert MP3 files to CAF files.

> afconvert -f caff -d LEI16@44100 chop.mp3 chop.caf

After doing this, my sounds finally started playing properly. I did find some strange effects that occur when sounds overlap quickly, but they were more subtle.

One additional step that is good to know is you will need to manually tell the .caf files you added to your project that they need to be included with the bundle that gets copied to the device. You can do this by dragging the file under XCode’s Build Phases => Copy Bundle Resources. I didn’t notice this problem for MP3 files, as it seems smart enough to add the to this list automatically.

The strange thing is I would expect OpenAL to throw an error somewhere instead of just spitting out noise. So either this set of APIs is pretty badly designed, or there is some code in AudioSamplePlayer that isn’t handling things properly. Either way, I got things working so not going to pry any deeper at this point.