Author Topic: Ultimate Stunts is a remake of the famous DOS-game stunts. Mac X, Windows, Linux  (Read 4469 times)

0 Members and 1 Guest are viewing this topic.

Software Santa

  • Administrator
  • *****
  • Posts: 4262
Ultimate Stunts is a remake of the famous DOS-game stunts. Mac X, Windows, Linux

Santa LOVES His Copy! A Software Santa Pick! This works on the Early 2008 Mac Pro!

Ultimate Stunts: Not just another racing game

Ultimate Stunts is a remake of the famous DOS-game stunts. Racing in Ultimate Stunts involves some really spectacular stunts, like loopings, corkscrews, bridges to jump over, etc., but the best thing is that you can design your own tracks!

The game Ultimate Stunts is not yet finished, but it already has some important improvements compared to the original game. Stunts was an old DOS game with simple CGA/EGA/VGA graphics, but Ultimate Stunts is a modern multiplatform application (it works on windows, Linux and several UNIX systems) with OpenGL graphics. It also has some new features, like 3D sound and (internet) multiplaying. And, while Stunts can nowadays be downloaded for free as abandonware (e.g. on the XTC site), Ultimate Stunts is completely free software!


Do you like this project, and do you want to track the developments? Then you might want to add the news page to your browser favorites. It contains news about new version releases, site changes, and all other kind of things.
It's free!

Full versions of UltimateStunts can be downloaded from the internet, without paying for it. And this is legal! There is even more: UltimateStunts is open source software. This means that the the "source code" of UltimateStunts is available for free. This is probably not very interesting for the average windows user, but other (open source) game developers will appreciate it. The GNU General Public License (GPL), published on the internet on the GNU site , gives you the right to freely redistribute UltimateStunts. It also allows you to make your own programs based upon the sourcecode of UltimateStunts. But, this developing is restricted to making other GPL-licensed programs. By using this kind of license, I want to make sure that nobody distributes UltimateStunts-based programs on a closed-source basis, because I didn't write this game to become closed-source. I want anybody to have the freedom to do anything (well, almost anything) with UltimateStunts, and with it's sourcecode.

PS. I assume that the text above doesn't conflict with the GPL. If you think it does, please contact me via the contact page of this site.

The following document describes what the completed game will look like. It doesn't guarantee ANYTHING about the current version of the game.
The game
The purpose of this project is to make a UNIX/Linux remake of the famous DOS-game "stunts".
"The old game"
The original DOS game (developed by Broderbund and Mindscape) can be downloaded on several abandonware sites, e.g the XTC site.

Stunts is a 3D racing game, with simple CGA/EGA/VGA graphics and no texture or smooth shading, but because of the spectacular stunts (loopings, bridges to jump over, etc.) it was really fun to play. One of the best aspects of this game is that it had a track editor. Because of the tile-based tracks, every gamer was able to make it's own tracks.

