> why on earth choose a non-OO language for a boardgame
Lua has usually been a very popular choice for game developers. One reason is that it gives you an easy way to embed a scripting language in your game.
You can do OOP without classes [0].
> Can you please please please integrate with Python on the server?
You expect the developer to port and maintain their entire project to Python because you can't be bothered to learn a new programming language?
I clearly didn't "expect" the developer to port or do anything, I requested they consider also integrating with a (server-side) language that's in general more widespread, more expressive, more userbase, more libraries, more powerful developer tools. Per the examples I cited, boardgame platforms put most of the game logic on server-side, for complex games. The client-side checks that moves are not illegal, cheating or nonsensical.
I wasn't aware Lua had become widespread in game programming [0] (or more specifically, scripting on top of a game engine written in some other language); but supposedly not mainly due to whether Lua language has adequate features, but in part as a reaction to
(client) performance of the Lua VM vs Python (VM maps to register set rather than stack-based; lower memory usage; coroutines); on client rather than on server. Some discussion in [0].
I did in fact in 2020 look into implementing a friend's boardgame in Lua on TTS vs in Python. That programming only confirmed my experience that line-for-line, Python is more expressive, IME more productive to develop in, also has much stronger library support.
Why is the basic documentation [1] on whether/how to implement OO Lua so contradictory and all over the place? When I look for a how-to document, I want a clear how-to, I don't want to see Lua's own users in a decades-long debate [2][3][4][5][6]. Or [7]. Or a lua-users.org/wiki that isn't even accessible via https [8]. (If I should be using a more accurate term than "OO", then just tell me what that is, instead of ad-hominems.) So for example, do we need polymorphism, mixins, the ability to call super, serialization (probably can do without that), etc. Should we sacrifice other features for more deterministic GC and performance? What are the compelling reasons for server-side Lua? on a feature-by-feature basis vs say Python?
(There's also a constituency who insist that Tcl is object-oriented, FWIW.)
Probably the best way to keep this discussion on-focus is to define "What is the consensus on an adequate set of OO features that's considered necessary for server-side game logic programming?" (that's a rational discussion, not "can't be bothered to", which is just ad-hominem).
As to TS, in my experience I don't find strong type-checking to prevent that many bugs, in codebases written by a small number of developers. I can program JS, so again if I saw a compelling reason to start using TS I would. (Sure, you could also crosscompile Python.) Again, that's not the primary issue, the primary issue is what server-side language once the game becomes complex and outgrows a pure TS implementation.
[6]: Why inheritance isn't as useful in dynamic languages, and other notes on OO in Lua (marc.info) "In short: inheritance is in most cases not a feature, just a simplistic method
for expressing similarity."
https://news.ycombinator.com/item?id=98529
Seems pretty trivial to support Python serverside. Python is very easy to run in a lightweight isolated container (and you can compile it to static executable). The game data that the engine makes available to the server side code looks pretty standard and doesn't look like a huge shim to maintain.
You could even cross compile the Python to typescript for a simplified server side environment (typy for example).
Lua has usually been a very popular choice for game developers. One reason is that it gives you an easy way to embed a scripting language in your game.
You can do OOP without classes [0].
> Can you please please please integrate with Python on the server?
You expect the developer to port and maintain their entire project to Python because you can't be bothered to learn a new programming language?
[0]: https://en.wikipedia.org/wiki/Lua_(programming_language)#Obj...