Archive for May, 2010

Netbook Smiles updates sent

Saturday, May 29th, 2010

So finally, Smiles 1.1 for Netbooks (The Intel AppUp Center) has been submitted. Also, though Moblin Netbook Smiles was submitted last week, it came back with a very minor issue. That is now fixed, and sent as well. So Netbook Smiles == all done.

Moblin 2.1 running on the USB key

I have 1 last mobile port I’m doing, Samsung Bada. Again, Google wont let Canadians make Google Checkout Merchant accounts, so Android and NACL Smiles ports will be pending that, and a good motivator for each. I’m hoping to be finished with the Bada port in a few days, but we’ll see. The OpenGL ES 2.0 rendering branch is prepped and totally ready for Sammy.

Then, at last, the Mystery Platform port.

Mystery Platform requires numerous changes and additions to meet my needs, and the needs of the platform holder. It’s certainly the most work of all the ports. But the platform is totally awesome, hence all the emphasis as a mystery. I’m very excited about it. 🙂

My plan initially was to try crunching it together in a month (June), but I think I’m going to take it easy, and also start on the ground-work for the new projects (i.e. adding library features, cleaning up my UI code, fixing my broken 3D code, making some tools?, etc). I will be using Smiles and the Mystery Platform port as a test-bed and reference for the refactoring I’m doing, but I expect myself to jump back and forth between non-Smiles tests in the process. By the end of the summer, I want Smiles for Mystery Platform done and out, and to be totally ready to seriously start the next project.

Anyways, it’s time to go erase 2 more items off my whiteboard. 🙂

Smiles on Nokia N900 (Maemo)

Thursday, May 27th, 2010

The latest in the seemingly endless stream of ports (the first of the two implied quicker ports I’m doing… though the 2nd one is sounding not so quick after all).

The N900 is a Linux (Maemo) based device, so I was literally able to pick up where I finished the Moblin (Linux) ports.

Admittedly, it was a bit of a scary port, since I was only initially able to get the game to do about 10 fps. But it seems luck was on my side, as an OS update came out just the other day (the first one in a while), and quite literally saved my butt. Now the game runs flawlessly, as you can see above.

Also, first port to a system featuring a stylus! Oooh! I think it plays pretty good with one. 😀

Other savings, the NativeClient port I started last week helped out here. It’s what encouraged me to get my OpenGL 2.0/ES 2.0 graphics rendering branch back up and running, which I needed (preferred) to get the game running on the N900. I had to bundle a bunch of libraries with my binary, but thanks the switch to GL ES 2.0, that saved me from bundling one more.

Anyways, that port has now entered the Nokia machine, so we’ll see how things go there.

I meant to get on my update for the Windows netbooks after Moblin, but I figured I was still in the Linux mood. So that’s probably next, getting that update together. That followed by the other “quick” port, but we’ll see how quick that really is. I’d clock the N900 port at about 5 days, start to finish. And it was playable/visible on the first day (albeit slow).

Then early June we can finally return to mystery platform. How I’ve missed thee. 😉

Greatest Port Ever (heh)

Sunday, May 23rd, 2010

Commodore Like

Realistic? Heck no! But totally awesome!

Creating Linux Installers (DEB and RPM)

Saturday, May 22nd, 2010

I’m kicking myself for not doing this with some of the other platforms I’ve ported to recently (or I will be kicking), so I’ve decided to quickly scribble down some notes while the process is still fresh in my mind.


VNC Poster Boy

Friday, May 21st, 2010

Heh, I certainly wasn’t expecting this.

Pay no attention to the grammar tense of the first sentence

RealVNC has a rotating twitter quotes on their front page, and it seems I’m now part of the rotation.

And yes, that is a real quote; I do think VNC is awesome. Admittedly, I’ve been using UltraVNC on my PC’s recently, though I do run their iPhone client. 😉

Thanks for the tip Adam.

– – –

Moblin 2.1 running on the USB key

I *FINALLY* submitted my Moblin (Linux) AppUp port of Smiles late last night. I planned on having this done a week or two ago, but between other things and some hardware I had to pick up (more USB keys), I still had a bunch to learn about Linux itself. I’ve had my game code running on Linux since the beginning (I needed it, since my laptop was a Acer Aspire One Netbook running Linpus), but creating a proper RPM and DEB bundle for distribution was something I never tackled. Heck, I didn’t even know where to put my files. 😉

So with the installer hurdle out of the way, all that’s left in the land of Linux is to tackle 64bit binaries. What Moblin provides is a pretty good baseline GCC+Libraries collection, that should be compatible with any notable 32bit distros out there today. I ran in to issues running the Ubuntu 10 compiled binary on Moblin, but the GCC version and libraries included in the Moblin SDK worked well across both. For the future, I need to find a good baseline 64bit Linux for creating my 64bit binaries. It’s not something I can do right now (not comfortably), since my test machines (older Atom Netbooks) don’t support 64bit instructions. I think the newer Atom chips might, so I’ll have to grab one of those some day.

Next on the agenda is my update for Windows AppUp. With 1.0 I neglected to add my game to the Vista/7 game launcher. I figured out how to do it last time, but the game had a startup bug from the launcher I was trying to avoid, so I pulled it. Also there was a metadata XML file that Microsoft suggests you create, and I really wasn’t in the mood to write it. I’m not vying for a Microsoft “Games For Windows” certification right now, so I’ll probably ignore that metadata file again, but this time I’ll at least add myself to the game launcher (now that my bug is fixed).

That’ll do for now. Really, I just wanted to post the weird discovery of me on the RealVNC website. 🙂

Rapid Fire Porting

Wednesday, May 19th, 2010

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.