Archive for May, 2006

Curves and Helixes

Well, I’ve been busy with school over the last few months, so that’s why there hasn’t been any updates, but now I’m finished, completely finished! I’ve graduated and I now have my B.S. in computer science; although, I think, I don’t actually get the diploma until sometime in August. Anyways, I’ll be looking for work now and hopefully I’ll be able to land something in the gaming industry.

I’m been keeping busy working on some new projects. First up, Curve, a 3d graphics engine (or, I guess, 3d game engine would be the more appropiate term as I plan to have components that handle more than just rendering). This is something I’ve wanted to start for a long time but never really got around to b/c I would busy with Nemesis Zero, school, FTPX, Zerospace, etc… It’s still in the very preliminary stages of development, but I’ll post a screenshot anyway…



The screenshot basically just shows a simple render of the big ears head that comes with the DX SDK and me messing around with vertex shaders and HLSL (the model warps on the z-axis and the colors “move” – just sin/cos stuff). Things are going somewhat slow b/c I’m focusing more on the engine architecture rather than making a flashy tech demo. What I’m aiming for is to create somthing that’s robust and reusable; moreso than the Nemesis Zero code, at the very least.

I look back at some of the Nemesis Zero code and I cringe and how horribly hack-ish everything looks and almost none of the NZ code can be used in another project without major bits of modification (I know first hand, as the input system for curve is derived from the NZ’s input system). However, I really have no regrets, NZ was a great learning experience; from NZ I know what a lot of the architecture design issues in curve going to be and how to solve them. Curve is probably going to have it’s own set of design issues and probably its fair share of hack-and-slash code as well, but, whatever, you live, learn, write better code.

The other project I’m working on (yes, there’s another, actually 2 more, read on…) is Helix. Helix is the accompanying level editor for Curve. I really couldn’t find a decent editor that had the features I wanted, so I decided to make my own. This is a fairly big project as well and might turn out to be as big as Curve. There’s so much to deal with in terms of user interaction and there are, of course, a whole new set of design issues as well. Still in the very preliminary stages (even moreso than Curve)…




As you can see, so far I’m just messing around with boxes and writing code to handle mouse interactions within the orthogonal views. The greenish colored box will be for a 3d preview. Shouldn’t be too difficult, but what I would have really liked would have been to render using the Curve rendering engine. I still have to do a bit of research, but it looks like it might be very difficult to interface between the two as Curve is unmanaged C++ code and Helix is managed C# code, not to mention throwing unmanaged DirectX 9c and Managed DirectX into the mix.

Oh, and finally, I’ll be doing some final patch work on FTPX after a short trip to Canadia. Nothing too difficult. Also, I’ve actually been able to port the FTPX code from wxDevCpp to VC++ 2005 fairly easily, so I have a better and faster compiler to work with. I still have to do the form design work in wxDevCpp, so it’s not ideal, but it’s better than before and I don’t feel like bashing my head into the monitor as much.

oh, almost forgot, here’s simple logo for Curve I whipped up in a few seconds…



This was actually extremely easy to do since 99% of the design is in the font, which is Amerika Sans, btw; so thanks to whoever created the font. I was experimenting with different lighting, shadows, etc., but I decided to stick with something simple. Also, making it darker makes the edges (which are a yellowish glow) stand out too much and making it lighter makes it seem too cartoonish (as the blue becomes lighter). And doing a combination of light and dark just looks stupid.

well, that’s all for now. later.