Logo - Crazy Minnow Studio - game, asset, tool development

Welcome to Crazy Minnow Studio! We are a small indie software development team primarily focused on game development using the Unity engine. Our pipeline includes: games, game development tools and assets, and video tutorial production. Check out our Unity lip sync asset, SALSA Lip-Sync, available on the Unity Asset Store. Follow our blog for updates on our Unity asset and game development, as well as other happenings in indie game development.

Leadwerks Game Engine v3.2

Leadwerks Indie Game DevelopmentI've recently been trying out the latest Leadwerks Game Engine v3.2 that now distributes solely through the Steam platform. It's a Lua and C++ engine built on top of OpenGL 4.0, OpenAL, and Newton Dynamics. The engine is available as an Indie Edition (Lua - $99), and a Standard Edition (C++/Lua - $198), with no royalties. It provides good image, sound, and model support, including a Blender plugin for exporting to Leadwerks. Additionally, it has a built in constructive solid geometry (CSG) tool for fast and efficient level design (Similar to the tools in Unreal Engine, or the Pro Builder addon for Unity). Leadwerks runs on Windows and Linux, though with the OpenGL 4 requirement, you might have issues finding video drivers for your Linux system to support it. The full feature list is available here: 


I've decided to start posting some of my experiences here to both document my findings and share my experiences so that it may help others just getting started. Most of my programming background is in C#, though I'm pretty comfortable in python, Javascript, PHP, and have a little experience with Java and C. I have never coded anything in Lua, and only minimally tinkered in C++, so I decided to start learning the Leadwerks API using Lua. Although not the entire API is exposed to Lua, the bits that are share common convention and this makes a later incorporation of C++ much easier for people like me that don't have a lot experience with it. 

Leadwerks uses a combination of main game loop and object script-based programming. Lua seems to provide an advantage here since it can be used for both, where C++ cannot be used for object scripts. Unlike Unity, objects in Leadwerks can only contain a single object script, but you can work around this limitation using Pivot's (empty game object's), and parenting them to your other objects. You must select your project type when creating a new game, and your most flexible option is to create a C++ game which will provide you a Visual Studio project to maintain you C++ code (main game loop), and the built in editor where you can write and edit Lua object scripts. Lua script variables can be appended with tags that expose them to the editor, while functions can be tagged to expose them to the built in Visual Flowgraph editor (node-based system).

For my next series of entries, we'll dive into a simple laser deflection game that dynamically creates geometry-based beams that automatically calculate deflection, and bounce angles, and allows the player to rotate deflectors to guide the beam to the goal.

Laser Deflection Game Development Sample

Categories: Leadwerks

Comments: No comments yet