Config file xml parser should now be stable
[openstranded.git] / DEFINITION
blob75c8e061ba19daaa55f2fc72528f07dcf9ad2935
1   ___                   ____  _                       _          _\r
2  / _ \ _ __   ___ _ __ / ___|| |_ _ __ __ _ _ __   __| | ___  __| |\r
3 | | | | '_ \ / _ \ '_ \\___ \| __| '__/ _` | '_ \ / _` |/ _ \/ _` |\r
4 | |_| | |_) |  __/ | | |___) | |_| | | (_| | | | | (_| |  __/ (_| |\r
5  \___/| .__/ \___|_| |_|____/ \__|_|  \__,_|_| |_|\__,_|\___|\__,_|\r
6       |_|\r
7 \r
8 PROJECT DEFINITION\r
9 ------------------------------------------------------\r
11 OpenStranded is a free clone of the freeware game Stranded II made by Peter\r
12 Schauß ("Unreal Software") using open source libraries. It will be released\r
13 under the licensing terms of the GNU General Public License (GPL) in its\r
14 version 3.\r
16 This project definition should be considered as a draft. Comments and criticism\r
17 are highly appreciated.\r
21 SHORT-TERM 1ST PRIORITY PROJECT GOAL\r
23 * Creating an early version of the game ("Pre-Alpha") to be presented on the\r
24   Unreal Software web forum, including hence:\r
25         + Basic features like running and swimming/diving\r
26         + Basic abilities to load Stranded II's object definitions stored in\r
27           text files\r
28         + Reading and writing of maps and savegames (ignoring scripts)\r
30 Note: The editor is not at top priority, rather a better support of the\r
31 Stranded II maps and definition will be done\r
35 ACTUAL PROJECT GOALS AFTER PRE-ALPHA\r
37 Okay, the main goal should be obvious: Clone Stranded II the best as you can.\r
38 In addition:\r
40 * Create an enhanced map editor\r
41         + Better user interface, e.g. improved text input (Copy-and-Paste)\r
42 * OpenStranded map and save format (probably XML)\r
43         + Option of conversion of Stranded II maps into OpenStranded maps\r
44 * Ability to read the whole object/game/etc definitions, thus being able to use\r
45   Stranded II's objects and definitions\r
46 * Full implementation of the scripting engine (note below)\r
50 TECHNICAL ISSUES\r
52 * The mainly used programming language is C++ (the parser will be written in C\r
53   because it is better supported by Flex and Bison at the moment)\r
54         + Coding guidelines yet to be discussed\r
55 * Irrlicht is used as graphics engine\r
56 * The sound engine will be Irrklang\r
57 * Script parser is going to be implented using Flex and Bison\r
58 * Linux support\r
62 LEGACY STRANDED II SUPPORT\r
64 * At least 95% compatibility with the Stranded II Scripting Language\r
65   (S2S, note below)\r
66 * Ability to read and write savegames and maps created using Stranded II (note\r
67   below)\r
71 SCRIPTING LANGUAGE\r
73 * PHP/C-like style (as in S2S)\r
74 * Implementation of all commands of S2S\r
75 * Improvements and simplifications in the syntax\r
76         + All function's arguments have to be put in braces (instead of just\r
77           those with return values)\r
78         + Full implementation of loops (for, while, do-while), legacy support\r
79           for the old "loop()" command\r
80         + Clean up implementation of elementary types like floating-point\r
81           numbers and especially strings\r
82         + (Add array-like datatype?)\r
83 * Improve parsing of nested function calls\r
84 * Allow map crator to define own functions (S2S could just handle procedures\r
85   without return value, using the "event" command)\r
86 * Addition of some kind of "new mode" for changes of existing commands and\r
87   clean-ups\r
91 FEATURES BEYOND 1.0\r
93 * Multiplay mode (note: the caption is "_BEYOND_ 1.0", if you want it earlier,\r
94   do it yourself ;) )\r