Source
From Seven Kingdoms
Contents |
Introduction
This page will contain quick source code reference. It should describe significant, not obvious and other parts of code, that every team member should know about. It should be also useful for new team members, or members who are starting to deal with source parts they hadn't worked before. Of course, it will only describe code we've already worked with, so feel free to add new information here.
Getting started
Milestones
2.12 - Original Release
- works on MSVC6
2.13.0 - First Project Release (Stable)
- Stable branch that will keep close to the original source code
- Uses the GCC toolchain
- Initial Linux support using Winelib
- - Multiplayer not supported on linux
- ISO compliant code
- inline ASM uses GAS syntax
- ImMulti support if possible (Ver 2.13 for Win multiplayer games then will be compatible with Windows clients only)
- No gameplay changes
2.14.0 - Development branch to begin rewrite work
- Begin cleanup and rewriting code to bring it up to date
- New multiplayer code
- Split client and server binaries
- Linux and Windows users now can play with each other
- Transitioning off Win32 specific code
- SDL 1.2 will be the main API used
2.15.0 - Stable branch for finished rewrite work
- Finish cleanup of code
- No Windows specific code anymore, which removes winelib dependency for linux build
- Completely platform independent APIs (as much as possible)
- Experimental SDL 1.3 as a compile option
- Assembly code will be rewritten in C++ (but keep assembly code as option)
- Allow fixing "small gameplay bugs" by now
3.0.0 - Initial project goals realized, mature game code, experimental new gameplay options
- Full support for 7KAA
- Preliminary support for 7K2
- Explore new features
3.1.0 - Full 7K2 support
Policy
Source structure
The original source contained all files (more than half thousand) dumped in one directory, so we've decided to categorize them. Our current policy is following:
- for the first releases we are keeping everything as is, except introducing separate directories for C++ source, C++ headers and Asm files
- all C++ headers should be kept in one "include" directory
- C++ source files may be categorized in separate directories
Category list will be available at source structure page
Toolkit
Our primary aim is to get compatibility with the GCC.
While the work is still being in progress, following tools and libraries are also used:
- jwasm
- Wine libraries
Libraries
Use only standard C/C++ library features. If not sure, see http://cplusplus.com/reference/
We've also decided to use some Boost libraries - http://www.boost.org which provide functionality STL lack. Currently, boost::filesystem is used, be ready to compile/download binaries it needs.
Source overview
Quick source overview can be found at source overview page
Resource formats
File and data format reference be found at resource formats page
Data files
The description and list of game data files are found at the data files page
