Please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Bus Driver

From The Cutting Room Floor
Jump to: navigation, search

Title Screen

Bus Driver

Developer: SCS Software
Publisher: SCS Software
Platforms: Windows, Mac OS X, iOS
Released internationally: March 22, 2007


DevMessageIcon.png This game has a hidden developer message.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.


A game about driving buses in a fictional Americany looking place with UK town and city names as bus stops...

Unused Graphics

Hmmm...
To do:
There may be more unused textures.
signs 01a.dds
  • In base.scs/model/stops/textures, signs 01a.dds contains some hidden text. Clearly, that part of the texture is unused.
  • base.scs/model/railing contains a duplicate file for center03b.dds but as a .psd instead... An oversight by the developers.
center03b.psd

Development Text

There is a lot of development text here. All files have been edited so only developer comments remain.

car_colors.def

Located in base.scs/def.

	# Ford
	# Volkswagen
	# Fiat
	# Peugeot
	# Renault
	# Saab

sky_data.def

Located in base.scs/def.

#             Name         | texture             | top                 | fog color   | fog density | rain  | snow

sun_data.def

Located in base.scs/def.

# Hand tweaked mission specific sun definitions.

	### (0) Nice, shiny day ###
	#
	# ambient - medium
	# diffuse - strong overbright with slight yellow tone
	# specular - slight overbright white
	# environment - skyblue shade to emphasize skybox in reflections

### (1) Nice, shiny day, but there are some clouds on the sky ###
	#
	# ambient - medium cold blue tone
	# diffuse - medium white overbright
	# specular - slight overbright white with blue/yellow tint
	# environment - skyblue shade to emphasize skybox in reflections
	#
	# overbright levels lowered when compared to above shiny day

### (3) Rain in the city ###
	#
	# ambient - low, brown tone
	# diffuse - normal, slight darkblue tone
	# specular - normal, medium blue tone
	# environment - gray-blue tone
	# skybox - slight purple tint

### (4) Morning in the city
	#
	# ambient - low, blue toned
	# diffuse - medium orange tone, small overbright
	# specular - white/yellow 
	# environment - light cyan

### (5) Early morning in the city, orange/red clouds skybox
	#
	# ambient - low, blue toned
	# diffuse - yellow tone
	# specular - white/yellow 
	# environment - light steel blue

### (6) Sunset in the city
	#
	# ambient - medium orange toned
	# diffuse - medium ochre tone, small overbright
	# specular - small overbright white with red tone
	# environment - orange with small overbright

### (7) Sunset in the city & raining
	#
	# ambient - medium gray
	# diffuse - medium ochre tone
	# specular - orange
	# environment - dark gray-blue overbright (it is wet - raining)

### (8) Night city
	#
	# ambient - low, grey-orange tone
	# diffuse - medium ochre tone
	# specular - grey
	# environment - yellow (city light smog)

### (9) Snow storm
	#
	# ambient - medium grey
	# diffuse - dark ochre tone
	# specular - gray
	# environment - gray overbright

### (11) Snow storm & snowing
	#
	# ambient - medium grey
	# diffuse - weak white
	# specular - gray blue overbright
	# environment - gray blue overbright

### [Custom tweak] (1) Nice, shiny day, but there are some clouds on the sky ###
	#
	# Lowered diffuse overbright as we are driving a white bus

### (12) Nice, shiny late morning, it promises to be a beautiful day, but the sun is not all the way up yet ###

### Snowy Christmas night ###

### [Custom tweak] (25) Early morning in the city, orange/red clouds skybox - earlier, darker morning
	#
	# ambient - low, blue toned
	# diffuse - yellow tone
	# specular - white/yellow 
	# environment - light steel blue

FIXME Messages

Located in base.scs/def/menu in the sub-directories, fulwell, garage, station and in the files, smile.sii, follow.sii, out.sii, outfollow.sii, follow.sii, title.sii is the same message.

# FIXME: Do not know yet:

# FIXME: Do not know yet

# FIXME: Debugging only:
#	recorded_drive_data:	"/home/save/recorder_unit.sii"

# FIXME: The time is unknown, yet.

