Initial commit

Vsevolod Kremianskii 2020-08-07 08:10:53 +07:00
commit fa69751d59
5 changed files with 101 additions and 0 deletions

13
Development.md Normal file

@ -0,0 +1,13 @@
## Project architecture
![](https://images2.imgbox.com/28/4d/tomY0yLv_o.jpg)
Source code is divided into layers: from the lowest level on top (rendering, audio and networking subsystems), to the highest level at the bottom (game logic). Each layer is represented by one or more namespaces, each namespace having access only to the lower layers. _core_ namespace contains common utility functions, such as logging.
## Knowledge database
Similar projects to use as a reference:
[xoreos](https://github.com/xoreos/xoreos)
[KotOR.js](https://github.com/KobaltBlu/KotOR.js)

10
Gallery.md Normal file

@ -0,0 +1,10 @@
Partial HUD implementation:
![](https://images2.imgbox.com/2a/6a/uEaEz9Hg_o.jpg)
TSL support, party members:
![](https://images2.imgbox.com/ff/2a/8AgvqkGQ_o.jpg)
Endar Spire bridge, first person view:
![](https://images2.imgbox.com/47/b4/2ejcvmxG_o.jpg)
[Multiplayer showcase video](https://www.youtube.com/watch?v=qmHt9FeEw28)

35
Installation.md Normal file

@ -0,0 +1,35 @@
Requirements:
* Compiler with C++14 support (VS2019, GCC, Clang, etc.)
* [CMake](https://cmake.org/)
Dependencies:
* [Boost](https://www.boost.org/) ≥ 1.68
* algorithm
* asio
* filesystem
* format
* iostreams
* program_options
* property_tree (optional)
* [SDL2](https://www.libsdl.org/download-2.0.php)
* [GLM](https://glm.g-truc.net/0.9.9/index.html)
* [GLEW](http://glew.sourceforge.net/)
* [OpenAL](https://github.com/kcat/openal-soft)
* [MAD](https://www.underbit.com/products/mad/)
### Windows
* Install Visual Studio 2019
* Install CMake
* Install [vcpkg](https://github.com/microsoft/vcpkg)
* Install dependencies: `./vcpkg install boost-algorithm boost-asio boost-filesystem boost-format boost-iostreams boost-program-options boost-property-tree glm sdl2 glew openal-soft libmad --triplet x64-windows`
* Create a *build* directory inside the project directory and *cd* into it
* Generate project files: `cmake .. -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake`
### Ubuntu
* Install Clang
* Install CMake
* Install dependencies: `sudo apt install libboost-all-dev libsdl2-dev libglew-dev libopenal-dev libmad0-dev`
* Create a *build* directory inside the project directory and *cd* into it
* Generate Makefiles: `cmake .. -DUSE_EXTERNAL_GLM=ON`

12
Program-options.md Normal file

@ -0,0 +1,12 @@
Name | Description | Default
--- | --- | ---
game | path to game directory | N/A
module | starting module name | N/A
width | window width | 800
height | window height | 600
fullscreen | enable fullscreen | 0
volume | audio volume in percents (0 to disable) | 100
serve | start multiplayer game | N/A
join | join multiplayer game at specified IP address | 127.0.0.1
port | multiplayer port number | 2003
debug | enable debug logging | 0

31
Roadmap.md Normal file

@ -0,0 +1,31 @@
Done:
- General resource management
- Rendering subsystem based on OpenGL 3.3 (incl. text rendering, skeletal animation, lightmaps and environment maps)
- Audio subsystem (incl. music streaming)
- GUI subsystem (incl. parts of the original interface)
- Scripting subsystem (minus engine routines)
- Async jobs subsystem
- Module loading: areas, creatures, doors, placeables, triggers
- Third-person controls (incl. animated player character)
- Collision detection (walkmesh and AABB based)
- Pathfinding based on Dijkstra algorithm
- Multiplayer: up to three players controlling a party
To do, in order of priority:
- Engine routines: 771 in KotOR, 876 in TSL
- Original user interface
- Equipment screen
- 3D controls
- Character generation menu
- Character screen
- Options menu
- Dialogs/cutscenes
- Combat
- Party management
- Game saves
- Environmental sounds
- Movies
Ideas:
- External asset formats support (models, scripts, etc.)
- Custom game modes