Feb 24

Tilt to Live has been unleashed on the unsuspecting public! So far the general vibe has been extremely positive! Adam and I are both pretty excited about getting our first app store game out the door. What’s interesting is the workload went from “lull” to “overdrive” in a matter of days as we ramped up for release and still are trying to coordinate things for a bigger media push in the coming weeks.

You can download Tilt to Live in the app store here. One of the cool things about AGON Online integration is how it’s easy to check leaderboards outside the game. Their community page for Tilt to Live is rather snazzy. We’ll be looking into integrating some of those widgets into our own landing page on onemanleft.com. But that’ll have to wait for now.

We’ve got plenty of ideas in store for Tilt to Live for future updates. So tell your friends, your mom, your dog, your twitter followers! The higher the rating the better! Things are rather hectic at the moment as you can probably imagine, but hopefully I’ll have some breathing room and be able to look back on all of this and write up some (hopefully) useful posts.

Feb 15

So I’m using OpenAL to do the audio in Tilt to Live. Over the course of development audio became the bottleneck of my game, both in size and in performance. The following could help you if you’re experience audio performance issues and are somewhat new to OpenAL. Let me preface this with: Don’t blindly optimize. Measure, Measure, MEASURE! Know what your bottleneck is before trying to tune code!

  1. Don’t make more than 32 sources objects in OpenAL. Of course, this number may vary from device to device and what generation the device is. Making any more than the limit the device support makes openAL fail silently, and at this point you’re wasting cycles.
  2. Load your audio buffers and create your source objects ahead of time and re-use them. This is a big one. Don’t generate and delete source objects in the middle of your game update. Instead, it’s much faster to just grab a ‘free’ source that is not playing a sound any longer and attach it to another buffer. I was pre-loading my audio-buffers, but creating/deleting sources on the fly in Tilt to Live. Then I started ‘pooling” and I got a decent gain out of re-using source objects.
  3. Keep OpenAL calls to a minimum. Especially in tight update loops, don’t repeatedly call openAL functions that don’t change frame-to-frame. I found that a good portion of my time was spent doing something as simple as ‘alSourcei()’ on each source ID per frame was causing a significant slow down.
  4. Don’t query openAL state if you don’t have to. In my case, I wrapped openAL Sources in objects with properties to get volume,pitch, etc. Initially those properties simply called the openAL equivalent and returning it instantly. This was hurting my frames due to some some innocent looking “backgroundMusic.volume += someVal” happening each frame along with other audio sources doing the same thing. Save any state you can in instance variables, and as a last resort hit openAL when you need to.
  5. As for size, you should consider compressing your sound FX and music to a reasonable size. If you’re like me, you hate giving up quality; especially if you listen to the full quality one and then the compressed one. It can seem like night and day. But in reality, when your users won’t have a full quality audio file to compare it to, they will not notice the difference.

As a sidenote, you can look at my first dev tip for batch compressing audio files.

Jan 16

I had seen a few things written about “Everyday the same dream“, a game created by but never took the time to try it out myself until recently. It’s a compelling art game where you try to subvert you’re daily routine. It took me a few minutes to figure out what to do after a few days of the mundane routine, but  that added to the whole experience of the game itself. It’s a very subtle, but clever design that speaks to a wider audience.

Be sure to give it a try. It only takes 5-10 minutes to play through.

Dec 22

So we’re at the last mile (it’s a long mile..) of development on Tilt To Live. Adam and I are starting to get some pre-release buzz built up around the game as we put our finishing touches into place. With the holidays around the corner, I will be out of commission until mid January. Marketing is a whole other beast we’re trying to deal with and learn as we go.  With a market as vicious and saturated as the App Store, it’s been one challenge after another!

As many have stated, to succeed in the app store these days requires a a good bit of marketing muscle. The ‘gold rush’ is pretty much over and the app store is now similar to any overcrowded market. I’ve been reading up on marketing in general and also seeking out articles on the app store specifically. App Gamer had a very interesting piece for newcomers to the app store regarding PR and marketing.

Have a great holiday (to those that are celebrating) and see you guys in the new year! We’ll be starting off that year with a great game and hopefully many more to come!

Oct 5

canabalt-378x253

Every now and then I come across a game that is rather inspiring. Strangely, a lot of them come from the flash community. I really like it when someone can take a game mechanic that is so utterly constrained and create something so enjoyable out of it. The epitome of these design challenges might be the ‘One-Button’ games. I just recently came across Canabalt, and it had me playing for a while despite the need for sleep.

The sense of urgency and the whole atmosphere implies a bigger and more ominous ‘universe’ than what the gameplay focuses on, and is a treat. I’ve died several times trying to figure out the fleeting images in the background only to slam into a wall, haha!  I’ll be checking it out on my iPhone later this week. Hats off to them for getting it onto the App Store and good luck!

May 5

Wow! GTA4 is an awesome game! The amount of content in it is mind-blowing. It seems whatever gta4 lacks in gameplay departments it makes up for by sheer quantity and quality of content. It was pretty sad when I spent 20 minutes in gta4 watching TV. Watching TV inside a video game…wtf…that’s a new low for me. As if being a couch potato or an eccentric gamer wasn’t ‘bad’ enough. It just goes to show the brilliance of gta4’s design. It’s like watching a very bad reality TV show on MTV. You know it’s bad, but you just can’t look away.

