OSDN Git Service

Year update
[skyscrapersim/skyscraper.git] / readme.txt
1 Skyscraper 2.0 Alpha 10 
2 Copyright (C)2003-2016 Ryan Thoryk
3 http://www.skyscrapersim.com
4 http://sourceforge.net/projects/skyscraper
5
6 Contents
7 1. Legal Notices
8 2. Introduction
9 3. Release Notes
10 4. Building and Installing
11 5. Usage
12 6. Detailed Release Notes
13 7. Contact
14
15
16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17
18 1. Legal Notices
19
20 This program is free software; you can redistribute it and/or
21 modify it under the terms of the GNU General Public License
22 as published by the Free Software Foundation; either version 2
23 of the License, or (at your option) any later version.
24
25 This program is distributed in the hope that it will be useful,
26 but WITHOUT ANY WARRANTY; without even the implied warranty of
27 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
28 GNU General Public License for more details.
29
30 You should have received a copy of the GNU General Public License
31 along with this program; if not, write to the Free Software
32 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
33
34 For more information, see the LICENSE file.
35
36 This software utilizes the FMOD sound system
37 FMOD Sound System, copyright (C) Firelight Technologies Pty, Ltd., 1994-2015.
38
39 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40
41 2. Introduction
42
43 Skyscraper is a 3D virtual building simulator written in C++ using the OGRE graphics engine
44 (previously Crystal Space) graphics engine.  The goal of the Skyscraper project is to create a
45 fully-featured, modular, multiplatform 3D realtime building simulation engine, including
46 gaming support (single and network multiplayer). Everything possible is planned to be simulated,
47 including elevators, stairs, interfloor areas, ductwork, and more, all in first-person 3D.
48 The simulator core is called the Scalable Building Simulator, or SBS. Buildings are stored
49 in scripted text files that are loaded and generated in realtime by the simulator. A
50 graphical building designer application is planned to assist in creating building data
51 files.
52
53 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54
55 3. Release Notes
56
57 This release is the tenth development release of the 2.0 series (which is a complete rewrite of
58 the original 1.0 version), and is part of an ongoing effort towards a 2.0 stable release.
59
60 This software utilizes the OGRE rendering engine library (version 1.8 or later), the Bullet physics engine with some custom patches, the FMOD sound system, the wxWidgets library (version 2.8 or later), and the Caleum sky system addon for OGRE.
61
62 Skyscraper on Windows supports both DirectX and OpenGL (previous versions only used OpenGL).  To switch between them, simply delete the ogre.cfg file in Skyscraper's folder, run the program again, and choose from the OGRE rendering menu.
63
64 See the changelog for a detailed list of new features, fixes, and other changes in this release.
65
66 For third-party texture credits, see the file "license-info.txt" in the "data" folder.
67
68 See the bottom of this document for detailed release notes.
69
70 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71
72 4. Building and installing
73
74 Skyscraper uses the Cmake build system, and also includes Visual C++ project files.
75
76 See the compiling.txt file for information on how to build from source.
77
78 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79
80 5. Usage
81
82 To use Skyscraper, run the program, and a main menu screen will appear with a button for each
83 available building (and one button for loading user buildings). Choose the building to load, and in a few moments you will be walking around in that building. You can press F5 to switch between standard and freelook modes. The only buildings that are completely simulated in this release are "Simple" and "Triton Center". While in one of these buildings, you can click on objects such as elevator call buttons, etc to perform actions.  The recommended building to try out is the Triton Center, since it is the most complete official building, and also the Glass Tower, which has some of the more complex designs.  The "Simple" building is a minimalistic demo to basically show how to make your own buildings in the application's scripting language. Other user-created buildings are included, and can be loaded by choosing the "Other Building" button on the main screen.
84
85 ------------------------------------
86 Keys currently used in the simulator:
87
88 On a Mac, the Control key is the Command key (to the right of the Option key), and Alt is the Option key
89
90 W or Up Arrow - move forwards
91 S or Down Arrow - move backwards
92 A or Left Arrow - move left
93 D or Right Arrow - move right
94 PgUp or P - Look upwards
95 PgDown or L - Look downwards
96 Space - Jump
97 Home or O - Float upwards (or jump if collision detection is on)
98 End or K - Float downwards (or crouch if collision detection is on)
99 F2 - print render statistics on console
100 F3 - Reset camera rotation and zoom to default
101 F4 - Enable/disable wireframe mode
102 F5 - Freelook (mouse look) mode
103 F6 - Full camera reset (respawn)
104 F7 - Show colliders
105 F10 - Fullscreen mode
106 F11 - Take screenshot
107 F12 - Open control panel
108 Shift - Run (hold down with other keys)
109 Control - Walk slowly (hold down with other keys)
110 Alt + arrow keys - Strafe
111 Alt + PgUp/P - Spin right
112 Alt + PgDown/L - Spin left
113 Plus or ] - Zoom in (decrease FOV angle)
114 Minus or [ - Zoom out (increase FOV angle)
115 Esc - exit to main menu
116 V - Toggle noclip mode (gravity and collisions off)
117 B - Binoculars mode (hold down), and reset FOV to default
118 C - Pick up object (physics-enabled models)
119 ; - (semicolon) - Load an additional building
120 1 to 0 - (number keys) - Switch active camera to engine instance number (ex. 2 for building engine 2)
121 Ctrl-R - Reload current building
122 Ctrl-Alt-C - Crash program (throw exception) - used for testing handlers
123
124 --- Mouse actions ---
125 -the selection order of controls (buttons and switches) can be reversed by right-clicking them
126 -elevator shaft doors can be manually opened and closed by holding down the Shift key and clicking on them - note that this only works when the interlocks are released, which can be done in the elevator editor by clicking "Set" next to "Interlocks" on the related elevator
127 -polygons (wall/floor sides) and other objects can be deleted by holding down both Ctrl and Alt, and clicking on the object
128 -doors, controls/buttons, and call buttons can be locked/unlocked by holding down both the Ctrl and Shift keys while clicking on the side to lock, if you have the associated key
129
130 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
131
132 6. Detailed Release Notes
133
134
135 Information for this release:
136 ------------------------------------
137
138 This release has a very large amount of bug fixes and stability fixes, which results in Alpha 9 being the most stable release of Skyscraper yet.  Many fixes were intended to make Skyscraper stable for dynamic creation and deletion of objects during runtime, in anticipation for a building designer.
139
140 Most objects can be deleted by pressing Ctrl and Alt together, and clicking on the object.  On a Mac, the keys are Command and Option.  Previously only the Ctrl key was used, but this caused interference with the Ctrl walking modifier feature.  Controls and Call Buttons can now be deleted this way.
141
142 The lock/unlock feature is now done by pressing Ctrl and Shift together, and clicking on the object.  Previously just the Shift key was used, but this change fixes interference with the shift running modifier.
143
144 A new building called Underground has been added, which has been used for scalability tests to enhance the simulation engine.  This building features an extremely large underground environment, with very fast elevators.
145
146 Skyscraper has supported loading standard OGRE mesh models since the Alpha 8 release.  A couple couches and keys are loaded in the Simple building as an example, and there is a couch on the roof of the Triton Center to demonstrate physics.  See this forum thread on how to create models using Google Sketchup:
147 http://forum.skyscrapersim.com/index.php?topic=5556.0
148
149 To optimize rendering speed, the main thing that will cause overall slowdowns is the type of texture filtering used.  The better the filtering, the better the visual quality but the slower the app.  Skyscraper defaults to anisotropic filtering at level 4.  Lower-quality filtering is available too in the forms of bilinear and trilinear filtering, so to improve rendering performance, either lower the anisotropic level in the INI file or switch to a different filtering method.  Also, the Vsync option normally locks the FPS at 60, but can cause abnormal slowdowns that can decrease the framerate below what it should (such as an FPS reading of 30 with vsync on, while one of 40 with it off).  These options can all be set in the INI file.
150
151 Caelum is used to create dynamic skies, including moving clouds, moving sun and moon, effects like fog and rain, stars at night, etc.  To use Caelum, choose (or create) a sky function from the data/caelum/sky.os script, and either add it to your building script using the DynamicSky command or in the INI file with the SkyName parameter.  See the script guide (designguide.html) for more information on the available options.  The Caelum sky-related time multiplier can be set in the Camera Control box, in order to quickly show day/night cycles.
152
153 To revert back to the old sky system, turn off Caelum in the skyscraper.ini file using the Skyscraper.Frontent.Caelum option.
154
155
156 Major changes since the Alpha 8 release:
157 ------------------------------------
158
159 Ogre 1.8.1 is now used instead of 1.7.4, which Alpha 8 used.  Model mesh files need to be upgraded to the newer format to prevent warning messages on startup - they'll still work fine though.
160
161 A pool has been added to the Triton Center, on the Pool level (132).  This floor can be accessed by the Pool Express elevator in the Hotel (80) and Residential (100) skylobbies.
162
163 The Triton Center now has railings, and also displays interfloors along with shaft lights in the core utility shaft, accessible by a door on the subbasement (S) level.
164
165 For the Glass Tower, the atrium base is now the Atrium level (previously mezzanine) to match movie depictions of the Hyatt Regency and Bank of America buildings.  The neighboring fictional Peerless Building was also made, based on a spotting blueprint.
166
167 The StairsShowFloors and ShowFullStairs commands have been added, which allow stairwells to display multiple or all levels if in that stairwell.  This is used in the Triton Center's West Stairwell (serves floors 80-119) allowing you to look down the center of the whole stairwell.
168
169 More detailed information is shown in script error messages, and also in the Object Manager for each object.
170
171 Performance improvements were made for buildings with thousands of floors or very fast elevators.
172
173 Names can be used for variables instead of just variable numbers.  It's recommended to change any scripts that use numbered variables to the newer named format, to make script code easier to read.
174
175 When inspection mode is disabled in an elevator, the elevators now automatically re-level to the nearest floor.
176
177 A window has been added in the Object Manager to move objects such as models and walls.  To move an object (in this example I'll move a couch in the Simple building), first start Skyscraper and choose the Simple building.  Move into the building and look at both couches.  In the control panel, click "Object Manager", click the arrow next to "Floor 0" to expand it, scroll down, and click on one of the "Couch" entries.  Now click the Move button below, and you're now able to move and rotate it.
178
179 Elevator button texture sizing parameters have been fixed - this may break button positioning in existing buildings that have values other than 1 or 0 for the button size, but so far it seems to be limited (and is easily fixed if you just put in the correct value).
180
181 The simulator now fully supports manual elevators and platform lifts.
182
183 Elevators support constant-pressure (hold) open and close buttons.
184
185 Elevator fire modes have been reworked for full realism.
186
187 Elevators now use interlocks for all doors; to manually open and close doors, interlocks must be disabled first in the Elevator Editor, and then shift-click can be used to open/close them.  If interlocks are enabled, the elevator will not move unless all associated shaft doors are closed.
188
189 A new console window has been created, and all logging in this window is put in the skyscraper.log file.
190
191 The RenderOnStartup option has been added to the INI file, which if enabled, lets you view the building as it's being build.  This results in a very slow startup, but is interesting.
192
193 While statements have been added, and functions can be called from both If and While statements.
194
195 Nested functions are now supported, and use a basic stack system for switching between contexts.
196
197 Elevator door sensors have been added, which is enabled by default for all automatic doors.  Door sensors are automatically created triggers, sized in the elevator's internal door area with 1/4 of the character collider's width surrounding it for room.  Two new elevator commands were made which are used by it's action, and are "sensor" and "reset".  When a user passes into the sensor's trigger area, the "sensor" command is run which opens and holds the doors.  The "reset" command simply calls a function that has existed before, that resets door timers to disable a door hold.  The door sensors can be switched on and off in the elevator editor.
198
199 The selection for controls (button and switches) can be reversed by right-clicking on them.
200
201 Floor signs now take the shaft door vertical offset into account when being created.
202
203 Call buttons are now created with directions based on the combined range of all elevators, instead of just the first one specified.
204
205 A binoculars feature has been added, which can be toggled with the B key.  Pressing the B key will also reset the camera's field of view (FOV).
206
207 The interfloors adjacent to the current active floor are now shown, which follows the original design.
208
209 Elevators now support a separate emergency stop speed multiplier, along with car and motor sounds that are played during an emergency stop.
210
211 A "List Textures" button has been added to the control panel, which lists all loaded textures from the texture tiling information table, along with the related filename.
212
213 The internal sound code now supports sound queuing, which now makes the floor sounds and message sounds all play in their initiated order, one after the other, instead of simultaneously.
214
215 Call buttons now support sounds.
216
217 The elevator floor indicators and beep sounds have been revamped to update the floor number while they're passing the floor or beginning to level instead of when the elevator's base is located within that floors range, making them more realistic.
218
219 The elevator editor's floor selector now only shows the related serviced floors.
220
221
222 Modified keys:
223 -------
224 Ctrl-Alt-click - delete objects (previously Ctrl-click)
225 Ctrl-Shift-click - lock or unlock objects
226 Shift-click - toggle call button status
227 -------
228
229
230 New commands/parameters:
231 FloorInfo
232 ListTextures
233 StairsShowFloors
234 ShowFullStairs
235 ShaftShowFloors (new parameter)
236 ShaftShowInterfloors
237 DynamicSky (fixed for Caelum)
238 AutoDoors
239 OpenOnStart
240 Delete
241 RunAction
242 GotoFloor
243 OpenMessage
244 CloseMessage
245 While statements
246 FinishDoors (new filler walls parameter)
247 FinishShaftDoors (new filler walls parameter)
248 AddActionParent
249 RemoveActionParent
250 AddCustomFloor
251 EndPoint
252 AddFloor (parameter fix)
253 Interlocks
254 FloorHold
255 DoorSensor
256 CarEmergencyStopSound
257 MotorEmergencyStopSound
258 EmergencyStopSpeed
259 CreateCallButtons (new sound parameter)
260
261 New elevator actions:
262 OpenInt
263 CloseInt
264 OpenExt
265 CloseExt
266 OpenManual
267 CloseManual
268 OpenIntManual
269 CloseIntManual
270 Return
271 Up
272 Down
273 InterlocksOn
274 InterlocksOff
275 Sensor
276 Reset
277 SensorOn
278 SensorOff
279
280 New advanced math functions:
281 cos
282 sine
283 tan
284 acos
285 asin
286 atan
287 atan2
288 sqrt
289 abs
290 exp
291 log
292 log2
293 log10
294 mod
295 hypot
296 ceil
297 flr
298 rnd
299 round
300
301
302 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
303
304 7. Contact
305
306 Bug-Reports, suggestions, and requests should be posted to
307 the Skyscraper forum at http://forum.skyscrapersim.com
308 I can be contacted directly at ryan at skyscrapersim.com
309