Sunday, December 13, 2009

Font Builder

Updates, go! In a continuing effort to gather all of the things I need to make my fancy-schmancy version of Pong, I've thrown together a font tool in what little free time I have these days. This tool allows you to build font definitions usable by my engine to display text. The engine can support any standard true-type font and will be eventually extended to allow for custom bitmapped fonts through the use of this tool. The code to support the GUI environment has been rewritten and everything is a lot cleaner and more user-friendly than before. All in all it's a pretty small step forward, but at least it's a step forward. With the holiday season coming upon us, hopefully I'll find a spare couple of hours here or there to make a good bit of progress as I did over Thanksgiving weekend. Anyhow, till next time!

Friday, November 27, 2009

3DS Material Plug-in

Wow, 3 posts in a single month! Thanksgiving break has given me time to complete the model exporting portion of my 3D Studio Max plug-in utility. As you can see in the image to the left, I have written a custom material plug-in that allows you to create materials in a way directly usable by the engine, minimizing the amount of time and potential bugs that go along with creating textures and materials for game objects.

Working with MaxScript to create the plug-in is actually pretty simple. This site was a pretty nice starting point for figuring out where to start with creating the plug-in, and the MaxScript documentation itself is not half bad. I'll likely write up a tutorial on how I went about creating the plug-in at some point in the future, as some parts of it are not so obvious as others. With this, I no longer have to manually code little debug primitives to test things, so I'm quite excited about moving forward to getting the actual game started.

And yes, to answer the question, that is the Yuna model from FFX-2, and Rikku from FFX. They just happened to drop in to help me test my plug-in and make sure things integrate smoothly into my engine. The models came from a place that no longer exists (I believe), so I can't really offer a link to where you might find them, but I'm sure they're still available in some forgotten corner of the internet. . .

Tuesday, November 24, 2009

Attack of the clones!

In my attempts to post a little more consistently, this is a miniature progress update. The latest feature to grace the DM3D Engine: The ability to clone scene nodes and resources. The image here was generated using only primitives and the clone functionality, creating a nice (physically impossible) stack of boxes that all properly share mesh, texture, and shader resources. I am currently working on revamping and extending the 3D Studio Max plugin I began working on back in July. Once this is finished, I will be able to finally begin work on my special version of Pong. Hurrah!

Thursday, November 12, 2009

Materials, textures, and models

Finally getting back into the groove of life after all of the big changes that have happened recently. I have next to no time to work on this project these days, but that doesn't stop me from putting in an hour or two whenever I get the chance (which seems to be maybe once a week or so). Anyhow, in the time since my last tech-related post I've completely revamped the way meshes are loaded and the way materials and textures are handled and I really like how nice it has become.

I've also updated the engine to be initialized using an XML config file, which makes setting things up nice and easy. Getting the window created, mesh, textures, and shaders loaded, and everything rendering is done in just a dozen or so lines of code. With my lack of free time I may be moving a little slowly, but I am getting somewhere. Stay tuned for more updates.

Sunday, October 11, 2009

Server down!

I've forgotten to mention that the server which all of my demos are hosted on is currently down. It will be back up in a while (likely a week or so). This is due to having moved and not having the time to orchestrate the timing of reconfiguring a router that doesn't belong to me. I apologize to anyone this inconveniences in the mean time.

Sunday, October 4, 2009

Life's changes. . .

Wow. Life. If you've been wonder what happened to me for the last few months, that sentence about sums it up. Since my last post I quit my old job, got a new one, and moved across the country just in time to catch a storm which left 3½ft of water in my basement. Life. All that aside, things are pretty good, so I can't really complain. New stuff coming soon, just thought I'd let you all know I'm still alive.

Saturday, July 11, 2009

3DS Max Integration!

It's been a while since I've posted anything here. Don't worry, I haven't abandoned the project, life has just gotten really hectic as of late. That aside, I find myself with a bit more free time these days, so I can once again bet back into the swing of things with coding my engine, codenamed DM3D.

After a long and arduous battle with the 3D Studio Max SDK, I managed to integrate the engine directly into the 3D Studio Max interface. This will prove extremely useful as I make models and objects for the small games I have in mind. The idea for adding this functionality was admittedly conceived after I ran into a tool for the Ogre3D engine known as oFusion. I will be creating an external "level editor" for future games, though I believe having the ability to view art within the modelling application itself exactly as it will appear in game will be of large benefit in the future.

I have also been researching and playing around with the now-popular techniques for deferred shading and deferred lighting. There is certainly a lot to consider when it comes to deferred versus forward rendering techniques, but I am really beginning to like the advantages offered by a deferred rendering solution. If I can come up with a satisfactory way to solve the alpha-blending issue, I will most likely implement this technique.

As always, other small advances have been made, bugs have been fixed, things have been changed. I'm still alive, the project lives on! By the way, I failed to mention in any posts before, if you have any questions about how I've implemented a certain technique or you have any suggestions, feel free to drop me an email, the address can be found on my profile page by following the "View My Complete Profile" link on the right side of the page.

Wednesday, March 11, 2009

Going International

Hello everyone. I know I really should update this blog more often... I'm trying, really! Things are really starting to move forward over here. A few more little features to finish up and it will be time to start a small game. This project started out with a simple desire to learn more about the math behind graphics and physics coding and has turned into a full-blown desire to make something awesome. Don't worry, I have quite a bit of experience in software architecting and the amount of effort that goes into making a game (it is what I do for a living, after all), so there's no need to fear that I'll be jumping off the deep end and trying to compete with a commercial AAA product with my little project I devote maybe an hour per day to single-handedly.

That said, I'll be starting on a version of Pong I've been thinking of for the last couple of months. That's right, Pong. "But why do you need all this fancy 3D technology and a real game engine to make Pong?" you may ask. Wait and see, my friend, wait and see.

Anyhow, on the update front, there have been lots of new toys and updates added to the engine, the most recent of which is support for true-type fonts (and pretty much any other type) utilizing the FreeType library ( With this added functionality there's now real support for unicode text within the engine, which is awesome for making localization easier. I've also added support for sprites with transformations calculated on the GPU, as well as simple 2D rendering via a very easy to use interface. In addition to that, single-pass multi-texturing is also available, able to render as many textures in a single pass as your video card can handle.

Overall, it's been a productive month, as far as a project being done in my "freetime" can be considered productive. I can't wait to actually start work on Pong. I love game dev.

Monday, February 16, 2009

Still Alive

It's been a while since I last posted, but I'm still alive and kickin'! Getting married does take up a lot of time, though. Anyhow, I've made a bit of progress since the last post. I've now learned quite a bit about the Huffman and LZW compression methods, and implemented compression into my custom 3D file format. I also added better support for vertex coloring, as well as an updated exporter for 3D Studio Max. Believe it or not, all the fancy coloring and shadows there are completely done through vertex colors with the fixed-function pipeline, no fancy lighting or shadow mapping involved at all.

Though it's not pictured here, also added is the ability to save and load textures and some nice shader integration. A lot of code has been cleaned up, input has been added, and a lot of other neat little features. I'm getting quite excited about creating a new game with this! More progress to come in the future...