Porkholt is a 2D and 3D graphics and game engine targeted towards mobile and desktop platforms.
I built it as a learning project quite some of time ago. It's certainly not ready for production and will never be. I decided to post it on GitHub after all this time.
This repo also contains a few attempts to games that never were in Beeno/Game
and Igor/Game
, a full set of examples, demos and toys in Examples
and some LivePapers wallpapers in LivePapers
.
- Math library
- Windowing functions
- Frame animations
- Keyframed transitions
- Sprite atlases
- Texture-based fonts
- Render to texture filters
- Deferred lighting
- Sound (WAV and Ogg)
- Lua bindings and scripting
- Lua-based material format with conditional shader compilation
- Asset pipeline
- Other bells and whistles I totally forgot about in 4 years.
There's no need for any instalation, however Porkholt Engine requires some dependencies to compile itself and its external libraries. These can be installed using your distro's package manager.
For example:
sudo apt-get install libreadline-dev cmake graphicsmagick mesa-common-dev libncurses-dev libopenal-dev lua
brew install lua cmake graphicsmagick
Just copy Examples/Template and adjust the project's name and the engine's path in CMakeLists.txt, then add your sources and headers to PH_SOURCES
and PH_HEADERS
respectively.
Remember that every time you add a new source you have to regenerate the project files.
-
cd
into the project folder -
Create a new directory named
build
. if you are regenerating the project files, at least removeCMakeCache
frombuild
-
cd
into it -
Generate the project files with cmake:
cmake .. -DPH_PLATFORM=<platform>
<platform>
can be any of X11
, OSX
, iOS
or Android
NOTE: if compiling for iOS you need to use the XCode generator
Ex: cmake .. -G Xcode -DPH_PLATFORM=iOS
PH_PLATFORM
defaults to X11
on Linux and FreeBSD
-
Use the generated project files to build the project (this depends on your generator of choice)
-
Enjoy