I’ve never played a GTA game before this so it’s all new to me. The whole ’sand box’ idea didn’t appeal to me initially. Not having goals in a game bores me rather quickly if the core mechanic isn’t fun. Truth be told, if GTA4 didn’t have a compelling main storyline I would be bored already. The driving is ok, the mini-games are alright, the combat is so-so imo. All of these things have been done better in other more specialized games, but I guess the ability to do them anytime and anywhere appeals to a certain audience. The narrative is what drives me to continue. I keep wanting to see what happens next. And the culmination of all those mechanics to bring you a compelling narrative and gameplay experience is what makes GTA4 so great for me.

On the other end of the spectrum for me in terms of ’sand box’ games is Skate. It’s still probably one of my favorite games on the 360. While GTA4 has the story, Skate has the gameplay. I can aimlessly wander the city in Skate for hours not giving a crap about the story. Why? Because moving around the city in Skate is fun. It’s the core mechanic of the entire game. Constantly challenging yourself is inherent to the gameplay of Skate…well because that’s what skateboarding is about. In GTA4 I tend to cut loose every now and then and just wreak havoc on the citizens, but not often. I’ve actually started whoring taxis to get from one place to another quickly because walking/driving around Liberty City isn’t that exciting to me. I’m more interested in the next mission to progress the story.

I’m not too far into GTA4, but far enough to see where this is going. The 10 out of 10’s GTA4 has been getting left and right doesn’t make too much sense to me. By all means it’s a great game. Quiet possibly the best game this year. But it has it’s flaws. Mind you, very minor ones but flaws nonetheless. A perfect 10 implies the game is flawless…so wtf? For one, the controls in the tighter areas (ladder climbing for instance) tend to become clunky. I find myself constantly adjusting the camera when driving to look at where I’m heading. In this day and age the camera should be smarter than that. They probably made the camera ‘lock’ like it does to reduce disorientation from the constant swaying of the vehicle, but it’d be nice for it to look at where your going instead of where you’ve been. Anyway, those were two that just recently stood out. Maybe if the gaming media didn’t rate games on a 7-10 scale we’d actually see a more ‘accurate’ judgement of the game’s quality. Or if they re-defined what the ‘10′ means then I’d be more willing to accept it. Best game this year? possibly. Best game of this year and last? possibly. One of the best games in its genre? Probably. One of the best games ever? I doubt it. Reviewers’ scales are pretty vague on the meaning of ’10s’.

In other news, should have something of interest for Blitzmax users soon (this week if all goes well). Also going to try to update some of my samples for XNA to 2.0. Particularly, the 2D camera example. It’s still written for XNA 1.0 beta last I checked!!! So bear with me on that.

Update:

Just wanted to make sure that others are aware that I haven’t dived into GTA4’s multiplayer offerings yet, and this was just my initial impression of the game. Maybe MP more than makes up for the issues that I came across in single player :) .

Mar 16

I always knew that your state of mind affects your productivity. Had a pretty rough week last week and work on my prototype suffered for it. But in the end, I realized time was a-wasting. You have to keep at it regardless of how you feel that day/week/month, because at the end of the day no one is asking you to do this. I never doubted that working on indie games would be difficult and you should approach it just like any other serious job, but it’s now becoming clear how to approach it. I have to set aside all the daily BS that’s going on in my life and whatever is currently on my mind and focus for 3-4 hours a night on one specific goal. But enough about that…

XNA community games seems to be on the horizon and I’m pretty excited about it. Should prove to be interesting to see what the community will come up with. In other news, I was suckered into buying N+ knowing full well the free flash game exists on the PC. N+ on the 360 is amazing though. I bought it for the co-op play and the convenience of sitting on my couch instead of a computer chair :) .

I’m zeroing in on my final concept for a game I plan to develop for 2008. It’s certainly got me thinking though. It’s a 2D shooter, which in the casual game space is not popular at all. So on one hand, I love shooters and I’m intrigued by the type of shooter I have as a prototype [a slightly different take on the typical 2d shoot-em-up]. But on the other hand, I feel no matter the amount of effort put into it, it’s not going to sell well. But I like to think my meager market research just doesn’t have the right type of data. I’ve been looking at distributions on some of the bigger portals, but they tend to have a different type of audience. I need to focus on a lot of the smaller more ‘niche’ portals to possibly make this worthwhile, not to mention developing my own web presence. I’ve got 1-2 other ideas currently that I know I could go with, and about a ton of others I’d still have to prototype to see what works and what doesn’t. I hope, in the next couple of months, to have some actual content to put here. But until then, just smoke and mirrors ;) .

Feb 10

Going onto my 4th prototype this coming week. One thing I’ve quickly realized is if I want to make a decent game that has enough depth to warrant as a full game then trying to crank out a prototype in a single week is unrealistic. With my current work schedule plus life’s many other challenges, the average 10-15 hours a week I invest wouldn’t be enough. I’m ‘redefining’ my time schedule to mean ‘total time spent on a prototype shouldn’t be more than week’s worth’. This’ll come out to 40-50 hours per prototype.

