Looking to make a 2D game, well then I have a perfect game engine for you. Solar2D is an open-source Lua-based game engine. So today we will learn about it, get to know how to install it on Linux, and finally see how to make a game on it. So let’s get started.
Solar2D is an open-source, Lua-based game engine perfect for both beginners and veteran developers. We cover installation via Snap, and even guide you through building your first simple game. Whether you’re new to game development or looking to explore a new engine, Solar2D offers a powerful yet easy-to-learn platform for your needs
Solar2D: The Lua-Based Game Engine
Game development may seem intimidating, but starting with 2D games is an approachable first step. Tools like Solar2D make the process easy and fun.
Solar2D is an open-source, cross-platform game engine based on Lua scripting. Lua’s simple yet powerful syntax lowers the barrier for coding beginners. With Solar2D’s intuitive editor and asset pipeline, you can quickly build 2D experiences from prototype to polished product.
The engine supports the creation of casual games, platformers, RPGs, and more. Drag-and-drop behaviors make it simple to add physics, collisions, and other mechanics. And Solar2D’s live testing allows you to preview your game as you build.
An active marketplace offers plenty of plugins to accelerate development, while the community provides support if you get stuck. Solar2D streamlines the technical challenges, empowering anyone to turn game ideas into reality.
So if you’re eager to start coding your own mobile hits, Solar2D is the perfect launch pad. Download it today and dive into building 2D games with Lua scripting. Your skills will grow with each new sprite, behavior, and line of code. Before long, you’ll have the knowledge to bring any concept to life. Now let’s get into the steps to install Solar2D on Linux.
Also read: How to Install Raven-Reader Easily on Linux?
Quick and Easy Installation of Solar2D on Linux
In terms of options for installation on Linux, you either opt to download the source code and build it from that. But for this tutorial, I will only cover the use of Snap to install this game engine. It’s the easiest and fastest way to get things set up on your Linux system for 2D game development. So let’s get started.
First of all, before we use Snap, make sure that you have it installed in your system, if that’s not the case then you can read this article on Snaps in Linux: A Basic Introduction. It will guide you on how to install Snap.
Once installed, you can run the below command to learn more about the Solar2D package on Snap.
sudo snap info solar2d
To install it, run the below command.
sudo snap install solar2d
With this, you should now have a game engine installed in your system. So now what to do next? Well, I got you covered, we will build a game in the next section.
Building Your First Game with Solar2D
We are gonna follow the tutorial given in the official docs so you can head over there for more information, I will just cover the basics on how to get started with building your first game with the help of Solar2D, so just follow the below steps.
- Open Solar 2D, preferably using the terminal for this, easy to track errors.
This is the interface, as you can see on the right-hand side there are recent projects(I tried to experiment a little), and on the left-hand side, you have the option to create a new project, open an existing project, or relaunch the project.
- Click on New Project give your game your application a name and remember to select the template as Blank. Also, you have an option for specifying the Screen size, for now, leave it to default.
- Once you click “OK” it will open the project folder, and you open that folder in a code editor of your choice, I am using VS code for this. The Project structure would be similar to the image below.
- We will mainly work on main.lua file, there are a lot of other files that you might want to explore as you progress but for now, we will only work on main.lua as it will contain your game code.
local tapCount = 0
local background_image = backgroundimage.jpeg
local background = display.newImageRect( background_image, 360, 570 )
background.x = display.contentCenterX
background.y = display.contentCenterY
local tapText = display.newText( tapCount, display.contentCenterX, 20, native.systemFont, 40 )
tapText:setFillColor( 0, 0, 0 )
local platform_image = platformimage.jpeg
local platform = display.newImageRect( platform_image, 300, 50 )
platform.x = display.contentCenterX
platform.y = display.contentHeight-25
local balloon_image = balloonimage.jpeg
local balloon = display.newImageRect( balloon_image , 112, 112 )
balloon.x = display.contentCenterX
balloon.y = display.contentCenterY
balloon.alpha = 0.8
local physics = require( "physics" )
physics.start()
physics.addBody( platform, "static" )
physics.addBody( balloon, "dynamic", { radius=50, bounce=0.3 } )
local function pushBalloon()
balloon:applyLinearImpulse( 0, -0.75, balloon.x, balloon.y )
tapCount = tapCount + 1
tapText.text = tapCount
end
balloon:addEventListener( "tap", pushBalloon )
This small piece of code might look confusing but once you read it you will understand what function it does. It has only one function called pushBalloon() which makes the balloon jump and counts the number of taps. Not too big of a game but for starters it is fine.
I changed the images(cause why not) and my game looks like this by the way you can get the image resources on their official docs but I will recommend you to search on the internet for the asset, it would be a learning experience.
Wrapping Up: Your Journey into Solar2D Game Development
In today’s article, we learned about Solar2D, an open-source 2D Lua-based game engine that is forked from the well-established Corona SDK game engine. It is great for beginners especially those who are looking to get into game development and also good for veteran game developers.
We saw how to install it on Linux and then saw a little demonstration on how to get started by building your first game. Well, I will leave you now, cause you got a lot to learn and build. So what game you are gonna build first?