lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]



Quoting Marc Balmer <marc@msys.ch>:

Am 22.02.17 um 04:40 schrieb 云风 Cloud Wu:
Dibyendu Majumdar <mobile@majumdar.org.uk
<mailto:mobile@majumdar.org.uk>>于2017年2月22日周三 上午5:12写道:

    I am not a games programmer and do not know whether interpreted Lua is
    good enough in this case.


I have been a game programmer for 20 years, and use lua since 4.0 . I
think lua is good enough for game project because it's easy to embed to
game engine. We need a flexible dynamic language for  gameplay  and GUI
, and the performance only exists in game engine, which is written by C
or C++.   I remember that I have tried to embed lua, python, javascript
to my game engine for my first MMORPG project in 2001. lua is the best
choice, because its less memory overhead, and we can easily manipulate
the memory usage (We should run the game client in 64M Ram).


    In my opinion, having worked on Ravi and in my usage of it, Lua is not
    a general purpose language that you would use to build a large scale
    application. This is not because of any deficiency in Lua, it is more
    that large scale development is better done in statically typed
    languages like Java, C#, Go, Swift etc. The cost of developing complex
    applications in a dynamic language is just too high. I know that many
    folks on this list will probably disagree with this view, but leaving
    aside your love for Lua and your wish to use Lua everywhere, would you
    still use Lua as a general purpose application development platform?


We now use lua both in game client and server. For our game server,
there are about 10K C loc (https://github.com/cloudwu/skynet) for the
framework , and more than 100K lua loc for gameplay.

For mmo game server, Lua is still the best choice rather than go,erlang,
python or nodejs because we choose the actor model for the game server
framework like erlang. We can run thousands lua vm in one process that
python can't (because of GIL). LuaJIT is not suitable too because of 2G
memory limit. I think our framework (skynet) has better performance than
nodejs even nodejs use v8 JIT, because skynet can use all the cpu cores.
I have tried luaJIT for my framework , only 10%~15% performance
improvements.

And coroutine in lua can be a better solution for asynchronous
programming than callback model in nodejs.

I agree lua is not suitable for large program, but a large scale
application can be build with many small parts. We can run many lua vm
in one process like skynet does.

Why should Lua not be suitable for large programs?  It absolutely is.

Absolutely agree.  I don't think static typing is a must for a bigger
application.  Good module/package handling however is and the ability to split
functionality into dedicated classes/pices of code.  IMHO Lua doe very well in
this department.

 -T