In other news, if you love rhythm games they you must check out Audio Surf! I installed this game and started playing…then 3 hours later I realized I had spent too much time playing rather than working on my own game. It truly is an amazing game. What makes it amazing is how it’s able to take your song library and construct interesting game levels out of them. It’s like the perfect game development situation: almost infinite number of levels and replay value because their engine adapts to the audio input given to it by the user. I wonder if anything like this will ever be applied to more traditional games like platformers or 3D shooters.

Garage Games launched their Instant Action Beta some time ago. It looks to be a very promising platform for indies who make games geared to an audience that is a little more ’serious’ than your typical casual game player. I imagine many casual games will be on there also.

As for my current gaming, I just recently finished Assassin’s Creed (superb gaming experience), still play Call of Duty 4 multiplayer on occasion, and just picked Mario Galaxy back up after finishing Assassin’s Creed. I sometimes wonder if playing these triple AAA retail games hurts my creativity when it comes to thinking up my own game concepts. I’ve recently tended to conjure up concepts that were simply too big in scope and/or too cinematic/dramatic for a casual audience. One thing I have learned though is my strength is in action games. They interest me enough that I can see myself following through with them 6+ months down the road (Gunstyle being a perfect example, which lasted 2+ years just for one of the versions). Whereas some of the more laid back casual games can barely keep my interest through the trial period, so I imagine things would be much worse if I were developing them.

I’m finding it difficult to strike a balance between too ‘hardcore’ and casual-action, but it’s something that’ll get better with time. Adios.

Dec 21

Christmas is around the corner (for those that celebrate it), along with New Years. It’s a busy time of the year that’s for certain, and I’m busy just like the rest of you. Mark Coffman announced the winners and prizes for the xbox360homebrew contest over the last week, and I’m certainly happy at the results :) . In regards to WildBoarders, the game has reached over one thousand downloads this past week! Exciting news for me anyway. I won’t be updating for about a week after tonight’s update as I’ll be up in Ohio for Christmas. I figured I’d leave an update on “what’s cooking” and a taste of things to come.

I’ve gotten my subscription setup for the XNA Creators Club, but haven’t deployed anything to the 360 yet. I’m currently staying at my parents’ home so the network setup doesn’t make it easy for me to connect a 360 with ethernet cables. I did start porting over WildBoarders to a 360 project, and it’s proved to be rather interesting. Some of the libraries I used had to be rebuilt as 360 projects, while parts of the game code are going to have to be redone because some features I used don’t exist in the 360 .NET version. That’s the easy part anyway. WildBoarders was started in XNA Beta 1. As a result, I had to code my own little resource management system along with some custom loading code for the maps. I now have to fully convert the system to use the XNA content pipeline since the 360 XNA .dll is missing Texture2D.FromFile(). I used that function for loading assets from binary map files that were, in turn, loaded into memory first. So I guess I’ll have to write a custom pipeline importer to load 2D textures from memory streams. WildBoarders on xbox 360 before New Years? A possibility.

In other news, I’m still working on the camera tutorial. I finished most of the code last night and it’s a fully functioning system that can move, scale, and rotate. I just need to add one more feature, and then I can sit down and write a tutorial that’ll hopefully be easily readable by XNA beginners. It is going to involve some basic Matrix and Vector math, but there really isn’t any way to avoid it. On the bright side, it could be used as a good primer before you delve into full-blown 3D math ;) . I decided to enter the Great Games Experiment beta. This community that Garage Games is building is looking to be very cool. The whole system makes it very easy to release new games, chat with gamers, developers, and publishers alike. Exciting indeed. That’s about all I have for this update. I’ll be back around the 27th or 28th, and during that time I will have limited internet access so expect some delays in responses to e-mails. Happy Holidays!

Nov 13

That’s how the title of blog entries suffer when I’m caught listening to some catchy tune. I made a new Dev Blog entry for WildBoarders over at xbox360homebrew and I posted an article in my Tutorials section for dealing with large 2D worlds in fast paced scrolling games.

On the gaming front, Gears of War kicks major ass. I was skeptical after the initial announcement many months ago. I just couldn’t see how the gameplay would end up interesting, but the graphics were sure a joy to look at. Regardless I caved into the hype. Fortunately, it has lived up to the hype in every way if not more. The gameplay truly delivers and it’s a very well polished (understatement of the year) game. Got Tony Hawk’s Project 8 also. Haven’t played a Tony Hawk game in years, so coming back to it was a bit refreshing. Haven’t tried online yet, but the leaderboards for the single player game are great on their own. Wii is coming out at the end of this week so I can’t wait to get my hands on that! In between all of that I’m still playing BF 2142 somehow. Yea, I’m pretty…um…deep into the whole gaming thing, development and all. Not sure I still manage to make time to go out on the weekends :o . Either way, this fall/winter should be an exciting time for gaming and game development!

« Previous Entries