Also, wait.sii in base.scs/def/menu/station has some extra lines.

#	feasible_buses[]: "vehicle.generic1"
#	feasible_buses[]: "vehicle.niva2"
#	feasible_buses[]: "vehicle.remark1"

Template Messages

Located in base.scs/def/ui in the files, bth.def, frm.def, inp.def, sld.def and txt.def are message explicitly saying not to change these.

btn.def

###########################
#
#	button templates
#	DO NOT CHANGE ORDER!!
#
###########################

#	s_pml:"<img src=/material/ui/white.mat xscale=stretch yscale=stretch color=@@menu_but_clr_n@@><ret><offset hshift=22 vshift=4><img src=/material/ui/bus/busico_%0.mat width=64 height=64><ret><color value=@@menu_clr@@><img src=/material/ui/frame/c01.mat left=0.5 top=0.5><ret><offset vshift=60><img src=/material/ui/frame/c01.mat left=0.5 bottom=0.5><ret><offset hshift=100 vshift=60><img src=/material/ui/frame/c01.mat right=0.5 bottom=0.5><ret><offset hshift=100><img src=/material/ui/frame/c01.mat right=0.5 top=0.5><ret><offset vshift=8><img src=/material/ui/frame/v01.mat left=0.5 height=52><ret><offset hshift=100 vshift=8><img src=/material/ui/frame/v01.mat right=0.5 height=52><ret><offset hshift=8><img src=/material/ui/frame/h01.mat top=0.5 width=92><ret><offset hshift=8 vshift=60><img src=/material/ui/frame/h01.mat bottom=0.5 width=92>"

frm.def

###########################
#
#	frame templates
#	DO NOT CHANGE ORDER!!
#
###########################

inp.def

###########################
#
#	text templates
#	DO NOT CHANGE NUMBERING!!
#
###########################

sld.def

###########################
#
#	slider templates
#	DO NOT CHANGE ORDER!!
#
###########################

txt.def

###########################
#
#	text templates
#	DO NOT CHANGE NUMBERING!!
#
###########################

	#text:"<img src=/material/ui/banner%0.mat xscale=stretch top=0 bottom=%1 color=FF%2%2%2><ret><align vstyle=bottom><img src=/material/ui/banner%3.mat xscale=stretch top=%1 bottom=1 color=FF%4%4%4></align><ret><offset vshift=%5><img src=/material/ui/ban_edge.mat xscale=stretch color=%6FFFFFF>"

Vehicle Messages

The next files are in base.scs/def/vehicle and the folders, brakes, chasis and transmission. Should be obvious where each file is in what folder.

brakes_lo0.sii

# brake balance (0 = full rear ... 1 = full front)

chasis_[BUS_NAME].sii

Where [BUS_NAME] is either avenue, generic1, gryphon, niva, remark, schoolbus, sista or velven.

	# The air resistance and the wheel rolling resistance force constant
	# The frontal area of the vehicle for the resistance force computing

transmission_lo0.sii

	# reverse gear
	# forward gears

World Definitions

The next files are in base.scs/def/world.

building.def

#       model path | model_look | model width | model depth

#	model3:"/model/building/rock01.pmd"

#	model5:"/model/building/rock02.pmd"

#	model13:"/model/building/scrapyard.pmd"

#	model15:"/model/building/crib.pmd"

#	model21:"/model/building/san_francisco/san_francisco1.pmd"

#	model29:"/model/building/miami/shop01.pmd"

#	model32:"/model/vegetation/palms/high01building.pmd |    | 16"

#	model38:"/model/misc/darts_road3b.pmd"
#	model39:"/model/vegetation/palms/medium.pmd |   | 12"

	#        scheme name | model_idx1-model_idx2 ... (max 16) 

#	scheme4:"rock01                 |  3"

#	scheme6:"rock02                 |  5"

#	scheme13:"scrapyard             |  13"

#	scheme15:"crib                  |  15"

#	scheme21:"sn_francisco1         |  21"

#	scheme29:"shop1                 |  29"

#	scheme32:"palms1                |  32"

#	scheme38:"darts_road            |  38"
#	scheme39:"palms2                |  39"

