English flagItalian flagKorean flagChinese (Simplified) flagPortuguese flagGerman flagFrench flag
Spanish flagJapanese flagArabic flagRussian flagGreek flagDutch flagBulgarian flag
Czech flagCroat flagDanish flagFinnish flagHindi flagPolish flagRumanian flag
Swedish flagNorwegian flag     
By N2H
Welkom bij Raph Koster's persoonlijke website: MMOs, gaming, schrijven, kunst, muziek, boeken.

UO’s resource system, part 3 UO de resource-systeem, deel 3

June 5th, 2006 5 juni 2006

I’ve now written two posts that were far lengthier than I anticipated, about the way that UO’s resource system was originally intended to work. Ik heb nu geschreven dat de twee posten waren veel langere dan ik verwacht, over de manier waarop de middelen UO systeem was oorspronkelijk bedoeld om te werken. The first dealt with underlying data structures , and the second with applications of those data structures to the actual world . De eerste behandeld onderliggende data structuren, en de tweede met toepassingen van deze gegevens structuren met de werkelijke wereld. I want to talk a bit about future directions that we didn’t get to pursue. Ik wil nu wat praten over de toekomstige richting die we niet krijgen te zetten.

Cool ways to use what we already had Cool manieren om gebruik te maken van wat we al hadden

The mining system in UO was an example of “transmutation” in action. De mijnbouw in UO was een voorbeeld van "transmutatie" in actie. We placed ORE in the chunk eggs based on the presence of rocks and the terrain rock texture. We geplaatst erts in de eieren stuk gebaseerd op de aanwezigheid van stenen en het terrein rock textuur. We mined ORE out by clicking on rocks or the rock texture and transferring the ORE to the new “pile of ore” object. We gewonnen EER door te klikken op de rotsen of gesteente textuur en het overdragen van de EER tot de nieuwe "stapel van erts" object.

When I added in the varieties of metals to the system, the way I did it was by adding a dynamic variable to the chunk egg. Toen ik toegevoegd in de rassen van metalen in het systeem, de manier waarop ik het heb gedaan werd door het toevoegen van een dynamische variabele deel aan het ei. The were called “object variables” or “objvars” in UO parlance, and they were essentially flags with values that could be attached to any dynamic object. Het werden "object variabelen" of "objvars" in UO parlance, en zij zijn in wezen vlaggen met de waarden die kunnen worden gekoppeld aan een dynamisch object. You could tag someone as “BEAT_THE_HARPY” with a value of “TRUE” and then use hasObjVar(target, “BEAT_THE_HARPY”) to see if the objvar was present, or val = getObjVar(target, “BEAT_THE_HARPY”) to get that value into a variable for script use. Je kan iemand als tag "BEAT_THE_HARPY" met een waarde van "TRUE" en dan gebruik hasObjVar (doelgroep, "BEAT_THE_HARPY") om te zien of de objvar aanwezig was, of de val = getObjVar (doelgroep, "BEAT_THE_HARPY") om deze waarde in een variabele voor het script gebruiken. These objvars were persistent, so you could build complex systems out of them. Deze objvars bleven aanhouden, dus je zou kunnen bouwen van complexe systemen verouderd.

I simply attached a little script to every chunk egg that checked to see if it had an objvar that defined a metal type. Ik heb alleen een beetje gehecht script voor ieder stuk ei dat gecontroleerd om te zien of zij over een objvar dat een bepaald soort metaal. If it didn’t, then it randomly chose a metal type and set the objvar to that value. Als het niet, dan is willekeurig gekozen voor een metalen type en de objvar met die waarde. This meant that after this script was updated, every chunk in the world bore a different kind of ore. Dit betekende dat na de inwerkingtreding van dit script is bijgewerkt, elk stuk in de wereld kreeg een ander soort erts. I weighted some to be rare and others to be more common. Ik gewogen worden sommige zeldzame en anderen te zijn.

When the ORE was mined, I had the mining script transfer that variable to the new object along with the ORE resource. Wanneer het erts werd gewonnen, had ik de mijnbouw script dat de variabele overdracht naar de nieuwe object samen met de EER-middelen. I also had it tint the ore graphic based on a standard lookup table, dependent on what the value of the objvar was. Ik had ook het tint het erts grafische gebaseerd op een standaard opzoektabel, afhankelijk van wat de waarde van de objvar was. And thus colored armor was born — we simply had each step transfer the variable along. En zo gekleurd pantser werd geboren - we hadden gewoon elke stap de overdracht van de variabele langs.

This worked even when we actually recycled the ORE and conjured up METAL out of thin air instead. Dit werkte ook als we daadwerkelijk gerecycleerd het erts en opgeroepen METAL uit de lucht plaats. This was the step of refining the ore into ingots. Dit was de stap van de raffinage-erts in blokken. You could also combine ore — I don’t recall how we handled this, but it was probably by picking the commoner of the two types. U kunt ook het combineren van ertsen - Ik kan mij niet herinneren hoe wij behandeld, maar het was waarschijnlijk door het kiezen van de commoner van de twee soorten. It would have been fairly easy to add new metal types that were not minable but were only available as alloys, too. Het zou zijn vrij eenvoudig voor het toevoegen van nieuwe soorten metaal die niet werden minable maar waren alleen beschikbaar in de vorm van legeringen, ook. In a more modern system, we would have instead had types of METAL such as IRON or COPPER that inherited from the base type — and that is in fact how SWG worked. In een modern systeem, dan zouden we in plaats had soorten metalen zoals ijzer of koper dat geërfd van de basis-type - en dat is in feite hoe SWG gewerkt.

This sort of transmutation, where you query the amount of RESOURCE1, delete it, and then create a corresponding amount of RESOURCE2, permitted the concept of “refinement” of one type of quality into another. Dit soort transmutatie, waar je een vraagteken bij het bedrag van RESOURCE1, verwijderen, en maakt dan een overeenkomstige hoeveelheid RESOURCE2, toegestaan het concept van "verfijning" van een type van de kwaliteit in de andere. COTTON or FLAX into CLOTH is a similar thing, only with the wrinkle that it permits two different initial sources to become the same sort of thing in the end. Katoen of vlas in het doek is een soortgelijke zaak, alleen met de rimpels die het mogelijk maakt twee verschillende bronnen worden dezelfde dingen in het eind.

I mention this example just to point out that there were a lot of possibilities for the use of transmutation of one resource type to another; for example, a stone mage could use up ORE as resources and turn it into MAGIC; really, we should have made one’s mana pool be literally how much MAGIC resource they represented. Ik noem dit voorbeeld alleen maar op wijzen dat er veel mogelijkheden voor het gebruik van transmutatie van een resource type naar het andere, bijvoorbeeld een steen magiër kan gebruiken EER als de middelen en maken er MAGIC; echt, moeten we gemaakt van een mana pool worden letterlijk hoeveel MAGIC-middelen die zij vertegenwoordigen. A druid could have instead drawn power from the amount of GRASS or TREE that was around. Een druïde zou kunnen hebben plaats gemaakt macht van het bedrag van gras of boom die was rond. And a necromancer — well, every time something died, it could have added DEATH to the chunk egg based on what was killed; a necromancer would then be able to “mine death magic” from spots where many things had been killed. En een necromancer - goed, elke keer als er iets is overleden, kon hebben toegevoegd aan het stuk DOOD ei op basis van wat werd gedood, een necromancer zou dan kunnen-mijn dood magie "van plaatsen waar veel dingen had gedood. Had we done this, I am sure we quickly would have had necromatic sacrifice altars, and they would have intentionally herded players (who of course would carry much power!) to those places to die. Als wij dit gedaan, ik ben er zeker van dat we snel zou hebben gehad necromatic offer altaren, en zij zouden hebben opzettelijk herded spelers (die natuurlijk bij zou dragen aan veel macht!) Op die plekken om te sterven. Temple of Doom, here we come… Temple of Doom, hier komen we…

