Noel

Independent game designer and programmer. Created Subterfuge, Casey's Contraptions, Flower Garden. Runner. Cyclist. Nature enthusiast. Magic addict. @noel_llopis.

Build Server: The Heartbeat of The Project

Have you ever given some thought to why you decided to become a game programmer? I’m pretty sure it wasn’t to do mundane, repetitive tasks. Yet sometimes we find ourselves spending a significant portion of our time making sure that the code compiles for all platforms, or that there are no potential bugs lurking in the depths of the game, or even building the assets for each level and running them to make sure they load correctly.

Clearly, those are all things that need to be done, but if they are so repetitive and mindless, couldn’t we put some of the computers around us to good use and have them do the job for us?

A build server will do all that and more, much faster and more reliably than we could, and it will free us to work on the thing that made us fall in love with this industry in the first place: the game.

Continue reading

Stranger in a Mac Land

I’ve worked with many operating systems over the years: from the humble CP/M, to early versions of DOS, to  Windows 3.0 (if you can even call that an OS), along with many different versions of Linux since 1993, a smattering of VMS, and, of course, all the recent flavors of Windows. But somehow, I always managed to avoid Apple operating systems.

Starting iPhone development was a bit of a change since it required me to work exclusively under OSX and use a new IDE (XCode). I had talked to people who found the change very cumbersome and found the new environment got in their way, so I approached it with a bit of trepidation.

It’s An OS X World

With my new Macbook Pro under my arm (actually, it wasn’t new, I bought it used off Craigslist because I couldn’t afford a new one), I embarked on an adventure to this strange, new world of OS X development.

Some background is necessary here: I”m a minimalistic, no frills kind of guy when it comes to my preferences when working with computers (although now that I think about it, it probably applies to most other things in my life as well). The first thing I do with a new install of Windows is turn off all the GUI animations (don’t get me started on the search puppy dog!!), most of the sounds, all the auto-complete and auto-spellcheck features, and automatic upgrades. When I want the computer to do something, I’ll tell it to do so. Otherwise I want it to be quiet and responsive.

My ideal Visual Studio setup is also pretty similar: No fancy web startup page, no animations, no autocompletions by default (unless I press CTRL-Space), out with all the toolbars, just give me two text windows side by side and control everything from keyboard shortcuts (which I’m still using the ones from Visual C++ 6.0).

Needless to say, I was afraid of clashing with Mac OSX’s environment. I had a suspicious that it was full of eye candy, GUI frills, and required a mouse for everything. Not a good match.

There wasn’t as much of a learning curve as some getting-used-to. There are some Mac quirkiness that I just don’t get: The disembodied menu on the top of the screen, the lack of change of mouse cursor when you can resize a window, or not being able to automatically restore a file to its original location from the recycle bin.

But those are all relatively small things that don’t overshadow the fact that I just love this new environment. I used to like the Windows fonts, but after a week of using a Mac, I can’t go back to those tiny, jaggedy Windows fonts. Handling of multiple monitors is perfectly integrated and works like a charm. In general, things Just Work (TM).

Then there are the things that I love from my time in Linux that I can’t live without: Multiple desktops with Spaces, a decent command line shell, or being able to tweak settings directly in low-level config files.

And the thing that has changed how I work the most: Spotlight. No need for icons everywhere, or “Start | Programs” or anything. Just start typing what you want and there it is. It’s like the return of the command line on steroids. Between Spotlight, Firefox smart locaton bar, GMarks, and Ubiquity, I feel right at home. Now combine them all somehow and I’ll be in heaven!

But Wait, What About Windows?

I ended up falling in love with OS X so much, that I quickly moved to it as my primary environment at home for everything. Frankly, these days, it’s pretty easy for me to change environments since most of what I do is online. Just give me Firefox (or a good browser) and I’m there: GMail, Google Calendar, Google Reader, Google Docs (hmm… I sense a theme here), and a Wiki cover most of what I do on a daily basis.

For the rest of the apps, almost everything I need runs under OS X: good media visualizer (Preview), photograph organizer (Lightroom), image editor (The Gimp/Photoshop), audio editor (Audacity), music player (iTunes), and a few more odds and ends. OS X comes with some great utilities out of the box too, like Grab, Preview, or Activity Monitor.

Unfortunately, there are still a couple of things that I can only run under Windows. The main thing are games unfortunately, so I need to keep my Windows box around just for that. Although I just started playing World of Warcraft and it runs great on my Mac. Thanks Blizzard! Apart from that, every so often I need to do something in Visual Studio, or run some application I wrote in .Net. For that, I go about it in two different ways.

I can run it on the Windows box itself. Instead of keeping two sets of keyboards and mice (or a switch box), I used Synergy for a while. It was pretty cool being able to move the mouse cursor from one screen on the Mac to the screen on Windows and continue working there, and that might be a great solution if you’re working 50-50 on both platforms. In my case, it was more like 90-10 at the time (more like 99.9 to 0.1 now), so it felt a bit of a waste to have a full monitor dedicated to Windows. Instead, I decided to use Remote Desktop to control my Windows computer from the Mac. Amazingly enough, Microsoft wrote a Remote Desktop app for OS X that works like a charm, much better than some of the VNC programs I tried.

Whenever I don’t need to run something that is performance critical, I reach for Fusion. I’ve tried many products in the past that claim to run programs for another platform in your own computer: Wine, CrossOver Office, earlier versions of VMWare, but they’re always plagued by problems and incompatibilities. VMWare Fusion really surprised me by running anything I threw at it flawlessly, including Quicken (yes, I need to switch to Mint or Buxfer) and some hardware-accelerated 3D programs (those were a bit chuggy though, but they worked). And the coolest feature ever: Unity–I can run Windows apps in a window of their own directly on the Mac desktop. Totally awesome! On top of all that, I can have multiple snapshots, restore earlier states, and I can even run other operating systems like different versions of Linux. A geek’s true dream!