bus_stop.def

	//		name				| bus_stop model					| bus_stop collision					| model offset from the origin of the bus_stop	| active plate							| inactive plate							| radius (for checkpoints only)

# Original bus stops - sidewalk variants - for bus stop residing on sidewalk.
# The bus stop plate (ground sign) is a bit below the bus stop model.

# Original bus stops - road varaints - for bus stop directly on road surface.
# The bus stop plate is exactly at the same height as the bus stop model is.

# Newer bus stops.

# The big, bus-station building.

# Very small bus stop, with roof.

# Very small bus stop without a roof.

# Standard bus stop without a roof and without a timetable (target only).

# Standard bus stop without a roof but with timetable - countryside/skycenter busstop.

# Large (but standalone) bus stop.

# The "bus stop" used for start location of each route.
# Does not have model nor inactive plate, thus it is completely invisible in gameplay.

# Police checkpoint models used in prison transport routes.

# End of route which should not be seen when driving different route.

model.def

	# flare path : 			      size_x:  size_y:  angle_cull:  blinking:  visible during day: on_time: off_time:	desync: color

	#       use      |   model path                         |   distance type (optional) 0- close 3 - farest
	#    truck light

mover.def

#		     model                        | animation (optional)    |	sound(optional) | sound distance coef (optional)

particle.def

	#	name, path

prefab.def

#	prefab1:"/prefab/cross/city2x4oneway.pmd"

#	prefab9:"/prefab/fork/city4x2.pmd"

#	prefab13:"/prefab/fork/highway4_5.pmd"
#	prefab14:"/prefab/fork/cityland9x9.pmd"
#	prefab15:"/prefab/cross/city4x4.pmd"

#	prefab17:"/prefab/cross/city5x4.pmd"

#	prefab25:"/prefab/fork/highway9_5.pmd"
#	prefab26:"/prefab/cross/land4x4t.pmd"
#	prefab27:"/prefab/cross/city4x4flip.pmd"

#	prefab29:"/prefab/cross/city2x4oneway_flip.pmd"

#	prefab31:"/prefab/cross/city5x4_2.pmd"
#	prefab32:"/prefab/fork/cityland9x9_2.pmd"
#	prefab33:"/prefab/customs/big_road9.pmd"
#	prefab34:"/prefab/cross/city5x2highway_t.pmd"
#	prefab35:"/prefab/scales/small_oneway.pmd"

#	prefab40:"/prefab/cross/city5x5_2.pmd"

#	new generations of prefabs	

road.def

#		 size_x  size_y  offset_x offset_z   path	

#	                    decal flare col_sizex col_sizey psm path; part material paths

#											ai  actor
#                           road  road   texture texture double  white  center use     lane  lane   one    name
#                           size  offset  left   right   w line  style  line  white/2 count count   way

sign.def

# for more information on possible flare indices look to models.def

		#      sign type | fall | short | decal mat| decal size  | decal off | model path  | nocollide
		#-1 common text  | down | dist  |          |             |	     |
		# 0 no navigation|      |       |          |             |           |
		# 1-3 board count|      |       |          |             |           |

skybox.def

Interestingly, this file references trucks rather than buses. Most likely ported from a previous game.

	# do not change the skybox material order !	

# The skybox model used to create the reflection cube used for world reflections.
# The cube is "truck" centric, as the truck is the most prominent reflective object in the scene.
# We share the model with water box, but supply our own materials.

# The skybox model used to create the reflection cube used for water reflections.
# The cube is "horizon" oriented, with only distant light sources,
# because the water is usually far away from the truck and its local lights.

stamp.def

	#	name | path

target.def

	#define TARGET_GAS			0	
	#define TARGET_SERVICE			1
	#define TARGET_TRUCK_STOP		2
	#define TARGET_SCALES			3
	#define TARGET_DEALER			4
	#define TARGET_HOTEL			5
	#define TARGET_DOCK_HOTEL		6
	#define TARGET_UNLOAD			7
	#define TARGET_CLO			8

tr_light.def

# for more information on possible flare indices look to models.def

	#	     name    | fall_down | model path1 - model path2 - model path3               

vegetation.def

#		  model path

