A free cross platform game development engine
guidessourcetwitterstatusdev logsquestions?


About

luxe is a lovingly handcrafted free, open source cross platform rapid development game engine for deploying games on Mac, Windows, Linux, Android, iOS and Web.


take note!

luxe is currently in alpha. This is important because it means there may be bugs, inconsistency, incomplete implementations and API changes. It is still considered fairly usable, you'll find examples of that below.

Please be aware there is a major transition in progress.

The transition is from design exploration phase to final implementation of the engine design. It is all being expanded on in the development logs! In short: The alpha code base was temporary and is going away.

Development

All the latest development news is always posted here on this blog.
There are currently two forms of development updates:

Community

Please read the community conduct page before getting involved.

All development questions, discussions, bugs and issues are welcome and should be posted on the support repository – This allows everyone to find them in one place. If you have any questions, or have run into an issue, please feel free to post it. That's what it's for!

You can also find help and friends on the community chat.


Getting started

view setup guide

view luxe user guide

view API reference


Quick look

var player = new Sprite({  
    texture : Luxe.resources.texture('assets/player.png'),
    pos : Luxe.screen.mid,
    depth : 4
});

Development

Currently development is centered on finishing luxe 1.0.0. The focus is placed heavily on being a strong 2D engine first along with good stability, plus a fluid and iterative workflow.

Since the engine is built on top of a regular rendering pipeline, 3D is easily possible but a lower priority for the first version.

Design Philosophy

luxe is designed with numerous fundamental design choices – as you would expect – although there are some key ones that make it differ in ways that will influence assumptions when using it. Below briefly mentions some of these to make it easier to understand the goals of the engine.

luxe is a facilitator
The engine supplies and supports common patterns for making games, like Components/Entity systems, State Machines and Events messaging systems. These are not enforced and do not stop you from doing your own thing, bypassing those in favour of your own specific methodology or game specific architecture.

luxe is minimalistic in core and design which means that application/game specific domain features are left up to libraries and the application itself. It might not supply every feature you need for your specific game, but it will make it very easy to get there quickly. Therefore, luxe contains many helpers in functions and systems for you to use when building your games.

A rough brief overview of how the engine is designed is below. Click to enlarge.

luxe design

Features

Short list and focuses

  • Open - Free and Open Source, under the MIT license
  • Approachable - high pace through an expressive, easy to use API.
  • Rapid Fits jam games and long form projects alike.
  • Documentation - continuous focus on documenting with high standards
  • Audio - OpenAL/WebAudio backed portable audio API
  • Rendering - WebGL spec based API, same code on all platforms
  • Portable - written to be ported, supporting new platforms is simpler
  • Input - Low level, immediate, event based OR high level API for Gamepad, Touch, Keys and Mouse

gameplay

  • Scene - simple scene container management
  • Collision - SAT collision query for shapes and rays
  • Physics - third party framework hooks, i.e nape.
  • Transforms - stackable transforms for positioning/rendering
  • Timing - control over time scale, per entity fixed rates and more
  • Timer - schedule functions and events into the timeline
  • Audio - simple to use but flexible audio api

Rendering

  • Sprite - visual backed class with animation, flipping etc
  • Color - handle HSV, HSL, RGB interchangeably
  • Render - automatic or self managed batching of geometry
  • Render control - flexible depth, blending and group rendering
  • OpenGL - direct or indirect access to WebGL spec API
  • Shaders - first class citizen, built into the core of rendering
  • Camera - split views, focus, rotation, shake, etc built in
  • Tilemaps - isometric, ortho support, with import from Tiled
  • Drawing - easy style shape/geometry drawing API
  • NineSlice - for scaling of assets like UI elements
  • Particles - simple particle support for quick effects
  • Textures - easy to use texture api, fully supports render to texture
  • Fonts - BMFont based bitmap font rendering

systemic

  • Assets - cross platform access to assets
  • Maths - support for Vector, Matrix and Quaternion based maths
  • States - modal, transient and stacked state machine
  • Events - expressive filterable local or global events
  • Components - modular code (behaviour composition)
  • Structural - common data structures link
  • Tweening - customized Actuate built in
  • Utils - many geometrical and game related utilities
  • Parcel - control preloading, loading/unloading parcels of assets

games

Even though luxe is in alpha, people have released a number of games already. From jam games to full releases, here are a few games you will find around.
Since there are numerous games, only a small selection are listed in no particular order.

The Westport Independent

Released on Mac, Windows, Linux (Steam, GOG), Android (Play, Amazon), iOS
Visit the website for full details

westport westport westport

Topsoil

Released on iOS and Android with a web based demo.
Visit the website for full details

topsoil topsoil topsoil

Operator Overload

Greenlit for release on Steam for Mac, Windows and Linux
Visit the website for full details

operator overload operator overload operator overload

Rise

Released on Steam as part of HELP: THE GAME bundle
Visit the website for full details

rise rise rise

QWOP (WebGL)

Released as a port to WebGL to support more players (originally in Flash)
Visit the website for details and to play

qwop qwop qwop

THREES (WebGL)

Released as a port to the web platform (originally in Unity)
Visit the website for details and to play

threes threes threes



All product names, logos, and brands are property of their respective owners. WebGL and the WebGL logo are trademarks of the Khronos Group Inc.