Other applications based solely on what was already present: Andere toepassingen uitsluitend gebaseerd op wat reeds aanwezig was:

  • You could do real tracking, based on things leaving traces in the chunk eggs. Dat kunt u echt bijhouden, gebaseerd op dingen laten sporen in het stuk eieren.

  • You could have NPCs or creatures who collected or desired items with specific resources. Je zou kunnen hebben NPCs of wezens die verzameld of gewenste items met specifieke middelen.
  • You could easily do a nice “detect magic” or really, “detect anything” sort of informational spell, with strength of the glows dependent on the amount of the resource present Je kan heel gemakkelijk doen een leuke "detecteren magie" of echt, "detecteren iets" soort van informatieve spellen, met de kracht van de glows afhankelijk van het bedrag van de middelen aanwezig
  • You could create secret or transmutation paths — mix MAGIC and METAL to make MITHRIL or something, regardless of what the item looked like originally. Je zou kunnen leiden tot geheime of transmutatie paden - MAGIC mix en metaal te maken of iets Mithril, ongeacht wat het object leek aanvankelijk.
  • You could do “melting down” of materials. Je zou kunnen doen "smelten" van materialen.
  • You could create greater or lesser susceptibility to damage based on conditions. Je zou kunnen leiden tot meer of mindere gevoeligheid voor schade die is gebaseerd op voorwaarden. It’s easy to imagine a HUMIDITY value stored on a chunk egg — it could even move around. Het is gemakkelijk om te denken aan een vochtigheid van waarde opgeslagen op een stuk ei - het zou zelfs kunnen bewegen. And then it could affect the growth rate of GRASS or the decay rate of METAL. En dan kan het invloed hebben op de groei van gras of de dempingssnelheid van metaal.
  • This also reflects the whole “dragon fire breath actually sets things on fire” thing. Dit weerspiegelt ook de hele "draak vuur adem daadwerkelijk sets dingen in brand" ding.
  • Player actions could affect resources on them, such as reputations with certain groups, karma, and so on. Speler acties gevolgen kunnen hebben voor de middelen op hen, zoals de reputatie van bepaalde groepen, karma, enzovoort. They could acquire the “scent” of things they worked with often, for example. Ze konden het verwerven van de "geur" van dingen die ze werkte vaak met, bijvoorbeeld. This would then replace a typical stats system, which would need to be hardcoded to interact with every other data type in the game. Dit zou dan in de plaats van een typisch statistieken systeem, dat zou moeten worden hardcoded om te communiceren met alle andere data type in het spel.
  • This could, for example, allow a disease to be transmitted invisibly across the game, affecting only, say, magical reagents — and players could be the carriers without knowing it, unless it was detected by a spell or skill. Dit kan bijvoorbeeld een ziekte te zenden onzichtbaar in de hele wedstrijd, alleen die van invloed zijn, laten we zeggen, magische reagentia - en de spelers kunnen de luchtvaartmaatschappijen zonder het te weten, tenzij hij werd ontdekt door een periode of vaardigheid.
  • Most obviously, had we chosen to incur the cost of streaming the chunk eggs, we could have actually made the rendering of the chunks change based on what the chunk egg represented. De meeste natuurlijk, hadden we ervoor gekozen om de kosten worden gemaakt van streaming het stuk eieren, we hadden eigenlijk de verrichting van de brokken veranderen op basis van wat het stuk ei vertegenwoordigd. As the grass is eaten, bare dirt is left behind. Zoals het gras wordt gegeten, kale vuil wordt achtergelaten. As the ore-bearing rock is reduced, change the rock tile to gravel. Zoals het erts met rock-wordt verminderd, de wijziging van de rock tegel op gravel. As the temperature changes, draw dead grass or even snow. Als de temperatuur verandert, trek je dood gras of zelfs sneeuw. And so on. En ga zo maar door.

I could go on; suffice to say that even with just an abstract property system and no real AI work, there’s lots of potential for a lot of interesting and fresh gameplay. Ik kon gaan; volstaan te zeggen dat, zelfs met slechts een abstract eigendom systeem en geen echte AI werk, er is veel potentieel voor een hoop interessante en nieuwe gameplay.

What we didn’t have: causality Wat wij niet hebben: causaliteit

But the real issue with something like the dragon example is, “how do I know that the dragon is hungry, and not just a random spawn?” In other words, there needs to be a sense of purpose to what is going on. Maar het echte probleem met iets als de draak voorbeeld is, "hoe weet ik dat de draak heeft honger, en niet zomaar een willekeurige paaien?" Met andere woorden, er moet sprake zijn van een gevoel van doel naar wat er gebeurt.

The reason why it matters that the dragon is hungry and not just a random spawn is because it suggests multiple ways to solve the problem. De reden waarom dat van belang is dat de draak heeft honger en niet zomaar een willekeurige paaien is, omdat het suggereert meerdere manieren om het probleem op te lossen. You could kill the dragon. Je kan de draak doden. You could also feed it to get it to go away. U kunt ook het voer te krijgen dat hij weggaat. Herd deer in between you and the village, let’s say. Herd herten in tussen u en het dorp, laten we zeggen. The problem is, maybe there is no reason. Het probleem is, misschien is er geen reden. How can the player tell? Hoe kan de speler vertellen?

Let’s take the simpler case of some rabbits who eat the lettuce out of a farmer’s garden. Laten we het eenvoudiger geval van een aantal konijnen die eten van de sla uit de tuin van een boer. What you really want is for the farmer to tell you “I’s gots me some rabbit issues; filthy buggers’re eatin’ muh lettuce! Wat je echt wilt, is voor de boer om u te vertellen "I's gots me enkele konijn; smerige buggers're eatin 'muh sla! I’ll pay ye ta ’sterminate’em!” Ik betaal gij ta 'sterminate'em! "

The proposed but never implemented method for handling this required knowledge at one step remove. De voorgestelde maar nooit uitgevoerd methode voor de behandeling van dit vereiste kennis op een stap te verwijderen. The farmer would DESIRE his lettuce; this means he would walk around where it was, when he was not hungry, and if he could pick it up, he’d transfer it to his home. De boer zou VERLANGEN zijn sla, betekent dit dat hij zou lopen ongeveer waar het was, toen hij nog geen honger, en zo kon hij opneemt, hij wil overdragen naar zijn huis. But the rabbits want to EAT the lettuce. Maar de konijnen willen eten van de sla. If the farmer knew the name and template type of whatever was making him unhappy by competing for his desired resource, then he could complain about it. Als de landbouwer wist de naam en het template van welke aard was wat hem ongelukkig door te concurreren voor zijn gewenste middelen, dan kan hij een klacht indienen. And if we tracked what the player killed, he’d know that they were good rabbit exterminators and possibly provide a reward, without there being a static quest defined. En als we bijgehouden wat de speler gedood, hij weet dat ze goed konijn exterminators en eventueel een beloning, zonder dat er een statisch zoektocht gedefinieerd.

What’s more, if players killed all the rabbits, but what came along next time as a spawn that ate lettuce happened to be deer, or even a lettuce blight, then the farmer would respond in the same way — anything that was eating “his” lettuce would be somethng he could complain about, and reward those who took action. Sterker nog, als de spelers gedood alle konijnen, maar wat kwam langs de volgende keer als een paaien, dat aten sla gebeurd te zijn herten, of zelfs een plaag sla, dan is de landbouwer zou reageren op dezelfde manier - alles dat was het eten " zijn "sla zou somethng hij kan klagen over, en de beloning die die actie.

Similarly, in the village-attacked-by-dragon case, the villagers would have to like having other villagers around, so they could complain that “their” villagers were being destroyed by something else. Ook in het dorp-aangevallen-door-draak geval, de dorpelingen zouden moeten, zoals onder andere dorpelingen rond, zodat ze kunnen klagen over het feit dat "hun" dorpelingen werden vernietigd door iets anders. You could extend this to any number of things. U kan dit ook aan een aantal dingen. Let’s say that the smith loves “his” METAL objects. Laten we zeggen dat de smid houdt van "zijn" metalen voorwerpen. If a rust monster wandered through town and damaged the METAL, then he would complain about that but no other villagers would unless they also DESIRED METAL. Als een monster rust zwierf door de stad en het metaal beschadigd, dan zou hij klagen over, maar dat geen enkele andere dorpelingen zouden tenzij zij ook GEWENSTE metaal.

