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.
[0]: "Civilization V ditching Python for Lua" https://www.reddit.com/r/programming/comments/bp5m8/civiliza...
[1]: https://www.lua.org/pil/16.html
[2]: How can one implement OO in Lua? https://stackoverflow.com/questions/4799078/how-can-one-impl...
[3]: Is doing OOP in Lua considered bad practice? https://www.reddit.com/r/lua/comments/tbaxlo/is_doing_oop_in...
[4]: Really, how best to give Lua an object/class structure? https://www.reddit.com/r/lua/comments/tia21g/really_how_best...
[5]: Is Lua an object-oriented language? (SO, 2011) https://stackoverflow.com/questions/3477676/is-lua-an-object...
[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
[7]: r/ProgrammingLanguages, 2022: "If Lua is faster and smaller than Python, while being just as powerful and capable, then why is Python so much more popular?" https://www.reddit.com/r/ProgrammingLanguages/comments/tfurk...