Original Graphics - OpenRCT2/OpenRCT2 GitHub Wiki
The original graphics for Rollercoaster Tycoon 1 and 2 were made by Simon Foster (Drippy Cat). This page is dedicated to explaining how the graphics for Rollercoaster Tycoon 1 and 2 were made using details provided by Chris Sawyer, Simon Foster, general knowledge on graphics and its technicalities and assumptions based on closely studying the game's graphics.
Software
This is a list of the software originally used. Most can, however, be replaced with modern software.
Type | Game | Software |
---|---|---|
Modeling | Lightwave | |
Animation, rendering | RCT1 | Raydream Studio (now called Carrara) |
Rendering | RCT2 | 3ds Max |
Dithering | RCT1 | DeBabelizer Pro |
Dithering | RCT2 | Paintshop Pro or Photoshop |
Image Editing | Pro Motion |
Setup and Process
The process that was used to create the graphics for RCT1 and RCT2 is a mostly consistent one and can be broken down into the following steps.
Steps
- Modeling
- Render
- Remove background
- Dithering
- Cropping
- Additional tweaks
Camera
The camera is placed at a 45-degree angle on the vertical axis and looking down by 30 degrees. The projection method is set to orthographic, this makes the view isometric. As for finding the correct orthographic scale, a cube the size of a single tile should be exactly 64 pixels in width when rendered.
Lighting
Most objects were rendered with the same lighting rig [1]. One main light (directional light) is set up about 90 degrees anti-clockwise from the camera's angle. A dome of point lights ensures faces on the other side, and places in shadow aren't too dark and/or lose their detail. Additional filler lights are used to catch additional details that the main light fails to catch.
The lights are placed relative to the camera. When rendering an object from multiple angles either the object itself is rotated, or the entire rig is (camera and all lights).
Filler Lights
Filler lights are generally not placed at the exact opposite of the main light direction. Filler lights tend to be placed lower than the main light and are about half as bright as the main light.
Shadows
The main light casts a shadow. All other lights should not.
Rendering
The animation timeline was used to render all the required angles in a single export. Ride vehicles, for example, would have to have 16 angles at the very least,
Anti-Alias
Anti-aliasing is used for a large portion of the objects in RCT2. The anti-aliasing algorithm used was cubic with the size set to 1.4 pixels. In order to keep a crisp edge to an object, the anti-aliasing can either be disabled entirely or only disabled for the background. The second option wasn't available in Lightwave during the development of RCT1, hence the dark edges on some objects.
*Not 100% certain.
Background
The background color is set to rgb(57, 59, 57). More standard colors (Like neon green or magenta) would make the anti-aliasing with the background stand out too much. The color isn't a perfect grey (rgb(57, 57, 57)) in order to prevent lifting pure grey values when using the magic wand tool to take the background away.
Dithering
The RCT2 palette consists of 256 colors. Models are rendered in full color and dithered to this palette afterward. In order to achieve the dithering, Simon Foster originally used DeBabelizer Pro for RCT1, but both Paintshop Pro and Photoshop for RCT2.
Cropping
The last step to finish the graphics is the cropping process. Simon Foster made a two-part tutorial on this process:
Originally Simon delivered the graphics for vehicles as sprite sheets, where the same point within each sprite would act as the center point of the image.
Afterward, all excess unused space is cropped away from every sprite. This, however, requires that the center of the image is defined. This is done by providing an offset position for each sprite. This was an automated process performed by Chris Sawyer.
Post Editing
When needed additional adjustments were made to the 256 color sprites using Pro Motion.
Trees
Trees were rendered in Lightwave using a technique by Dave Gerrard:
The different scale trees were achieved by simply adjusting the scale of the tree and the foliage density.
Sources
- https://youtu.be/5UKKaTGwIqc
- https://youtu.be/p6Fci7NWYUo
- Email (Private)
Notes
16-03-2021: This page is already pretty old since I first wrote it, some information may be incorrect based on more recent findings. I plan to update the page properly in the future, for now I'll provide my thoughts using notes.
[1] There're a lot of inconsistencies in the lighting when putting objects side by side. This can be seen by looking at the shadows, but also seeing if the south-east or south-west face of a scenery block is lighter or darker then the other. My personal theory is that groups of scenery were rendered in a single scene, causing the lighting to be different for each object due to the positional difference.