Solar2D Game Engine
solar2d.com
solar2d.com
Here is the commit where they renamed it on 22 May 2020:
https://github.com/coronalabs/corona/commit/54eb3361238aecc6...
I was curious enough to visit the solar2D pages but the lack of screenshot removed all interest I had.
It recently went fully open-source, with the lead developer getting some solid support on Patreon/Github sponsors. SO the future in looking good.
I would heartily recommend it.
But I don’t see the issue with it even if it was a feature, game -developers- sometimes need to make money, so anything out of the box that can support this seems like a good feature.
It's super fast and fund, but I find it even worse than js.
The weird amount of hype for Lua is probably due to the great projects in spite of it, like LOVE and Pico8, and the fact that Lua never makes it very far past weekend hobby state for most people so there's never any real counterbalancing force of people fed up with it.
Last project that needed game engine like things I picked Kotlin with libGDX/KDX. Reasonably quick builds, reasonably strong typing, performs well enough and x-platform enough.
I would probably never write a standalone game in pure Lua because that’s not what it is intended for, it’s strength is easy embedding in a host application that does the heavy lifting, low-level stuff and provides the new primitives and functions for the application-specific parts of the code that runs in Lua. Other languages may be better in terms of language feature and tooling but none of these come close to the easy of use for embedded scripting.
I've written a few commercial games in lua (corona, and others), and it must be me, but my code becomes a nightmare to maintain at a certain point.
Good tooling helps with the explorability so JS is manageable because you can runtime inspect what the heck is going on. The Chrome debugger is excellent for example. Most Lua game engines provide basically zero debugging beyond runtime errors and console output. Which makes exploring tedious.
Then learning a platform and the ins and outs of a language is much quicker in a statically typed language. Not only because the editor is much more empowered so you can explore the codebase statically but with a compilation step you also get a quicker feedback cycle for a lot of common errors. I found JS extremely tedious dealing with runtime errors with typos. TS basically makes that impossible.
I think that's why PICO-8 feels like a sweet spot for Lua because the platform is so small it's quick and easy to learn. And the code size restriction stop you from making anything complex enough to benefit too much from static typing. I still hate runtime errors for silly mistakes that would have been trivially caught.
I still remember feeling super excited when Bubble Ball[0], which was made by a 14-year old using Corona SDK made it to the top of the app store!
I am so glad the product continues to be maintained, still seems like a great way to develop apps and games.
I had read (here on HN) that one of the co-founders passed away. It's not due to a failing of the product or anything, just hit by tragedy.
And if I absolutely had to use Lua, wouldn't Defold be a better alternative. At Least for mobile.
Disclosure: Been in the mobile games industry full time since 2010.
[0] https://fennel-lang.org/ [1] https://moonscript.org/ [2] https://github.com/teal-language/tl
I have been prototyping on paper a game about submarine hunting but in 2D. If you have ever played Tom Clancy's Red Storm, it would be like that.
Can something like this engine do path finding if you had a map of the world in 2D?
Any other engines I could use to easily prototype it?
Path-finding works over graphs, so you have a "node" which in your case would be all the squares in the map, and "edges" which are all links between the node and all the neighbouring nodes!
Then you find the version of A* search algorithm package your language has and just pass it the nodes and edges, and it'll return the path of nodes.
If you prefer Javascript/Typescript, PhaserJS is pretty good and I believe there are several community-built pathfinding modules available.
I’m also a “normal” Java dev. I’ve tried to dabble in the past with gamedev with many tools and nothing stuck until recently with Godot. I love Godot and been using GD Script. It’s missing some features as a language but gets the job done and integrates nicely with the editor.
Too bad you have to use forked version for Linux.
EDIT: after looking into install.sh I think I will postpone. It looks quite invasive to my eye. Copies .so into places, links .so in /usr/lib, assumes Ubuntu when apt is present. Too bad. My system is a hot mess as it is. ;-)
This looks more like a "game framework", which is basically a wrapper around opengl/directx/etc. which abstracts the low level stuff and gives programmers an easy way to render sprites, have a gameloop and whatnot.
C# with XNA (or monogame) is a nicer 2d barebones game framework to work in, as long as you can dodge garbage collector issues.
Lua has de-facto been more or less the standard go-to scripting language for 20 years or so by now, i remember that we picked Lua for scripting a PS2/Xbox game that was shipped in 2004 because it was already gaining popularity among other gamedevs(yes we were probably late on it).
Apart from those embedding it themselves (probably far more than is known publicly). There is literally countless Lua only games since it's the base for user created games on the Roblox, Pico-8 and Love2d platforms.
These platform based games probably far outnumber those that embedded Lua because they are simple platforms to get started with, even my 12 year old kid is making Roblox games and writing Lua to wire up things.
The docs and community in roblox and factorio fill in for the deficiencies of the language. Try using lua without support frameworks. Modding ns2 is a nightmare with zero docs and trying to reverse engineer in a terrible debug environment. Lua just doesn't stand up by itself.
You are only discussing the successes. Even built for purpose, game building applications like Core fail miserably to make development easy enough off the back of lua. Far cry 1 had lua scripts that went nowhere.
What love2d games?? The tech demos and hobby projects listed on the website??
For the three or four big successes there are a lot of obscure failures.
The big successes of creative modding projects came out of Half Life, Half Life 2 and Warcraft 3 which spawned Dota, team fortress, counter-strike, left for dead, garry's mod and many other successes.
War3's editor and XNA are the best modding environment's I've seen for individual acheivement.
Kids dont know better, they just put up with the jank and learn from their friends.
> The docs and community in roblox and factorio fill in for the deficiencies of the language. Try using lua without support frameworks. Modding ns2 is a nightmare with zero docs and trying to reverse engineer in a terrible debug environment. Lua just doesn't stand up by itself.
Yes, Lua is VERY bare-bones and highly dynamic (why it is a popular choice for embedding) so anyone using it for modding is required to invest a bit of time to actually document it.
> You are only discussing the successes. Even built for purpose, game building applications like Core fail miserably to make development easy enough off the back of lua. Far cry 1 had lua scripts that went nowhere.
Exactly, this applies for all games and much else in society. In this case you showed a big reason why modding for these games failed is that they really only did the scripting to finish the game but didn't document it or add hooks to make it reasonable for outsiders, but since there are successes that is probably more on the teams rather than the language itself.
> What love2d games?? The tech demos and hobby projects listed on the website??
The 1500 or so games on itch.io is a good example, now many of these are probably crap but if you look at the top rated there seems to be some nuggets there.
https://itch.io/games/tag-love2d
> For the three or four big successes there are a lot of obscure failures.
The same applies for any editor/framework/engine/language , the thing is that Roblox alone is such a big platform these days with the top third party games (100% lua) are big enough to feed multi person studios apart from Roblox itself heading for an IPO.
I personally don't even really like Lua that much (1-indexing smells), but i can still accept that it is capable enough to run a lot of things.
In many ways it's more powerful than JS while sharing other semantics and we're not escaping JS either these days due to the web.