[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Edit and Continue: Part 2
- From: Don Hopkins <dhopkins@...>
- Date: Wed, 07 Nov 2007 10:24:30 +0100
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:
http://www.DonHopkins.com/home/movies/TheSimsPieMenus.mov
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):
http://www.dumbold.com/dumbold
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!
http://www.SimSlice.com
http://www.simslice.com/Slicecity.htm
http://www.simslice.com/Slicecityaddons.htm
http://www.simslice.com/support-ipweatherseasonspage.htm
-Don
Dmitriy Iassenev wrote:
http://aigamedev.com/reviews/the-sims-ai
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, iassenev@gsc-game.kiev.ua
Phone (mobile): +380958392212
ICQ: 72752187
GSC Game World - Ukraine, Kyiv
http://www.stalker-game.com, http://www.gsc-game.com