Steering

June 13, 2009

I’ve been meaning to update this blog for ages. Here’s a bit of back story. I originally created this as a simple little “developer’s log” static web page. The idea was just to post occasionally when I had updated Rift a bit. That was fine enough, but after talking with a friend of mine I thought maybe it would be good to turn it into an actual blog. You see I LOVE babbling on about Rift, graphics, physics, and game programming in general. And I guess my friends and co-workers are probably sick of hearing about it. So why not make a blog? Then I can babble on to myself and not bother anyone. Also there’s the slim chance that other people might find it useful. Also, if the blog manages to be interesting enough times in a row, maybe people will get interested in Rift. Okay that last one’s a long shot, but whatever. So anyway after all that I decided to create a blog.

Since then I haven’t posted once. In fact I’ve barely done any Rift development. Instead I moved to Japan. All in all it was a good move, but Rift did suffer a bit. However now that I’ve settled down I’ve started finding time to get some work done. In fact I think I might be approaching a bit of a release. So I thought maybe I’d pick this blog up and start with the babbling. So without further ado…

In the last couple of months I’ve been working on 2 major parts, ship models and steering. The ship models were just REALLY necessary. Up until now I’ve had 2 models, one for the casket type ship, and one for a simple frigate. The casket model wasn’t bad. It didn’t have a paint job, but it did have a normal map, which makes it look pretty cool. Unfortunately you rarely fly around in a casket. The frigate was horrible. I created it ages ago and was very proud of it until I showed it to a teenager who took one look at it, burst out laughing, and told me it looked like a puppy. I was a little offended until I realized he was right. So a few weeks ago I decided it was time to spend some time with Blender and see if I could make some ships. I had a general idea for the style I was going for, but I didn’t really know how to do it. In the end I figured it out enough. These days I have 2 frigates that I’m happy with. Neither of them look at all like puppies… I hope. I also came up with a paint style for all three ships. It really ties them together, makes it obvious that they’re from the same manufacturer. It’s yellow with black stripes, but not like a bee. It’s actually based on the yellow paint job for the Ford GT from Gran Turismo. You see these ships are supposed to be fast, created by a company that focuses on fast ships. So I needed a paint job that looked fast. The Ford GT is definitely fast, so I used the paint job. I’m happy with the result.

The second major piece I’ve been working on is steering. I’ll probably save the bulk of this for another post. It’s safe to say that my AI never did a good job of turning. It did okay, but not great. The result was that my guided missiles weren’t very good at hitting a moving target. The AI was okay when the turning rate of the object was sort of slow. But for a missile, which can turn very quickly, the result was sloppy. To fix it I had to fix my integrator as well as a bunch of parts in the turning methods themselves. The end result was pretty sporty. Unfortunately I recently found that it was also still a bit stupid. So these days I’ve been working on a better system. It’s much faster, but has the similar problem when the object turns quickly. So I’ll keep hammering away at it. I’ll post specifics later.

For now, I might get ready for a release. I’m thinking I can put in the slow turning stuff and call it a day. The steering isn’t great, but I can compensate by giving my ships faster turning rates. If I can clean up a few other bugs I think I can post the thing. At least then I’ll be able to show off some of my new models. If nothing else it will help the “Screenshots” section of this page.

posted by james wells at 3:24 pm

Normal Maps

January 2, 2009

Well I’ve finally done it! I finally have normal mapping in place. It has been such an incredibly painful process, but I’m thrilled to finally get it done. Unfortunately the only ship that has a good model is the Egg ship, which is one you won’t want to fly around in anyway. My main ship has been described as looking like a puppy and a vacuum cleaner, so obviously some work is needed on that one.

I’ve just recently moved on to making ship modules and doing something with that “refit” window. This window has been around for years and it’s always been completely useless. Well no more! Now you can drag and drop laser cannons and missile launchers to actually change your ship’s layout. This is a huge step forward for me and I couldn’t me more thrilled.

My next step is going to be to stop with the new features and concentrate on a bit of cleanup. I did the round of locations yesterday and noticed that my memory usage had leaked up to 500+ megs. I also found a bunch of little bugs that are sort of annoying. So I’ll see if I can iron those out and create some new icons for missile launchers and laser cannons. Maybe I’ll even make a new ship that doesn’t look like a vacuum.

posted by james wells at 3:06 pm

HiPoly

November 4, 2008

