5 ms·
> 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
by gam6121147 3y ago
> 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?
[0]: https://en.wikipedia.org/wiki/Lua_(programming_language)#Object-oriented_programming https://en.wikipedia.org/wiki/Lua_(programming_language)#Obj...
- tgtweak 3y agoSeems 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).
- monkeywork 3y ago>Seems pretty trivial to ..... Then go do it. If it's pretty trivial....
- airtonix 3y ago[dead]
- hermitcrab 3y agoAnything is trivially easy when you aren't the person that has to do it.
- Ensorceled 3y ago>> > 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? They are literally begging, 3 "pleases", rather than "expecting".
- askvictor 3y agoI remember a book on the shelf at home in the 90's entitled "Object Oriented Programming in Macro Assembler". And indeed, C has function pointers, so you can do OO. Just not some of the more fun stuff.
- smcin 3y agoI 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. [0]: "Civilization V ditching Python for Lua" https://www.reddit.com/r/programming/comments/bp5m8/civilization_v_ditching_python_for_lua/ https://www.reddit.com/r/programming/comments/bp5m8/civiliza... [1]: https://www.lua.org/pil/16.html https://www.lua.org/pil/16.html [2]: How can one implement OO in Lua? https://stackoverflow.com/questions/4799078/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_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_to_give_lua_an_objectclass/ 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-oriented-language 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 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/tfurkb/if_lua_is_faster_and_smaller_than_python_while/ https://www.reddit.com/r/ProgrammingLanguages/comments/tfurk... [8]: https://wiki.c2.com/?LuaUsersWiki https://wiki.c2.com/?LuaUsersWiki