All Projects → liquidev → Rapid

liquidev / Rapid

Licence: mit
A game engine written in Nim, optimized for making cool games fast.

Programming Languages

nim
578 projects

Projects that are alternatives of or similar to Rapid

Pixelvision8
Pixel Vision 8's core philosophy is to teach retro game development with streamlined workflows. PV8 is also a platform that standardizes 8-bit fantasy console limitations built on top of the open-source C# game engine based on MonoGame.
Stars: ✭ 773 (+499.22%)
Mutual labels:  game-development, game-engine, 2d
Kaetram Open
An open-source 2D HTML5 adventure based off BrowserQuest (BQ).
Stars: ✭ 138 (+6.98%)
Mutual labels:  game-development, game-engine, 2d
Gplayengine
Cross-platform C++ 2D / 3D game engine.
Stars: ✭ 129 (+0%)
Mutual labels:  game-development, game-engine, 2d
Fxgl
Stars: ✭ 2,378 (+1743.41%)
Mutual labels:  game-development, game-engine, 2d
Gamedev Resources
🎮 🎲 A wonderful list of Game Development resources.
Stars: ✭ 2,054 (+1492.25%)
Mutual labels:  game-development, game-engine, 2d
O2
2D Game Engine with visual WYSIWYG editor
Stars: ✭ 121 (-6.2%)
Mutual labels:  game-development, game-engine, 2d
Zengine
2D | 3D Game development library
Stars: ✭ 145 (+12.4%)
Mutual labels:  game-development, game-engine, 2d
Obengine
2D Game Engine with Lua Scripting made on top of SFML !
Stars: ✭ 335 (+159.69%)
Mutual labels:  game-development, game-engine, 2d
Novelrt
A cross-platform 2D game engine accompanied by a strong toolset for visual novels.
Stars: ✭ 81 (-37.21%)
Mutual labels:  game-development, game-engine, 2d
Godot
Godot Engine – Multi-platform 2D and 3D game engine
Stars: ✭ 44,556 (+34439.53%)
Mutual labels:  game-development, game-engine
Flutter Galaxy Game
2D Flutter Galaxy Game
Stars: ✭ 111 (-13.95%)
Mutual labels:  game-development, 2d
Lambda Lantern
🧙 ‎‎ A 3D game about functional programming patterns. Uses PureScript Native, C++, and Panda3D.
Stars: ✭ 122 (-5.43%)
Mutual labels:  game-development, game-engine
Darkplaces
Mirror of https://gitlab.com/xonotic/darkplaces - The Quake engine that powers Xonotic https://xonotic.org
Stars: ✭ 103 (-20.16%)
Mutual labels:  game-development, game-engine
Opendiablo2
An open source re-implementation of Diablo 2
Stars: ✭ 10,057 (+7696.12%)
Mutual labels:  game-engine, 2d
Lumberyard
Amazon Lumberyard is a free AAA game engine deeply integrated with AWS and Twitch – with full source.
Stars: ✭ 1,785 (+1283.72%)
Mutual labels:  game-development, game-engine
Is Engine
SFML C++ game engine that allows to create games on Web (HTML 5 - CSS 3), Android and PC
Stars: ✭ 94 (-27.13%)
Mutual labels:  game-development, game-engine
Cryengine
CRYENGINE is a powerful real-time game development platform created by Crytek.
Stars: ✭ 580 (+349.61%)
Mutual labels:  game-development, game-engine
Gamedev4noobs
Olá, sejam bem-vindos ao repositório _gamedev4noobs_ do Estúdio Vaca Roxa. O propósito desse repositório, além de contribuir para o projeto 4noobs, é ensinar o básico do desenvolvimento de jogos para iniciantes. Apresentando boas práticas e insumos para criar games incríveis.
Stars: ✭ 122 (-5.43%)
Mutual labels:  game-development, game-engine
Crown
The flexible game engine.
Stars: ✭ 1,320 (+923.26%)
Mutual labels:  game-development, game-engine
Dmitrysengine
[abandoned] C99 cross-platform 3D game engine with absolute minimum of external dependencies
Stars: ✭ 119 (-7.75%)
Mutual labels:  game-development, game-engine

A game engine written in Nim, optimized for making cool games fast. Made for convenience while coding and better performance than all-in-one solutions like Godot.

Goals

  • Be easy to understand,
  • Have a rich set of flexible APIs,
  • Compile all C libraries statically to avoid dependency hell/linker errors,
  • Make game development a fun task for everyone.

Features

  • rapid/graphics
    • Almost stateless graphics context API – the only state you ever have to worry about is the shape buffer
      • Supports text rendering using FreeType
      • Has a built-in polyline renderer for drawing wires, graphs, etc.
    • Post-processing effects with HDR rendering support
    • Built in texture packer
  • rapid/game
    • Fixed timestep game loop
    • Fixed-size and infinite-size tilemaps
  • rapid/ec
  • rapid/physics
    • chipmunk – General-purpose physics engine, using Chipmunk2D
    • simple – Simple and fast AABB-based physics engine
  • rapid/input
    • Simplified input event distribution using procs like mouseButtonJustPressed + callback support
  • rapid/math
    • Common math utilities for vector math, axis-aligned bounding boxes, interpolation, and type-safe units
  • rapid/uiFidget-style UI framework for games and applications

Coming soon

  • rapid/audio – Sound mixer with real-time effect support

Installing

Note that the new version of rapid (2020) is still under development, so you will have to install a specific commit from the master branch. The current release version is not supported anymore.

To install rapid, use the following command:

$ nimble install "  # change the commit hash to the latest commit

In your .nimble file:

requires "rapid#3e831cb"

Pinning to a specific commit rather than #head is recommended, because #head doesn't name a specific point in development. This means that two different packages may end up requiring #head, and the #head that's installed locally may not match the #head that's required by the package.

Linux

On Linux, the development headers for the following libraries must be installed:

  • for rapid/graphics:
    • GL
    • X11
    • Xrandr
    • Xxf86vm
    • Xi
    • Xcursor
    • Xinerama

Debian and Ubuntu

sudo apt install \
  libgl-dev libx11-dev libxrandr-dev libxxf86vm-dev libxi-dev libxcursor-dev \
  libxinerama-dev

Fedora

sudo dnf install \
  mesa-libGL-devel libX11-devel libXrandr-devel libXxf86vm-devel \
  libXinerama-devel libXi-devel libXcursor-devel

openSUSE

sudo zypper in \
  Mesa-libGL-devel libX11-devel libXrandr-devel libXxf86vm-devel \
  libXinerama-devel libXi-devel libXcursor-devel

Examples

For examples, look in the tests directory.

Tips

  • Draw in batches whenever possible. This reduces the amount of time the CPU has to spend sending draw calls to the GPU, making your game run better. In general, whenever you have some object that doesn't change often, prefer an aglet Mesh rather than rapid's Graphics.
  • Compile your game with --opt:speed. Nim's rather primitive stack trace system can slow programs down by quite a bit, so compiling with speed optimizations enabled can be quite important to maintain playable performance. Though if your game's so CPU-heavy that it becomes unplayable without --opt:speed, you're doing something wrong. Go fix your code.

Contributing

When contributing code, please follow the coding style guidelines.

Super Secret Messages hidden in plain sight

A message to Araq

Fast incremental compilation when

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].