Phil Steinmeyer's rumblings on the game biz, programming, and life...

Main Menu
Recent News
Recent Comments
Login
Username or e-mail:

Password:

remember me

Lost Password?

Register now!
Search
Who's Online
2 user(s) are online (2 user(s) are browsing News)

Members: 0
Guests: 2

more... eXTReMe Tracker
Posted by Phil Steinmeyer on 2005/10/11 18:47:27

My game (a casual word puzzle game) is just about done, but I think I'll likely do one more round of beta testing. If you're interested, use the contact link (upper left of this page), or drop me a line at psteinmeyer A T charter D 0 T net.


Posted by Phil Steinmeyer on 2005/9/29 23:00:09

Good post here by Mac switcher Russell Beattie who isn’t entirely ecstatic with his switch.  Some of his points I take lightly as he’s flogging his own company’s Mac alternatives (Konfabulator), but I agree with many of his sentiments.

I bought a Mac Mini back in the spring, mainly to play around with and/or port games to, but with the off-hand thought that if I really liked it, I’d buy a heavier duty Mac and make a full switch.  I found it initially interesting, but not compelling.  Now, after not using it for a while, I spent some time over the last few weeks porting my nearly complete casual game to the Mac, and am somewhat more negative on the Mac.  Following Beattie’s lead, here’s some random kvetching:

1) X-Code

Most commercial Windows developers use Microsoft Visual Studio to make their programs.  It’s a great program, but it costs about $700.  On the surface, Apple’s development system X-Code, looks shiny and new and nice, and its free.  But given how much Apple likes to charge for stuff that should be free, developers should be wary of their software that should cost money but is in fact free.

X-Code is a bad software development tool.  Its unstable, confusing, and hard-to-use.  When I changed the name of my current project from Writer’s Block to Bonnie’s Bookstore, it took me about 3 hours of hunting, compiling and things breaking before I found all the obscure nooks and crannies in which X-Code had hidden references to the older name. 

X-Code’s debugger is just quirky.  The ‘Step to next line’ function – pretty much the bread and butter function that a programmer relies on to walk through and debug code, doesn’t work.  It drops into assembler code constantly, for no discernible reason.  The debugger is slow, and has lots of other problems that I won’t detail here.

2) Cocoa

When Apple rolled out OS-X, they pushed developers to use a new API, Cocoa, in conjunction with a new language, Objective-C, that doesn’t really look very much like regular old C/C++ that programmers have been using for the last 20 years.  Now when you’re Microsoft, with a 97% market share, you can introduce a new language (C#), that only works on your platform.  But Apple, with a 3% market share, wasn’t too successful in convincing developers to write code in Objective C/Cocoa that couldn’t be ported to the other 97% of the market.  So most developers on the Mac use the other API, Carbon.  Now, choices in and of themselves aren’t bad – don’t like Cocoa, use Carbon, right?  But Cocoa/Objective C is Apple’s baby.  Most Mac example code is written in Objective C/Cocoa, and it eats up a lot of Apple’s rather limited development effort, making it harder for the rest of us developers to find help and information for the Carbon API that we actually use.

3) Hot Keys

When a programmer spends 10 hours a day for 15 years typing in text editors, he learns the keyboard macros rather well.  Unfortunately, all those macros (CTRL-INSERT, SHIFT-INSERT, CTRL-PAGE DOWN, etc), don’t work on the Mac.  Almost all keyboard macros are different.  There is a way to change certain macros on the Mac, but not all apps obey it, and it doesn’t work very well.  It would be helpful if, say X-Code offered an easy way to switch all key bindings to the default for Microsoft Visual Studio (where 90% of ‘switcher’ coders are coming from).  Needless to say, X-Code has no such option. 

Overall, my coding productivity is probably 40% lower on the Mac than on the PC, between X-Code’s clumsiness and my inability to use the macros that are hard-wired into my brain.  This week, as I was working on the Mac port in X-Code, whenever I had a significant amount of code to write, I would save the file, switch to my Windows machine, do my coding there, save and switch back to test it.  Ugh…

