Showing posts with label Projects. Show all posts
Showing posts with label Projects. Show all posts

Sunday, February 28, 2010

It Starts...

I set a personal goal recently to get a least one post up per month, so ready or not, here it goes! While the title screen may not make for a very impressive screenshot, there has been a fair bit of coding going on in the background. Well, as much as is possible when you have no real free time to speak of anyway. Of particular note, the GUI system has been rewritten to have a cleaner and more user-friendly interface and, as you may be able to tell from this post's screenshot, the "Bounce!" project has been started. Unfortunately, after getting a good ways into the project I learned that there is already another indie game with the title "Bounce" so I will need to come up with a different name before too much longer.

The game will basically be a 3D remake of my old Pong-type game from back in college, featuring a variety of characters batting a shiny glowing orb back and forth while moving around on hovering platforms. I intend to add a few new game concepts to spice things up a little, and ultimately I'd like to give this tiny little game a very high level of polish. This might actually even involve paying an artist or two to replace my horrible programmer art! I still don't have tons of time to devote to the project, but I am excited that things are moving forward, slowly but surely.

Wednesday, January 13, 2010

Font Builder - Part II

Yay, a new update! I'm not exactly at liberty to say why I don't have any free time these days, but suffice it to say that I literally get about 20-30 mins per week to attribute to continuing to move things forward. Not much, but slow progress is still progress! Between the last update and now I have reworked the font tool a bit. You can now add custom ranges to a font palette with full unicode support. Again, FreeType is awesome for helping me not have to manually decode fonts, I highly recommend it to anyone finding themselves needing to render fonts in a bitmapped fashion.

Writing this tool had the desired effect of helping me to find and fix some bugs with my font system, and now I should be in a good position to begin moving forward on actual game-related tech. Inching forward day by day, I will get this project finished no matter how little free-time I have to do it!

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. . .

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.

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

DM's Pong

This was a game developed in just a couple of days during my stay at Full Sail University. It is written with basic Win32 and utilizes GDI for graphics. Quite unfinished, but it was a fun little project none-the-less.


Featuring the Street Fighter characters Sakura and Ryu, DM's Pong is a simple pong clone with a twist. You must attack the ball in order to knock it away. Failing to time your attack correctly will result in being knocked down. If you are knocked down 5 times, it's game over. The game features a 1 player and 2 player mode, as well as a spectator mode where the CPU will play against itself. If you're interested, the game is available for download here