• Stars
    star
    372
  • Rank 114,858 (Top 3 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created over 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A retro game engine with a fun platformer for making your dreams come true!

Surge Engine

Latest release License GitHub Repo stars Discord server GitHub Sponsors

Unleash your creativity with Surge Engine, an open source game engine for retro games! It features Surge the Rabbit, a free retro platformer with a charismatic character. Players MOD it to create their own games.

Download now | Create your games | Learn scripting | Watch videos

Open Surge demo

ko-fi


About

The project is written from the ground up in C language, using the Allegro game programming library. It has been started by Alexandre Martins, a computer scientist from Brazil. Nowadays, it has contributors all over the world!

Contribute

See CONTRIBUTING.

Advanced users

Command-line options

Run opensurge --help

Running MODs

Extract the MOD to your filesystem and run the game.

  • Windows: launch the executable.
  • Linux: run opensurge --game-folder /path/to/mod/folder/ on the command-line.
  • macOS: use the --game-folder command-line option or launch the native executable if provided.

Use preferably the same engine version as the MOD if a native executable isn't provided (check logfile.txt).

Linux users should extract the MOD into their home folder, preferably into ~/Downloads.

Visit the wiki for more information on user-made MODs.

Paths

Content is distributed in the following locations: (since version 0.6.1)

  • bin: executable file
  • share: game assets (images, audio, levels, scripts, etc.)
  • user: user-modifiable data (preferences, logs, screenshots, additional assets such as user-made levels)

The default paths of these locations vary according to the platform:

  • Windows (.zip package):

    • bin: ./opensurge.exe
    • share: .
    • user: . or %OPENSURGE_USER_PATH%
  • Linux:

    • bin: /usr/games/opensurge
    • share: /usr/share/games/opensurge/
    • user: ~/.local/share/opensurge/ or $XDG_DATA_HOME/opensurge/ or $OPENSURGE_USER_PATH
  • Linux (Flatpak):

    • bin: flatpak run org.opensurge2d.OpenSurge
    • share: /var/lib/flatpak/app/org.opensurge2d.OpenSurge/current/active/files/share/opensurge/
    • user: ~/.var/app/org.opensurge2d.OpenSurge/data/opensurge/ or $OPENSURGE_USER_PATH

    If you use $OPENSURGE_USER_PATH, make sure it points to a subdirectory of ~/Downloads ($XDG_DOWNLOAD_DIR).

  • Linux (Snap):

    • bin: snap run opensurge
    • share: /snap/opensurge/current/share/games/opensurge/
    • user: ~/snap/opensurge/current/.local/share/opensurge/ or $OPENSURGE_USER_PATH

    If you use $OPENSURGE_USER_PATH, make sure it points to a subdirectory of your home folder.

  • macOS:

    • bin: Contents/MacOS
    • share: Contents/Resources
    • user: ~/Library/Application Support/opensurge/ or $OPENSURGE_USER_PATH

If you intend to hack the game, it's easier to have all files in the same place (read-write), because some of the above folders are read-only. Download the sources, extract them to your filesystem and use the --game-folder command-line option as explained in Running MODs.

Tip: since version 0.6.1 you can use the command-line option --verbose to see where the files are. The directories will appear at the beginning of the output.

Compiling the engine

Dependencies:

Compile as usual:

cd /path/to/opensurge/
mkdir build && cd build
cmake ..
make -j4
sudo make install

Use cmake-gui or ccmake for tweaking, like installing the engine to or finding the dependencies on non-standard paths.

License

Open Surge Engine Copyright 2008-present Alexandre Martins. 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 3 of the License, or (at your option) any later version. For more information, see LICENSE.