4) Apple’s high prices not only hurt user's wallets, they also hurt Apple's products. 

Yes, I know X-Code is free, which is nice for the developer base that constitutes 1% of Mac users.  But Apple likes to ding the other 99% of its user base in all kinds of ways, notably with very expensive OS upgrades.  While Windows XP hasn’t seen a major, non-security patch update since its release in 2001, Apple has spit out a steady stream of major updates to Mac OS-X in that time (latest version is 10.4 – so 4 major updates since its 2001 release).  That’s good.  BUT....  for all updates since 10.2, Apple has charged consumers $129 – pretty steep for an upgrade.  As a result, developers have to make the assumption that many Apple users are running old versions of the OS – as old as 10.1 if they’ve been reluctant to lay out $129 apiece for OS upgrades.  And therefore, developers must write their code to the least common denominator – Mac OS-X 10.1, thereby reducing support many of the new features Apple has added since (widgets, internet-enabled .DMG files, and all kinds of other cool gizmos recently added to OS-X).  That’s a shame, because, for free updates, Mac’s system works really well – better than Windows. 

Other great services like .MAC are underutilized because Apple overcharges for them.

5) Limited Developer Support

OK, so you already know that only about 10-30% of the software that is available on Windows is also available on Mac.  But it gets worse – most of that ported software doesn’t work as well on the Mac.

My game needed a music library to play a special kind of music file.  There are two main alternatives on Windows.  Only one of these had been ported to Mac.  So I used it, but found that some of my music files that played fine on the PC crashed on the Mac.   Fortunately, the vendor was reasonably responsive, and in about a week I got a new build of the Mac libraries that worked.  Still, it was irritating and could have been far worse had the vendor been unresponsive.

Even for my game, the issue exists.  Yes, I’ve ported to Mac and tried to be fairly meticulous.  But there are a few small details that work better on the PC, mainly because it wasn’t worth it to support them on the Mac.  The PC version remembers where the window was positioned the last time you played the game.  The Mac version could do this, if I could locate the appropriate API calls, but finding that help info is hard and time consuming, especially given the Carbon/Cocoa split mentioned above.  For this, and a small number of other minor features, I just decided to skip them on the Mac.  The Mac version still runs great, but there are a few polish details that I skipped on the Mac.  When you know that one platform will generate >90% of your sales, that platform gets the most attention, at the expense of the minor platform.

6) Ending on a Positive Note

OK – one good thing.  I’ve been sending out builds of my game to beta testers, and recently sent out a Mac version, too.  I’d been getting a few reports of random crashes on the Windows version, which are really hard to track down.  One of my Mac testers also had a crash, but he was able to send a full debug report that either the Mac itself or X-Code somehow generates, with a full stack trace down to the function that the game was in when it crashed.  Getting this kind of debug data dump on Windows in MSVC is much harder.  You have to roll your own at a non-trivial cost in blood, sweat, toil and tears.

---

Anyways, Mac OS-X is not the paradigm of perfect integration and ease-of-use that it’s been touted as.  As a Windows developer who could switch if the Mac really impressed me, I was instead somewhat disappointed.  That said, for, say, your typical high school or college kid, there’s a lot to like about the Macs – the solid free iLife suite, the cool aesthetics, the Unix underpinnings.  I think I’ve learned from the experience of developing on and using the Mac, even if I haven’t been converted to a full-time switcher.


Posted by Phil Steinmeyer on 2005/9/1 10:56:21

I'm still looking for beta testers for my upcoming game - a casual word puzzle game. If you're interested, use the contact link (upper left of this page), or drop me a line at psteinmeyer A T charter D 0 T net.


Posted by Phil Steinmeyer on 2005/8/22 9:16:08

