26 Feb, 2010, David Haley wrote in the 41st comment:
Votes: 0
KaVir said:
I'm definitely not against the idea of such functionality, but my point is that if that's the only tool available to the builder then they will hit the creative wall faster than they would if they also had access to (and knew how to use) a decent scripting language.

An awful lot of stuff, really, is possible with a language as "dumb" as mudprog – certainly not something I'd call a decent scripting language. Perhaps not even writing "actual" code – by any of the definitions given here so far.

At this point I'm not sure we're making useful progress though because there's nothing concrete to compare. It's rather tautological that being able to add stuff on the fly lets you do more than if you can only choose from a list of things. Of course, if you can choose from a list of things using well-known combination and conditional operators, but still without actually writing code, perhaps you can do a whole bunch of stuff again.

I think it's clear at this point that it's nice to be able to add dynamic behavior, but it's still unclear to me that you need a full-fledged language to do so.
26 Feb, 2010, Tyche wrote in the 42nd comment:
Votes: 0
I suppose one doesn't want to implement something as powerful as a scripted language like C, but more powerful than a real language like HTML.
26 Feb, 2010, Scandum wrote in the 43rd comment:
Votes: 0
KaVir said:
I'm definitely not against the idea of such functionality, but my point is that if that's the only tool available to the builder then they will hit the creative wall faster than they would if they also had access to (and knew how to use) a decent scripting language.

We went over this before, with a full fledged scripting language many builders write custom code where they should use central functions, writing working code takes much longer because builders work at a lower level, debugging time increases, readability decreases, and when it comes down to things there's not a whole lot more that builders can do - given you add decent generic functions for builders to use, which do the tricky stuff behind the scenes.

If you're planning to double check everything builders create and train them, a low level language might be preferable, but even then you'd want to avoid low level programming as much as possible.
27 Feb, 2010, Littlehorn wrote in the 44th comment:
Votes: 0
Runter said:
David Haley said:
Honestly, I don't think that scripting languages like Ruby and Python are appropriate for direct manipulation by builders (although they're better than nothing if anything because the coder can go in to write the scripts for them without messing with the presumably more complex core). If they're going to be writing full code in those languages, they might as well be working on the core. Lua makes it easy to construct true sandboxes, but even then you're arguably presenting an inappropriate interface.



I'll respectfully have to disagree on some things. We've heard a lot about the downsides, but I think there are some rather large upsides to using a language like Ruby or Python. In particular, if I were building it's the tool I would want. I think a lot of builders aspire to perhaps learning how to write in a real language. Perhaps this is a good way. There's a lot of resources out there for them in the first place—And if they are elevated to working on the core one day then they have considerable knowledge towards the end. I don't see why, in particular, these scripts have to be complex. They could possibly be complex. But considering the things that a lot of the scripting languages out there atm accomplish they could be very short and very readable. I think some domain specific languages used in MUDs are very complex. Odds are everyone new would have to learn these. It's entirely possible that new builders may have experience with a language like Ruby or Python or Lua.

I don't find that inappropriate compared to what other scripting languages used in the community might look like to do the same thing.


It would be better to use something that's a bit more standard in game design. Lua would be one of those standards that you would want to encourage over the others because it's more valuable to a builder (level designer) than all others.

BTW: Builders are developers David. You would have better luck having a builder title and scripter title. The scripters fill the requests of the builders needs when they are developing new worlds or content.
27 Feb, 2010, Runter wrote in the 45th comment:
Votes: 0
Quote
It would be better to use something that's a bit more standard in game design. Lua would be one of those standards that you would want to encourage over the others because it's more valuable to a builder (level designer) than all others.


I did mention Lua. :P

But for me, my choice won't be Lua.
27 Feb, 2010, David Haley wrote in the 46th comment:
Votes: 0
Littlehorn said:
BTW: Builders are developers David. You would have better luck having a builder title and scripter title. The scripters fill the requests of the builders needs when they are developing new worlds or content.

They're "developers" in the sense that they "develop content" but I thought it was pretty clear that developer here means software developer or programmer.

That said, yes, it is quite reasonable to have separate people who do things like (a) design layouts, write descriptions, etc., and then (b) write the interactive, dynamic scripts to make (a) happen.

Runter said:
I did mention Lua. :P

But for me, my choice won't be Lua.

It's worth noting that Lua is designed for this application. Whether or not you use it to build a DSL for your builders is quite separate from whether or not you use it to write the rest of your MUD it. Lua gives you more control over the environment presented to the author, for example. (And this isn't just w.r.t. Ruby but Python as well.)
27 Feb, 2010, Runter wrote in the 47th comment:
Votes: 0
Quote
It's worth noting that Lua is designed for this application. Whether or not you use it to build a DSL for your builders is quite separate from whether or not you use it to write the rest of your MUD it. Lua gives you more control over the environment presented to the author, for example. (And this isn't just w.r.t. Ruby but Python as well.)


Lua won't be my choice.
27 Feb, 2010, David Haley wrote in the 48th comment:
Votes: 0
Thank you for a repetition completely devoid of useful, helpful information. Your response will greatly assist me and others in determining how to approach this problem. :rolleyes:
27 Feb, 2010, Runter wrote in the 49th comment:
Votes: 0
David Haley said:
Thank you for a repetition completely devoid of useful, helpful information. Your response will greatly assist me and others in determining how to approach this problem. :rolleyes:


Eh, you quoted it the first time. Although, just wanted to make clear that I knew all that before you mentioned it; It still doesn't effect my decision not to use it. Of course, us peons are too dumb to know what's best for us.
27 Feb, 2010, David Haley wrote in the 50th comment:
Votes: 0
Maybe my comment was directed at, you know, the other people reading this thread, replying to somebody stating without any useful information that they don't like something. Unexplained personal preference is utterly useless. Justified personal preference is incredibly useful. Lua is designed for this, whether you like it or not, and people should know that. You made it clear enough that you wouldn't choose it, but hey, you're not the only person in the world.

