Please note the instructions below are for the old deprecated luxe alpha.
A lovingly handcrafted free cross platform game engine guides • source
Please note the instructions below are for the old deprecated luxe alpha.
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.
Please be aware this alpha version of luxe was deprecated as early as 2015/2016. It is not representative of luxe.
Visit the new site to find out more!
All the details of this transition are being expanded in the development logs! In short: The alpha code base was temporary and is going away.
The information on the engine below is regarding the alpha stage.
The page below refers to the "alpha-1..3" phase in the below diagram.
All the latest development news is always posted here on this blog.
To get notified when new posts are made visit the news page.
There are currently two forms of development updates:
- development - In depth development posts • read these!
- status - Status updates
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.
var player = new Sprite({
texture : Luxe.resources.texture('assets/player.png'),
pos : Luxe.screen.mid,
depth : 4
});
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. 3D is supported but will mature later.
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.
Short list and focuses
Open
- Free and Open Source, under the MIT licenseApproachable
- 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 standardsAudio
- OpenAL/WebAudio backed portable audio APIRendering
- WebGL spec based API, same code on all platformsPortable
- written to be ported, supporting new platforms is simplerInput
- Low level, immediate, event based OR high level API for Gamepad, Touch, Keys and Mouse
gameplay
Scene
- simple scene container managementCollision
- SAT collision query for shapes and raysPhysics
- third party framework hooks, i.e nape.Transforms
- stackable transforms for positioning/renderingTiming
- control over time scale, per entity fixed rates and moreTimer
- schedule functions and events into the timelineAudio
- simple to use but flexible audio api
Rendering
Sprite
- visual backed class with animation, flipping etcColor
- handle HSV, HSL, RGB interchangeablyRender
- automatic or self managed batching of geometryRender control
- flexible depth, blending and group renderingOpenGL
- direct or indirect access to WebGL spec APIShaders
- first class citizen, built into the core of renderingCamera
- split views, focus, rotation, shake, etc built inTilemaps
- isometric, ortho support, with import from TiledDrawing
- easy style shape/geometry drawing APINineSlice
- for scaling of assets like UI elementsParticles
- simple particle support for quick effectsTextures
- easy to use texture api, fully supports render to textureFonts
- BMFont based bitmap font rendering
systemic
Assets
- cross platform access to assetsMaths
- support for Vector, Matrix and Quaternion based mathsStates
- modal, transient and stacked state machineEvents
- expressive filterable local or global eventsComponents
- modular code (behaviour composition)Structural
- common data structures linkTweening
- customized Actuate built inUtils
- many geometrical and game related utilitiesParcel
- control preloading, loading/unloading parcels of assets
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.
Released on Mac, Windows, Linux (Steam, GOG), Android (Play, Amazon), iOS Visit the website for full details
Released on iOS and Android with a web based demo. Visit the website for full details
Released on Steam for Mac, Windows and Linux Visit the website for full details, Steam page
Released on Steam as part of HELP: THE GAME bundle Visit the website for full details
Released as a port to WebGL to support more players (originally in Flash) Visit the website for details and to play
Released as a port to the web platform (originally in Unity) Visit the website for details and to play
All product names, logos, and brands are property of their respective owners. WebGL and the WebGL logo are trademarks of the Khronos Group Inc.