Intel sponsors gamedev.net search:   
Journal of YsaneyaBy Ysaneya      
Main project:

Infinity, a space-based MMOG

Forums

Monday, May 23, 2005
Dunno what that means, but i added my engine's 100,000 th line today.

This is excluding most of my experiments mentionned in this journal (galaxies, nebulaes, clouds, terrain engine: all that stuff is still waiting to be "integrated")

Just had to share...

Comments: 3 - Leave a Comment

Link



Sunday, May 22, 2005
Today i managed to finish the implementation of the planet's revolution. It was a bit tricky to convert the matrix to quaternions, interpolate the quaternions, and get back a matrix, especially due to precision problems. But it's now working.

In addition to this, a body near a planet follows its motion (translation AND rotation). Which means that if you land on the surface of a planet, the ground will look motionless, but the space background (stars, other planets) will look like it's slowly moving.

I tested that by travelling from Earth to Amalthea (a moon of Jupiter, of 83 Km's radius), attending a Jupiter-rise.

It was kind of magic, i must say. With correct graphics, it should look pretty amazing.

I still have to finish some basic stuff about physics (the space station must be in orbit around a planet - at the moment it's just in space void), then i'll move back on the graphics engine. Integrating the space box, the nebulaes (i got another idea to experiment), the milky way, and finally the planet terrain engine. This should take between 1 or 2 months, but don't take my word on it..


Comments: 0 - Leave a Comment

Link



Saturday, May 21, 2005
Do you know the bug that is the hardest to fix ? The one that doesn't exist.

Let me explain: some days ago i had a performance problem with my engine. For some reason, all the rendering calls seemed to run extremely slowly (by a factor of 10 or about). Nothing seemed to change after i rebooted or reinstalled the latest drivers.. and i didn't change any major thing in my rendering code. I spent, oh well, about 3 hours ? trying to find the cause of this problem.

Finally i got it: i forgot that i had installed GLtrace (a DLL to record GL calls in a text file) in my app's directory in order to test something, some days before. Once my tests were done, i completely forgot to disable GLtrace. So it was still running and logging everything.. every single GL call! No surprize it became slow!

Yesterday i also fixed a small bug in my planet code. I was implementing planet revolutions (self-rotation around an axis) and forgot that my scene graph is fully hierarchical. When a planet was rotating, it made its moons follow the rotation movement too (not only the translation). In order to fix that, i had to split each planet into a center of mass, and an actual body. The fix was easy to implement.


Comments: 4 - Leave a Comment

Link



Thursday, May 19, 2005
Lots of things have been happening, recently. So this is gonna be a pretty long and technical post (with a screenie for your patience if you read everything!).

I've added a generic interface for physics, and made an implementation of it by using ODE. Since i already had some experience with ODE, everything went quite smoothly. The next step was to simulate a small spaceship with it.

My goal is to keep everything as realistic as possible - but without sacrificing playability. One of the main problems is related to speeds. The limit of light speed is approximately 300,000 km/s. If i want to stay coherent with that limit, playing in real-time, it would take 8 minutes to travel 1 AU (the distance between the sun and the Earth). If you were to start from one side of the solar system and travel on a planet of the other side, you could easily have to wait for one hour.

In addition, in real-time, many events which could be exciting become boring, because you'd have to wait from minutes to hours in order to see them. Sunrise, sunset, moonrise, eclipses, moving bodies in the sky.. are almost unnoticeable because happening very slowly. For this reason, i decided to keep the distances/speeds realistic, but to run the simulation a lot faster than in real-time: approximately 50x faster.

With that new time scale, travelling from the sun to the Earth is taking 10 seconds, which is much better for the player. In practise it is taking longer, because the ship has to accelerate/deccelerate.

Accelerations are another problem i had, and are more related to the ship's physics. Let's assume the ship is motionless in space near a station, and wants to accelerate until reaching up to light speed. The natural idea is to bind the keys to a constant acceleration force: pressing the "forward" key makes your ship accelerate in the forward direction (which increases the velocity, which in turn makes the ship advance faster and faster). Unfortunately we've got a major problem with this idea.

You see, if you use a small acceleration, it will take forever to reach light speed. If you use a high acceleration (so that you reach light speed in, say, 20 seconds), you will no longer be able to move precisely at small scales. In particular, you can forget any idea of navigating near the space station or at ground level on a planet.

My solution to this problem is to use a non-constant acceleration; in particular, an acceleration that is dependant on the velocity: the higher the velocity, the higher the acceleration. Reminds me of differencial equations, i don't know why..

Another problem is inertia. In space, there is no friction - so if you want to be realistic, if no force is applied, you should keep moving in the direction you were moving before, ad infinitum. In practise, if you start motionless on a planet and want to travel to another planet, you need to accelerate until light speed, then deccelerate. Because of inertia, this is extremely tricky. If you tried a realistic space simulator, you'll understand what i mean.

To counter inertia, i decided to change a bit the way the ship is controlled. The keys 1 to 9 are used to set a "target velocity". Your ship will keep going at that speed in whatever direction it is moving. After testing, i realized this is surprizingly easy to use and seems to be a good compromise between realism and playability. I also added some automatic friction to the mouse movement (controlling the ship's orientation) so that you do not spin forever.

The result is quite nice and easy to use: the player controls the ship orientation via the mouse (right mouse button is used to roll), while the only keys used to fly are the 1 to 9 keys to set the velocity. I think i'll post a video of that some day.

In other news, i've added a space station taken from the net. It's around 550k triangles, but the 3D engine handles it pretty well (100 fps on a geforce 6800, 200 fps on an ati X850). I haven't focused on the graphics yet, so no coherent lighting or advanced effect, but i thought it was looking quite nice (click for full screen image):





Comments: 5 - Leave a Comment

Link



Thursday, May 12, 2005


A new version of the Minas Tirith model viewer is available here.

Note that due to bandwidth problems, we have decided to split the viewer into 2 versions: a private (complete) version, and a public one. You can only download the public one on the website. The screenshot above is from the private version (which is approximately 2 times more detailed). The polycount averages 4 millions now.

Comments: 6 - Leave a Comment

Link



Monday, May 9, 2005
This is gonna be a short update. Me busy.

First - i bought Guild Wars last week. Overall an excellent game. I'm trying to not get addicted to it, so i only play around one hour a day. At the moment i'm levelling up an Elementalist / Monk level 15. See the GDNet Lounge thread for more details about GW.

Secondly - today a friend sent in a link to Terragen 2. I like it a lot. They have some videos of planets flythrough, which are similar to what i'm trying to achieve with my planet engine. That one, particularly, is amazing.

Finally - i've been working this last week on my network library, implementing reliable UDP, and optimizing the packets together. Seems to run well now. I've also started to implement physics with ODE (which should not be too hard, since i've been working with ODE on misc. projects in the past 2 years).

Comments: 0 - Leave a Comment

Link


All times are ET (US)

 
S
M
T
W
T
F
S
1
2
3
4
5
6
7
8
10
11
13
14
15
16
17
18
20
24
25
26
27
28
29
30
31

OPTIONS
Track this Journal

 RSS 

ARCHIVES
October, 2009
August, 2009
July, 2009
May, 2009
April, 2009
March, 2009
February, 2009
January, 2009
November, 2008
October, 2008
July, 2008
June, 2008
May, 2008
April, 2008
March, 2008
January, 2008
December, 2007
November, 2007
October, 2007
September, 2007
August, 2007
July, 2007
June, 2007
May, 2007
April, 2007
March, 2007
February, 2007
January, 2007
December, 2006
November, 2006
October, 2006
September, 2006
August, 2006
July, 2006
June, 2006
May, 2006
April, 2006
March, 2006
February, 2006
January, 2006
December, 2005
November, 2005
October, 2005
September, 2005
August, 2005
July, 2005
June, 2005
May, 2005
April, 2005
March, 2005
February, 2005
January, 2005
December, 2004
October, 2004
September, 2004
August, 2004