#		       name 	|   models     | road off | road off |  wrap     |   size    |         |         |
#	        		|              | min[m]   | max[m]   |  size [m] | variation | shadows | collide | sort

Material Text

defaults.sii in base.scs/effect/bus.

# Default parameter packets for the effects in the Bus superfamily.

# Default camera - it is under lab's control anyway, rely on defaults.

	# The default matrix (identity) is perfect.

	# Defaults are perfect.

	# ambient
	# diffuse
	# specular
	# es_direction
	# ws_direction
	# Defaults are perfect.

	# Defaults are perfect.

	# Defaults are perfect.

	# Defaults are perfect.

Localization Text

In base.scs/script and cs_cz, de_de, en_gb, en_us, es_es, fr_fr, hu_hu, it_it, nl_nl, pl_pl & ru_ru the file, local.def contains instructions on how to localize and descriptions for each string.

  • Note: local.def in cs_cz doesn't contain instructions - only the descriptions.
# HELP
#
# The first texts for localization start here.
# Do not change anything above.
# Do not change any line starting with '#' character.
# In fact, you are allowed to change only the text in double-quotation marks, nothing else.
#
# In limited cases, there are HTML tags embedded in strings being localized -
# if you see <br> being part of the text, keep it in.
# It is a line-break command.
# Pair of them makes a new paragraph.
#
# In route briefings (see end of this file),
# the local names and bus station names are colour encoded -
# those names are enclosed into backslash-r and backslash-zero pairs,
# like this: "the following word is \rRED\0."
# Keep the colour coding in, it makes briefings more interesting and easier to read.
# Because you will not translate local names anyway,
# it means that you should keep local names alone,
# including their enclosing colour codes.
#
# Read all the comments, they are important.
#
# GLOSSARY
#
# Route - a unit of gameplay, with given goal.
# Tier - a set of 6 routes with similar difficulty.
# Bonus - score addition for successfull or correct action.
# Penalty - score subtraction for rule breach.
# Bus-stop - individual bus-stop.
# Bus-station - large(ish) set of bus-stop on one location, usually with entrance gate.
#

# You must choose character encoding first.
# The value must be one of "cp1252", "cp1250", or "cp1251".
# Code page 1252 ("cp1252") is used for US and many Western languages.
# Code page 1250 ("cp1250") is used for Central and Eastern European languages.
# Code page 1251 ("cp1251") is used for Eastern European languages using Cyrillic ('azbuka').
# Your code page selection has effect on fonts being used by the game.
# You must write all the texts in this file (local.def) using the selected encoding -
# check your Windows setup or setup of your text editor.

# System error messages not directly related to a specific game title.
# It is shown to the user in standalone dialog window if the game failed to start.

# The official name of the game,
# used for game window title and taskbar icon.

# Main/major menu labels.
# They must be pretty short, to fit in the buttons.
# The UI of Bus Driver is designed to use upper-case characters for whole words.

# Quit the game and return to desktop.

# Menu to set up game configuration - graphics, audio, controls.

# Start driving the bus (or go to the route selection menu).

# Purchase the full version of the game (upgrade from trial / demo version).

# Go back to the (main) menu.

# Replay the same route once again.

# Apply the changes to resolution / fullscreen setup.

# Show credits.

# Key names, part of the main menu buttons - Escape (back-in-menu) and Enter (select the current item).
# Again, as main menu buttons, designed to be in uppercase.

# Credits panel and its labels.
# The rest is filled with author names.

# Big, scroll-in panels asking for route-cancel and game-quit confirmation.
# The lines must be manually wrapped to fit the width of the "dialog"/panel.
# They must be completely in upper-case, as the panel font does not contain lower cases.
# They also must not contain any character outside plain ASCII or basic Cyrillic.
# The font has very limited set of characters, due to lack of space.

# Loading screen texts and hints.

# Hints - one liners.

# Options menu - labels.
# Most of them are designed to be all in upper-case.

# Generic 'a feature is turned on' text.

# Generic 'a feature is turned off' text.

# Generic 'a feature is in use' text.

# Generic 'a feature is not used' text.

# Display (resolution, graphics options) panel of options menu.

# Controls (key mappings to actions) panel of options menu.

