diff --git a/CHANGES.txt b/CHANGES.txt new file mode 100644 index 000000000..5ea804f47 --- /dev/null +++ b/CHANGES.txt @@ -0,0 +1,270 @@ +Speed Dreams changes since 1.4.0 + +Here are the summarized changes since 1.4.0 +(More details for associated milestones 2.0.0 and 1.4.1 here : + http://sourceforge.net/apps/trac/speed-dreams/report/6) + +Dxx ids refer to tasks "specified" and listed here : +http://sourceforge.net/apps/trac/speed-dreams/wiki/BigFeatureList + +... among the planned ones for 2.0.0 : +http://sourceforge.net/apps/trac/speed-dreams/wiki/ActualFeaturePlanFor20 + +More technical details about the work in progress for some tasks here : +http://sourceforge.net/apps/trac/speed-dreams/wiki/TheWayToRelease2 + +2.0.0 Alpha 1 ----------------------------------------------------------------------------- + +This release was build from SVN https://speed-dreams.svn.sourceforge.net/svnroot/speed-dreams/tags/2.0.0-a1@2720. + +Tracks: +* A32, A16, A17, A19, A22, A24 : HQ texture rework + renaming + localization + for Alpine-1 (=> Allondaz), GTrack3 (=> Charmey), Manton (=> Michigan Speedway), + ETrack6 (=> Espie), ERoad (=> Prenzlau) +* Texture improvements + localization : Aalborg, Forza, Forza, Migrants, Ruudskogen, + Corkscrew, Olethros Road, Wheel1 +* Texture improvements : GTrack1, Brondehach +* new Goldstone Sand (Silverstone Arena) track +* many new work-in-progress tracks (won't be all in 2.0.0, only release grade ones) + +Cars: +* T01 : Work in progress LS1 setups rework +* A10 : Work in progress LS1 liveries HQ rework +* A05, A06, A08 : Improved visual realism / HQ for SC Cavallo 360 +* A14 : Work in progress Rally car set (draft-level physical setups) +* A42 : Work in progress MP5 (was GP 1600) car set +* improved car model file/folder names consistency + +Robots: +* D16 : Adapted Simplix and USR to the new Career mode +* Simplix improvements + +Menus: +* D30 : Player Config and sons : + - removed player car choice (becomes a race-time choice) + - added customizable steering speed sensitivity +* D29, D30 : Driver Select and sons (D29 & D30) : + - added skin selection and preview (may only remain for human players in the future) + Note: Only one car has previews for the moment : SC Lynx 220. + - added "Car Selection and Settings" menu behind the "Change car" button, + with skin selection and preview + quick car data sheet + (work in progress : hard coded constant Overall ratings) +* Options : added options to customize Simulation and Graphic features + +Race engine / screen: +* Display average frame rate in the race screen +* Spit screen mode (multiplayer) : + - 'TAB' key switches to active screen, + - sound follows the active screen selection consistently, + - wider 3rd screen in 3-way split screen, + - split screen configuration is now saved / restored between races. +* D13 : Dual-threaded race engine with CPU affinity + (can be toggled on/off in the Options / Simulation menu) + First tests show FPS gains mainly when many opponents on medium to high end configurations, + but CPU affinity seems to be very usefull under Windows XP (nearly no use with Linux 2.6). +* D19 : Rain simulation (visual effects + work in progress grip management) +* Customizable weather / time of day for the sky dome + +Simulation engines: +* D48 : Work in progress Simu v2.1 (same a Simu V2 for the moment) +* Simu V3 won't be adopted as the official physics engine : we'll improve Simu V2 + into Simu V2.1 in the short 2.x term, while targetting at a brand new Simu V4 + in the medium term. + +Other: +* D04 : CMake build system +* D03 : Replaced GLUT by SDL +* D16 : New "Career" race mode +* D17, D26 : Work in progress network/online race mode +* Improved keyboard steering behaviour (+ customizable sensitivity) +* D05 : Added JPEG image support for car and tracks previews in menus. +* D06 : Removed compile time dependency on ALUT +* Moved Windows build to modern DLL interface (no more .def files) +* D11 : Support for multiple cars with same 3D model .acc/.ac file +* D08 : Work-in-progress code profiling + (see http://sourceforge.net/apps/trac/speed-dreams/wiki/CodeProfiling) + + +Known issues : see http://sourceforge.net/apps/trac/speed-dreams/report/2 (version 2.0.0 alpha1). + +------------------------------------------------------------------------------------------- +Below is archived uncomplete / obsolete content, but sometimes with more details than above. + +Detailled changes on sdl-port branch since creation (branched from trunk SVN 70) : + +Foreword : sdl-port branch is aimed at being regularly merged from trunk up to 1.4.0 is out, + so you should first have a look at trunk CHANGES file : + you will find here only sdl-port-specific changes. + + History of merges from trunk : + - 2008/12/04 : up to revision 378 (Mart) + - 2009/02/15 : up to revision 729 (Jean-Philippe) + - 2009/06/22 : up to revision 996 (Mart) + - 2009/07/14 : up to revision 1107 (Jean-Philippe) + - 2009/07/30 : up to revision 1220 (Mart) + - 2009/10/13 : up to revision 1576 (Mart) + - ... + +Tracks: +- added Salty road track by Gabor (Xavier) +- added cameras & turnmarks to Longday (Gabor) +- added Petit gprix track by Gabor + +Cars: +- added GP4 converted cars (3D models), but still needing real setups (Xavier) +- added Nascar cars (3D models), but still needing real setups (Xavier) +- +- set fictious brand and model names for all cars, based on ideas from the whole team, + to avoid legal issues ; the real brand name replacements follows (Andrew, Jean-Philippe) : + * Alfa Romeo => Milano + * Aston Martin => Archer + * Auto Union => Motor Union + * Audi => Vieringe + * Bugatti => Ettore + * Any GM brand => Deckard, except for Corvettes, which will be Vultures. + * GM/Corvette => Vulture + * Dodge => Taipan + * ERA => Century + * Esperante => Sprite + * Ferrari => Cavallo + * Ford => FMC (F stands for ... um ... something) + * Honda/Acura => Murasama + * Jaguar => Lynx + * Lambo => Ciclone + * Lotus => Spirit + * McLaren => Conner + * Maserati => Tridenti + * Mercedes => Silber + * Mitsubishi => Minato + * Nissan => Kanagawa + * Peugeot => Lion + * Porsche => Boxer + * Subaru => Kenji + * Toyota => Aichi + * TVR => RCM (Russian Car Manufacturer) + * Lister => ? (a Storm model for LS1 is simply called the "Fury") + * Mosler => ? + * Saleen => ? + * Venturi => ? + * Fiat => ? + * ? => Sector + * ? => Zaxxon. + +Robots: +- +- enabled Simplix and USR robots to be members of mixed teams, + through new team management interface in RobotTools (Wolf-Dieter) +- added Kilo robots (needs more love) (Gabor) + +Menus: +- added controls for time of the day and weather settings in quickrace + and practice race configuration menu - work in progress (Xavier) +- added a "Credits" multi-page menu to list all contributors, contributions + and 3rd party libs / code / software we use. +- resurected the "Configure player" button in the Raceman menu, to avoid returning + to the Main menu for that (Jean-Philippe). +- select the first available player by default when entering the player config menu + (Brian). + +Program: +- applied the good old SDL patch from Brian Gavin (Xavier) +- fine tuning of the event loop to process ALL pending events + before re-displaying (fixes lags and delays in mouse movements) (Jean-Philippe). +- fixed localized keyboard support through SDL unicode (Jean-Philippe, Brian, Mart) +- fixed splash screen crash on 7s time-out (Jean-Philippe) +- added F1 / F12 / ESC / Return shortcuts in some menus where lacking (Jean-Philippe) +- fixed detection and use of multi-sampling (for anti-aliasing) + when available (Jean-Philippe) +- restored key auto-repeat in menus (Jean-Philippe) +- restored texture compression detection (Jean-Philippe) +- applied Cmake patch by Mart Kelder and ported it to Windows (Mart, Brian) + * smart cmake multi-platform build system (even Windows + MSVC built-in support), + * speed-dreams and other programs are now executables (no more scripts) + which is nicer for debugging/profiling/... + * very fast unified make install (no more so slow make install and make datainstall) +- added multi-platform xmlversion user settings files installer at run-time, + to replace old system where these files where overwriten after each build/install + even if no associated change had occurred (Mart, Jean-Philippe). +- fix build install system not stopping on xmlversion errors + (ex: when a versioned xml file is not loadable, it's installation/update fails, + cmake printed some error lines, but the install process was not stopped, + and if you didn't see these lines in the hundreds of other traces, + you were likely to get a crashing Speed Dreams without any simple explaination). +- fixed CPU slow-down system also activated in race mode (Jean-Philippe) +- added new sky dome and time of day simulation via PLIB::ssgaSky, + featuring really nice skies, even at night with stars and moon, + and also allowing night races as an example - work in progress (Xavier) +- first attempt of rain simulation (water projections behind tires, rainbow visualization, + reduced grip) - work in progress (Xavier) +- fixed ultra-slow game in qualification blind mode (something around SDL IdleFunc, + seems CPU does nothing whereas it should run 100%) (Jean-Philippe) +- fixed results not being saved at the end of the race because results dir + not created in user settings dir; and also screenshot system not working + for the same reason (screenshot dir not created) (Gabor). +- optimized race results' update & sorting through the use of STL vector (Gabor). +- race results now include pointer how much position the driver gained or lost, + from his starting position (Gabor). +- merged career-port to this branch (Mart) +- don't load graphics in results-only mode (Mart) +- added split times (Mart) +- added 10 second stop and go penalty (Mart) +- added feature lists for robots: features are only enabled when all the robots in the + race implemented it (Mart) +- added timed sessions (Mart) + +- new modes for the race screen leader board (Gabor) + * vertically scrolling : list of competitors, text in associated color, + * horizontally scrolling : just as on TV. + Note: Already merged in trunk. +- new mode for the debug board (Gabor) + * display segment name, distance form start, current camera +- exhaust fires shown when RPM drops (Gabor) + + +Other: +- + + ***************************** + + +CURRENT (some of these may slip to post-1.5.0): +----------------------------------------------- + +Tracks: +- + +Cars: +- +- fix out of bound setup parameters for SuperCars +- change TRB1 tyre textures to the new slick ones by Haruna Say + +Menus: +- menu background image refresh in NG variants by Eckhard M. Jager - Work in progress +- remove remaining real brand/model names and logos from textures + (sc-nsx, 36 GP, ...) +- remove Torcs references from textures +- move Torcs-NG references to "Speed Dreams" +- improve 36GP car gauges textures + +Robots: +- + +Program: +- F2 camera "driver" views modified to look in the direction the car's turning + - Still to be improved as you quickly feel sick about it (Andrew). +- Sky and day time management through plib/ssgsky (Xavier) +- First simple attempt to simulated rainy weather with fog (plib/ssgsky) + and reduced track friction (Xavier) +- More GCC 4.3 compatibility (Mart, Jean-Philippe) +- tests and bug fixes. + +Sourceforge.net: +- setup bug tracker at least for the beta/rc release +- upload nice screen shots + +Other: +- + +=> Release 1.5.0 (end of 2009 ?). + + diff --git a/COPYING.txt b/COPYING.txt new file mode 100644 index 000000000..726b93c22 --- /dev/null +++ b/COPYING.txt @@ -0,0 +1,342 @@ + + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/INSTALL.txt b/INSTALL.txt new file mode 100644 index 000000000..121e25aab --- /dev/null +++ b/INSTALL.txt @@ -0,0 +1,241 @@ +Table of contents +----------------- + +I - Pre-requisites + +II - Linux Installation from Sources + + 1 - Introduction + 2 - Runtime options + 3 - Getting Help + 4 - Installation from all in one Tarball + 5 - Installation from SVN + +III - Windows Installation from Sources + + 1 - Cmake and MS VC++ 2005 (8) / 2008 (9) on Windows XP 32 + 2 - MS VC++ 6 no more supported + +IV - FreeBSD Installation from sources (Work in progress) + +V - MacOS X installation from sources (TODO) + + + +I - Pre-requisites +------------------ + +WARNING: On Windows, be carefull to compile anything for multithreaded DLL integration (/MD & /MDd) + +- Working OpenGL Driver and header files / associated libraries +- SDL 1.2 (http://www.libsdl.org/) +- PLIB 1.8.3 / 4 / 5 (http://plib.sourceforge.net/). + Linux: Be carefull to compile plib with -fPIC on AMD64 if you run a 64 bit version. +- OpenAL soft 1.5 / 1.6 / 1.11 (http://connect.creativelabs.com/openal) + (Torcs modified 0.0.8 from www.torcs.org also used to work in the past). +- ENet 1.2 (http://enet.bespin.org) + Linux: Be carefull to compile ENet with -fPIC on AMD64 if you run a 64 bit version. +- libpng +- zlib +- jpeg + +II - Linux installation from sources +---------------------------------- + +1 - Introduction + +There are several ways to install Speed Dreams: +- from all in one tarball. +- from modular packages. +- from SVN (just for developers!). + +Pick just one of the above options. If you have trouble during the installation +have a look in the FAQ on the above sites. In case you get stuck learn how to report the +problem in the FAQ before you file a bug or contact us. Have fun, + +The Speed Dreams Team. + + +2 - Installation from all in one Tarball + + a - uncompress the tarball : + + $ tar xfvj speed-dreams-xxx.tar.bz2 + + b - configure : + + 1. cd to the path where Speed-dreams sources are installed. + + $ cd + + (ls should show you data/ doc/ src/ INSTALL ...) + + 2. run CMake : + + - for a Release build using default 3rd party libs + + $ cmake . + + - you may also want to override some default settings : + + for that you can use the -D option of cmake : + + Example : + + $ cmake -D TORCS_LOCALDIR:STRING=~/dev/.speed-dreams \ + -D CMAKE_INSTALL_PREFIX:PATH=/usr/local/dev \ + -D CMAKE_BUILD_TYPE:STRING=Debug \ + -D OPTION_DEBUG:BOOL=ON + + or else you can use ccmake to change the variables interactively : + + $ ccmake . + + * press (t) for advanced options if needed + * in order to change a variable : + * select the associated line using the up/down arrow keys + * press (enter) + * edit the value + * press (enter) + * press (c) for configure + * press (g) for generate + * press (e) to exit + + + Usefull CMake variables for Speed Dreams : + + - TORCS_LOCALDIR:STRING : User settings dir for run-time (def: ~/.speed-dreams) + - OPTION_DEBUG:BOOL : Full run-time traces if ON (def: OFF) + - CMAKE_INSTALL_PREFIX:PATH : Install path (def: /usr/local) + - CMAKE_BUILD_TYPE:STRING : Debug, Release, RelWithDebInfo, MinSizeRel (def: Release) + + Tips reported about some issues : + - sometimes, ENET_INCLUDE_DIR is not detected correctly, resulting in something like + /usr/include/enet or so, and, consequently, in bad compilation errors because + /usr/include/enet contains a special time.h header file that conflicts with the standard + one in /usr/include. Removing the "enet" postfix from ENET_INCLUDE_DIR should fix this + (in cmake command line or interactively in ccmake). + + c - build and install: + + Simply use: + + $ make && sudo make install + + d - run Speed-Dreams + + if default CMake settings were kept, Speed Dreams is normally installed in /usr/local : + + $ speed-dreams + + or, if /usr/local/bin not already in your PATH : + + $ /usr/local/bin/speed-dreams + +3 - Runtime options + +* -m Use hardware mouse cursor (better on full-screen mode) +* -s Disable muti-texturing (runs faster) + +4 - Getting Help + +During the game press F1. For more in depth information visit www.torcs.org, +you find there a lot of information, look at the documentation section on +the left, have as well a look into the list of howto's. +If you are stuck please report problems through speed-dreams-users mailing list +or the Tracker (visit for that). + +5 - Installation from SVN (developer level only !) + +Before you start make you aware that the SVN trunk / branches might crash or even not compile +sometimes. If you want to get it anyway, follow the instructions at +http://sourceforge.net/svn/?group_id=239111 + +For the moment, +- the developments for the next release are located in the trunk ; + you can checkout the current _development_ state through : + svn co https://speed-dreams.svn.sourceforge.net/svnroot/speed-dreams/trunk speed-dreams-trunk +- we make branches under the "branches" root dir ; as an exemple, + you can get the "1.4.x" release maintenance branch current state through : + svn co https://speed-dreams.svn.sourceforge.net/svnroot/speed-dreams/branches/1.4.x speed-dreams-1.4.x +- we make release tags under the "tags" root dir ; as an exemple, + you can get the "1.4.0" release through : + svn co https://speed-dreams.svn.sourceforge.net/svnroot/speed-dreams/tags/1.4.0 speed-dreams-1.4.0 + +See configure, build and install method above (2) +(note however that branches/1.4.x and tags/1.4.0 are not built through cmake : + please refer to the dedicated INSTALL file for these). + + +II - Windows installation from sources +--------------------------------------- + +1) Cmake and MS VC++ 2005 (8) / 2008 (9) on Windows XP 32 + +Note: If you use an "Express" version, don't forget to install also the Windows SDK. + + a. Install CMake v2.6+ http://www.cmake.org/cmake/resources/software.html + b. Download the "MSVC 2005" release of the "3rdParty" package on SF.net + http://sourceforge.net/project/showfiles.php?group_id=239111 + (it contains necessary 3rd party libs compiled with/for MSVC 2005) + c. Extract from the zip file the "3rdParty" directory to directory level where speed-dreams is installed. + Example: If sources are in c:\sdl-port, then extract 3rd party zip in c:\ => c:\3rdParty directory. + d. Startup CMake and set "Where is the source code" and "Where to build the binaries" + to the path where Speed-Dreams sources are installed. + Example: If sources are in c:\sdl-port, specify c:\sdl-port for the 2 fields. + e. Press "Configure" button and select the desired compiler. + Re-press the "Configure" button until the "OK" button is no more greyed. + f. Press "OK" button. CMake will generate the solution file "speed-dreams.sln" + and associated project files (*.vcproj) + g. Load speed-dreams.sln in MSVC IDE. + h. Build the whole Solution (Build / Build Solution) + i. Build the INSTALL project (right click on it and select Build). + j. Double-click on speed-dreams.exe in c:\Program Files\speed-dreams\bin + + Note: You might also have to install MSVC 2005/2008 redistribuable (ask M$, yes it's free !) + + Note: This should also work with MSVC 2008. For MSVC 2003, you'll probably need to rebuild + a dedicated 3rdParty package for this compiler + + Note : If you need to recompile the 3rdParty package from sources, + (the "Sources" release of the "3rdParty" package on SF.net Download page) + be carefull then to rebuild : + - everything possible + - for the same configuration (don't mix Release and Debug) + - everything for multithreaded DLL integration (/MD & /MDd), + or be ready for headaches. + + +2) MS VC++ 6 no more supported. + +III - FreeBSD installation from sources +--------------------------------------- + +Mostly the same as for "Linux installation from sources" ... + +Some specific details though : + +2 - Installation from all in one Tarball + + b - build and install: + + 1. cd to the path where Speed-Dreams sources are installed. + 2. ccmake . + 3. press (t) for advanced options + 4. wanted rows CMake CPPFLAGS + 5. press (enter) + 6. add /usr/local/include + 7. press (enter) + 8. press (c) for configure + 9. press (g) for generate and press (e) + 10. make && sudo make install + + + TO BE COMPLETED + + +IV - MacOS X installation from sources +-------------------------------------- + +To do ... + diff --git a/README.txt b/README.txt new file mode 100644 index 000000000..fd5189e6f --- /dev/null +++ b/README.txt @@ -0,0 +1,72 @@ +Introduction +------------ +This is an all in one package of Speed Dreams. Be aware that some included +artwork has non free (in the GPL sense) licenses, you will find a "readme.txt" +in those directories. +The rest is either licensed under the GPL V2 (see COPYING.txt) or the Free Art License. + + +Non-Free content (in GPL sense) +------------------------------- +Here the list with the directories containing non free content, look at the +readme.txt for details: +- + + +Changes since last release +-------------------------- +See CHANGES.txt + + +Things that are still to be done, ideas to be ... +------------------------------------------------- +See TODO.txt + + +Installation instructions +------------------------- +See INSTALL.txt + + +Testing +------- +If you find problems which should be already fixed or new ones +please report them to the speed-dreams-users mailing list. + + +Getting Help +------------ +During the game press F1 +(do it as well during the ride to learn about the options). + +For more in depth information visit http://www.speed-dreams.org, +you'll hopefully find there some information (documentation, HOWTO, FAQ ... work-in-progress). + +If you are stuck please report problems through speed-dreams-users mailing list +or our Tracker (visit http://sourceforge.net/apps/trac and login to SF.net for that). + + +Car Setups +---------- +For the human player driver, the car parameters are located in the files : +- Linux : ~/.speed-dreams-dev/drivers/human/car*.xml +- Windows : \speed-dreams-dev.settings\drivers\human\car*.xml +depending on the car used. You can change them with a text editor, +for more information look into the robot tutorial chapter 5 +(http://www.berniw.org/torcs/robot/ch5/properties.html). + + +Creating Tracks +--------------- +There is a track editor in development, have a look at http://www.vmarti.es + + +Robot programming +----------------- +You find a robot programming tutorial on www.berniw.org in the TORCS section. + + +Robot racing +------------ +Visit www.berniw.org/trb for more information. + diff --git a/TODO.txt b/TODO.txt new file mode 100644 index 000000000..f29375824 --- /dev/null +++ b/TODO.txt @@ -0,0 +1,161 @@ +Top TODO list (some may be included in 1.5.0, some others not): +--------------------------------------------------------------- +Foreword: Have a look first at trunk TODO : here, only sdl-port specific things. + +Cars: +- move RGB files to PNG for lower disk footprint +- create textures for nascar-* (Eckhard) +- improve damage management (see Andrews ideas in the the devel list, + under the title "Thoughts on collision damage"). +- fix to high wheel inertia on many (if not all) models. + See the devel list post "Low speeds". + +Tracks: +- move preview images to JPEG for lower disk footprint + +Menus: +- enable intuitive double-click for "Select/Unselect" action in the scroll-lists + of the driver select menu +- new menu for human driver car setup : may be only a reduced set of parameters + would be accessible first, with default values for others ; some thinking work + about which go in this set wand which don't. +- Go on with Brian's XML menu infrastructure : + * move new guimenu.h/cpp functions Create*, Get*, Load*, Read* + to a new dedicated source file (guixml.h/cpp ?) + * rename these functions to be consistent with Gfui API (add a GfuiXML prefix ?) + * add support for keyboard shorcut XML description + (with defaults like for F1, F12 ... and also customizable ones). + * add support for dynamic background image. + * add support for menu specific property/value in the XML file, + to remove hard-coded constants from the menu C++ code + (Ex: x, y positions for non-always there controls ... see creditsmenu.cpp) + * move the whole thing to a GfuiXMLMenuDescriptor class, for nice access + to menu properties, controls, objects ... by their name or index (in the XML file) + +Robots: +- + +Program: +- Simu V3 : integrate Christos' improvements from Torcs CVS HEAD : + * 1. Discovered that corner velocities are not correctly calculated + 2. Stabilised CollideZ() code - removed corner velocity from calculation + of reaction forces. + * updated the viscous coupler so that it is symmetric (July 2009) + * Changed some things in the rolling resistance calculation (July 2009). + Now it works as advertised, i.e. sand is sticky! +- network gaming - work in progress (Brian) +- More GCC 4.3 compatibility (Mart, Jean-Philippe) +- fix game crudely exiting in several situations where an error message to the user + (or simply skipping the requested action) would be preferable : + * start a race with no driver + * start a race that uses a driver that is no more in the install tree + * start a race on a track that is no more in the install tree + (by skipping the "Configure Race" step) +- enable the user to save race configuration (track, drivers and cars) + for any race type, and to reload it later from the associated XML file list +- just load ssggraph once to avoid weird crashes when going back to the options + menu and coming back to the race (just the Linux version was affected, and even + this just under special conditions, the Windows version does not work the same + way concerning this) - Back-port from Torcs r1-3-1 branch +- as we want to increase the details (cars, tracks, ...), think about better and deeper + management of the level of detail, filtering-out objects that are not in the focus + of the camera (if not already done somewhere ?), from a "high" level for close objects + to a "low" level for very far objects, with 1 ou 2 intermediate distance levels. + As an example, use the auto-generated 3D wheel model for low levels (decrease its details), + and the designer-shipped one for high level (increase its details : more round wheels). +- replay feature - Work in progress by Adam Skoblinski +- break the 1-1 link between human drivers and their driven car = enable human driver + to choose their car when choosing the opponents = in race configuration ; beware of + the career mode where human module interfaces are used in a non-obvious way + (look at thread "Driver select bug in sdl-port" in the devel list for Mart's + explainations about it, and how the above can be done in a simple way). + +Other: +- finish the Mac OS X port (with CMake) : ~95% done. Compiles completely but does not run. + Plib is the biggest source of headaches. CMake integration still unfinished in that way. +- get rid of the Windows .def files stuff (through MS dllimport/dllexport macros) + for defining shared libraries interface, except for the robots, for which these files + are automatcally generated in the sdl-port branch (through a CMake macro). +- fix Windows main.cpp::init_args setting local dir twice if command line specified + (the default value in should only be set if not command line specified) +- think about how to integrate Haruna's fictious racing teams backstories in the game + (ex: LS1 in 'LS1 team "backstories" (for fun)' devel list post) + +TODO for 1.5.0 or after (some are current on sdl-port and career branches) +-------------------------------------------------------------------------- + +Tracks: +- move all track dirs that are directly under data/tracks to data/tracks/road, dirt, ... + in the repo, and update CMakeLists.txt + +Cars: +- move textures to PNG for saving disk space / download time +- create / setup new LMP1 car set (Andrew) +- setup new Indy car set (converted by Xavier from GP4 game) +- complete / setup F1 car set (including Formula One by Andrew Sumner, + F1-torcs by Vincente Marti, and models converted by Xavier from GP4 game) + BUT: what about Manfariel's F1 2009 models? +- get rid of real car manufacturer names (replace by fictious but user-firendly ones) +- get rid of real brands / logos (replace by fictious / GPL / FAL ones, but beware of the logos + often being non GPL/FAL-like licensed) +- add petrol, bewy and mf1 to SuperCars set, as proposed by Wolf-Dieter + BUT: There are still no front-engined cars!! +- check in the Pacejka book to see if the way mu is computed from tire load + (= tire load sensitivity) is OK (simu V2 / wheel.cpp / SimWheelUpdateForce function) +- setup / test new LS1 car set (Haruna, Andrew) +- ALL CARS: Check competitive balancing of all carsets once physics engine is switched over to + simuv3 rather than v2; should be done on a regular basis. +- ALL CARS: create LOD models to reduce graphical stress in big-grid races or on low-spec CPUs + (or worse, both :/) +- rework the current stock car model to the newer model 'Car of Tommorrow' +- Hillclimb car with over 800 bhp? + BUT: Is it fun? +- increase volume of backfire sound and gear shift sound + +Robots: +- setup USR and Simplix robots for reworked 4WD carset. +- setup USR and Simplix robots for new LMP1 carset. +- setup USR and Simplix robots for new Indy carset. +- setup USR and Simplix robots for completed F1 carset. + +Menus: +- adjust the credits file (remove GLUT) +- add options in the Open GL menu to enable/disable multi-sampling + and change the "multi-sampling level (?)". +- Smart 3D view showing the selected car when choosing it + + +Program: +- improve command key management in human.cpp (there's 2 arrays indexed + by the unicode of the keys (!), whereas we only use no more that 25 + different keys ; for the moment, these arrays were limited to 4096 items, + but this is probably not sufficient in Japan or China ... + => we must find a better indexing of these array, to use the really needed + minimum number of key entries in these arrays (may be with some king of + indirection ?) +- Support for 3rd party robots, cars and track. 3rd party robot builders + should be able to use our CMake macro's, so we need to make some changes + to these macros and install them in such way that a robot can find it + during compilation. +- fix trackgen not being built. +- Implement simple memory leak detection by overriding malloc, calloc, realloc, strdup, + free, new, delete ... etc in order to save informations about the caller + in the allocated block (use macros to override and __LINE__, __FILE__ ... + to collect infos about the called ... but there's the new/delete difficult case). +- introduce human driver assistance features, like Line Assist System (LAS) + and Instructor's Braking System (IBS) ; + also improve human skill level management in order to prevent rookie players + from winning too easily (by limiting car capabilities, and particularly removing + the extra-grip and replace it by driving assistance) and to scale driver assistance + availability / capabilities ; + add also something for preventing you from smashing into the back of the car in front + (see Haruna's detailed post on the subject and associated thread http://sourceforge.net/mailarchive/forum.php?thread_name=e17477d90904182050lc339f5cy6b4908ed8dc1723%40mail.gmail.com&forum_name=speed-dreams-devel) +- introduce AI vs AI duel tournament mode for casual robot programmers (similar to + R-TYPE FINAL's 'VS AI' mode); with varying car types, tracks, and robot competence +- Add co-driver/navigator signals and sounds for dirt and certain road tracks to be + used in rallying game modes + +Other: +- regularly merge-in changes from trunk +- +