Legacy:Mod Ideas/RollercoasterRider

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to navigation Jump to search
Mod ideas for UT 2003 – Rollercoaster Build and Ride

Description

This mod allows people to easily build their very own rollercoaster and then ride it. It is currently not known as to whether the mod will sit within the UT2003 editor, or within the UT2003 game itself. Having the mod work within the UT2003 game is preferred (and is described below).

When the game starts, the player is effectively in spectator mode. They can fly around the map they have loaded and bring up and hide the track editing menu. The map itself must contain all terrain (tunnels included) and decoration around which the rollercoaster will be built.

When the player has selected a good starting point for the rollercoaster (should the coaster start/end platform be fixed in place?) they can display the coaster construction menu. This menu allows them to add track pieces to the map. The first track piece added to the map will be grid aligned horizontally, and by default sit on the floor. The player can move the vertical position of the first piece up and down (by pre-set amounts) by clicking on a couple of buttons within the coaster construction menu.

Once the first piece of track has been placed, all other track selections simply extend the track. The track sections as added are simply placed in position relative to the last piece placed. So, if a straight (and flat) piece of track follows 45 degree twist, it will also be orientated at 45 degrees. If a loop follows a 45 degree twist, the loop will be orientated at 45 degrees. Question: Should players be allowed to add track pieces anywhere - and all we do is grid align them and allow them to extend the track?

All track sections are added by pressing/selecting the track section desired. Each selection will add a single track section to the coaster. A demolish button allows a track piece once placed to be removed. The interface has been inspired by Rollercoaster Tycoon, although it does not allow the track to be built backwards - only forwards.

Track pieces may only be added to unoccupied space. A track piece will take up more room vertically than it would appear as room for the coaster car must be allowed for.

A simple plugin architecture should be used for the track pieces such that new "special" peices can be added later - that have knowledge on how to restrict the track pieces that follow it.

The track pieces/features that should be available are:

  • Platform/coaster starts here sections.
  • Straight section (unlike RCT also used for slopes - the coasters don't have to be workable in real life)
  • Concave curves (flat to up-hill transition) in 15 or 45 degree sections.
  • Convex curves (flat to down-hill transition) in 15 or 45 degree sections.
  • Clockwise/Anti-clockwise 45 degree twists (bank entry and exits).
  • Banked curves - A selection of 3 types of curve. Maybe added to the map in 15 or 45 degree sections.
  • Up and down helix bends.
  • Left and right loops.
  • Half loop.
  • 180 degree twist (should this be a 90 degree twist instead?).
  • Half corkscrew.
  • The ability to make straight pieces of track as "lift hills".

Other elements worth considering (that could be added later)

  • Booster - to make the coaster go faster.
  • Powered launch.
  • Hanging brake - to hold the coaster before it drops down a particularly large drop.
  • Anything else that my brain is too foggy to remember right now.

Track Construction

Because I am happy to ignore the effects of hanging people upside down for long periods of time, the only real constraint on the construction of the coaster is whether the cars complete the track or not. Each track has an understanding of the track sections that can precede it and follow it. Although this might sound like a nightmare it can be reduced to some very simple components.

Take a convex curve section. If we say that the track section that can precede it is a straight, and the track section that can follow it is a straight it would appear that we have drastically reduced the flexibility of the coaster design. However, all that really needs to happen is that the track exit type of the first piece must match the track entry type of the following piece. This means that we can have a convex curve following a convex curve because the exit and entry types of these pieces are the same.

In the current design there are only two types of entry and exit pieces - a straight and a banked-curve entry.

The implication of this is that the orientation of the track elements is somewhat arbitrary. There would be nothing to stop you from having a bank entry (essentially a 45 degree twist) followed by a loop. The loop would be at 45 degrees and would look odd - but you could do it. I guess the only real problem with this approach is that you have to make sure the coaster is the right way up to finish it.

Some way of saving a track should be devised. The track data should at the very least reference the map in which it has been placed as particular map features may have been used to make the coaster more exciting - like a tunnel - that wouldn't exist on a different map.

Riding the Finished Coaster

When riding the finished coaster, a rollercoaster car should be created at the coaster platform. There should be one car per platform element (no more than 4 platforms elements need be supported). The player can then either watch the car travel round the track, or, select a seat within the coaster train to ride in.

Interested Scripters

If you are interested in developing this mod for UT2003 then add your name to the list. Once you start development you should indicate that below (and hopefully include a link to a journal page). Before you start development you should also check this section to see if anyone else has started.

Discussion

EntropicLqd: Goodness only knows what the load on the engine is likely to be when spawning all of the meshes needed. It may well be much more sensible to actually build this mod as an Editor extension so that all of the coaster track and scenery around the level are all handled as static meshes. Maybe I've been playing too much Rollercoaster Tycoon recently :).

Birelli: There should be some way at least to save coaster designs, the simplest way I see to do this is simply to make them all maps, although it would be awesome if you could tweak them inside UT2k3 and have it overwrite the map, but I somehow doubt that's going to be technically possible. Anyways it would be cool to have some sort of website with a forums and a database ala NaliCity (auto-updates, no need for a hard-working admin to hand-upload everything) with user-made coasters :D.

ZxAnPhOrIaN: The coasters should be made into maps. What will the player move in, movers or interpolation points, or similar things in UT 2003?

EntropicLqd:

The biggest benefit of making the coasters into real UT maps (as opposed to having a map and building the roller coaster) is that the final result will run faster (probably) and can be lit more effectively. The downside to that is that only people brave enough to start up the map editor will want to create rollercoasters. My personal preference would be to have the coaster built "in game" rather than "in editor" with a feature that allows coasters built "in game" to be imported into the editor for proper lighting and processing.
In terms of what the players move in - I was hoping to be able to use the new vehicle class within UT as a base and attach the player to that. With a bit of luck the vehicle could be constructed in such a way that the Karma physics stuff could be used to actually control the vehicle's falling (conceptually they fall down the track).
As far as saving maps go there must be plenty of file handling code in UT. It's just whether it's accessable or not. If the route of using real UT2003 maps is taken then the coaster construction information could be held within a custom component on the map that simply contains a list of all of the different track pieces used. If an "in game" approach is used and there is no file handling functions available then the track information could be written to the standard UT log and a small Java program used to parse the log file and extract it into it's raw form. That's a really ugly solution but it would work. It may be preferable to add some custom client side C++. A more elegant solution but most likely to be more problematic.

Birelli: Would the mod allow the builder to go "underground" and just make a tunnel or would it be more practical to just add in checks that no piece of track can be below "ground level".

EntropicLqd: If the mod is purely for the editor then you could do whatever the hell you liked. If the mod works "in game" then you'd either have to create tunnels on the fly (by creating fake terrain from non-static meshes) or add checks to prevent track pieces from entering anything solid. For simplicities sake I think I favour having to build "tunnels" within the editor.

ZxAnPhOrIaN: The mod should include prefabs in .t3d format such as a curly track, dock, loop, etc. making mapping easier for this mod

EntropicLqd: I think you've missed the point slightly. The mod is the roller coaster builder - whether it sits within the editor or within the game itself. If you've never played Roller Coaster Tycoon then I guess you can be forgiven for not quite understanding what I'm trying to get at here. I've attempted to update the description of the mod to more accurately reflect the aim.

ZxAnPhOrIaN: Oooohhhhhhhh... Now I get it! ;) Also, I never played Roller Coaster Tycoon :( . BTW: Call me Zxan for short. :P