[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Table performance
- From: "Ashwin Hirschi" <deery@...>
- Date: Wed, 05 May 2004 05:28:15 +0200
What I'm looking at the possibility of is a game creation systemthat runs lua entirely. This means some performance critical drawing
loops that typically would be in C++ could end up in Lua.
I hear what you're saying. My 2 cents worth: I think Lua is excellent for creating/rendering/driving graphical user interfaces. Here's why:
For an information management system I've created a Lua-based runtime that handles (amongst other things) all the graphical UI rendering. So, it does not rely on any Windows controls for rendering whatsoever. Everything you see [buttons, listviews, fields, tables, scrollbars, &c.] is controlled and rendered through Lua.
Now, I don't mean to toot my own horn, but... this setup works *really* splendidly [toot-toot! ;-)]. Even fairly complex UIs run & render very smoothly. And that's on the 400Mhz machine I mentioned in my previous post.
Obviously, you do need to know what you're doing. So, I think it's an excellent idea to run the tests you're running right now. It's pretty much the way I set out, way back somewhere in 2002. Do keep in mind that it might be much more worthwhile to run more 'practical' tests, though. Maybe you could wrap a few of your rendering primitives and see how well it goes?
Just to be clear: creating the runtime I (partly) described was not accomplished in a mere few days. In fact, quite a lot of water went under the bridge before I was satisfied with the results. But the effort was worth it: the end result is an extremely thin and very flexible runtime, that's a dream to program.
For example, I can create a new UI in a few lines of Lua script, or write 1 line to load a form definition (written in Lua table syntax) instead. And if I ever need to tweak basic widget behaviour [a very rare occurance, these days] I can simply open its script in Vim, make the changes, close my application, start it again, and start testing.
That's right: no compiles, no links, and... no crashes. If anything is amiss, my runtime shows a messagebox with the Lua alert, including the stack trace. Once you have reached this point, development goes very quickly. And it's a very pleasant way to work as well. I cannot help but smile when I think back to those heady days when I did all my front-end work in C++... Trust me when I say: I am never going back!
I really like being able to write 10-20 lines of Lua instead of 50-100
lines of C++. I just want to make sure I don't run out of CPU cycles too
quickly.
Well, I think you're test/benchmark approach is sound. But, if possible, just try out a few actual scenario's to get a really good feel for what's happening. The couple of lines of Lua versus the countless lines of C++ is definitely something that can be reached. I know, because I have.
Life with Lua is good!
I hope this helps.
Ashwin.
--
no signature is a signature