[ Screenshot ] [ Screenshot ]

(More screenshots and videos)

The Syntensity Engine

Syntensity, also known as the Syntensity Engine, and previously also called the Intensity Engine, is an open source project that consists of a client, server, and master (metadata) server - everything you need to run your own games or your own virtual world. More specifically, it includes:

  • 3D rendering (from Cube 2)
  • High-level scripting API for game creation, in JavaScript (running on Google V8), which can run scripts on both client and server and transparently synchronize them
  • A large library of useful scripting code - weapons, movement options, items, events, etc.
  • Physics (from Cube 2, currently working on adding Bullet physics as an option), both clientside and serverside (customizable)
  • In-world editing, also in multiplayer (from Cube 2, with some additions)
  • A plugin system, using Python, for extending the engine with additional components (plugins exist for saving highscore data locally using SQLite, etc., and experimental plugins exist for VLC, WebKit, Skype, etc.)
  • An experimental browser plugin (for running the client in a web browser)

You can use the Syntensity Engine together with syntensity.com, which makes it easy to play new games and share your games with others. But you can also use the engine separately, either by running your own servers, or by running in an entirely local manner; for more details about those options, see README-standalone.txt in the source code.

Status

Syntensity is basically feature complete and stable. We have working example games of various kinds (co-op FPS, CTF FPS, racing, drawing, platformer), and we have been running Syntensity servers in production since October 2009, very successfully.

While feature complete for our initial goals, there is a lot more we intend to do with this project. For one thing, we are trying to work together with related open source projects, to have less duplication of effort. Also, we are right now focused on including optional support for Bullet physics, web browser integration, and we are considering doing some major work on the 3D rendering system as well. Help is welcome!

Links

  • Bugs, feature requests, etc.
  • There are two main code branches: stable and development. NOTE: Use the stable branch if you want to connect to the syntensity.com servers (that is the version they run, and your version must match theirs). To get the code, you should:
    • Download Git, the version control system used by Syntensity
    • In an appropriate directory, run git clone git://github.com/kripken/intensityengine.git (or use a GUI, several exist for Git). (That checks out the code from the stable branch; a link to the development/unstable branch appears above, if you want that instead.)
    • See COMPILE.txt for compilation instructions
    • See README.txt for general information and how to run the code (TROUBLESHOOTING.txt may also be useful)
  • IRC: #syntensity on FreeNode
  • The Syntensity blog has updates regarding Syntensity development


Technical Overview


Licensing

Syntensity is available under the MIT/X11 license, which is a permissive FOSS license (much like BSD, zlib, etc.). You can therefore use the engine in a very easy manner, at no cost, and without any requirements on your own open source code. In particular you can use Syntensity commercially (even on game consoles - with the only matter of SDL, which is LGPL licensed, but it would be easy to replace calls to SDL with console-specific code anyhow).