Free, Open Source and cross-platform

Polycode is completely free and open source (MIT license), with all development happening publicly on Github. Its core is written in C++ and currently runs on Mac, Windows and Linux with iOS and Android support planned in the future.

C++ or Lua

You can use Polycode as a C++ library or write everything in Lua using the Polycode IDE.
Polycode's API is designed around the "do more with less code" philosophy. It uses a managed scenegraph system that takes care of rendering and updates, but provides the ability to do custom rendering and updates if you so wish.

Polycode IDE

Custom cross-platform IDE for editing content and Lua scripts. Write everything in Lua inside the IDE and publish directly to all supported platforms or use it in tandem with the C++ API for content editing. Layout 2D Polycode entities (with 3D support planned for the future), edit materials and write Lua scripts.

One-click publishing.

Publish your app directly from the IDE to all supported paltforms if you are using Lua only. Polycode creates its own app format called a "polyapp", which contains all of your code and assets and wraps it into a platform-specific player. The C++ API is cross-platform as well, of course, but you will need to compile it yourself.

2D and 3D Graphics

Simple to use hardware accelerated 2D and 3D graphics. Both 2D and 3D graphics use the same hardware accelerated rendering, but 2D graphics are simplified and separated from 3D for convenience (though both can be rendered at the same time). Polycode provides material and screen shader and HDR rendering support.

Font rendering

Font rendering in 2D and 3D via Freetype with full Unicode support. Support for TrueType and OpenType font loading and substring colorization.

Animation

Polycode supports spritesheets for 2D animation, skeletal animation for 3D meshes and Tween classes for animation of custom parameters.

Mesh and skeletal animation import

Polycode uses custom mesh and skeletal animation file formats, but you can import mesh and skeletal animation assets from Collada and other popular formats.

2D and 3D Particles

Built-in particle systems with bezier curve controls for color and scale.

2D and 3D sound

Audio with 2D and 3D positional sound support and loading from WAV and Ogg Vorbis files.

Input handling

Gamepad/joystick, keyboard and mouse input handling. Multi-touch handling on Windows via Windows Touch API (Windows7 and above) and TUIO touch handling via the TUIO module.

Networking

Basic UDP networking support with easy to setup client-server structure. Module for HTTP-based data loading via libcurl.

2D and 3D Physics modules

Physics modules that integrate with 2D and 3D entities and can be used to add physics simulation and collision detection.

UI Module

Themeable, easy to use cross-platform UI that integrates with the rest of Polycode. Use the same UI that was used to build the Polycode IDE.