Do Lua scripts have sense in python-written game?

Started by
2 comments, last by swiftcoder 11 years, 2 months ago

Well for C++ written games using Lua scripts for easy changing ai, quets etc is very reasonable and it's common. However now I'm going to write a game in pure python and I don't know if I should use Lua. Python itself is very high level script language. However, there are things to consider why I could use lua scripts:

1) Lua is commonly used for game scripting and other people who will work with me know Lua and don't know python

2) Python module to embed lua code into python uses very fast JIT compiler so the lua code actually would be much faster than python code (big plus for AI)

3) It would separate the game engine itself (Python) from the scripted logic (Lua)

Do python games use Lua? Is it a resonable thing or I should just stick to pure python? I need some advice because I have no idea.

Advertisement
I would just stick with pure python. Adding scripting with a separate language adds a level of complexity to the game. A major advantage you get with using a scripting language is how easily you can treat game logic as a resource loadable at runtime. Python will let you do that already.

As for speed concerns python should be fast enough. If there is any place where the code runs slow fixing up the algorithms to be more efficient will give you substantial gains than switching to a more efficient language. Plus you incur an overhead communicating between the two languages if you were to use both.

If most people who you are working with know Lua learning python shouldn't be too difficult for them and it is a good language to know. If you don't want to take the time for them to get familiar with python maybe you could consider doing the whole game in Lua. There are enough libraries for Lua out there to let you make games.

Those are my suggestions.
My current game project Platform RPG

I think that sticking to pure python has more sense. Actually some games use python as their script languages. After some thinking I see that embedding script language with a script language is pointless.

Adding scripting with a separate language adds a level of complexity to the game.

It does add some complexity, but not nearly as much complexity as you add when embedding Lua in a low-level language.

Since both Python and Lua are high-level scripting languages, the binding between them is much more elegant.

A major advantage you get with using a scripting language is how easily you can treat game logic as a resource loadable at runtime. Python will let you do that already.

Yes and no. Python does let you dynamically load in modules, but it isn't as smooth a process as one might desire.

More importantly, Python has no way of sandboxing loaded code, which means there is nothing to stop one of your scripts from doing anything from changing the player health to +INF, to wiping your hard drive... The Lua interpreter is (at least in theory) possible to securely sandbox, allowing you to safely execute untrusted and user-supplied scripts.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

This topic is closed to new replies.

Advertisement