Similarities / differences
UltimateStunts will be a game very similar to Stunts:

    * It is a 3D racing game
    * It is possible (and relatively simple) to build your own tracks
    * The tracks are built of large blocks, called 'tiles'
    * It is possible to play it on relatively old computers
    * The games share some VERY spectacular stunts
    * You are free to drive where you want (but you'll get penalty time for it)

Some of the minor differences are:

    * Platform independence: UltimateStunts is open source and it will use platform independent libraries if possible.
    * 3D sound
    * Better tracks: The track sizes (l*w*h) are variable, and multiple tiles can be placed on top of each other.

But there are also some major differences:

    * Better graphics (based on openGL), with texture, smooth shading, reflection etc.
    * Multiplayer: the original game allowed 1 human player and max. 1 computer opponent. UltimateStunts will be an IP-based network game, with a server and both human and AI clients
    * An expanded set of tiles and tracks. actually, you can expand your own collection of tiles and tracks with packages.

Detailed specification

The game
The game will be a threedimensional racing game, in which creating your own tracks and doing stunts are esential parts of the gameplay. The physics will be quasi-realistic: gameplay is more important than realism. The goals that a player can have are beating opponents in a race, getting a high score, and creating tracks that are long, fast, funny or (almost) impossible to drive.

Players will be able to drive on their own (just to get in the highscore list), against computer opponents, against their friends in a split-screen session, or in a multiplayer session over a LAN or over the internet. Combinations will also be possible, for example to play against computer opponents over the internet.

Whenever network communication is involved in a gaming session, a separate server program is started on one of the computers. It will be possible to start the server with a menu item in the client program, but it will also be possible to start it manually on a dedicated server computer. All client programs that are involved in the gaming session need to connect to the server. The server does not only give through all data, but it also acts as a referee. The game simulation will run on the server, and all local simulators need to synchronise with the server. The server also decides on which track the game is played, and which cars are allowed. All files should be available at the server, and if they are not available at one of the clients, that client will be able to download the missing files automatically.

Ultimate Stunts will be able to provide high-quality 3D graphics, but it will become very flexible at this point. In order to provide a playable game even on platforms where no hardware acceleration is available, it will be possible to scale down the complexity of the graphics to a minimum. On the other hand, on high-end platforms, advanced technologies will be used.

The tracks
The tracks will consist of square tiles, just like in Stunts. The differences are:

    * The sizes of an Ultimate Stunts track are not fixed. Tracks can be made that are extremely large. Limiting factors could be the size of integer values (data wil be transferred over the network as 32-bits integers; positions are multiplied with 1000 to get an accuracy of 1 mm), the accuracy of floating point values (some calculations are done in absolute coordinates), or the memory usage. Memory usage of large tracks will not be very large, because per tile only a few integers are stored, to define the tile model, the orientation and the height.
    * In Stunts, for every location on the map, a landscape type and a tile type are defined. This does not make it possible to place tiles on top of each other, and it also places a limitation on height differences. In Ultimate Stunts, the track will be a threedimensional array of tiles. In a track with n layers, a maximum of n tiles can be placed on top of each other. For every place in this threedimensional grid, three values are defined: one refers to the tile model, one describes the rotation (0, 1, 2 or 3) of the tile, and the third one defines the height of the tile (measured in units of 1 tile). That last value makes it possible to create very large height differences with only a few layers.
    * The tiles that can be used in Ultimate Stunts will not be limited to a fixed set. Instead, every tile is stored in its own file(s), and the track files will refer to these files.

The sizes of the tiles will be set to 40x40x12 meter, because these sizes are approximately equal to the tile-sizes in Stunts. Support for other tile sizes is not planned. Large tiles (like the wide corners in Stunts) are built up from smaller tiles.

The track editor
The track editor will be a user-friendly program for editing tracks. It will be possible to start the track editor from a menu item in the main program. Because tracks in Ultimate Stunts are more 3D than Stunts tracks, the editor will be more complex. It will be inspired by the rollercoaster editor of Rollercoaster Tycoon. The basic idea is to have a "cursor" at the end of a road. The user can select if the roads needs to turn right or left, if it needs to go up/down, if a stunt needs to be included etcetera. Then the tile editor should automatically apply the right changes to the track. Of course the track editor should also validate the track, and make it impossible to make invalid changes. The track editor should also have the possibility for importing original Stunts tracks.

Just like Stunts, Ultimate Stunts will have the possibility to create and view replays (but it will not be able to read original Stunts replays). Ultimate Stunts replays will contain every position and orientation for every moving object in the scene, for every frame. With the right conversion tools, this data can also be used in animation programs (like 3D Studio), for example for creating an intro video for Ultimate Stunts. In Ultimate Stunts it will also be possible to use a replay as a ghost player.

The stunts3dedit editor
When this project was started, there were no plans for a 3d editor, but as soon as complex tiles were needed, it was created to reduce the difficulty of writing tile definitions in text files. The 3d editor will be what it is now: a simple tool for very low-level polygon manipulation, with some high-level modifiers. A feature that becomes increasingly important is the possibility to import foreign file formats. The usage will be: create a model in an external editor, import it in stunts3dedit, do some fixes, and save it for use in Ultimate Stunts.

UltimateStunts is very flexible in it's system requirements: it can be played on computers without hardware-acceleration, but it is possible to take full advantage of the 3D-technology in modern PC's.
The following things are required to get the windows binaries working:

    * Windows 95,NT or higher (but Wine, the windows-emulator on Linux, will probably also work)
    * openGL (or Mesa) installation (standard on most systems)

The following things are required on a typical UNIX-system:

    * The X window system
    * openGL (or Mesa)
    * SDL (previous versions used glut)
    * BSD networking library (always(?) available on BSD and Linux systems)

For compiling in windows, Cygwin can be used. You'll need the opengl and the w32api packages, SDL, and of course the usual compiling stuff.

To get a nice-looking game with a normal frame-rate, the following is recommended:

    * Pentium 200MHz processor or higher (or something comparable on non-PC platforms)
    * A videocard with hardware-acceleration supported by openGL

The following optional items are supported by UltimateStunts:

    * Sound (by FMOD or openAL)
    * Joysticks

The technology
The main developing platforms are Linux and Cygwin (= in windows), but I am trying to keep it portable with other unix-like environments, like MacOS/X. For graphics and input, a openGL/SDL combination is used. Networking is done by standard UNIX (BSD) network functions. The gaming communication will use UDP/IP. Sound is implemented both on FMOD and on openAL.

The project will provide a number of different programs. These include the following:

    * The main UltimateStunts program, providing graphics, sound etc. This program also provides a nice gui.
    * A server program
    * An AI client
    * A simple 3D editor, for modifying tiles and cars, and importing them from foreign file formats.
    * A track editor

Currently, the kdevelop program is used for developing.

Network and simulation
The functionality of the various programs involved in a game-session will be very flexible, as the most optimal configuration will depend on the network parameters, like bandwidth. The following text describes future versions. It does NOT apply to the current version.

In a local game, when only one computer is involved in the game session, all things (including graphics, AI players and physics) are done by a single program. When more than one human player is involved, in a networked game, data will be distributed by the server program. The main physics simulation is done by the server program, but (depending on the connection bandwidth) some client programs might also calculate physics, to correct for the slow synchronisation with the server.

AI players can be started inside both the server and the UltimateStunts client. They can also be added using the separate AI-client program. Experts who want optimal performance, can use the server program to act also as a client. This way, the server program can log in on an internet-game over a slow connection, and act as a server to various players in a LAN. This enables the possibility to share a single client-server connection by several players.

Because the graphics are tile-based, rendering can be done faster by disabling the default openGL z-buffering and just rendering the tiles in the right order. Besides that, the graphics features used will be very configurable. If z-buffering is disabled, texturing disabled, smooth shading disabled, background disabled, resolution set to 320x200 etc. etc., the game will look very similar to the original DOS-game, but it will run on any computer.


Welcome Visitor: