We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

Bus Driver

From The Cutting Room Floor
Jump to navigation Jump to 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".
#