« It Takes a Guild to Raise a Child | Main | Second Life Breaks 1 Million Mark »

Oct 21, 2006

Comments

1.

What's your IDE of choice?

2.

"Would you prefer a messy world with ambiguous types"

YES!!

3.

Andrew> What's your IDE of choice?
------------------------

Question. Should the tool or the language drive the choice?

Or topically, should the interface or the world drive the experience?

4.

That's an interesting question. My gut reaction is to say "yes, I would love a messy world" but then I remember the times I've abruptly quit from a game in frustration because it wasn't "fair."

Of course pronouncing something "not fair" is a maintained behavior from childhood that takes on a number of meanings in adulthood. In these cases "this game is not fair" could be roughly translated into "this game is not conforming to my understanding of it, and thus I am unable to reasonably predict the outcome of an event."

So I wonder, "Would [I] prefer a messy world with ambiguous types?" It depends on what that means.

If the analogy works, then it would also imply, perhaps, that it can only work because the elements of that world are in themselves static and invariant over time. Quest lines follow predictable paths. Mobs are well typed.
I think you may be talking about a world design that follows OOP principles rather than a programming language with ambiguous types (I'm not a programmer, so we may be at the limit of my ability to process the analogy).

If a virtual world was programmed with true OOP behavior of objects (i.e. all in game objects were OOP-style objects), it would give the developers the ability to be fairly inventive (but might possibly be extremely taxing on server infrastucture). Assuming that hardware/processing limitations could be overcome, such a world could have the following features:

  • NPCs could have defined behaviors that made them more realistic -- they would go to work, make decisions based on multiple factors around them (e.g. if one peasant yells "Help, help I'm bein' oppressed!" they could check how many entities were around and flee or assist), go to bed at night, etc.

  • More excitingly, factions could expand and interact with each other whether ot not players assisted. For example, an imperial faction could have citizens that autonomusly sought to build new settlements in the virtual world and would invade adjacent areas, while an insular faction could resist contact with outsiders.

  • Faction reputation systems could be much more complicated - if every NPC is an object, faction news could be changed from propagating immediately, e.g. if PCs attack a town or rob a bank, it may require that a messenger reach another faction node for global reputation to be affected. Additionally, NPCs could have variable standings in their own faction (e.g. a faction autonomously sends out agents to achieve a task which the players can help or not. The NPCs own faction standing would be affected by the outcome of the mission).

  • Quest requirements, available quests and even experience and drop rates could change based on the state of the world. I think the Warhammer MMORPG is attempting something like this, but I might misunderstand their system since it's not out.

The list could go on for a while. It's important ot note that probably everything above is acheivable with procedural techniques, it's just way more work and harder to make a change (e.g. it's more efficient to be able to change the playerHarass method that belongs to the CityGuard object than it is to effect the same chance procedurally), or at least that's the conceit of OOP.

The above list is the sort of thing I'm looking for in a next generation game. I like to be able to predict the outcome of a "standard" event -- I don't mind being surprised by an encounter occasionally, but I generally want to have a good bet on my chances (thus the prevalence of /con systems).

Is that what you meant?

5.

illovich>
may be talking about a world design that follows OOP principles rather than a programming language with ambiguous types ...

If a virtual world was programmed with true OOP behavior of objects (i.e. all in game objects were OOP-style objects), it would give the developers the ability to be fairly inventive (but might possibly be extremely taxing on server infrastucture).
------------------------

Actually, au contraire. IMHO. To the extent one introduces structure/constraints on the elements of a representation (Objects incl.) and enforces it across all contexts, isn't one restricting the set of operations one can peform on it (-> behaviors)? The question then becomes, when are these sorts of pragmatic constraints over-constraining?

Sure OOP introduced constructs such as polymorphism and interfaces (etc) to wiggle this, but imperfectly. Structure also enforces how a representation is accessed, the "how to" emphasis over "what" I mentioned.

btw, some earlier discussion and hooks into OOP:

Trouble with Tribbles

fire away!

6.

nate> Question. Should the tool or the language drive
nate> the choice?

Primarily, the problem you're trying to solve should dictate the choice. If you're favorite tool is the wrench, you're still going to hammer to drive in a nail, right? I like Perl best of all languages, but if I'm trying to write a web application that needs speed, I'm going to choose PHP or ASP/VBScript since they're better integrated and will run faster. Barring a Macgyver-ish situation, why would the choice of a tool ever drive how you approach a problem?

nate> Or topically, should the interface or the world
nate> drive the experience?

The interface always drives the experience, but it doesn't have to limit the experience. That's the point of plug-ins, API's, and having a toolbox full of choices. This is why WoW has an Lua/XML interface, City of Heroes has keybinds and macros, and likely why Asheron's Call turns a blind eye to the Decal interface. The initial product has a baseline interface, but the really good MMOG's aren't static inn how they let you play, they're quite dynamic about it.

Back to my initial question, what's your IDE of choice?

7.

I remember watching an episode of some old TV show where it became clear that the characters were not in a real car, but "driving" in front of a screen; the background repeated about every 10-15 seconds. I pointed this out to my friend, Ken, who quipped, "Yeah. That special effect doesn't pass the Touring Test." Har-dee-har-har.

What we're talking about, I think, is something between the zero state change (pure Deja Vu) of running a single-player video game again from the start, and what can happen in a game with massive Butterfly Effect possibilities. The idea of a messy world is appealing, sure. But if every time you logged in you discovered that something really funky had happened to Azeroth...

1. All the NPC Tauren everywhere had gathered up all the animals everywhere and gone on strike

2. The undead realized that they were, well... undead and therefore, well... pretty much imune to lots of other ways of being killed/influenced. So they decided to piss off.

3. Gnomes and dwarves ganged up on elves over issues of body image politics

Etc, etc. You'd be pissed. Now, in a world with very few NPCs and scripted quests... it's all good. As one of my fave GM's ever (Hi, Ed) once said, "The animal is never wrong." If you have a game that's all PCs... you can't ever tell another player, "You're playing wrong," unless they're cheating. If a bunch of other players decide they want to worship mud and build a guild around the idea of bee polen sniffing... well, they're paying their $15/month, so who are you to complain? Build yer own dang guild.

But in a world where you, as a player, ***expect*** something from the system, please read the word "static" as a synonym for "expected." I don't want the shopkeeper to get robbed by the NPCs. Or to run away and be a Paladin. That is mui inconvenient for my gameplay.

Right now, though, what we have to realize is that most MMO/VWs are programmed incredibly sparsely when it comes to native/NPC intelligence. The inhabitants number in the dozens per village, maybe a couple dozen to (tops) a hundred in a major city. That's not enough interaction for large-number theory to take over and smooth out the abberations. There ain't a large enough sample for things to be truly "messy" in a good way. IE, things will break, but there aren't enough pieces to fix the break.

To take an earlier example... If the shopkeeper decides to become a paladin... in a well populated world, the "dynamic" programming would probably have a high enough population and a large enough unemployment rate such that one of his assistants, children or competitors would fill the role. You'd show up at "The Nail and Pail" to unload yer loot, and rather than be disappointed that it's empty of a dude to buy your swag, you'd simply find a different dude. If you asked, "Where's Shimbar the Dwarf?" You'd hear, "He's gone West to hunt for trolls." Which is, frankly, kinda cool. You might even bump into Shimbar if you went west. If Shimbar owed you money or you needed to drop off a quest item with him... well, West it is, my pretties.

"Messy" isn't just about the behavior of one actor in a vacuum. It's about the interaction of all the actors, and the cumulative environmental conditions created. Chaos theory has a lot to say about this stuff. You have a "small" or "stable" number of certain species, and it will stay that size forever. Bump it up a little bit past a certain amount, though, and then you get that Butterfly Effect, and things go bananas.

So, yeah. I'd love a messy world. But it would have to be one where the mess is distibuted in a pattern that resembles something, well... interesting and gamey. Not stoopid.

8.

Burton>

The interface always drives the experience, but it doesn't have to limit the experience. That's the point of plug-ins, API's, and having a toolbox full of choices. This is why WoW has an Lua/XML interface, City of Heroes has keybinds and macros, and likely why Asheron's Call turns a blind eye to the Decal interface. The initial product has a baseline interface, but the really good MMOG's aren't static inn how they let you play, they're quite dynamic about it.

Back to my initial question, what's your IDE of choice?

For mainstream, I like what the Eclipse platform has done, though I wonder if it is getting too generic (see below) for its own good. E.g. I am aware that it even has a PROLOG plugin which I think is uber cool and hope it works out. I still think the Microsoft visual studio family works well together, though its always a closed shop and its edge on the "integrated" gig seems less compelling these days - from the explosion of competing products. Squeak (Smalltalk) is likely, however, the one I'd say is coolest, though I wish I could brag that I have used it more.

I could go on with anecdotes. But here is the deal. To what extent does the IDE package as a tool/capability drive developer's choices in languages for a job? A great deal, especially in large engineering projects: few bet on languages and platforms when they perceive risks from a lack of tools and support.

To bring this point back into this thread. To what extent are the "language" of virtual worlds limited because of the current "tools" and interface. Players have come to expect a quantifiable world with numeric properties, and quest books where chains can be efficiently annotated, etc...

RE: Plugins and extensibility - I think this begs the question I'm suggesting here, and asked differently before: which is the chicken and which the lipstick?. Sure you can customize your editor (Emacs), even IDE (Eclipse), but one is still limited by the underlying code/language they have to work with and how much information they can extract from it.

9.

Andy>
"But in a world where you, as a player, ***expect*** something from the system, please read the word "static" as a synonym for "expected." I don't want the shopkeeper to get robbed by the NPCs. Or to run away and be a Paladin. That is mui inconvenient for my gameplay. "
------------------

This is in the direction I was hoping we'd get to. Your bold-face of expectations seems very appropriate. This harkens back to Damion's (?) point a long time ago about the AI in MMOGs as providing puzzles to the user. PUzzles, however, consistent with expectations.

HOw then would one signal to the user that they should have no preconceptions? That everything is in play and open ended?

10.

HOw then would one signal to the user that they should have no preconceptions? That everything is in play and open ended?

Don't call it a game, first of all.

Second, establish a tradition of exploration. One of my friends appears to be of the Explorer variety, and loves to poke and prod at things. He loves the text-based game I addicted him to, and cites the fact that so much is built in for the sake of being discovered as a reason he likes it so much.

Dragonrealms also has a doctrine of PAFO, or Play And Find Out. This has its advantages and drawbacks, and it doesn't stop players from having preconceptions, but they are of a far broader spectrum than I have heard of in any other game. Then again, maybe it's a text thing. =P

11.

HOw then would one signal to the user that they should have no preconceptions? That everything is in play and open ended?

It's simply an impossibility, put that way. Players would find such a world absurd but, more importantly, it would be impossible to make. So, in the end, what we are talking about is not messiness or lack thereof, but rather the just-right calibration of the multiple contingencies that make up games so as to be compelling or engaging. This is, imho, the distinctive game designer's art, at root. We must have that Claude Shannon mix of the expected and the unexpected (though on more than one spectrum). It's the same thing that kids tap into in an impromptu front-yard baseball game where they adjust contingencies with ease ("OK -- that tree's second, but you have to run around it once before you're safe.").

12.

Here's my big question, then, following some of my usual rambling...

On the one extreme: "Myst." A very pretty jigsaw. A game where everything is hyper-programmed by the game designer. It is not entirely linear and sequential; ie, you can do the different puzzles in various orders, but do them all you must. And do them exactly *this way* you must. And everyone who completes the adventure will have completed it having clicked in exactly the same places at least once. You are playing, to a great degree, the part of a character in someone's novel. There is no point system and no leveling; only one goal -- to finish. There is NO uncertainty except when (or if) you will finish.

On the other extreme: "Second Life." Legos with tits. The game designer gives you spaces, some physics rules, some tools, and says, "Have at it." A couple people invent games like Slingo. A couple people put up sims. Lots of people build various nookie establishments. Various folks hang out. There is no point system and no leveling; only one goal -- to play forever. There is no certainty that you do not make or find for yourself.

It seems like the middle ground is the most interesting place. Where on the "Myst to SL" curve is there room for a game that allows for some degree of "certainty" (read: interesting, fun, exciting, plot, writing, character, art, design, etc.) to be provided by the publisher, but for the players to provide most of the uncertainty?

I don't want to believe Thomas on this one. I want to believe that it would be possible to set up a world where there is nothing but rules, a space, tools and a starter's pistol. And then players could provide the "funcertainty." (AGAIN! I've done it again! Another idiot new word we didn't need!)

Maybe those rules and tools would need to be pretty complex... but the example he gives is itself one where there is NOT a GameLord providing anything but the understood "Uber Rules of Baseball." You need bases. You need a bat. You need a ball. You need at least... er... Four kids. Six is better. The not-so-massively multiplayer online version of front-yard baseball could be done as long as the players had the means to identify and agree on four bases; a bat and ball (or the ability to create a bat and ball); and the physics of play.

My fear is that the guy with the bat would never give it up and just gank everybody else, while running around yelling, "Pure pwnage!"

13.

On the one extreme: "Myst."...There is NO uncertainty except when (or if) you will finish.

Right, there is the uncertainty of your own performance, which is not to be discounted. Games always challenge us performatively -- it's the heart of what makes them compelling.

On the other extreme: "Second Life."...There is no certainty that you do not make or find for yourself.

Yes, the goals for action are emergent, rather than defined. Therefore, SL ceases to be a "game" (because it is not a legitimate, semi-bounded arena with interpretable outcomes), but is still game-like.

It's the difference between a protean, contingency-filled environment (like "RL", or SL), and a game, which is an artifact within it.

...as long as the players had the means to identify and agree on four bases...

The missing ingredient that you are hoping can be leveraged in the absence of designer-imposed foundational game objectives is (drumroll, please): culture. As a set of shared expectations, it's part of how games are governed (that is, how contingency within them is calibrated) all the time.

14.

nate> To what extent are the "language" of virtual worlds limited because of the current "tools" and interface.

In one of the interviews with the Multiverse founder (SecondCast, maybe?) he mentions that there is a "Quest" entity in their toolchain, which implies a lot about what sort of environments their platform supports easily (MMO games) and what sort of environments will require low level efforts (anything not an MMO game).

On the other hand, if one were to take one of the web development toolchains (e.g. Eclipse, J2EE, HTML/CSS/Javascript, Tomcat, Firefox) and use that as starting point for an online space platform then perhaps it would easily support spaces for real time information visualization but would take a lot of arm twisting to create an MMO game.

nate> How then would one signal to the user that they should have no preconceptions? That everything is in play and open ended?

Some people write PERL-ish code no matter what language they're using, and some people will be sword wielding Gandalfs on any 3D platform. The most straightforward way to eliminate expectation is to hand control to the user all the way down the stack, but I wonder if multiuser games can survive that chaos.

15.

nate> Eclipse

Cool. I'm more of a Komodo and Visual Studios person. I've never done too much with Java, but I keep Eclipse on my machine, mostly, for its OpenLaszlo support.

nate> A great deal, especially in large engineering
nate> projects: few bet on languages and platforms
nate> when they perceive risks from a lack of tools nate> and support.

I can't argue that point. I've read a lot of posts in borland.public.delphi.non-technical and elsewhere where Delphi was flat out turned down for a project because VB or Java was already used in-house. Developers are a biased lot when it comes to their tools. I would argue, though, that the best developers are the ones who aren't biased in that regard. (However, that may be a biased statement, because I prefer that kind of mindset.)

nate> To bring this point back into this thread. To
nate> what extent are the "language" of virtual worlds
nate> limited because of the current "tools" and
nate> interface.

This is the heart of my arguement -- and a lot of beef with Linden Lab's apparent culture/mindset toward virtual worlds: they're not limited at all. The developers may be bound to an IDE, a language, or a "vision;" players on the other hand are not, not at all.

The best example I can site for this comes from ARG's, where the game "interface" typically starts out as a series of clues and nothing more. The game starts to evolve, and the interface becomes chatrooms, wikis, message boards, blogs, maps, and even software development. As the game plays out, the interface eventually settles out, but it's never limited.

Going back to MMOG's -- and given the trends in mobile computing, MMOG's and ARG's could easily begin to mix -- look at places like Warcry, Stratics, TerraNova, SLUniverse, etc. The gameplay of an MMOG extends out beyond the game. Plug-ins are my favorite example of this, but even non-programming people who play MMOG's aren't limited by the game code. Look at all the fanfiction that's come from City of Heroes, World of Warcraft, Everquest, etc.

The game code may be like an IDE -- I don't want to argue that it's not, because I think MMOG's could become awesome IDE's -- but like an IDE, it's only limiting if people let it limit them. Yes, software shops may limit themselves by picking IDE based on varying things (popularity and buzzwords typically being the trump card), but that's typically for businesses and often by people who have little idea what they're deciding on. MMOG's are chosen by individuals based on what they enjoy, word of mouth, where their friends play, etc.

Unlike software projects, though, they're not bound to that interface for a defined project. They can leave at any time. They're not there for a job, they're there to have fun. They can leave at any time. They're in that world driven by their own desires, and that can be a for countable XP points or it can be to watch an elfen butt for hours on end.

I play City of Heroes, and one of my favorite activities there is badge hunting. However, I'm impatient about it, and don't just randomly run around the city. I use the web and pull up the coordinates for the badges. I'm not limited to Cryptic/NCSoft's interface for badge hunting, and I'm not limited to by Firefox's ability to just show me their coordinates. I combine the two interfaces for an in-game result, but the steps I used go beyond the codebase of the game. The interface limits me, but it doesn't impede my play.

To answer your question, "To what extent are the 'language' of virtual worlds limited because of the current 'tools' and interface[?]" They're not, they're only limited by the scope of the mindset of the developers and gamers.

nate> Players have come to expect a quantifiable world
nate> with numeric properties, and quest books where
nate> chains can be efficiently annotated, etc...

Not all of them. Maybe the PVP and gold farming crowds, but there's a large group who play the games because it's the next best thing to going to McDonald's with your friends. Or they play it because they've always wanted to be a superhero. Or they play it because the story is engrossing. Or they play because it's like being in a William Gibson novel. I have a friend who plays Second Life because he likes making trees; he always wanted a garden in Asheron's Call, and when SL came along he jumped ship to plant a garden.

Maybe players have come to expect all this, but it's the same way we've come to expect reality television. It's there, maybe some people enjoy it, but if that was all there was, if we based the entire television experience (movies, making fun of bad shows, TiVo, Star Trek) on reality shows, how much fun would we lose. How narrow would our point of view be?

You're treating MMOG's like a play through game, as Andy Havens pointed out. They're not. MMOG's are chatrooms and communities with missions and storylines tacked on for a theme.

16.

Andy> On the other extreme: "Second Life."

There is a "game" within Second Life actually, it's called "Scarcity." The rules of "Scarcity" are pretty straight forward: earn money so you can buy land, then buy land so you can earn money. So far people like Ansche Chung and Prokofy Neva are winning, but the game is still afoot.

Linden Lab will insist that there is no game, but given the nature of the world it's there. The difference with Second Life is they have a vastly superior crafting system.

17.

I think this is a messed up argument. The reason the most developed (expensive) IDEs have been made for languages like C, C++, java and C# is because they are popular, not because they are static. Certainly, some dynamic languages do better in terms of programmer-involvment than having an IDE, they are interactive...

18.

Ola>
The reason the most developed (expensive) IDEs have been made for languages like C, C++, java and C# is because they are popular, not because they are static.
-------------

Yes, but which came first, the chicken or the egg... History is filled with great languages that failed for all sorts of reasons including poor tools.

btw, great visual representation of this idea here (50 years of programming languages):


http://www.oreilly.com/news/graphics/prog_lang_poster.pdf

19.

I think I see what you mean now, but in a sense what you're calling a messy world sounds more like Raph Koster's ideas about player-created content -- and I'm not sure how well that turns out, especially when the marketing department finds out that a lot of people are leaving because they don't like the lack of supplied content.

It's tough -- I really enjoyed SWG's absent god syndrome -- sometimes I wondered why they bothered to include NPCs at all, since with the exception of random spawns and missions that had no larger context to the game, there was hardly ever a reason to talk to an NPC.

There's clearly an interzone between SL and dikuMOGs, and it seems to me SWG was in it, at least until the Jedi revamp (that's when I was able to suddenly calculate when I'd be "done" Jedi, and the game suddenly lost a bunch of magic).

Interestingly, in that light it almost seems that you can not mix player-created with developer supplied content, at least with the standard avatar in armor model.

I was disappointed when I learned that Spore wasn't going to be multi-player i the traditional sense. I think that the ultimate model for a "messy" world will have to involve a world that players can evolve on it's own with limited developer actions. Still, Spore's model is still under development, so possibly after it germinates in the minds of developers and consumers alike there will be more possibility of evolution.

I think my favorite bit of an evolutionary model is that every shard would be completely different, not like now -- if a Spore-like (or heck, Darwinian) model was followed and done right, no two servers would even have the same species on them.

Boy, I bet they'd go through marketing folks like no one's bsiness.

20.

Yes, Nate, but what do you want? A large application that crashes after shipping, or before, and even better getting warnings at compiletime? Dynamic languages seem to be useful (to me) only when the application is so trivial that easily can infer the type when coding and thus save myself some typing. Perl is a crappy language, but a great hack. (And so is C++, but that is another issue. I am currently looking at Digital Mars D, a delight in comparison (and it does infer type information from expressions too, where possible AFAIK)

What are the advantage of having "typed" monsters? It does ease communication between players and allow for bragging. Am I for it? No, but primarily for artistic reasons. I guess some people like their dynamic languages for artistic reasons too, but I cannot really see the advantages in terms of engineering. Most of the advantages can be provided by other means in static languages. (generic programming, interfaces, adapter-classes and what not)

Too stretch you analogy: Maybe the real issue isn't static vs not-static, but pure vs pragmatic. Certainly applicative/logic/constraint programming could be useful in some of the code of an application. However, most languages focus on a homogenous environment. Virtual worlds do that as well, probably to cut costs, or lack of imagination. That makes them very boring and repetitive. You could for instance imagine a language that is providing distinct iterative and applicative modes that can be combined in a clean way which ease correctness-proofs. (well, probably exists, just can't think of any right now)

I think the visualization from O'Reilly primarily include popular languages and a few oddballs? This one is a bit more inclusive, I think: http://www.levenez.com/lang/

21.

that's when I was able to suddenly calculate when I'd be "done" Jedi, and the game suddenly lost a bunch of magic

My first thought, upon reading that, was "The reaction to Episode 1". Sorry, not contributing to discussion, carry on. *ducks*

22.

Duh, forget the "levenez" one... I seem to have messed up my pdf-reader...

23.

>> On the other extreme: "Second Life."

I think this is taking the idea of 'messy' in the wrong direction. I don't think messy nescessariy means user generated content, that's another subject entirely.

I think more of warcraft vs total annihilation as a good example of 'neat' vs 'messy' systems (albeit I'm talking RTS's here, but the concept is one that i believe trancends genres). In TA, much of the game was goverend by a physics simulation. For example, if a shot missed, the player could see intuitively that it had fallen short, or hit a tree or whatever. The very fact that a shot _could_ hit a tree is probably the best example of the messiness i'm talking about. Sure it's irritating, but then once you've seen it happen, you know it's possible and you take it into account.

Also, remember that MMO's are multi-layered beasts, and different simulation layers can be at different points on the messy/rigid scale. Take EVE, for example. A lot of the game is very messy, player owned starbases in 0.0 space for example, corporation warfare and the whole economy for example. But the combat is much further towards the rigid side. It's all stats and dice rolls. And (at the time of writing) npc behaviour is completely static (the location/ownership of npc stations for example, and the deadspace complexes)

Finally, I think it's generally wrong to say 'players don't want X'. It's a bit like the head of British Telecom in the 70's saying consumers would only ever want black or beige telephones.

24.

Ola>

Maybe the real issue isn't static vs not-static, but pure vs pragmatic. Certainly applicative/logic/constraint programming could be useful in some of the code ... You could for instance imagine a language that is providing distinct iterative and applicative modes

It seems that Biggles' comment (above) dovetails well w/ your point. At different levels of the simulation different modes could be exhibited.

Consider the contast of a Common Lisp against a Scheme in one direction and a procedural language in the other.


25.

Nate: It seems that Biggles' comment (above) dovetails well w/ your point. At different levels of the simulation different modes could be exhibited.

Yes, maybe... ;) Of course the analogy has some serious issues, you want source code to be legible. Explicit type information makes the model more clear to the programmer. On the other hand, you don't want the virtual world to be too clear, and you don't want to hand the user the underlying model (in which case the world seize to exist and the engineering player won't be immersed in a world, but code...) Unfortunately games like EQ and it's successors don't provide much simulation, but a lot of typeinformation that leaks out the underlying model. If you have 10 different orcnames ("little orc", "big orc" etc) then the programmer in me deduce that they use a very simple underlying NPC model that have more or less hardcoded attributes and I quickly envision what they probably have done in terms of code/protocols in order to save cycles/make balancing easy. Very unexciting... (less world, more game) This doesn't mean that a pure and typed implementation is anti-worldish per se. I.e. adventure text-muds might have lots of specialized code for individual NPCs written out of artistic love rather than efficiency considerations.

It is conceivable that the engineering challenges of creating a "managable mess" (that makes game balancing easy, but the proper underlying model hard to obtain) is possible by combining slow-elegance (applicative/functional) with efficient easily-messy (imperative) approaches on the proper levels.

(I've got a feeling I fell out of the thread here... gnite)

26.

Nate>Type systems in computer languages are important. They empower languages with predictability and ability to portray abstractions.

Speaking as an old-time hacker, this is depressing stuff. For me, type systems constrain languages with predictability and limit their ability to portray abstractions.

You can say anything in an untyped language. In a typed language, you can only say what it allows you to say. Never mind C# and C++, to me even C is over-typed; I grew up with BCPL, which is typeless (or, if you like, it has one type, the word; or, if you really like, it has an infinite number of types, just no coercion).

As for IDEs, yes, they're very useful. However, there's a difference between general utlity and language-specific utility. Saying that statically-typed languages make for better IDEs because such IDEs can move the language's methods around more easily is like saying steam-powered cars make for better transportation because such cars can move their coal trailers around more easily. If you only need an IDE because the language you're using is such a crock that you can't make the changes easily manually, that's not an advertisement for the IDE, it's an indictment of the language.

Richard

27.

Richard>
there's a difference between general utlity and language-specific utility.
--------------------

This sounds reminiscent of our discussion in Got Game (cited in post) - where the question was (more or less) whether one would be better off attempting to develop a project as rich as a virtual world in a Domain Specific Language (DSL) rather than trying to map it into a general purpose language. It seems to me that problem is not that one cannot develop a represention in a GPL that is as good as a DSL (after all what will these DSLs be built upon). But it is just that by starting from a GPL one starts with a toolset and conceptualization (based on that toolset) that might not scale up as well to the domain model as a DSL.

The comments to this entry are closed.