Tuesday, January 31, 2006

Milestone 2: Reached

So I am well ahead of schedule. I didn't plan on starting this project until February 1st but I had a few days so I got started early. I've been making modest progress as I've already reached Feb 11th's milestone. I'm about 2 weeks ahead of schedule which is great news. I know that I put some of the easier milestones early so that I could feel like things were moving forward but this is still a good sign. I've noticed that if I have a determined goal, I work a lot better. I'm not sitting here wondering what I should be doing or how I should be going about it. I just sit down and think about what needs to be done.

Some of my later goals are very tight such as the path finding but I'm hoping that with me getting all these little goals out of the way, I'll have more time for those. I've also got 2 weeks at the end of my schedule for bug finding as well as finishing any missed features/putting in extra features. I think this may go well. It won't be the cleanest, best designed system out there but it'll get done.

This milestone was to get a mouse on screen as well as have it move the camera around on a plane above the playing field. It's exactly like other RTS games where the edges move the camera. I have the ability to pitch the camera while still having it move on the plane above the playing field. This can be used to test out various angles until it feels right. It is currently disabled because it was hooked to the mouse and that was obviously not going to work with mouse scrolling.

The screenshot shows the new location that has been reached with only using the mouse. It's not the greatest of screenshot features but it's a very important feature that I needed. As you can see in both pictures, I already have a robot mesh loaded which I may end up using if I can't get any other mesh inside of OGRE. This was milestone 3 which is currently done in terms of loading a mesh. I will continue to try and convert other game formats to .mesh but that can be done at any time. I am going to work on a TeamUnits class which will manage all the units for a team. It will start off by being able to create and remove units from a team. That's pretty much it for milestone 3 so expect an update on that soon.

Screenshot: 1280x1024x32 - No AA - Default ATI settings

Saturday, January 28, 2006

Milestone 1: Reached

After waking up and getting myself stocked up on groceries, I sat down and read some OGRE tutorials. I wanted to approach this project with the right mind set and that was to know exactly what I'm doing before I try anything. I read through about 4 beginner tutorials which was a refresher since I've used OGRE before.

After reading those, I explored my options with a terrain configuration file and thought about how I would create the terrain. I used a heightmap with a base texture as well as a detail texture. These are not mine. I will replace them with more appropriate textures when I get a chance to do the artwork for this project. But, I do have a custom material that has 3 layers on it (base, detail, grid) which you can see in the picture. That wasn't terribly painful what so ever. I haven't figured out how to get access to the geometric data which I will require for path planning but I will look into this. Worst case scenario is I manually load the heightmap myself and create auxilary storage.

I also wanted to know what my card is capable of in terms of pure polygons and, as you can see from the shot, there are 200 models plus the detailed terrain. The LOD on the terrain is high because it's using large tiles so they won't go down in detail for a while. It is very easy to load up meshes through OGRE which is a nice feature. I have to look into converting a Quake 2 model into OGREs native '.mesh' format which may or may not require me writing it. If it does, I will release it to the public if it's actually usuable.

This was the first thing I wanted to get done. I wanted to be able to load terrain and move around and because OGRE is very user friendly, this took me about 30 minutes of reading and coding. Off to a good start.

Screenshot Details: 1280*1024 - 32bit - Default ATI driver settings (fairly high texture quality)

A Simple RTS

I am starting development on a demo that I will attach to my resume for job applications. I have been thinking about what to create for a while and have finalized my decision on an RTS game. It will not be the next Age of Empires by any stretch but it will be a good demonstration of my capabilites.

I want to take the right approach for this so I have been writing out a design before I start programming. I have described the game play in detail as well as layed out a list of milestones that I will need to reach. There is one milestone for every feature I need to implement. This way, I know upfront where I am in development. I think I have gotten everything I need on this list.

This is going to be a very tightly schedule program as I am allocating 5 months to do it. Not only is 5 months a small amount of time for a sole developer, I am also enrolled in my 3rd year in an Honours Computer Science degree at the University of Waterloo. This means that on top of class, I also have assignments which are long. I also have midterms and finals to study for which are hard. This is going to be a true test of what I can accomplish with a very limited amount of time.

This blog will be my development diary.