We are going to be making Libretro (and RetroArch, by extension) more usable for content creators, and the first part in that endeavor is the official launch of Lutro.
Lutro is an in-development Love 2D reimplementation written in Lua and implemented as a libretro core. With Lutro, it is possible to easily create Lua games with no knowledge of C being necessary, or having to compile any code.
To demonstrate the flexibility and power of Lutro, we have assembled a few Lutro-based games which you can freely download from our server. They are purposefully kept simple so that the content creator can use them for their own attempts at creating a game.
A recreation of the game Pong for Lutro.
This is a Love2D-based endless runner game that has been ported to Lutro.
One of kivutar’s first proof of concept demos showing off Lutro. It’s a scrolling 2D platform game with no real game mechanics beyond jumping.
Another 2D platformer showcase example for Lutro, this time illustrating how a Metroidvania-style game could work as a Lutro game. It has several screens which were implemented and some game mechanics including combat, item collecting, jumping, etc.
A recreation of Conway’s The Game Of Life. Press one of the buttons to regenerate the algorithm again. Can be quite CPU intensive depending on the system and environment you run Lutro on and/or whether or not LuaJIT is available.
A recreation of Tetris for Lutro.
How to use the existing Lutro games
Start up RetroArch (version 1.3.6 or later).
Make sure you have downloaded the Lutro core first. To do that, do the following:
Downloading the Lutro core
1. Go to ‘Online Updater’.
2. Go to ‘Core Updater’.
3. Browse through the list and select ‘Lutro’. This will download the core. Once done, exit this screen and go back to the main menu by pressing the back button.
Downloading a game
There are several games we allow you to download from our servers.
1. Go to ‘Add Content’.
2. Go to ‘Download Content’.
3. Select the folder ‘lutro’.
4. Download any of the games. Once you’re done, press the back button or another key to go back to the main menu.
5. Go to ‘Load Content’.
6. Go to ‘Select Downloaded File and Detect Core’.
7. Go to the lutro directory.
8. Select the subdir of the Lutro game you want to play.
9. Select ‘main.lua’, and the game will start up.
Case study example : LutroSpaceship
In order to show off how Lutro could be used to create a good 2D game, kivutar has created a Metroidvania-style platformer game. It’s called ‘LutroSpaceship’. In it, you are thrown into a 2D Metroidvania style world with multiple screens you can explore. You can swing your lightsword to kill enemies. Enemies will drop collectibles that you can pick up. There are several traps you will have to avoid such as a laser beam. The game ends once you have reached a passageway.
As a budding content creator, you can pick up where we left off in this demo and continue the game from there. All it takes is some familiarity with how Love2D-based games work, a text editor and editing the Lua source files. After having edited these files, you can run the game again and immediately sample your changes.
Work in progress
Be aware that Lutro right now is not feature-complete with Love2D.
- There are several missing API functions that still have to be implemented. View the list here. We will keep this updated as we go along.
- We are in the process of adding an audio mixer to Lutro to complete some of the remaining missing Love2D functionality.
- Right now, there is no hardware rendering acceleration, everything is done mainly on the framebuffer. This would not be ideal for games that rely heavily on 3D-based rendering or transformation/scaling but it does have the advantage that the Lutro core/games can run on systems where there is no OpenGL support to begin with.