Particle Game Maker Engine  1.0.0
Enables the user to create their own particle game using a simple and coherent api in the PongChamp scripting language
Particle Game Maker Engine Documentation

Particle Game Maker Engine

The purpose of this engine is to enable the user to make their own particle games in the PongChamp scripting language (described below). For using the scripting API, see below. The engine can be compiled with make linux from this directory, and then stack build. Install stack with https://docs.haskellstack.org/en/stable/install_and_upgrade/. To see the c API in use, run make linux and for more information refer to the doxygen if you don't want to use PongChamp. The advantage of PongChamp is it is easily iterable and provides a nice abstraction for using some of the apis. The c++ APIs are also available.

Base API REF

Update API REF

This section describes all the available functions on the global Update object which let you describe how particle groups should update.

Collision API REF

This section describes all the available functions on the global Collision object which let you describe how particle groups should collide.

The ParticleGroupBuilder API REF

This section describes the available functions available on a ParticleGroupBuilder

The LayoutBuilder API REF

This section describes the available functions available on a LayoutBuilder

PongChamp

Welcome to our PongChamp language! This was a project that was started as a weekend thing and we plan to keep expanding on it to integrate a simple but feature-full game engine. The goal of the language is to be coupled tightly to the engine so that it can make it as easy as possible to script with it.

Building

Build Nuances

Running

The simplest way to do this is to run ./bin/PongChamp [file]. This ensures your library path is appropriately set. Since the engine-lib is not installed to your machines known library path, LD_LIBRARY_PATH needs to be set for stack to function correctly. If you want to run with stack, this may serve your purposes: LD_LIBRARY_PATH=/engine-lib/ stack run -- [file]. Note that for a Windows build to function properly the PATH variable needs to be set, rather than LD_LIBRARY_PATH. The python script also does this currently.

Current features

Integration with C++ engine

Haskell provides a FFI interface to interface with other languages. However, in order to interface with a C++ library, it is necessary to write a c wrapper around the engine and then interface with C. This engine is a great example of a cool integration with PongChamp!

Known Issues