> godot goes corpo
:blobcatpain: reminder that we may never have nice things
@wolfi @xianc78 we had raylib bindings in nim but apparently raylib has huge flaws
maybe it was just an issue with the binding? i haven't had issues with raylib myself
love2d has much lower performance, especially if you want to support a web version as well
@applejack @icedquinn @xianc78 nope, i had performance issues with love2d. Especially when exporting for a web version haha the game became unusable.
@applejack @icedquinn @xianc78 it depends what you want to make. I was using a lot of particles

@wolfi @icedquinn @xianc78 It has native and high performance support for particles
love2d.org/wiki/ParticleSystem
Look at these: youtube.com/watch?v=0SDxvDiOex

It also has a system for shaders that's basically improved GLSL which would let you create even more custom particles
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

store.steampowered.com/app/323

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

@applejack @icedquinn @xianc78 no matter what optimaztion you simply won't meet the performance you can get using something like c or zig. I've reimplemented the code i was doing in zig and it just runs so much better. Especially on older hardware

@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
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

@applejack @icedquinn @xianc78 you can just do a benchmark on how many particles you can emmit in love2d compared to raylib/c if you don't believe me

@wolfi @icedquinn @xianc78 The particle system is programmed in C++, what do you think?

@applejack @icedquinn @xianc78 you mean like parts of love2d that are made in cpp? Doesn't change the fact that you are not compiling the source code, thus you are going to have slower performance, but really there is no point discussing further. If I'm bored maybe I'll make a benchmark comparing the different particle systems, but until then we don't have the data to convince each other xD

@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

github.com/love2d/love/blob/ma

@applejack @icedquinn @xianc78 using Lua in different parts of a program is very different to using love2d to make a game ahah and I'm not a noob to Lua, i love the language for it's simplicity and ease of use

@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

@xianc78 @icedquinn As Xianc said, SDL is the way to go as far as having nice things goes.
Like how GTK 2.0 for desktop GUI, ncurses for terminal TUI, and languages like C, PHP, Go, and Lua without a framework.
Even PHP frameworks like Laravel feel more and more corpo-ish as it's getting more popular, all while real PHP will remain free (as in freedom) forever.

@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".

@xianc78 @icedquinn I'm more a type of developer that wouldn't get passed the library level (on the scale of "from 0" → "library" → "framework" → "engine", the more forward, the more bloat).
I'd love to make video games from 0, but I feel like that'd be overkill.
At least making web apps and CLI apps from 0 is very doable.
@ryo @xianc78 i wrote my cinematic script system so its easy to move between engines but i still have to go deal with adding the demo project stuff :ablobcatbongokeyboard:

was sorta hoping to be further along a project by now though. trying to get odd jobs online didn't really pan out.

@ryo @icedquinn This guy managed to do it. He even has a full tutorial on how to do it.

handmadehero.org/

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?

@xianc78 @icedquinn 3D is nice to have, I think you'd even stand out as an indie if you do 3D.
But I know it's extremely hard unless you have some insane 3D mathematics skills.

I'll bookmark this site, will come in handy when I will make a game again, as last time I did was a decade ago, and it was in Unity too.
@ryo @xianc78 i implemented the suite of linear algebra to do basic 2d/3d stuff. and some projective geometric algebra.

it wasn't all that fun.

business doesn't really care about anything other than shipping the product. so there's a limited amount of effort that is worthwhile when it comes to things like rewriting the world to use projective algebra because its intellectually pure but the somahead at the end of the steam sale couldn't care less.

@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
learnopengl.com/Getting-starte

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.

Sign in to participate in the conversation
Game Liberty Mastodon

Mainly gaming/nerd instance for people who value free speech. Everyone is welcome.