Usually there's a lot of confusion when people hear 32bpp in the context of OpenTTD. Let's try to sort things through and split different tasks into what they are: separate tasks. We'll look at each and try to make suggestions how to get going. The most important one is the graphics side.
While it's not required that 32bpp sprites are rendered it seems somewhat concensus that it is usually done and should be done. Unspoken the aim is to create a complete replacement for all sprites of a baseset in 32bpp. This is a task which involves roughly 10.000 sprites, and only a fraction of this has so far been created. The other aspect is using 32bpp sprites in NewGRFs.
What this project is not
- The 32bpp project is NOT about providing more detailed sprites
- The 32bpp project is NOT about changing any scale
- The 32bpp project is NOT about providing curvature to rails
 see section on 'OpenTTD side' though
32bpp base set
The aim of this project is to create a full base set consisting of 32bpp sprites. NewGRFs will not be considered in this context, but NewGRF authors of course might want to have a look at the technical aspects as well in order to see how to match sprites from the base set.
Base sets which want to be distributed along with OpenTTD should follow the same license as OpenTTD, thus GPL v2 shall be the license of the 32bpp base set. This means for all contributions and contributors: please provide also your source file (blender, 3dmax). Other contributions cannot be considered
A somewhat uniform appearance of the base set is desired. The graphics in TTD are crisp and clear with a high contrast. Vehicles use a lot of company colour.
Light & Perspective
The sun is up high at around 4:30pm to 5pm. Like with 8bpp sprites, graphics use isometric projection with the camera at a 26 degree downward angle, with up in the game world being north. There exist camera & lighting templates for 3DSMax (by Ben Robbins), Lightwave and Blender (by Aracirion).
Where applicable a few standardized textures for common materials have been suggested:
Scale is not a matter of colours used. The same scales as used by the 8bpp sprites are applicable. This means that no common scale exists between different features and the same limitations apply as for all graphics, e.g. that vehicles must not be longer than half a tile. The scale may even be different for the length and the height of the very same oject (e.g. train waggons are a good example there)
Deliberate lack of national identity
In vanilla TT, the temperate climate is set in the British Isles, the home of game creator Chris Sawyer. The sub-tropical climate is set in Central South America and the sub-arctic climate possibly in Canada, northern Scandinavia or Eurasia. Those locations are identified by distinct properties of landscape, nature and architecture, not by national or cultural symbols such as flags or writing. We, while creating artwork, must also refrain from including such national or cultural fingerprints, while still retaining the look and feel of these locations.
To date OpenTTD does support sprites for all zoom levels and for both 8bpp and 32bpp.
|8bpp normal||normal zoom (always required)|
|8bpp normal||Sprites for other zoom levels than the default in 8bpp (8x, 4x, 2x zoom-out and 4x, 2x zoom-in ("extra zoom")|
|32bpp (all versions)||8bpp normal||Available in all zoom levels: normal zoom, 8x, 4x, 2x zoom-out and 2x, 4x zoom-in ("extra-zoom")|
|mask||following on 32bpp||The mask sprite must have the exact same dimensions as the preceeding 32bpp sprite. In this case the mask sprite provides a colour from the 8bpp palette to be drawn on that place of the 32bpp sprite (index 0 = transparent and the 32bpp sprite will be drawn there) while the 32bpp sprite then only defines alpha channel and intensity.|
Sprites can be provided for the normal zoom, for 8x, 4x and 2x zoomed out and 2x and 4x zoomed-in state.
Consequences for graphics
Thus as advise for graphics artists:
provide your models not (only) as pre-rendered sprites, but keep the blender file (or whatever programme you use to generate the sprites).
Providing models gives all the advantages:
- the work is done for all zoom levels at once, also future ones which do not exist (for example a 1.5x zoom). * It creates motivation to actually provide means to display and get them.
- It creates momentum.
- With models supplied, it will be easy to provide additional sprites in sizes or angle as required as soon as OpenTTD has support for them. Examples could be smoother curves for vehicles which would require more sprites or curvature for rail.