Thursday, August 26, 2010

Week Seven / Day Four

Ah, Windows.

I did a lot of complaining back in the day about Windows, and I will admit I was quite the Linux zealot at one point. I still prefer Linux as it provides the user with the 'closest to the metal' experience, but with Windows 7 I've come to really enjoy the Windows experience again. Also, Visual Studio 2010 is fairly straightforward. As you'll be able to see in the screenshot below I'm using C++ Express 2010 as my copy of Pro was being a pain. Just as with any piece of software there is a learning curve with VS, but it is practically trivial. I do miss some things from XCode, like the code completion. Perhaps it's available via an extension, but not out of the box. I will say Visual Studio is much cleaner than XCode though. As much as I appreciate the polish of OSX, sometimes the extra 'bubbliness' on everything is just distracting. As I've stuck with the default Windows theme for years, my affinity towards simple, clean lines should be obvious. The only complaint I have about my Windows box is this god forsaken water pump. I'm not sure if a tight line is putting air bubbles through the pump, or it needs a cleaning, or its just dieing, but the constant woosh and wish sounds are enough to drive a man crazy.

Now, onto what I actually got done today. My first inclination towards diving into porting my engine over to Windows was to compile my code with a Windows implementation of OpenGL ES. Only problem, as I found out, is that there is no implementation of OpenGL ES for Windows. Bugger. While there are simulators, this just adds another layer of complexity I'd really prefer not to deal with. I wanted to write code, compile it, and run it natively, simple as that. Well, after prodding around trying to look for a solution, such as a few third-party libraries and wrappers which convert ES code to normal GL, I started to consider what were the differences between my ES code, and regular GL code. It turns, for what I actually needed, there was none at all. As ES is basically a tuned subset of GL, everything I needed was already a part of OpenGL, and I realized I should be able to run my code against the regular GL libraries. A few tests after getting everything linked up in VS proved this to be true. Zing. So, as I finished today I was merging engine code into a new Visual Studio project, stripping out the unnecessary bits, as well as the iPhone bits (such as sound, which touches both of these areas). What you see below is a 1024 x 768 window which will hold the level builder environment. The box in the middle is 480 x 320 to simulate the viewing window on the iPhone. From here I need to brush up on mouse and keyboard interaction in OpenGL to start creating the level builder menus and options.

Unfortunately tomorrow is Friday and I've got a busy weekend coming up, however next week starts a new segment of my life with what I'm hoping are some productive changes to my lifestyle, so from this point on development should start to steamroll pretty smoothly. I also took a gander at the OpenPandora scene today, just to see where things were at. The Pandora is another device which uses ES, so it may end up being my first port or mobile experience outside of the iPhone. A direct port of Chromovis would be quite a feat, and would require a lot of cleanup, but designing my next engine with two pieces of hardware in mind might provide the requirements/incentive for proper abstraction. For now, we'll just have to wait and see. In the mean time, happy coding.


No comments:

Post a Comment