lua-users home
lua-l archive

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

Wow, thanks for pointing out that article! It's detailed, accurate, and illustrates many important points.

I worked on The Sims (the original version 1) and the Edith visual programming tool, for programming "SimAntics" code to control The Sims behavior. (I'm the one who named the visual programming tool "Edith", after Edith Bunker (the first Sims character), and also for "EDIT House".)

The reason "edit and continue" and investing development effort in programming tools is so important is that it optimized the AI programmers' and designers' time. The downside of rolling your own visual programming language is that you have to roll your own tools, debuggers, etc, which is a huge costly effort. If we did it again from scratch, I would choose Lua as the underlying scripting language, and write a custom special purpose language and visual programming tool on top of that. I don't think that it would be necessary to change the Lua language itself to support edit and continue, just write the visual language interpreter in Lua and integrate it with the application code in the right way.

Here is a video that demonstrates the visual programming tools in The Sims, which are extremely fun to use, although quite quirky and tricky:

You can see how it lets you interactively browse and edit the running code inside the live game. Edith has additional debugging, breakpointing, tracing, monitoring and profiling tools that I didn't get around to demonstrating in that video. Unfortunately, Maxis never released Edith, but there are some externally developed tools like iffpencil2, for editing SimAntics code through a less graphical interface (more like machine language than a visual programming language). But unfortunately the external tools aren't integrated into the live game, thus can't provide "edit and continue".

Here's a piece of interactive agitprop I programmed in SimAntics: the Dumbold voting machine for The Sims (showing a screen dump of some code in iffpencil2 at the end):

We had some summer interns who picked up Sims programming pretty quickly, and some of the fans figured it how to program Sims object a lot better than anyone at Maxis ever could. Check out Slice City (a plug-in that has its own sub-plug-in add-ons) and the Weather Machine!


Dmitriy Iassenev wrote:
please read section "Custom Scripting Language"

"...The interpreter is required to implement edit and continue..."

Do we have a chance in the future to have a version of Lua with Edit
and Continue feature? And what are the reasons for not to implementing
it? How many changes current code base requires for this?

Yours respectfully,

Dmitriy Iassenev,
 Phone (mobile): +380958392212
  ICQ: 72752187
   GSC Game World - Ukraine, Kyiv,