Pixelate:Issue 2/The Unfinished Underworld

From Allegro Wiki

Jump to: navigation, search

The Unfinished World - Ben Davis

The Unfinished Underworld

This column is all about my unfinished games and other programs. I shall aim to describe one of my unfinished projects every month. Feedback in the form of ideas, criticism and even hate mail is welcome. Anyone who positively influences the development of a project will, of course, appear in the credits when the game is finished! Oh, and yes, I will try to finish my games eventually...

This month:

Microsith Planet Exploder

Story

The year is 5000. Microsith Windows 5000 is due to be released in a few years - see www.microsith.com for details. You are a highly intelligent, but seriously deranged, psychopath. You broke through the security (built from the ground up) at Microsith's Galactic War Machines Factory(TM) and stole a prototype ship with heavy armaments. In the pursuit of a good time, you now decide to fly from system to system blowing up the planets.

Microsith want their ship back, so they send the Galactic Police after you. Since Microsith bought out the Galactic Police last year, they will be using the latest (proven) technology to track you down.

Some planets can offer resistance. As you approach, you may be intercepted by hordes of spacecraft. Before you can blow up the planet, you will have to overcome the defensive forces. Species also vary in their morality. Some will attack you without provocation, while others will wait for you to attack before they launch a defensive strike.

As you visit more and more planets, you can steal their technology and upgrade your ship. When you blow up the planet, points will be awarded depending on the challenge with which you were faced.

If you succeed in blowing up a star, the explosion will clobber all the planets in one go and you will gain a bonus. This is particularly perilous, because multiple planets' species may unite against you, and blowing up a star takes time. In addition, you will not want to be too close to the resulting explosion.

Earth has some of the most advanced technology in existence. Blowing up the Earth at the beginning of the game is impossible. Since Microsith own most of this technology, no other planet has been willing to pay for it, so you will not have to fly far to find a suitable target. However, several species' worth of stolen technology later, the Earth becomes the ultimate target. Blow up the Earth and the game concludes.


Why am I doing this project?

Well, there are a few reasons. The first is that this game is particularly interesting in terms of scale. The distance to Alpha Centauri, the nearest star to the Sun, is 4.3 light-years, or 41 000 000 000 000 000 metres. At the same time, the radius of the Earth is 6 400 000 metres. Furthermore, battles will take place at ranges as small as a few tens of metres. Computers cannot generally achieve this kind of precision when dealing with large numbers, so I cheat by using separate coordinate systems - see below.

Apart from that, I just like huge explosions!

I am planning to submit this game to a competition run by Intel. I have until sometime in summer to work on it, but I am certainly not being complacent. It is a school team competition, so I shall be trying to enlist people's help at school. Unfortunately, nobody else knows how to write programs!


Current Progress

So far, the game displays a star field, showing stars in their correct positions and colours as seen from the Solar System. All the constellations are there. Unfortunately the distances are all wrong.

Stars are drawn with a gradient starburst effect, and additive blending between stars. This needs optimising, and possibly changing.

You start inside the Sun. You can fly around at speeds of up to 500 metres per second with great agility - although there is nothing there, so you do not realise that you are moving. These controls will ultimately be for fighting battles.

In order to navigate on a larger scale, you must use the Microsith Throttle(TM). The moment you increase it from zero, your battle controls will be ineffective. You can still change direction, but the faster you go, the harder it is to rotate.

The Microsith Throttle(TM) is exponential. As a result, the typical speeds for planetary navigation, star system navigation and galactic navigation are evenly spaced along the scale. The maximum speed is 10 000 000 000 000 000 metres per second, approximately equal to one light-year per second. It takes ten seconds to move the throttle from off to full, and ten seconds to move it back.

When you enter a star system, the game switches seamlessly into a local coordinate system with the star at the origin. The same technique will be used for planets when they are implemented, and again for battles. This is how the great precision described above is achieved.

The star is displayed using an accurate sphere raytracer. It calculates the left and right edges of each scanline and draws a solid line in between, so it is quite fast. This is buggy, and is only a temporary solution anyway.

Unfortunately, there are no planets yet.

As the brightness level varies, the camera sensitivity is altered. If you approach a star, the surrounding stars get darker. This is not very well implemented at the moment, in that the star does not appear to come any closer. I shall wait until the rest of the graphics are done before deciding on a suitable function.

I have a polygon-based model of a spaceship, which I hope to integrate into this game. I originally designed it for AstroWars, which has become a discontinued generic short-range space-flight engine with a bad frame rate. Unfortunately, since Microsith Planet Exploder is a single-player game, you will probably never see the ship. Such is life.


Short-term Aims

I need to come up with a rendering system for the local star. It has to be possible to fly into the star. At the same time, there must be a smooth transition when the player leaves the star system and the star becomes classified as distant.

I need to implement some kind of mapping and/or history system, so that the player can revisit stars. This is particularly important for the Sun, as you will want to return there someday. An autopilot system is also a possibility.

Planets and moons need implementing. In addition, the game will have to provide some assistance in finding the planets; they will look like stars from a distance, as they do in real life. A zoom feature would also be useful.

I'd like to apply a spectral spread effect on stars when you exceed the speed of light.

I need to get the correct distances of the stars. Any suggestions on where to get, or how to calculate, this information will be much appreciated. I am currently using the SKY2000 Master Star Catalogue Version 2, but I am willing to use a different one if necessary.


Long-term Aims

The stars' positions and a certain amount of data on the Solar System will be initialised according to real-life information. The game will generate all further game data randomly, as they are required. Once generated, all data will be retained for the duration of the game, within reason.

The player should be able to fly into planets' atmospheres. This simple requisite will add much-needed richness to the game. Equipped with the appropriate shielding, I may decide to let you fly into the star as well...

Apart from that, as many weapons as possible, as many different special effects as possible, likewise planets, likewise alien strategies... basically, this game could be very boring, or it could be great fun! This aspect will take some careful design and surely the suggestions of others... *wink*


Conclusion

This game is in early stages, but it is making good progress. Please e-mail me, preferably with ideas or constructive criticism. However, if you would rather send hate mail, I do not mind in the least.

Ben Davis http://members.fortunecity.com/bndavis/ ben@vjpoole.freeserve.co.uk

Issue 2: The Danger Issue
Previous:
The Sentinel
Present:
The Unfinished Underworld
Next:
Speed
Personal tools