# Controller panel of options menu - setup of steering wheels and joypads.

# Audio (volume) panel of options menu.

# Display panel - label of entry to choose resolution to run in.

# Display panel - label of entry to choose refresh rate for fullscreen mode.

# Display panel - label of preset of visual quality.

# Display panel - reflection quality and visual quality set to low.

# Display panel - visual quality set to medium.

# Display panel - reflection quality and visual quality set to high.

# Display panel - visual quality set to custom level.

# Display panel - label of run the game in full-screen option.

# Dialog that is present to user after they alter resolution / full-screen mode.

# Used in dialog informing the user that the old settings will revert automatically in XX seconds.
# ui_reverting_in TIME-AMOUNT ui_sec
# Treat it just like prefix and suffix of the sentence.

# Sound panel - label for enable / disable music option.

# Sound panel - label for enable / disable sound effects option.

# Sound panel - label for reverse stereo option.

# Sound panel - volume of music in game.

# Sound panel - volume of sound effects in game.

# Controller panel - label for enable / disable force feedback on joystick / steering wheel.

# Controller panel - sensitivity of steering.

# Controller panel - label of joypad / wheel axis used for left / right steering.

# Controller panel - label of joypad / wheel axis deadzone width.

# Controller panel - "name" of axis if there is none assigned.

# Primary and secondary key to execute given action (open door, honk horn, etc.).
# These are labels of table, and should be visually centred above their columns.
# Check it in game visually, and prepend a few spaces in front, to align it properly.

# Controls panel - no key was assigned to given function.

# key names

# Controller panel - use keyboard - after this text, follows also plus sign,
# and name of the steering wheel or joypad / joystick,
# retrieved from operating system.
# So in the result, the text looks like:
# Keyboard + Logitech Wheel XD-13

# Controller panel - use only keyboard.

# Display panel - default refresh rate in options.

# Controls (control definition panel and help panel).
# In upper-case.

# Action - steer front wheels to left.

# Action - steer front wheels to right.

# Action - throttle / gas.

# Action - brake (or throttle while reversing).

# Action - operate doors (open and close).

# Action - turn on left turning indicators.

# Action - turn on right turning indicators.

# Action - turn on the four-way-flasher (emergency use of blinkers).

# Action - show left mirror.

# Action - show right mirror.

# Action - camera toggle.

# Action - honk the horn.

# Action - generate a screenshot.

# Route selector - tier labels.

# Final debriefing panel labels - generic labels, then route-type specific labels.

# HUD zooming messages.
# They are followed by score value.
# May contain only ASCII characters (or basic Cyrillic), just like ui_quit_confirm message.
# The length is limited - you may use up to 8 characters.

# HUD scroller/panel messages.
# Must be all in upper case, as the font does not contain lower cases.
# May contain only ASCII characters (or basic Cyrillic), just like ui_quit_confirm message.
# The length is not limited (up to reasonable length),
# but try to be terse - our player will read them while driving.

# Bus-stop panel Go/Stop message.
# They must be up to four characters.
# Only uppercase ASCII / Cyrillic.

# Mile-based bonuse - scrolling texts.
# Only uppercase ASCII / Cyrillic.

# Hint provided when being near a bus-stop.
# The program adds the keys used to open doors automatically,
# by pasting ui_open_door_prefix, name of the primary key, ui_or_word, name of the secondary key, and ui_open_door_suffix -
# in this order.
# Only uppercase ASCII / Cyrillic.

# HUD elements (static).
# Intentionally all in lower-case.
# Must be quite short, check them in-game on HUD.

# Label near number of passengers leaving on next bus-stop.

# Label near number of passengers currently in bus.

# Label near number of sitting passengers in bus.

# Label near number of standing passengers in bus.

# Label near number of passengers waiting on bus-stop.

# Label near current penalty / bonus.

# Label near total accumulated score.

# Label on radar - distance towards next bus-stop or check-point.

# Label on HUD - brake intensity.