Congratulations to the winner of the logo contest, Chan Karunamuni, for this entry (#29)


Posted by Phil Steinmeyer on 2005/8/18 11:49:46

[Edit - I cut down the field to the final 6]

Here are the best 6 entries in the logo contest...

Thanks to all who entered. I haven't decided on a winner yet - that'll take a few days. In the meantime, I welcome feedback.


(Note, here is the full field of 81)



Posted by Phil Steinmeyer on 2005/8/11 12:58:32

Notes from a 45 minute trip through Best Buy:

Wow, premium PC games are looking weak.  A small display area, and few games of note.  It seems like more than half of the PC shelf space is pushing much older titles and/or budgetware.  Railroad Tycoon 2, released almost 7 years ago, is on sale on the jewelcase shelf for $9.99.  Railroad Tycoon 3, released almost 2 years ago, is nowhere to be found.

I’ve long been interested in doing a good game for kids (i.e. edutainment), but, as always, that market looks awful.  Four feet of shelf space, with every single title either a movie/TV license, or something that was developed 5+ years ago (i.e. old Reader Rabbit titles).  You simply cannot develop a new edutainment title these days that is not a license (or, rarely, a sequel to an old brand like Pajama Sam).  That’s a shame – imagine if PBS and Nickelodeon completely stopped making new kids shows, or Disney stopped making new movies and just kept re-releasing the old ones and making the “Lion King 4 – Pumba Gets Even More Flatulent!”.

Unfortunately, as bad as the title selection is at Best Buy, it’s better than the local Target, and EB Games and the other strip mall vendors have virtually stopped selling PC software.

On the bright side, you can buy really good PCs for about $600 now.  E-Machines has one with a Athlon 3400+, a 200MB hard drive, 1GB of RAM, and a respectable video card for about $600.  Wow – that’s a great machine. 

They also had a 37 inch flat screen display, basically a TV that they were pitching as a monitor, for $2300.  Its resolution was 1920 x 1080, progressive, which is quite good.  Running a video loop, it looked really nice.  But when I exited that and looked at the Windows desktop, it was clear that this would not be a good monitor for normal PC uses.  Text was blurry and hard to read, and you had to sit back about 3 feet from the monitor to really see the whole thing.

My lone purchase of the trip was a couple of new Putumayo CDs.  I’m a big Putumayo fan – they package the best songs and artists from around the world into themed CDs.  I bought ‘Islands’ (Caribbean music), and ‘Brazilian Groove’ (newer Brazilian music).  Putumayo is probably the best example of label branding and consistent high quality in the music business today.  I wonder if any game company will ever be bright enough to be the Putumayo of the gaming world.  Strategy First had the right idea – focused, niche publishing, but they cut corners on quality and lost their focus.


Posted by Phil Steinmeyer on 2005/8/9 16:38:18

Over on Indiegamer.com, someone ran a logo design contest with a prize of an old iPod. I liked the idea - kind of fun to watch, and by getting a lot of artistic folks interested, there were a wide variety of entries, some rather clever, IMO.

So I'm copying the idea. Design the best new logo for my company (company name = New Crayon), and win a new Sony PSP. Details (and probably follow-up conversation) can be found on Indiegamer.com, in this thread


Posted by Phil Steinmeyer on 2005/8/2 10:00:38

In developing ‘traditional’ retail PC games, the developer’s primary optimization concern is speed.  At PopTop, we spent a substantial percentage of our programmer’s efforts tweaking every algorithm to squeeze the most speed out of it, which in turn allowed us to draw more elaborate effects on the screen, hopefully outshining the competition.  To a lesser extent, we had to optimize for memory consumption – both texture memory (VRAM), and system memory.  Our games used pretty much every byte available, loading higher resolution textures if you had enough VRAM, and caching more data if you had enough system memory.

In the casual downloadable market that I’m targeting at the moment, optimization priorities are very different.  VRAM is completely irrelevant (I’m using a software renderer that doesn’t store any textures on the video card.  System RAM is essentially irrelevant (my game’s maximum footprint in RAM is ~16 MB – not enough to bother even 6 year old machines.  General speed is semi-important, but not critical - even without optimizing for speed, the game maintains a respectable fame rate even on 5 year old PCs.

So what does matter? 

Download size.  According to all the information I’ve been able to absorb, and just by looking at the titles that are successful, it’s very important to keep your download size as small as possible, since ~half of all users are on dial-up connections, and even some of those with broadband may be intimidated by large downloads.  Moreover, since download bandwidth is a major cost center for game portals, they prefer modestly sized games as well. 

Doing traditional retail PC games, I never thought about this, as we always shipped on a CD (700MB of space available), but now, to be competitive, I have to squeeze my game to less than 15MB, preferably less than 10MB.

I spent yesterday working on different aspects of my game trying to reduce the download footprint.

First, I was looking at music.  In traditional PC games, you just don’t think about this very much.  All games use MP3 or OGG, which allows you to compress an hours worth of music down to about 60MB, at near CD quality.  But 60MB is many times my target footprint for the whole game, much less the music portion, so MP3 and OGG are right out.

So, I’m planning to have only about 30 minutes of music (still about 3X more than most casual games have), and it will be in one of a handful of closely related formats – MOD (module) formats, that trace their origins back to the Amiga days.  Basically, songs in MOD format are made up of short snippets of instruments, looped continuously with changes in pitch, volume and the like to form a song.  It’s a bit like using MIDI, but all the instrument samples are included in the song, rather than relying on inconsistent MIDI tables that vary from PC to PC (and don’t necessarily have the instruments the musician wants to use).  By using MOD format, songs come in at around 200K each, so I can have 10 3 minute songs at a footprint of about 2MB.

I also looked at image compression.  The biggest memory users for my game are the roughly 50 full-screen backdrops (800 x 600).  They’re compressed in JPEG, using about 5MB total, and I spent several hours trying to figure out how to get better quality at the same size, or equal quality at a smaller size.  Currently, I’m using a free command-line image compression tool, ImageMagick.

First I tried a different format, JPEG 2000, which is the ‘sequel’ to JPEG, and touted to reduce memory size about 20-30%.  In fact, for my images, at equivalent memory sizes, the JPEG 2000 images had slightly sharper definition on edges, but made the rest of the image (non-edges) look very smudgy and low-definition.

I tried several different JPEG compressors, following the advice of this site.  The one they seem to recommend, by Spinwave, had been replaced by an updated version.  I tried it, but the results were noticeably inferior to those from ImageMagick. 

I also tried ImageReady by Adobe.  I’d say that ImageReady’s results were 2-3% better than ImageMagick’s, but the tool is much more cumbersome to use (no command-line options). 

I’ll probably do a final pass on the art at a future date using ImageReady, but for now, for production ease, I’m staying with ImageMagick.

 

Fun Links

A really cool optical illusion dealing with color perception.


Posted by Phil Steinmeyer on 2005/7/29 17:26:31

Well, I just sent the first alpha to a small group of volunteers. I didn't send it to everyone who emailed me, yet. Per plan, I'll enlarge the testing group in a couple stages, so that there are still some fresh eyes to look at the later alpha/betas. I'm rolling people into the test group in the order that they contact me, and am still accepting volunteers.

Anyways, now I'm in that nervous position of waiting for results/feedback from the first unveiling of the game to people whose last name isn't Steinmeyer. I've got a pretty good feeling about this one, but still... More updates next week.


Posted by Phil Steinmeyer on 2005/7/26 17:48:18

Within the next week or so, I hope to have the first testable alpha of my game (casual word puzzle game). If you're interested in alpha/beta testing, drop me a line (use the Contact form - see the menu in the upper left of this page).

I will probably roll people who are interested into the test in stages, so that there are always fresh eyes looking at things every couple weeks, so you won't necessarily get a test build right away, but at some point within the next month or so...




(1) 2 3 4 5 »