@icedquinn This is all you need.
@wolfi @icedquinn @xianc78 It's still very fast and significantly easier to use
@wolfi @icedquinn @xianc78 It has native and high performance support for particles
https://love2d.org/wiki/ParticleSystem
Look at these: https://www.youtube.com/watch?v=0SDxvDiOexE
It also has a system for shaders that's basically improved GLSL which would let you create even more custom particles
https://love2d.org/wiki/Shader
@wolfi @icedquinn @applejack Having all the game logic written entirely in a scripting language doesn't sound good in my mind. It's why I stopped using Python/Pygame years ago.
@wolfi @icedquinn @xianc78 Professional games with very active graphics, physics, animations, and particles have dirt requirements. Chances are you were doing something wrong
https://store.steampowered.com/app/323850/Move_or_Die/
The webexporter is 3rd party and I think uses a JS VM for Lua. I've tried it for my stuff and it didn't wanna work
@wolfi @icedquinn @xianc78 LuaJIT is the gold standard for JIT compilers, written in assembly and optimised relentlessly
It's used in high performence application for game logic with C side rendering (like Löve) in games/engines like the CryEngine, Factorio, Minetest, Fable, or WOW
Even plain POC Lua makes up "substantial amounts" (according to the email POC got) of games like Grim Fandango. Basically all of Tim Schafer's games use Lua and were one of the first adopters of it
https://www.lua.org/history.html (ctrl-f Grim Fandango)
It 100% meets the performance requirements of games. Especially games that are the scale you'd make it with something like RayLib
You did something wrong like loading an image inside a fast loop. My games, even the particles, works on my 4gb ARM Pinebook pro without any slight hint of slowdown
@wolfi @icedquinn @xianc78 The particle system is programmed in C++, what do you think?
@wolfi @icedquinn @xianc78 We don't have the data to convince eachother because I've provided it and you didn't become convinced, and you have no data
@wolfi @icedquinn @xianc78 Looking at the code it's also fairly simple and modular. You just offset transforms according to whatever rules you want and tell it to draw a quad. You could in fact make your own C/Nim particle module and add it without much effort
Extending Lua with C (or C with Lua) is easy, comfy, and fast in general. That's largely why so many people use it
https://github.com/love2d/love/blob/main/src/modules/graphics/ParticleSystem.cpp#L1025
@wolfi @icedquinn @xianc78 >It turned out that Bret Mogilefsky was the lead programmer on Grim Fandango, the main adventure game LucasArts released in 1997. In another message he told us that "A TREMENDOUS amount of this game is written in Lua" (his emphasis)
Okay I actually remembered the quote wrong
@ryo @icedquinn Just ignore the fact that I program games in C# using MonoGame. But yeah, frameworks are much better than engines. It feels so satisfying implementing levels, physics, AI, etc "from scratch".
@ryo @icedquinn This guy managed to do it. He even has a full tutorial on how to do it.
Honestly, people using these engines need to ask themselves if they really need all those bloated features that engines provide. Does your game really need to be in 3D? Does it really need VR support? Does it really need RTX graphics?
@ryo @icedquinn I've taken a 3D graphics class back in college. It's pretty simple if you know linear algebra. The professor even wrote his own 3D renderer that outputs to a JFrame image object. For my senior project the following year, I was tasked to rewrite it in JavaScript and port it to HTML5 canvas.
Honestly, the hardest part is the clipping and accounting for the fact that object behind the camera will appear in front of the camera and upside down unless you specifically tell the program not to render them.
However, we were never taught how to map textures or even shade polygons. I wanted to add that feature in my JS port but I didn't have time.
@ryo @icedquinn @xianc78 GPU 3d graphics from scratch is doable for the average dev
Mostly basically boilerplate
https://learnopengl.com/Getting-started/OpenGL
3d physics from scratch would be a fair bit harder. If you did 2d gameplay but 3d graphics it would be sane
This is basically the opengl tutorial + math library (basically copying equations) + assimp (making your own OBJ importer is easy tho) + my code
@xianc78 @ryo @icedquinn That’s mostly what one of my favorites ended up doing. It runs so well on anything I tried it on and just uses SDL and few other libraries.