Well I’ve finished up the “New Player Experience.” There are a bunch of windows to walk you through a pretty basic beginner tutorial. It’s still not much, but at least you can create popup windows from a Python script, and do a couple of other useful things. I’m just uploading a new copy of Rift now. It doesn’t come with my pre-made characters anymore, which is a pretty big step in the right direction.

I’ve spent this month working on two things. The first was pretty easy, getting it running in Linux. The last time I compiled it for Linux was about a year ago, so there was a lot of project management stuff, fussing with Eclipse, etc. It didn’t take too much in the end and the game runs in Linux. I’m not bothering with a Linux build as I doubt there’s much interest in a closed source game demo for Linux. My other main focus for the month has been making normal maps work. This actually wasn’t a huge amount for work, however it meant that I needed to re-work my models AGAIN. This time I need a very high polygon count model to generate a normal map. I spent a heck of a lot of time creating a high poly VelotekEgg ship and I have to say, I’m freaking sick of making high poly count models. The model itself is okay, but the mapping to the low poly model isn’t great, so the normal map ends up being wonky.

For this month I plan on taking a break. I’ve been going pretty full on with the model creating and I’m sick of it. What’s worse is I still have 2 more ships to do. So for now I’m just gonna step away. I’ve decided to finally play X3: Reunion. It’s a great game. I’ll get back to Rift soon enough.

posted by james wells at 3:06 pm

Shadows

October 4, 2008

Shadows have been taking most of my development time these past few months. I fought with Shadow Maps forever and then dropped them into the game and found they were completely ill suited for it. I then started over with Shadow Volumes. In the end I settled on both, maps for the hanger and volumes for outside the station. Of course Shadow Volumes put new constraints on my models, so I had to rework those too. My station no longer looks like a donuts, it now looks like… well it’s still ugly. I also have a new frigate that looks sort of like a poodle.

Recently I cleaned up the window hierarchy in code, making it easier to create and manage top level windows. I have also added a character creation window and am currently working on the new player experience. After creating a character you start up and there’s a popup point you to the mission window to get you started. Which brings me back to where I was back in June, creating new hooks for mission events. I’d also like to create a new ship so I can see what it’s like to have unbalanced ships in a fight.

I’ll have to take some screen shots and post them. Maybe I’ll show off the new shadows and the totally awesome, super cool new space station.

posted by james wells at 2:05 pm

Missions

June 30, 2008

During the past month I’ve managed to get the mission system off to a good start. It’s not done yet, but you are offered a mission which you can complete. The data for that mission is pulled from a Python script. There are still two major components which need to be worked on. The first is just hooking up more events to report to the mission scripts (right now there is only an event for when you buy something and one for when you put it in your cargo hold). After that I need to open up functions in the game which can be called from Python. Things like having a bunch of new ships warp in or having AI change tactics or something.

More recently I’ve been working on graphics. While reading the OpenGL Shader Language book I learned how to make shadows. Actually I learned how to do these without shaders, and then how to improve on them with shaders. So for now I’ve built a demo app which shows shadows (without shaders) which I’m very excited about. There is still a lot to learn and implement on that topic, so it will probably be a while before I get something into the game. I’ve also cleaned up the GL aspects of the engine a bit, trying to group similar functionalities into classes that make sense.

In any event, I’m off for vacation this week, so nothing new will be getting done for a while. Still no work on the character management stuff I mentioned earlier. Also the space station continues to look like a donut.

posted by james wells at 2:04 pm

Welcome to Rift

June 1, 2008

I’m working on a handful of things at the moment. In the short term I’m making a mission system. This includes the general windowing, storage, managing of mission data, as well as a bridge into Python to allow for missions scripts. The Python bridge is going to be the cool part, but as of right this moment I’m still in the UI of it all. Only snag to all this is I don’t know the first thing about writing Python scripts. I’m gonna try my hand at a beginner tutorial that will walk a new user through the different windows and ship controls.

In the longer term I’m dreaming of cleaning up the graphics a lot. The current graphics system was laid down in 2002 and wasn’t cutting edge back then. I’ve purchased the big OpenGL Shader Language book and am slowly working my way through that. I’ve also created a new, high polygon model for the Velotek Egg (currently the header image for this page) and I’m working on figuring out how to create a normal map and get it into the game.

For the even longer term I’d like to work on character management, skills, ship refitting, and at some point I have to bite the bullet and figure out things like masses and forces and what not. Oh yeah, and I need to FINALLY replace that horrible space station that looks like a grey donut with a stick through it. What I wouldn’t give for a 3D modeler.

Anyway, that’s enough of a log for now. I should get back to mission construction.

posted by james wells at 2:00 pm

« Newer Posts