# Route titles and briefings.
# They are quite length-sensitive.
# The title is written all on one line,
# and must be shorter than approximately 30 characters.
# The title usually contains bus number and some specific identification.
# Briefing is formatted in two paragraphs (most often),
# and contains some description as well as some game-playing hints.
# If you have problem that the translated version is considerable longer
# (roughly, after 360 characters you will reach the point where the text does not fit in the alloted space),
# do not hesitate to shorten the text in very creative ways,
# even by skipping whole portions of it.
# These briefings are for identification, as source of game-play wisdom, and for amusement -
# they rarely contain absolutely vital information.
# Names of bus stops, city quarters and other points are often colour-coded -
# \r is a mark for start and \0 for end of text written in red.
# Keep this colour coding in the translated version -
# it makes the briefing more readable and better serving the game-play.
# Note that names of bus stops and other important locations
# is most likely not localized in your version of the game -
# they are written on various (navigation) signs and panels,
# and you have no method of changing them.
# Thus keep them in English in briefings, too.

# there is no prison2

local_bus_stop.def

Only contained in en_gb and en_us. The files are exactly the same and contain names of cities and towns from the UK...

# Bus stop names.
# Note that some of them repeat -
# it is essential that the names that match remain the same.

#ui_bus_stop133:  		"Battersea"

#ui_bus_stop91:   		"Cheam"

# ui_bus_stop49:   		"Chislehurst"

#ui_bus_stop86:   		"Colindale"

# ui_bus_stop120:  		"Copt Gilders"

#ui_bus_stop85:   		"Cricklewood"

#ui_bus_stop177:  		"Croydon"

#ui_bus_stop147:  		"Euston"

#ui_bus_stop99:   		"Falconwood"

#ui_bus_stop187:  		"Harrow"

# ui_bus_stop157:  		"Hendon"

#ui_bus_stop58:   		"Locksbottom"

#ui_bus_stop551:   		"Noak Hill"
#ui_bus_stop193:  		"North Finchley"
#ui_bus_stop197:  		"Northolt"

#ui_bus_stop88:   		"Palmers Green"

#ui_bus_stop129:  		"Peckham"

#ui_bus_stop158:  		"Plumstead"

# ui_bus_stop124:  		"Potters Bar"

# ui_bus_stop61:   		"Romford"

#ui_bus_stop412:  		"Sanderstead"

# ui_bus_stop71:   		"South Harrow"
# ui_bus_stop123:  		"St. Albans"

advertisement.sii

Contained in all language folders. Again, cs_cz doesn't contain instructions.

# HELP
#
# This file contains scrolling text ("advertising") shown in main menu of the game.
# It specifies both content (messages) and timing of those messages.
# The panel is made of two portions -
# upper line contains scrolling text,
# lower line zooming text.
#
# To localize the game in other language,
# you have to translate the text,
# and adjust the timing to match the new sentence / word lengths.
#
# Each 'advertising' is made of sequence of pairs of messages.
# The game walks those pairs in sequence,
# exactly one second apart.
# If there is a non-empty string in one of the slots
# (scale_msg[] for zooming portion of the panel,
# scroll_msg[] for the scrolling portion of the panel),
# it will start printing the text in given area.
# Empty string means no change to previous state.
#
# Translators may change only the text in double quotation marks.
# The text must be completely in upper-case, as the panel font does not contain lower cases.
# The text must not contain any character outside plain ASCII or basic Cyrillic.
# The font has very limited set of characters, due to lack of space.
# (If you use Cyrillic, you must switch your editor into CP-1251 encoding.)
#
# After you translate the messages,
# run the game and check that the altered message lengths did not spoil the timing.
# If the scrolling message got longer,
# you will need to produce more pairs scale_msg[] / scroll_msg[],
# to compensate for the time it takes to scroll the message through the panel.
#
# Hints
#
# Keep the pace for zooming messages -
# if you repeate a motto several times,
# be sure to maintain the rhythm,
# keeping the same amount of slots in between.
#
# For zooming messages,
# always keep one empty slot between consecutive words -
# it makes the message easier to read.
#


#
# Advertising: "SCS Software presents Bus Driver".
#

#
# Advertising: "Learning how to drive a bus takes time".
#

#
# Advertising: "Check www.busdrivergame.com".
#

#
# Advertising: "Check www.scssoft.com".
#