FOSS and cross-platform real-time strategy video game
Go to file
Xavier Del Campo Romero 127a21a34f Implement FindPSXSDK.cmake 2022-07-23 04:23:05 +02:00
cmake Implement FindPSXSDK.cmake 2022-07-23 04:23:05 +02:00
doc Import SDL_gfx 2022-07-15 01:03:36 +02:00
libfixmath@33a383b98e Import fixmath 2022-03-30 08:20:21 +02:00
res res: add btn_{left,mid,right} 2022-06-11 23:41:56 +02:00
src system/CMakeLists.txt: group common private dependencies into var 2022-07-23 04:23:05 +02:00
tools CMakeLists.txt: build host tools as ExternalProject 2022-06-08 00:21:18 +02:00
.gitignore .gitignore: add build-ps1 2022-03-30 08:20:21 +02:00
.gitmodules Import fixmath 2022-03-30 08:20:21 +02:00
CMakeLists.txt Create cdroot directory on common CMakeLists.txt 2022-07-23 04:23:05 +02:00
LICENSE Set source code license 2022-03-30 08:20:20 +02:00
README.md README.md: Document dependencies for Ubuntu builds 2022-07-23 04:16:57 +02:00
demo.mp4 Add project README.md and demo 2022-03-30 08:20:20 +02:00

README.md

RTS (working title)

Overview

RTS is a cross-platform, sprite-based real-time strategy video game in the likes of several other entries from the mid 90's.

The game is under heavy development, and very far from being playable.

Screencast of in-game footage

Platforms

The following platforms are either supported or support is expected in the future:

  • Sony® PlayStation® 1, using a forked version of PSXSDK.
  • Microsoft® Win9x, using a i386-mingw32 cross-toolchain and SDL-1.2. A i386-mingw32 cross-toolchain must be already available on the system.
  • POSIX-compliant operating systems such as GNU/Linux® or *BSD, using SDL-1.2 (if available).
  • Possibly, modern Microsoft® Windows® versions, too (currently untested).

Design goals

  • Keep source code as simple and clean as possible.
  • Keep platform-specific code separated so common code can be shared between platforms without modifications.
  • Use C99 features for better portability.
  • Use modern CMake features for a simplified build process and availability of the compile_commands.json database.
  • Implement any multiplayer capabilities provided by the platform.
  • Support a wide range of screen resolutions, even portrait resolutions typically used by mobile platforms.
  • And, above all, provide a fun game that can run even on low-end hardware.

Building from source

Native build

A native version of RTS can be built using the typical CMake build process:

mkdir build
cd build
cmake ..
make -j$(nproc --all)

Dependencies

Ubuntu
apt install libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl1.2-dev

Cross-compilation

CMAKE_TOOLCHAIN_FILE can be used to set up the cross-toolchain. Files labeled as cmake/*-toolchain.cmake can be used as values.

Sony® PlayStation® 1

For example, the Sony® PlayStation® 1 version can be built using:

mkdir build
cd build
cmake .. \
    -DCMAKE_TOOLCHAIN_FILE=../cmake/ps1-toolchain.cmake \
    -DVIDEO_MODE=VMODE_PAL # VMODE_NTSC can be otherwise used
make -j$(nproc --all)

This will generate a .bin/.cue file pair in build that can be played on an emulator or burnt into a CD-r in order to play the game on real hardware.

Microsoft® Win9x

mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/win9x-toolchain.cmake
make -j$(nproc --all)

A stripped version of the executable, as well as game assets, will be located in build/cdimg.

License

Unless stated otherwise, RTS follows the license described by the LICENSE file, which currently is the GNU General Public License v3 or later. Original versions of other works under various licenses are also distributed in this project, that are located inside the res/orig directory. This directory also contains a LICENSE describing the source and license of each individual file.

Derivative works have been also created from these files for this project, that are located inside the res directory. A LICENSE file is also provided to describe the relationship between the original and derived works.

Microsoft®, Linux®, Sony® and PlayStation® are registered trademarks of their respective owners.