Some people will claim that I have drunk from the Apple kool-aid, and to a certain extent, they’re right. But I’d like to think I was swayed by many good reasons having to do with using the computer and being more productive, rather than Apple’s brainwashy, lifestyle marketing message. That and the smooth feel of the Macbook against the palm of my hands, its sleek profile, and sexy design. 🙂

What about XCode and development? That’s another story for another day.

Get Your Games from Within Fix on The Go

I hate driving. You have to deal with crowded roads and people who seem to be doing their best to get in your way. Worst of all, it’s dead time: you can’t read, you can’t write, you can’t use a computer, or even take a quick cat nap. So I really try to minimize how long I spend on a car and try to do everything remotely, or walk or ride my bike instead.

This being Southern California, cars are an inevitable reality. So what do I do while I’m stuck in my tiny subcompact hatchback? Devour every broadcast of TedTalks. I’m totally, irreversibly hooked on that podcast. And now, we finally have our own game industry podcast.

Ryan Wiancko, over at Industry Broadcast, has started recording articles from several of the top game development blogs. I’m happy to announce that he has added Games from Within to the list of articles he’s recording. He started with the oldie-but-goodie Optimizing the Content Pipeline that I wrote for Game Developer Magazine a few years ago (Note to self: I need to write an updated version of that article with my current thinking on the topic). He’ll be adding some of the most popular articles from the site as well as covering new entries.

So fill up your iPod with juicy game development recordings and have them handy wherever you go.

Feed Yourself

I’m lost without feeds. In the last few years, my mode of operation with teh itarwebs has gone from poll to push. I used to have a set of bookmarks that I would visit every week. As the rate of change picked up, I started visiting every day, but it soon became overwhelming.

Now I’m 100% feed driven. Content is pushed to me, and not the other way around. Interestingly, the number of sites I keep up with has gone up significantly (over 100 by last count) so it’s still as time consuming as it was earlier. I just get a lot more information during the same amount of time.

So, for those of your who use the RSS feeds (and I hope it’s 99% of you out there, if not, head over to Google Reader right now), I just enabled two new types of feeds:

As a side note, WordPress totally rocks. I’ve used other blog systems before, but the latest version of WordPress is so slick, configurable, and easy to work with that it’s a real pleasure. Adding new themes or plugins is as simple as downloading a file and administration is done 100% through a super-slick web interface. Definitely better than MovableType, and light-years ahead of the hulking, slow beast of Drupal.

To give you an idea of how much I’m liking WordPress, I’m even using it to write posts. Seriously, that’s no small feat for me. I usually loathe online editors, and always composed the text offline and then pasted it into the blog at the last minute. With WordPress I feel totally comfortable composing posts on the fly, which makes the whole process very painless (which hopefully translates into more posts :-).

Brave New iPhone World

I know that things have been very quiet over here for the last few weeks. Lots of stuff happening and it’s hard to find time to write sometimes. But now I should be getting back into the swing of things and updating Games from Within more regularly.

The big news is that we decided to call it quits on Power of Two Games. It was an amazing experience and I learned a huge amount. I’m sure we’ll write a postmortem with some of the gems we learned along the way sometime soon. Unlike most postmortems, we really don’t have any office politics, bosses to suck up to, or publishers to keep happy, we’ll be able to be brutally honest.

Against my better judgement, especially with the current horrible economy, I’m still burning the indie development candle. This time by myself and on the iPhone. I’ll get into many more details in the future, but so far iPhone development has been surprisingly fun and smooth.

One of the most attractive things about iPhone development is the short projects. Some of the top selling iPhone applications were written in just a week or two. The game/toy I’m working on is a bit more involved than a fart generator or a rotary dial, so I expect it will take me a total of three months. Still, much better than trying to make a game for XBLA or PSN!

Another big plus of iPhone development is the approval process. Yes, Apple needs to approve the application, but the process is infinitely simpler than trying to certify your PS3 or 360 game. I haven’t gone through that myself yet, but that’s what I keep hearing from other developers.

And then you have the App Store. Ah, the App Store. A captive audience of impulse-buyers with their credit cards already in the system because of iTunes. Genius. The cut that Apple takes is very reasonable, just 30%. Let’s hope they keep it that way and don’t pull the Microsoft move on us!

So, what’s not to like? That everybody and their grandmother is writing iPhone apps and throwing them on the App Store on the hopes of making a quick buck. And the worst thing is that it’s actually working. So people keep gambling with crappy apps hoping to become the next iBeer or Koi Pond. As a result, the App Store is flooded with stuff, most of it horrible, some OK, a few good, and a very few great apps. Right now the App Store interface isn’t ideal for discovering new, high-quality games and applications, and most of the exposure is limited to the Top Seller lists. I’m hoping in the next few months they move towards something more along the lines of Amazon.

And speaking of interfaces, whose retarded idea was it to only be able to access the App Store from within iTunes? I like Apple, and I’m totally digging Mac OS X (more on that later), but I hate having to use a slow, bloated application to do something that amounts to browsing a few web pages. Besides, you’d think they would hook more people by making it more accessible. Oh well. That’s not changing any time soon.

Stay tuned for more updates on my iPhone development adventures and maybe, just maybe, an early glimpse of the game 🙂