The implementation problems here are tricky. De uitvoering problemen hier zijn lastig. First, we would have needed to have some sort of registry so that the farmer could know about the rabbits, who are a third party to his relationship with his beloved vegetables. Ten eerste zouden we nodig hebben om een soort register, zodat de landbouwer kunnen weten over de konijnen, die zijn een derde van zijn relatie met zijn geliefde groenten. Worse, we would have also needed to relay the player actions against this third party so that the farmer could supply rewards and commentary. Erger nog, dan zouden we ook nodig voor het relais de speler acties tegen deze derden, zodat de landbouwer zou leveren aan beloningen en commentaar.

Because of these hurdles, and because there was always something more urgent going on, we never got this in. Als gevolg van deze hindernissen, en omdat er altijd iets meer urgent is er te doen, wij nooit dit inch

A similar thing that we wanted above and beyond the basic resource system was the concept of targeted desires. Een soortgelijke zaak dat we wilden verder gaan dan de elementaire middelen werd het concept van gerichte verlangens. Instead of abstractly liking all METAL or all MEAT, we wanted to support the ability for something to pick a favorite: a preferred sword, a favorite pet. In plaats van abstracte wens alle metaal of al het vlees, we wilden ter ondersteuning van de mogelijkheid om iets te kiezen van een favoriet: een voorkeur zwaard, een favoriet huisdier. The test case that we designed for this was actually a love triangle. De test geval dat we voor dit was eigenlijk een liefde driehoek.

Both Fred and Bob would DESIRE (to be crude) HUMANFEMALE. Zowel Fred en Bob zou VERLANGEN (te ruw) HUMANFEMALE. They would both search around for an object that met their desire, which would mean they would both hang around a female human NPC whenever they weren’t hungry. Zij zouden zowel zoek gaan naar een object dat aan hun verlangen, dat zou betekenen dat ze zouden beide hangen rond een vrouwelijke menselijke NPC wanneer ze geen honger. However, if they found one that satisfied their desire (probably with a bit of a random roll) they would fixate on only that NPC, and poor Nellie would find that both Bob and Fred hung around her a lot. Echter, als zij vinden dat een tevreden hun verlangen (waarschijnlijk met een beetje een willekeurige rol) zouden zij op fixate alleen dat NPC, en de arme Nellie zou vinden dat beide Bob en Fred hing rond haar veel.

Now, HUMANFEMALE is a consumable resource. Nu, HUMANFEMALE is een bron van verbruiksgoederen. Bob, when around Nellie, is actually reducing it. Bob, toen rond Nellie, is zelfs ruimschoots. And that means, when you talk to Fred, he would be able to say “”I’s gots me some Bob issues; filthy buggers’re eatin’ muh Nellie! En dat betekent dat, als je praat met Fred, zou hij kunnen zeggen "" I's gots me enkele Bob; smerige buggers're eatin 'muh Nellie! I’ll pay ye ta ’sterminate’im!” (or something of the sort). Ik betaal gij ta 'sterminate'im! "(Of iets van de soort). Bob would be able to say the same thing in reverse. Bob zou kunnen zeggen hetzelfde in omgekeerde richting. You could even solve the problem by finding something else for one of the two swains to do. Je zou zelfs kunnen het probleem oplossen door het vinden van iets anders voor een van de twee swains te doen. Even more interesting — if the dragon came along and ate Nellie, both Bob and Fred would be the first in line to seek revenge, or give a reward to a player who tackled the dragon problem. Nog meer interessante - als de draak kwam langs en aten Nellie, zowel Bob en Fred zou de eerste in lijn om wraak, of geven een beloning voor een speler die de draak probleem aangepakt.

Similarly, rather than manually setting up paths and schedules for NPCs, you could create a script that has them gradually increase a FATIGUE value, or that switched their SHELTER from WORK to HOME locations based on the time of day. Zo ook, in plaats van handmatig opzetten van paden en schema's voor de NPCs, kunt u een script dat heeft ze geleidelijk te verhogen een FATIGUE waarde, of dat geschakelde hun schuilplaats van werk naar HOME locaties gebaseerd op het moment van de dag. You could have law-abiding citizens have an aversion to anything that produced DARK, so that at night they would cluster in lit interiors and under lamps, whereas only thief NPCs would be in the shadows. Je zou kunnen hebben zich aan de wet houden hebben de burgers een afkeer van alles dat geproduceerd donker, zodat ze 's nachts zou cluster in verlicht interieur en onder lampen, terwijl slechts dief NPCs zou worden in de schaduw.

The highest level of interface to all of this that we would have wanted for players would have included the notion of town criers and other news sources that pick “stories” from the ether and broadcast them. Het hoogste niveau van de interface naar dit alles dat we zouden willen hebben voor de spelers zou hebben omvat het begrip van de stad criers en andere nieuwsbronnen dat pick "verhalen" uit de ether worden uitgezonden. “Farmer Hayseed is pissed off about his lettuce getting eaten!” “Plague of street urchins won’t leave noble warriors alone!” “Fred kills Bob in jealous rage over Nellie!” and so on. "Farmer Hayseed is pissed off over zijn sla je opgegeten!" "Pest van de straat-egels niet zal verlaten nobele krijgers alleen al!" "Fred is dodelijk Bob in jaloerse woede over Nellie!" En ga zo maar door.

Problems: closed loops, homeostasis, feedback Problemen: gesloten lussen, homeostase, feedback

All of these sorts of applications rely on a large bank of dynamically assembled text that is contextual to the situation. Al deze soorten toepassingen rekenen op een grote bank van dynamisch gemonteerd tekst die is contextuele aan de situatie. With the current desire for international localization of text, it’s unlikely that you can even execute on this. Met het huidige streven naar internationale lokalisatie van de tekst, is het onwaarschijnlijk dat u kunt zelfs voeren op dit punt. Localization tends to demand static text, and indeed, UO had piles of dynamically assembled text that was removed when the title was localized to other languages, costing the game’s dialogue much of its flavor. Localization de neiging om de vraag naar statische tekst, en inderdaad, UO had stapels dynamisch gemonteerd dat de tekst werd verwijderd toen de titel was gelokaliseerd naar andere talen, kost het spel de dialoog van veel van haar smaak.

All of these higher-level applications can only really be built on top of a fully functional animal-level behavior system. Al deze hoger niveau aanvragen kunnen pas echt worden gebouwd op de top van een volledig functionele dier-gedrag. What’s more, in work since then, I have become persuaded that in fact, you need to drive the simulation to lower levels, such as humidity and temperature, just so you don’t find yourself creating special cases for simple behaviors. Sterker nog, in werk sindsdien heb ik geworden ervan overtuigd dat in feite, rijdt u de simulatie naar een lager niveau, zoals vochtigheid en temperatuur, zodat u niet zelf het creëren van speciale gevallen voor eenvoudige gedrag. This leads to the concept that you could in fact build the whole world out of this, and just render textures and objects based on what resources are present, a concept first demonstrated in ALife examples such as Sugarscape . Dit leidt tot het begrip dat je zou kunnen bouwen in feite de hele wereld uit, en net maken texturen en voorwerpen op basis van welke middelen aanwezig zijn, een concept eerste aangetoond in Alife voorbeelden zoals Sugarscape.

In fact, it should now be evident that what this represents, in totality, is just a fairly elaborate “artificial life” engine, grown to the point where it encompasses spawning, basic behaviors, and even a higher-order quest system. In werkelijkheid, moet het nu duidelijk dat wat dit neer in zijn geheel, is slechts een vrij uitgebreide "kunstmatig leven" motor, uitgegroeid tot het punt waar het omvat paai fundamentele gedrag, en zelfs een hogere-orde zoektocht systeem.