This has nothing to do with insulting your intelligence so stop getting on your high horse about it already. If you insist on finding a slight, it would be that throwing around repetitive, unjustified claims is a waste of everybody's time and certainly isn't productive when it comes to educating people.
27 Feb, 2010, Runter wrote in the 51st comment:
Votes: 0
David Haley said:
Maybe my comment was directed at, you know, the other people reading this thread, replying to somebody stating without any useful information that they don't like something. Unexplained personal preference is utterly useless. Justified personal preference is incredibly useful. Lua is designed for this, whether you like it or not, and people should know that. You made it clear enough that you wouldn't choose it, but hey, you're not the only person in the world.

This has nothing to do with insulting your intelligence so stop getting on your high horse about it already. If you insist on finding a slight, it would be that throwing around repetitive, unjustified claims is a waste of everybody's time and certainly isn't productive when it comes to educating people.


I never said anything about disliking Lua. I simply said I won't be using it. If you feel you need to dispute every person on this forum not using the language you would pick for them then I think you have much disputing ahead of you.
27 Feb, 2010, David Haley wrote in the 52nd comment:
Votes: 0
I'm terribly sorry, I didn't realize I was trying to convince you to use it. In fact, I thought I made it rather clear that I was addressing other people (I know that's pretty shocking, but hey). Your comment simply prompted the question. I'm not sure why you felt the need to get snippy about it and repeat literally something you'd already said. That serves no useful purpose whatsoever, and since you seem to like finding insults everywhere, it's actually rather insulting of you to have done so.
27 Feb, 2010, Lyanic wrote in the 53rd comment:
Votes: 0
Runter said:
David Haley said:
Maybe my comment was directed at, you know, the other people reading this thread, replying to somebody stating without any useful information that they don't like something. Unexplained personal preference is utterly useless. Justified personal preference is incredibly useful. Lua is designed for this, whether you like it or not, and people should know that. You made it clear enough that you wouldn't choose it, but hey, you're not the only person in the world.

This has nothing to do with insulting your intelligence so stop getting on your high horse about it already. If you insist on finding a slight, it would be that throwing around repetitive, unjustified claims is a waste of everybody's time and certainly isn't productive when it comes to educating people.


I never said anything about disliking Lua. I simply said I won't be using it. If you feel you need to dispute every person on this forum not using the language you would pick for them then I think you have much disputing ahead of you.

Hi Runter. Have you met David? No? Why u mad tho?
27 Feb, 2010, Koron wrote in the 54th comment:
Votes: 0
Blah blah Lua blah blah.

Where's the best place to see some hot Lua example action? I'm basically ignorant of it entirely.
27 Feb, 2010, David Haley wrote in the 55th comment:
Votes: 0
Do you mean Lua code in general or something more specific to MUDs?
27 Feb, 2010, Kline wrote in the 56th comment:
Votes: 0
In general? WoW. In MUDs? Try Gammon's Board.
27 Feb, 2010, Koron wrote in the 57th comment:
Votes: 0
MUDs would be more useful, but I'll take suggestions for both if you've got em.

Edit for NinjaKline: kthxu.
27 Feb, 2010, David Haley wrote in the 58th comment:
Votes: 0
Here's an example from my work integrating Lua and my long-ago-SMAUG-derived-base:

local function reportIssue(actor, …)
local numArgs = select('#', …)
local category

– figure out the category:
if numArgs >= 1 then
category = string.lower(select(1, …) or "")
– make sure it's a known category
if not _M.isCategory(category) then
actor:sendText("Unknown category: '" .. category .. "'.\n")
category = _M.promptForCategory(actor)

– on cancel, abort the command
if not category then
actor:sendText("Canceled.\n")
return cmds.OK
end
end
else
category = _M.promptForCategory(actor)

– on cancel, abort the command
if not category then
actor:sendText("Canceled.\n")
return cmds.OK
end

end

actor:sendText("Enter a subject line: ")
local subject = commands.waitForInput()

actor:sendText("Describe the issue in more detail.\n")
local text = commands.waitForEditorBuffer()

– on cancel, abort the command
if not text then
actor:sendText("Canceled.\n")
return cmds.OK
end

createIssue(actor, category, subject, text)
return cmds.OK
end


I think it shows off an extraordinarily cool usage of co-routines, namely being able to have the illusion of "pausing" the function while you wait for input. The engine takes care of resuming stuff under the hood.

Note that this isn't builder-facing scripting of course, but it's just something to get the possibilities rolling. I don't have time to show more now. Gammon's forums are indeed an interesting place to look although I feel that his approach doesn't really take advantage of all the potential.

At some point in the hopefully not too distant future, I also hope to release a 2d game that uses Lua for configuration and some game logic.

I have several Lua examples lying around in various places although I'm not sure how "cool" you might find them. One of the things I like immensely about it is how easy it is to provide dynamic configuration to a C/C++ application using Lua config files.
27 Feb, 2010, donky wrote in the 59th comment:
Votes: 0
Is scripting scripting when all the code is written in a scripting language? Ruby is extremely unreadable. Do builders really need to be able to write any code? Someone wouldn't build on a MUD where they couldn't code. Someone doesn't like Lua. Developers are programmers, builders are not programmers, so builders are therefore not developers.

This thread is more a collection of opinions than anything else. I don't think I have gained anything from it, and I can't see it going anywhere different.
27 Feb, 2010, David Haley wrote in the 60th comment:
Votes: 0
And another valuable contribution was just made. :wink:
40.0/75