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 (http://www.freetype.org/). 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...

Friday, December 12, 2008

The start of something new


It's been a while since I've made a post here, so I figured I'd update everyone as to what I'm up to these days. My love for graphics programming has once again caught up with me and I've begun working on a small, simple graphics engine with which I intend to make several small games. The project began with the desire to learn more about the math behind both graphics and physics programming, and hopefully it will end in something fun for everyone. The image posted, although simple, represents a lot of work and potential functionality. And yes, that is the moogle suit Yuna wears in FFX-2 (sorry Square, don't sue me!).

Tuesday, October 21, 2008

Madcap

With 5 months to develop a game, 2 of which were strictly for planning, bringing Madcap to fruition was no easy task. Myself and a team of 5 other programmers came together to create this game from start to finish, always striving for excellence as we went.

I'll let the dust jacket story do the talking for a summary of this project: "Completely surrounded by enemies, your machine gun is your only friend. As pilot of a giant war machine known as a Helix you have been contracted to stop the spread of a computer virus. The virus is capable of infecting Helix, causing them to attack anything in sight. Fire rockets, shoot machine guns, and swing your sword to destroy all Helix who get in your way. You’re in it for the money. Saving man-kind – it’s simply a way to earn it. "

At its heart, Madcap is a customizable mech 3rd person shooter. During the process of this game's creation I was able to further refine my ability of game engine design by architecting and overseeing the development of the game's code from start to finish. I learned a lot about rendering in OpenGL and even wrote a 3D Studio Max mesh importer/exporter for my custom 3D file format. The part I enjoyed most about working on this project was being able to learn more about 3D scene management and rendering techniques in general. The entire team put a lot of effort into this project, and given the time constraints it's a little buggy, but give it a try anyway. You can download the demo Here.

The Legend of Roto

This was probably the most fun of all the projects I worked on during my time at Full Sail. In a 3-man team, my partners and I developed a full game from start to finish in a mere 2 months. The Legend of Roto is meant to be a prequel to the Dragon Warrior series. It is meant to be an explanation as to how the warrior Erdrick -actually- became so well known, and why his armor, token, and sword are found in random places throughout the world of Dragon Warrior I.

In The Legend of Roto, the player takes on the role of Lota. The player has a bird's eye view of the world. All actions, such as fighting and exploration, take place in real time. While deviating from traditional RPG format, this maintains a seamless adventuring experience for the player. Lota, with the help of a brave and friendly Slime, will have to fight and survive the treacherous caves which are inhabited by many foes. The caves are generated randomly upon the start of a new game, giving the player unlimited exploration experiences. During exploration, the player can interact with many other characters, find maps and helpful items to guide Lota along.

During the course of this project six-week, I was able to expand upon the 2D engine I started with the Lil' Ninja game, as well as learn what it takes to code a complete game from scratch. I also designed and implemented my customized scripting language for this game, known as LoRScript, which is used to program the behavior of all NPCs and enemies in the game. Thanks to Seth Gorden's awesome tools and map editor, we were able to create an enormous world populated with completely randomly generated dungeons and humorous NPC encounters. Unfortunately, with the amount of time that was available for the project we weren't able to fill the world with as much content as hoped, so expect a few empty walks from town to town as you journey on your way. This project is available for download Here.

Lil' Ninja

This project was more of a tech demo than a game. It was written in DirectX as a graphics test for what would be my next project: Legend of Roto. Written in a weekend's time during the class Structure of Game Design, I was able to further my knowledge of graphics programming and got to try out a cool technique, parallax scrolling.
There really is no storyline or particular point to this game. You can traverse the level using one of three characters: Hibiki, Kyosuke, or the cute little hardhat character from Mega Man. If you want to check it out, you can download it Here