However, without the following ingredients, there’s little point to implementing something like this: Echter, zonder de volgende ingrediënten, is er weinig zin om de uitvoering van ongeveer als volgt uit:

  • It has to be visible and responsive to players. Het moet zichtbaar zijn en inspelen op de spelers. This includes exposing causality. Dit omvat het oorzakelijk verband bloot. Otherwise, it might as well be random. Zo niet, dan kan het ook worden willekeurig.

  • NPCs need to be able to communicate to players about wants, and need to react to those wants. NPCs moeten in staat om te communiceren met spelers over de wil en de behoefte om te reageren op deze wil.
  • Static data must be avoided at all costs, which is incredibly difficult for a traditional game development team. Statische gegevens moet tot elke prijs worden vermeden, dat is ongelooflijk moeilijk om een traditionele game development team.
  • The myriad of variables must push towards homeostasis, rather than boom-bust cycles. De vele variabelen moeten gaan in de richting van de homeostase, in plaats van boom-bust-cycli. A lot of Alife sims end up in boom-bust, and that’s not interesting to users. Een groot deel van Alife sims end up in boom-bust, en dat is niet interessant voor gebruikers.
  • Naturally renewing resources can’t be in a closed loop, because of player hoarding effects. Natuurlijk vernieuwing van de middelen niet kunnen worden in een gesloten kringloop, want van de speler hamsteren effecten.
  • You have to solve CPU issues with pathfinding and searches in order to make the system tenable. U heeft bij het oplossen van problemen met CPU baanbrekende en zoekt om het systeem houdbaar.

There were discussions on MUD-Dev circa 1998 about other means to handle this sort of system within a reasonable CPU budget. Er waren discussies over MUD-Dev circa 1998 over andere middelen voor het behandelen van dit soort systeem binnen een redelijk budget CPU. One approach that would probably work for the latter is to use “level of detail” for the areas. Een aanpak die waarschijnlijk voor de laatste is het gebruik van 'mate van gedetailleerdheid "voor de gebieden. If no players are around, stop instancing up individual wolves hunting individual rabbits; instead, save all those off, and calculate periodically how many wolves and how many rabbits would be there after a certain amount of time. Als er geen spelers zijn rond, stop instancing maken van individuele wolven jacht individuele konijnen; plaats, slaat al deze uit te schakelen, en op gezette tijden berekenen hoeveel wolven en hoeveel konijnen zou er na een bepaalde tijd.

You could stuff the world data into a quadtree and run higher and higher-level sims, instancing all the data back out only when you needed to interact with it in granular fashion; or you could timestamp the last interaction, and “catch the sim up” when a player approaches. Je zou kunnen stuff de wereld gegevens in een quadtree en lopen steeds hoger niveau sims, instancing alle gegevens terug uit alleen als je die nodig is om te interageren met het in korrelig mode, of u kan de laatste tijdstempel interactie, en "de vangsten van de SIM-up "Wanneer een speler benaderingen. This latter method was in fact used for handling harvesters and the like in SWG, since they tended to reside in areas that we actually took offline when no players were around. Deze laatste methode was in feite gebruikt voor de behandeling van oogstmachines en dergelijke in de SWG, omdat zij de neiging te wonen in gebieden die we eigenlijk vond offline als er geen spelers waren rond. Using hillclimbing and broadcasting rather than constant radial searches is another approach. Met behulp van hillclimb en omroep in plaats van constante radiale zoekopdrachten is een andere aanpak. Lastly, truly treating the whole thing as an artificial life landscape would allow you to even use image processing techniques to update the grid, since they have been highly optimized. Ten slotte is echt de behandeling van de hele zaak als een kunstmatig leven landschap kan dan ook gebruik van technieken voor de verwerking van de beelden update het net, want zij zijn sterk geoptimaliseerd.

On the closed loops, I have come to believe they were basically a mistake. Op de gesloten circuits, ik aan denken dat ze waren in feite een vergissing. The real world offers resources that are infinite in practice for most situations ; it is local scarcity that is interesting. De echte wereld biedt de middelen die zijn oneindig in de praktijk voor de meeste situaties, het is de lokale schaarste, dat is interessant. The issues with exposing the causality of things can be solved, I am sure, but they will take some work. De problemen met de blootstelling van de causaliteit van zaken kunnen worden opgelost, ik ben er zeker van, maar het zal enige werk.

In conclusion Tot slot

To my mind, this sort of algorithmic approach to developing a virtual world is not only the past, in UO’s case, but also the future. Naar mijn mening is dit soort van algoritmische aanpak van de ontwikkeling van een virtuele wereld is niet alleen het verleden, in UO het geval is, maar ook de toekomst. It is not hard to imagine our crude “METAL” with no parameters acquiring things like “melting point” and “brittleness” and then being plugged into physics simulations in the holodeck. Het is niet moeilijk voor te stellen onze ruwe "Metal" geen parameters met het verwerven van dingen als "smeltpunt" en "broosheid" en dan worden aangesloten op de natuurkunde simulaties in het holodek. There comes a point where a robust simulation model, even an abstracted one, is a cheaper thing to develop than the giant piles of use-once quests and data that we currently enjoy in the MMORPGs today. Er komt een punt waar een robuuste simulatiemodel, zelfs een abstractie is, is een goedkoper ding te ontwikkelen dan de grote stapels gebruiken-een keer speurtochten en gegevens die wij momenteel genieten in de MMORPGs vandaag. Even social worlds would benefit from having this sort of underlying mechanic, because if implemented properly, it exposes simplified levels of robust interaction to everyone and gives people something to talk about. Zelfs de sociale werelden zouden baat hebben bij dit soort onderliggende monteur, want als uitgevoerd, wel dat er vereenvoudigde niveaus van interactie robuust voor iedereen en geeft mensen iets om te spreken over.

I also think that there is nothing wrong with having traditional static data layered atop this. Ik denk ook dat er niets mis is met die traditionele statische gegevens gelaagde atop dit. Making an NPC with a hardcoded quest, no FOOD, SHELTER or DESIRE needs, and blissful ignorance of the situation around him is still easy in a system of this sort. Het maken van een NPC met een hardcoded zoektocht, geen voedsel, onderdak of VERLANGEN behoeften, en zalige onwetendheid van de situatie rondom hem is nog steeds gemakkelijk in een systeem van deze soort. On the other hand, how much better if he knows enough to freak out when the dragon comes up to the castle and starts frying chamberlains. Aan de andere kant, hoeveel beter zijn als hij weet genoeg om out freak als de draak komt tot aan het kasteel en begint frituren chamberlains.

I’d much rather be burning CPU on this sort of thing, frankly, than on 3d collision. Ik zou veel liever zijn brandende CPU op dit soort dingen, eerlijk gezegd, dan op 3d botsing. A lot of players complain about whether or not they can jump over a short wall, and believe me, I feel their pain (a story for another day) — but the kinds of immersive power that a simulation like this can bring opens a lot more doors. Veel spelers klagen over of ze al dan niet kan springen over een korte wand, en geloof me, ik voel hun pijn (een verhaal voor een andere dag) - maar de vormen van immersie-macht die een simulatie als deze kan brengen opent veel meer deuren.

In the long run, I believe that all the pressures are towards simulationist environments, rather than handcrafted ones. Op de lange termijn, ik denk dat iedereen het druk zijn op weg naar simulationist omgevingen, in plaats van de hand. CPU power continues to outpace the cost of human capability to design static scenarios. CPU blijft uitvalt dan de kosten voor personele capaciteit voor het ontwerpen van statische scenario's. At some point, reality will catch up to our designs from 1995. Op een gegeven moment, de werkelijkheid zal de achterstand op onze ontwerpen uit 1995.

Postscript for the curious — I was reminded in the comment threads that the original UO strategy guide actually had in it all the resource values for everything in the game, as well as things like the actual AI algorithm for falling through FOOD, SHELTER, and DESIRE. Postscript voor de nieuwsgierige - werd ik herinnerd aan de opmerking dat de draden originele UO strategie gids had eigenlijk in het geheel van de hulpbronnen waarden voor alles op het spel, evenals zaken als de werkelijke AI algoritme voor het vallen via voedsel, onderdak, en VERLANGEN .

