I have a goal of switching my focus entirely to a new project starting in July, which is about 6 weeks away. My 30th birthday is the 6th, so my folks have been joking that’ll be my gift to myself. Happy Birthday Mike, you can do something else now… heh.
So to make that happen, I need to power through my list of pending platforms I want to cover, before back-burner’ing the rest.
Yesterday (between a lunch outing with the folks, and Iron Man 2) I finally sat down and got the Mac port of Smiles up and running.
Hey look, an actual Mac port... not just one of those running in the simulator ones.
Phil had a few tips for me to make the distribution process go smoother, so it has an icon, bundled frameworks and so on now. In theory I could package up and distribute the game now, assuming I felt it was ready. I have a list of PC/Mac/Linux centric features I want in first, that conveniently Netbooks don’t need. As-is, the i386 port is fully functional, but the x86-64 crashes. I could just gut the 64bit branch, but I’m admittedly intrigued by the fact that a 64bit port is nearly working. I’m going to need that on Linux proper, so I think I’m going to keep it as a reference build. PPC, I just haven’t tested yet. It’s in the tree, but I haven’t tried it (in either Rosetta or the real thing). I’m almost 100% sure I have endian-ness issues somewhere.
I took a brief tangent the other day porting Smiles to the recently released NativeClient SDK. That involved porting/fixing my shader based OpenGL 2.0 renderer branch, which now works OpenGL 2.0 and ES 2.0 style. As for the NaCL port, after some effort it does compile, but a few restrictions of the platform had me back-burner it. I rely on Unix style directory searching (or Windows style on Windows and Windows Mobile). That apparently doesn’t work yet (or wont?). I have a some things in place to allow me to generate a directory listing, and read it from a file, but the next problem convinced me to wait. Also, I’ll have switch my file reading code to pull data from URL’s instead of the local file system. All my file-io code is already wrapped, so this isn’t too hard to do, but admittedly I wasn’t in the mood to get this up and running.
NativeClient is a very cool target platform with a lot of potential. I’m assuming that’ll be how you develop native applications for Chromium OS, but if plugin adoption grows, it’ll be an excellent way to do online game demos for PC/Mac/Linux. It compiles native binaries per CPU architecture (Currently just x86 and x86-64, but there’s an ARM branch), it features OpenGL ES 2.0, and an interface for streaming audio… pretty much everything you need. The first (new) release was a little rough in the testing area, so I’ll probably take a look at it again after another release or two.
The bulk of the past week and a bit has been learning the ins and outs of Linux installers (DEBs and RPMs). I had a rough couple days trying to get Moblin Package Creator to do the work for me, but I don’t use AutoConf/Configure or any of that stuff (too messy). My “savior” was a oddly named tool named “checkinstall”, which tracks all the files you create during a “make install” stage, and builds a DEB or RPM containing everything it saw you do. Easy.
That worked great for me, but checkinstall seems to be lacking some details found in RPM’s. So I ended up capturing the generated spec-file used to generate the RPM, and invoking/building it manually (RPMBuild) with my changes. Technically I don’t need checkinstall’s tracking feature, but it’s nice. I’m generate the file list for RPMBuild with my tools.
So with that, I now have proper DEB and RPM installers. All that’s left is getting the icons and symlinks in the right places for each installer format. That’s it. I suppose I could have finished that by now, but I needed to get my head out of Linux for a day or so. 🙂
My AppUp update for Windows is just pending the Linux/Moblin port. I wanted to be sure there wasn’t anything new/changed before shipping the Moblin version.
After that, I have 2 more minor ports I’m looking to get together before the end of the month. I’ll talk more about them if (and when) I finish.
If everything goes according to plan, we begin the final hoo-rah for Smiles in June. The Mystery Platform port. It’s big, and I’ve been putting it off for far too long. That’s my June. We’ll see if E3 changes anything.
And that’s it.
The PC/Mac/Linux proper versions of Smiles HD, for my own sanity, will be delayed a bit. The follow up project I’m planning for the summer I’m expecting to only take a few months, so I’ve decided to use that as my catalyst for setting up my store. That store should launch with PC/Mac/Linux versions of my new game, and Smiles.
That’s the plan. Always subject to change, but hey, that’s where my head is at right now.