nim-impulse-engine icon indicating copy to clipboard operation
nim-impulse-engine copied to clipboard

Nim port of a simple 2D physics engine

Impulse Engine (Nim port)

Descripton:

Nim programming language port of Randy Gaul's Impulse engine (https://github.com/RandyGaul/ImpulseEngine).
Thanks to Randy for a great educational tool.

License:

zlib license (check the License.txt file for more details)

Used libraries:

  • nim-glfw (https://github.com/johnnovak/nim-glfw)
  • opengl (https://github.com/nim-lang/opengl)
  • libdrawtext (https://github.com/jtsiomb/libdrawtext)

Additional information:

  • For nim-glfw you will need the GLFW3 shared library (precompiled libraries can be found here: https://www.glfw.org/download.html)
  • For libdrawtext you will need to compile the shared library from source and add it to your path. Follow instructions on: https://github.com/jtsiomb/libdrawtext

Installation:

nimble
Installation can be done using the Nimble package manager from the shell/command line (Nimble has to be installed):

$ nimble install impulse_engine

This also compiles impulse engine and let's you run it with impulse_engine in a console.

Notes:

On Windows (tested with mingw64-32) it should work out of the box, provided you have everything needed for openGL.
On GNU/Linux (tested on Lubuntu) you will probably need to install libmesa, Xcursor and other X development packages, and I also had to create symlinks for libGL.so, libXi.so and libXxf86v.so.
If anyone is willing to try it on another platform, any feedback would be greatly appreciated.

Screenshot:

Video:

https://www.youtube.com/watch?v=AzA_owsZU04