*

[?] [?]
You can follow any responses to this entry through the RSS 2.0 feed. U kunt alle reacties op dit item via de 2,0 RSS feed. Responses are currently closed, but you can trackback from your own site. Reacties zijn momenteel gesloten, maar u kunt trackback vanaf je eigen site.

77 Responses to “UO’s resource system, part 3” 77 Responses to "UO de resource-systeem, deel 3"

Jump to reader comments » | Leave a reply » Ga naar lezer opmerkingen "| Laat een reactie"

Trackbacks & Pingbacks Trackbacks & Pingbacks
  1. Broken Toys » Blog Archive » It’s All About The Rabbits wrote on Broken Toys "Blog Archive" Het gaat om de konijnen schreef op

    [...] Part 3 is now posted. [...] Deel 3 is nu geplaatst. [...] [...]

  2. MMORPG - Raph Koster ьber die UO Resourcen Teil 3 wrote on MMORPG - Raph Koster ь ber sterven UO Resourcen Teil 3 schreef op

    [...] Cool ways to use what we already had The mining system in UOUltima Online von Electronic Arts. [...] Cool manieren om gebruik te maken van wat we al hadden de mijnbouw in UOUltima Online von Electronic Arts. was an example of “transmutation” in action. was een voorbeeld van "transmutatie" in actie. We placed ORE in the chunk eggs based on the presence of rocks and the terrain rock texture. We geplaatst erts in de eieren stuk gebaseerd op de aanwezigheid van stenen en het terrein rock textuur. We mined ORE out by clicking on rocks or the rock texture and transferring the ORE to the new “pile of ore” object. We gewonnen EER door te klikken op de rotsen of gesteente textuur en het overdragen van de EER tot de nieuwe "stapel van erts" object. When I added in the varieties of metals to the system, the way I did it was by adding a dynamic variable to the chunk egg. Toen ik toegevoegd in de rassen van metalen in het systeem, de manier waarop ik het heb gedaan werd door het toevoegen van een dynamische variabele deel aan het ei. The were called “object variables” or “objvars” in UO parlance, and they were essentially flags with values that could be attached to any dynamic object. Het werden "object variabelen" of "objvars" in UO parlance, en zij zijn in wezen vlaggen met de waarden die kunnen worden gekoppeld aan een dynamisch object. You could tag someone as “BEAT_THE_HARPY” with a value of “TRUE” and then use hasObjVar(target, “BEAT_THE_HARPY”) to see if the objvar was present, or val = getObjVar(target, “BEAT_THE_HARPY”) to get that value into a variable for script use. Je kan iemand als tag "BEAT_THE_HARPY" met een waarde van "TRUE" en dan gebruik hasObjVar (doelgroep, "BEAT_THE_HARPY") om te zien of de objvar aanwezig was, of de val = getObjVar (doelgroep, "BEAT_THE_HARPY") om deze waarde in een variabele voor het script gebruiken. These objvars were persistent, so you could build complex systems out of them. Deze objvars bleven aanhouden, dus je zou kunnen bouwen van complexe systemen verouderd. I simply attached a little script to every chunk egg that checked to see if it had an objvar that defined a metal type. Ik heb alleen een beetje gehecht script voor ieder stuk ei dat gecontroleerd om te zien of zij over een objvar dat een bepaald soort metaal. If it didn’t, then it randomly chose a metal type and set the objvar to that value. Als het niet, dan is willekeurig gekozen voor een metalen type en de objvar met die waarde. This meant that after this script was updated, every chunk in the world bore a different kind of ore. Dit betekende dat na de inwerkingtreding van dit script is bijgewerkt, elk stuk in de wereld kreeg een ander soort erts. I weighted some to be rare and others to be more common. Ik gewogen worden sommige zeldzame en anderen te zijn. When the ORE was mined, I had the mining script transfer that variable to the new object along with the ORE resource. Wanneer het erts werd gewonnen, had ik de mijnbouw script dat de variabele overdracht naar de nieuwe object samen met de EER-middelen. I also had it tint the ore graphic based on a standard lookup table, dependent on what the value of the objvar was. Ik had ook het tint het erts grafische gebaseerd op een standaard opzoektabel, afhankelijk van wat de waarde van de objvar was. And thus colored armor was born — we simply had each step transfer the variable along. En zo gekleurd pantser werd geboren - we hadden gewoon elke stap de overdracht van de variabele langs. This worked even when we actually recycled the ORE and conjured up METAL out of thin air instead. Dit werkte ook als we daadwerkelijk gerecycleerd het erts en opgeroepen METAL uit de lucht plaats. This was the step of refining the ore into ingots. Dit was de stap van de raffinage-erts in blokken. You could also combine ore — I don’t recall how we handled this, but it was probably by picking the commoner of the two types. U kunt ook het combineren van ertsen - Ik kan mij niet herinneren hoe wij behandeld, maar het was waarschijnlijk door het kiezen van de commoner van de twee soorten. It would have been fairly easy to add new metal types that were not minable but were only available as alloys, too. Het zou zijn vrij eenvoudig voor het toevoegen van nieuwe soorten metaal die niet werden minable maar waren alleen beschikbaar in de vorm van legeringen, ook. In a more modern system, we would have instead had types of METAL such as IRON or COPPER that inherited from the base type — and that is in fact how SWGStar Wars Galaxies von Sony Online Entertainment. In een modern systeem, dan zouden we in plaats had soorten metalen zoals ijzer of koper dat geërfd van de basis-type - en dat is in feite hoe SWGStar Wars Galaxies von Sony Online Entertainment. worked. gewerkt. This sort of transmutation, where you query the amount of RESOURCE1, delete it, and then create a corresponding amount of RESOURCE2, permitted the concept of “refinement” of one type of quality into another. Dit soort transmutatie, waar je een vraagteken bij het bedrag van RESOURCE1, verwijderen, en maakt dan een overeenkomstige hoeveelheid RESOURCE2, toegestaan het concept van "verfijning" van een type van de kwaliteit in de andere. COTTON or FLAX into CLOTH is a similar thing, only with the wrinkle that it permits two different initial sources to become the same sort of thing in the end. Katoen of vlas in het doek is een soortgelijke zaak, alleen met de rimpels die het mogelijk maakt twee verschillende bronnen worden dezelfde dingen in het eind. Link: UO’s resource system, part 3 150)?150:this.scrollHeight)”> __________________ The tools suck! Link: UO de resource-systeem, deel 3, 150)? 150: this.scrollHeight) "> __________________ De tools zuigen! — Raph Koster [...] -- Raph Koster [...]

  3. Faith wrote on Geloof schreef op

    [...] Comments [...] Reacties [...] [...]

  4. Nephilim wrote on Nephilim schreef op

    Online. Online. Some interesting stuff in there from a virtual world design standpoint. Enkele interessante dingen er in een virtuele wereld van design oogpunt. Here are the three articles: Part One is about the underlying data structures. Hier zijn de drie artikelen: Een deel gaat over de onderliggende data structuren. Part Two is about the application of those data structures to the virtual world.Part Three is about the future directions they didn’t get to pursue with UO, and an ample source of ideas for your own creations. Deel twee gaat over de toepassing van deze data structuren aan de virtuele world.Part drie gaat over de toekomstige richting ze kwam niet voort te zetten met UO, en een ruime bron van ideeën voor uw eigen creaties. Those articles reminded me of a permeating magic discussion that was going on the RPGDX bulletin board a while back that generated Deze artikelen deed me denken aan een discussie door op magie dat ging over de RPGDX prikbord een tijdje terug dat gegenereerd

  5. Friendly Tentacle Monster » Blog Archive » Copenhagen interpretation - Wikipedia, the free encyclopedia wrote on Vriendelijk Tentacle Monster "Blog Archive" Kopenhagen interpretatie - Wikipedia, de gratis encyclopedie schreef op

    [...] Anyway. [...] Hoe dan ook. Read the 3 posts on Raph’s website and help me brainstorm some system to implement to pass the time. Lees het 3-posten op de website van Raph en help me brainstorm sommige systeem uit te voeren om de tijd. Studying some bifurcation maps would be much more interesting provided one knew it were modelling “units of goodness” and the current exchange rate for “Nick’s mom” or what have you. Studeren sommige bifurcatie kaarten zou veel meer bepaald een interessant wist het ware modelling "eenheden van goedheid" en de huidige wisselkoers voor "Nick's moeder" of wat heb je. [...] [...]

  6. Mutual Admiration Society :: Преглед на тема - fun: love in game mechanics wrote on Wederzijdse bewondering Society:: Преглед на тема - fun: de liefde in het spel mechanica schreef op

    [...] хаха! [...] Хаха! брутална находка в последния засега пост на Раф за Ултима Онлайн )) направо цитирам, всякакъв преразказ ще бледнее: ( http://www.raphkoster.com/2006/06/05/uos-resource-system-part-3/ ) [...] брутална находка в последния засега пост на Раф за Ултима Онлайн)) направо цитирам, всякакъв преразказ ще бледнее: (http://www.raphkoster.com/2006/06/05/uos-resource-system-part-3/) [ ...]

  7. RPGDX > Forums > Design and programming > UO Resources System wrote on RPGDX> Forums> Ontwerp en programmering> UO Resources System schreef op

    [...] Just FYI, Raph Koster, author of "A Theory of Fun," just finished blogging a series of articles that describe the process they used to create the resources system used in Ultima Online. [...] Just FYI, Raph Koster, schrijver van "A Theory of Fun," net klaar met bloggen een reeks artikelen beschrijven het proces dat ze gebruikt voor het maken van de middelen gebruikt in Ultima Online. Some interesting stuff in there if you’re looking to build a more environment-based RPG (as opposed to scripted, console-style). Enkele interessante dingen er in als u op zoek bent naar een milieu-based RPG (in tegenstelling tot een script, console-stijl). Here are the three articles: Part One is about the underlying data structures. Hier zijn de drie artikelen: Een deel gaat over de onderliggende data structuren. Part Two is about the application of those data structures to the virtual world. Deel twee gaat over de toepassing van deze data structuren aan de virtuele wereld. Part Three is about the future directions they didn’t get to pursue with UO, and an ample source of ideas for your own creations. Het derde deel gaat over de toekomstige richting ze kwam niet voort te zetten met UO, en een ruime bron van ideeën voor uw eigen creaties. Those articles reminded me of the permeating magic discussion we had a while back, and makes me want to go back and revisit it. Deze artikelen deed me denken aan de discussie door op magie hadden we een tijdje terug, en maakt mij ga dan terug en herzien. Heh._________________Visit the Sacraments web site to play the game and read articles about its development. Heh._________________Visit de sacramenten website van het spel en lees de artikelen over de ontwikkeling ervan. [...] [...]

  8. Ultima Online ChatZone - UO’s resource system wrote on Ultima Online ChatZone - UO †™ s resource systeem schreef op

    [...] rnum=Math.round(Math.random() * 100000); document.write(”); Ultima Online Chatzone MAIN    UP    REPLY UO’s resource system Zappa 12.195.89.1306/6/2006 12:45:54 PM This explains alot about how things worked in the game that us players were only able to delve into on the bare surface. [...] Rnum = Math.round (Math.random () * 100000); document.write ( ""); Ultima Online Chatzone MAIN UP ANTWOORD UO †™ s resource systeem Zappa 12.195.89.1306/6/2006 12:45: 54 PM Dit verklaart veel over hoe de dingen werkten in het spel dat we spelers konden slechts ingaan op over de kale oppervlak. It is a very nice read on something that few people notice.http://www.raphkoster.com/2006/06/03/uos-resource-system/http://www.raphkoster.com/2006/06/04/uos-resource-system-part-2/http://www.raphkoster.com/2006/06/05/uos-resource-system-part-3/ [...] Het is een heel mooi lezen over iets dat weinig mensen notice.http: / / www.raphkoster.com/2006/06/03/uos-resource-system/http://www.raphkoster.com/2006/06/04 / uos-resource-system-part-2/http: / / www.raphkoster.com/2006/06/05/uos-resource-system-part-3/ [...]

  9. Psychochild's Blog wrote on Psychochild's Blog schreef op

    That’s not very realistic! Dat is niet erg realistisch!

    I’ve read a few posts lately that have inspired me to write this entry. Ik heb een paar berichten gelezen dat de laatste tijd hebben me geïnspireerd om te schrijven dit item.
    UO’s resource system on Raph’s blog (http://www.raphkoster.com/2006/06/03/uos-resource-system/). UO de resource-systeem op Raph's blog (http://www.raphkoster.com/2006/06/03/uos-resource-system/). This fascinating post, in three parts, talks about the goals, design, impleme… Dit boeiende post, in drie delen, gaat over de doelstellingen, het ontwerp, impleme…

  10. Reverence Online Forums-viewtopic-Crafting thoughts and background! wrote on Eerbied Online Forums-viewtopic-bewerking gedachten en achtergrond! Schreef op

    [...] Have you guys seen this? http://www.raphkoster.com/2006/06/03/uo…ce-system/ http://www.raphkoster.com/2006/06/04/uo…em-part-2/ http://www.raphkoster.com/2006/06/05/uo…em-part-3/_________________-Marcaaus http://ctprofiles.net/951789 [...] [...] Hebben jullie dit gezien? Http://www.raphkoster.com/2006/06/03/uo… ce-systeem / http://www.raphkoster.com/2006/06/04/uo … Em-deel-2 / http://www.raphkoster.com/2006/06/05/uo… em-part-3/_________________-Marcaaus http://ctprofiles.net/951789 [...]

  11. Persistent Realms, LLC :: View topic - Mobs, or NPCs wrote on Persistente Realms, LLC:: Bekijk onderwerp - Mobs, of NPCs schreef op

    [...] I know this answer is kind of a cop-out, but I think anything you can do with the game mechanics should be reference-able/flagged, you know, isSleeping(), isFighting()…look to the game mechanics, there are your flags. [...] Ik weet dat dit antwoord is een soort van een cop-out, maar ik denk dat alles wat je kunt doen met het spel mechanica moet worden reference-able/flagged, je weet wel, isSleeping (), isFighting ()… kijken naar de mechanica spel, er zijn uw vlaggen. It would be nice if you could modify short descs based on a flag check, ie: %NPC is standing here. Het zou mooi zijn als u zou kunnen wijzigen korte descs gebaseerd op een vlag controleren, dat wil zeggen:% NPC staat hier. %NPC is fighting %PC. NPC% is het bestrijden% pc. Raph Koster just posted some interesting articles about NPCs and resources on his blog, the latest is: http://www.raphkoster.com/2006/06/05/uos-resource-system-part-3/ Related to that I’d like to see mobs with tradeable flags. Raph Koster net gepost enkele interessante artikelen over NPCs en middelen op zijn blog, de laatste is: http://www.raphkoster.com/2006/06/05/uos-resource-system-part-3/ Gerelateerd aan dat ik ' d graag zien mobs met verhandelbaar vlaggen. For example, a player kills a mob, a witness mob gets a flag to attack the player. Bijvoorbeeld, een speler doodt een mob, een getuige mob krijgt een vlag aan te vallen de speler. That flag isTradeable for a certain duration, such that if the mob runs into another mob, they can pass flags, and the next mob has a chance of picking up the hostileToPlayer() flag as well. Dat vlag isTradeable voor een bepaalde duur, zo dat als de maffia loopt in een andere mob, kunnen ze pas vlaggen, en de volgende mob heeft een kans op het oppakken van de hostileToPlayer () vlag ook. It doesn’t have to just be about hostile flags, if a player does a mob a favor they might have a niceToPlayer flag that they can then pass; in this way a player character affects the game world in a more organic, natural way than a script telling all the mobs what to do. Het heeft niet alleen te worden over de vijandige vlaggen, als een speler heeft een mob een gunst die zij hadden een niceToPlayer vlag die zij kunnen dan pas; op deze manier een speler karakter van invloed op de game wereld op een meer organische, natuurlijke manier dan een script te vertellen alle mobs wat te doen. [...] [...]

  12. UO’s Resource System at MMOG Nation wrote on UO's Resource System op MMOG Nation schreef op

    [...] I loves me some Raph Koster. [...] I loves me enkele Raph Koster. He has a discussion of Ultima Online’s resource system that spans three articles, and is completley worth a read. Hij heeft een bespreking van Ultima Online's resource systeem dat overspant drie artikelen, en is completley de moeite waard te lezen. He references the ‘Playing to Bake Bread‘ article he wrote a while back in the article, and I should point out that’s well worth a look too. Hij verwijst naar de 'Playing te Bak Brood' artikel schreef hij een tijdje terug in het artikel, en ik moet erop wijzen dat het zeker waard een kijkje te. We ended up saying that a given object (which was still defined in a template) could have as part of it, a set of resources. We kwamen te zeggen dat een bepaald object (die toen nog in een sjabloon) zouden kunnen worden als onderdeel van uitmaken, een reeks van middelen. A resource was just a label — nothing more and nothing less. Een resource is slechts een label †"niets meer en niets minder. (Much later, in SWG, that team would introduce the concept of resources with stats, but that’sa post for another day.) The server had a list of the resources that existed in the world, and designers could create new ones fairly readily. (Veel later, in SWG, dat team zou de invoering van het concept van de middelen met statistieken, maar dat †™ sa-post voor een andere dag.) De server heeft een lijst van de middelen die er in de wereld, en ontwerpers is het aanmaken van nieuwe tamelijk gemakkelijk . Resources were things like METAL, WOOD, and CLOTH. De middelen werden dingen zoals metaal, hout en doek. But they were also things like MAGIC and PLAYER and other such abstract qualities.В  [...] Maar ze waren ook zaken als magie en speler en andere dergelijke abstracte kwaliteiten. В [...]

  13. Madscientist.net wrote on Madscientist.net schreef op

    post three) about the resource system in Ultima Online, how it was suppose to work, and why it didn’t.В What is really interesting, at least to me, is how the resource system was suppose to tie very heavily to the behavior of creatures. na drie) over de hulpbronnen in Ultima Online, hoe was het stel om te werken, en waarom het didn †™ t. В Wat is echt interessant, althans voor mij, is hoe de bron was veronderstel te binden zeer sterk aan het gedrag van schepselen.

  14. Tales of the Rampant Coyote wrote on Tales of de Rampant Coyote schreef op

    More Interesting AI Raph Koster has posted a GOLD MINE of information on the ecological / economic systems of Ultima Online (see part 1, part 2, andpart 3), and a discussion on the “dumbing down” of NPCS in MMORPGs. Verdere interessante AI Raph Koster heeft een goudmijn aan informatie over de ecologische en economische systemen van Ultima Online (zie deel 1, deel 2, en het deel 3), en een discussie over de "dumbing down" van NPCS in MMORPGs. Raph’s comments go on how these sophisticated plans for Ultima Online and Star Wars Galaxies were eventually deep-sixed in favor of maintainability and simplicity (not to mention catering to Raph de opmerkingen gaan over de vraag hoe deze geavanceerde plannen voor Ultima Online en Star Wars Galaxies werden uiteindelijk diep-sixed in het voordeel van onderhoudbaarheid en eenvoud (en niet te vergeten de catering aan

  15. mike thinks he's so smart wrote on mike denkt dat hij is zo slim schreef op

    crap more forgivable. crap meer vergeven. And boy is it ever random. En de jongen is het ooit willekeurig. They’re just making it up as they go along; I’m radically lowering my expectations for any kind of resolution ‘cuz it’s only coming haphazardly if at all. Ze zijn gewoon maken als ze gaan, ik ben een radicale verlaging van mijn verwachtingen voor elke vorm van resolutie 'cuz is het alleen komende per toeval als het al. Raph Koster just posted a 3-part blurb aboutthe UO resource system Raph Koster net rapporteerde een 3-deel blurb aboutthe UO resource systeem

  16. C# Game Development wrote on C # Game Development schreef op

    the "working memory" though I’m not quite sure what this specifically is. het "werkgeheugen" maar ik ben niet zeker wat dit specifiek is. (I found this in System.Environment.WorkingMemory or something, I haven’t looked it up yet.) I also finished reading about Ultima Onlines resource system plans: Part1 Part2Part3 I found it interesting as I use to play UO. (Ik vond dit in System.Environment.WorkingMemory of iets, ik heb niet gekeken it up nog niet.) Ik ben het ook klaar bent met lezen over Ultima Onlines resource systeem plannen: Part1 Part2Part3 Ik vond het interessant als ik gebruiken om te spelen UO. No recent mmorpgs interests me at all, they are just cooperative, single player style, games in a vast chat room. Geen recente mmorpgs interesseert me helemaal niet, ze zijn net coöperatie, een enkele speler stijl, gespeeld in een groot chat room. In UO the game and game goals were more emergent from interaction with the players, In UO het spel en spel doelstellingen werden meer opkomende van interactie met de spelers,

  17. Mining For Fish » Blog Archive » Essential Reading - UO’s Resource System wrote on Mijnbouw voor vis "Blog Archive" Essential Reading - UO's Resource System schreef op

    [...] I’ma few days late on this, but Raph’s recent three post series on how the original resource system for UO was developed is worthwhile reading(part 1, part 2, part 3). [...] Ik ben een paar dagen te laat op, maar Raph de afgelopen drie post-serie over de wijze waarop de oorspronkelijke bron voor UO is ontwikkeld is de moeite waard lezing (deel 1, deel 2, deel 3). I recommend these articles not only for the obvious reasons of examining what was attempted before and why it failed, but because these links will be of particular interest to anyone who has taken the time to read my thesis and found the material within of value to them. Ik raad deze artikelen niet alleen voor de hand liggende redenen van het onderzoek is uitgevoerd voor wat en waarom het niet, maar omdat deze links zal worden van bijzonder belang zijn voor iedereen die heeft de tijd genomen om te lezen mijn proefschrift en vond dat het materiaal binnen dat van waarde is voor hen . What was tried in UO is a practical example of some of those ideas, and I certainly would have included this work as a reference had I been aware of it at the time. Wat was geprobeerd in UO is een praktisch voorbeeld van sommige van deze ideeën, en ik ben zeker dat ook dit werk als een verwijzing had ik er bewust van het op dat moment. [...] [...]

  18. GameDevMike - News, opinions, articles, tips & tricks on game development with an Indie twist. wrote on GameDevMike - Nieuws, meningen, artikelen, tips & trucs op game ontwikkeling met een twist Indie. Schreef op

    to his blog feed. op zijn blog feed. Today, I went back to the blog by chance and found some great posts he has made recently on game AI. Vandaag de dag, ging ik terug naar de blog bij toeval gevonden en enkele grote posten die hij heeft gemaakt op de laatste wedstrijd van vogelgriep. The series of three posts began when he was commenting on Raph Koster’s recent posts regarding Ultima Online (here, here andhere). De serie van drie posten begon toen hij commentaar op Raph Koster †™ s recente berichten met betrekking tot Ultima Online (hier, hier andhere). In that first post, Jay talks about how perception is reality in games. In dit eerste bericht, Jay vertelt over hoe perceptie is realiteit in games. In the next post, he pontificates on points he picked up at an old GDC session on how to make AI more believable. In de volgende post, hij pontificates op de punten die hij opgepakt op een oude GDC sessie voor het maken van AI meer geloofwaardig. Finally, the last post Ten slotte is de laatste post

  19. The ORIGINAL UO - UOGamers Forums wrote on De originele UO - UOGamers Forums schreef op

    [...] The ORIGINAL UO This is a series of articles written by one of the original designers of Ultima Online, Raph Koster. [...] De originele UO Dit is een serie artikelen geschreven door een van de oorspronkelijke ontwerpers van Ultima Online, Raph Koster. He used to work at Sony Interactive or whoever produced Star Wars Galaxies, which was supposedly UO’s successor. Hij werkte vroeger bij Sony Interactive of wie dan ook geproduceerd Star Wars Galaxies, dat was vermoedelijk de opvolger van UO. I never played it, I don’t know. Ik heb nooit gespeeld, ik weet het niet. These articles describe the way the world of Brittannia was supposed to have worked. Deze artikelen beschrijven de manier waarop de wereld van de Brittannia had moeten hebben gewerkt. They’re a little geeky, and you need to understand at least a little bit about how computers work and games are programmed to really wrap your head around how amazing this idea was. Ze zijn een beetje geeky, en u moet begrijpen op zijn minst een beetje over hoe computers werken en spelen zijn geprogrammeerd om echt wrap je hoofd rond verbazingwekkend hoe dit idee was. It never made it to UO’s release because of technical difficulties (slow computers back in 1997). Het maakte het nooit tot UO de introductie vanwege technische problemen (trage computers terug in 1997). However, I think it’s worth a read, and might be worth some consideration the next time the team goes to revamp monster spawns or wants to add quests or anything like that. Maar ik denk dat het de moeite van het lezen, en kunnen als enige overweging de volgende keer dat het team gaat een nieuw elan monster spawns of wil toevoegen quests of iets dergelijks is. The article is broken up into 3 parts, and they don’t link to each other, so I’ll link them seperately here. Het artikel is opgedeeld in 3 delen, en dat zij geen verband met elkaar, dus ik zal ze apart link hier. UO’s Resource System: Part 1 UO’s Resource System: Part 2 UO’s Resource System: Part 3 [...]

  20. UO’s resource system on Raph Koster - MMOz wrote on

    [...] UO’s resource system, part 3 on Raph Koster [...]

  21. IGDA SAN DIEGO » Ultima Online on the Operating Table wrote on

    [...] Ultima Online’s Resource System III [...]

  22. The Gaming Bitch » Evolution? wrote on

    [...] http://www.raphkoster.com/2006/06/03/uos-resource-system/ http://www.raphkoster.com/2006/06/04/uos-resource-system-part-2/ http://www.raphkoster.com/2006/06/05/uos-resource-system-part-3/ [...]

  23. Lost Rambling: June 2006 wrote on

    [...] was originally planned/attempted in the early UO and the reasons that it didn’t work (Part 1, 2, 3).Which is very interesting to me, since I have been reading up what I can. In a strangely related [...]

  24. Resource management and MMOs - Darkfall Forums wrote on

    [...] of day, atleast not how they invisioned it. These articles can be found here, part 1, part 2, and part 3. These are very interesting reads by the way. I think anybody who enjoys MMOs should read them. I [...]

  25. Mischiefblog wrote on

    UO resource system write-up, long lost (and missed by me as reference material)–of course he did this in June 2006 when I was concerned with things like interviewing for a new job. UO’s Resource System (part 1) UO’s Resource System (part 2) UO’s Resource System (part 3)

  26. VR Community Forums : :: View topic - UO's Resource System wrote on

    [...] by Raph Koster on UO’s (planned and never fully implemented) Resource System: Part 1 Part 2 Part 3 This is pretty much the reason I got into MMOs in the first place - I was thoroughly intrigued by [...]

  27. RLMMO :: View topic - Ecosystems wrote on

    [...] http://www.raphkoster.com/2006/06/04/uos-resource-system-part-2/ http://www.raphkoster.com/2006/06/05/uos-resource-system-part-3/ Damn, I want an MMO that has all that stuff in it in the worst way. Hell, I would love to have [...]

  28. Metaplace.info forums • View topic - Some unofficial research... wrote on

    [...] by Michael Chui on Mon Oct 01, 2007 11:07 pm Scopique wrote:And don’t forget the stuff that didn’t MAKE it into UO, like the dynamic ecosytem.If you have no idea what he’s talking about,http://www.raphkoster.com/2006/06/03/uo … ce-system/http://www.raphkoster.com/2006/06/04/uo … em-part-2/http://www.raphkoster.com/2006/06/05/uo … em-part-3/Also,http://www.raphkoster.com/2006/06/09/why-dont-our-npcs/ [...]

  29. Genetik und ZГјchtung wrote on

    [...] :-)Bis dahin kann ich das hier empfehlen:UO's ressource systemUO's ressource system 2UO's ressource system 3by Raph CosterUngefähr so möchten wir es handhaben. Wenn du es mitberechnest und das system so [...]

  30. The Joshua Tree wrote on

    I can’t explain why, but I always look at my memories in UO through rose-colored glasses. I remember playing back in 1997 and getting PK’d all the time as I mined ore (which was always gone due to the now-defunct resource banksystem). I took some time off for a few years but eventually found my way back. A lot had changed in my time away, but I found a good group of friends to help me through the transition. UO was a sandbox in many ways. Origin Systems provided the world but the

  31. Mark’s Link Blog » links for 2007-12-05 wrote on

    [...] Raph’s Website » UO’s resource system, part 3 (tags: gamedev software design) [...]

Reader Comments
  1. Eugenius said on

    My opinion if someone redid UO with Ralph’s creature behavior patterns, I think we would have a new hit over night.

  2. Morgan said on

    Raph wrote:
    To my mind, this sort of algorithmic approach to developing a virtual world is not only the past, in UO’s case, but also the future.

    Eugenius wrote:
    My opinion if someone redid UO with Ralph’s creature behavior patterns, I think we would have a new hit over night.

    RunUO . There! You can experiment now. :)

  3. chabuhi said on

    My opinion if someone redid UO with Ralph’s creature behavior patterns, I think we would have a new hit over night.

    Yeah, that would certainly be neat to see, but I’m afraid too many people have so much emotionally vested in what they want(ed) UO to be and made so many compromises in their minds (or sacrificed their wants really) that any rehashing of UO would be crippled by over-adoring fans.

  4. CadetUmfer said on

    Seems the root of the problem is the same one that plagues nearly every aspect of “simulation”–that perceived causality is more important than actual causality. But you said this before, if a player can’t readily determine why things are happening, then it may as well be random.

    I’d liken it to a kind of uncanny valley of simulations. As you simulate something with more and more accuracy, you encounter more unexpected (from the player’s POV) behavior, and you’re forced to either impose more artificial limits, or simulate even more accurately.

    Like all systems, it’sa matter of balance. Take software development. You want to abstract away your objects, behavior and state up to a point, to facilitate faster development, more flexibility, etc. But if you keep going, eventually you end up bogged down in an Architecture Astronaut hell of Manager-Factory-Visitor-Work Items.

  5. Morgan said on

    Raph wrote:
    All of these sorts of applications rely on a large bank of dynamically assembled text that is contextual to the situation. With the current desire for international localization of text, it’s unlikely that you can even execute on this. Localization tends to demand static text, and indeed, UO had piles of dynamically assembled text that was removed when the title was localized to other languages, costing the game’s dialogue much of its flavor.

    Now we’re down to business interests trying to please everyone again. There is far more risk inherent to "globalizing" products for multiple languages and cultures than there are benefits to be gained from developing products "localized" for a certain language and culture. Cross-cultural design is always complex, difficult, and always requires a lot of expertise to be performed effectively. Cross-cultural design is also expensive and consumes resources that could be better spent on increasing the value of a product to a particular audience. The rule is that you cannot satisfy all interests. You can aspire to satisfy all interests; however, this aspiration — much like the aspiration to achieve perfection — degrades performance, productivity, and eventually profits. There are exceptions to every rule; however, banking on remote possibilities is the primary factor that attributes a great degree of risk to cross-cultural products. There is less risk in doing what we do best, and rarely do we ever satisfy all of our interests in o