ID:151493
 
For those not familiar with the actual game behind .hack, basically what it is is a world that creates and maintains itself, as well as creating new and recycling old parts of itself, sometimes just trashing those parts forever. In the game aspect of it, I would imagine it creates creatures, areas, and everything else the game needs to work. I've been thinking of how feasible this actually is, and I think I might've come up with a start:

First and foremost, everything would be managed by a mysql database. Monsters would be stored there, and they would probably be created from a list of adjectives and nouns. I got this idea from back when I ran a WoW private server, I had to do a lot of work with the database itself, and I really liked how it managed it. Basically, it handled everything with an id, and all of that objects stats were a column. This could be done with monsters and items, possibly quests as well, but that's something I haven't actually thought about yet.

Secondly, AI. Again, like the WoW emulator, it would all be externally scripted. This could easily be written by the game, since it could spit out something basic, and the monster itself could adapt it's own AI as time goes on (adding functionality like "avoid this spot" or "these creatures are friendly").

Thirdly, world creation. This would probably be the most tricky part. I figure it could have a preset list of geographical features (mountains, hills, puddles, lakes, etc), and it could be handled a bit like minecraft (for those who don't know, see this), although it would not create the world as people explore it, it would probably draw borders, and add to itself as time goes on. For things like lakes, it would have a higher probability of continuing to draw a lake than stopping, but when it stops generating water, it might draw an island, or it might stop completely, and encase itself in land. Or, it could go on quite a long while and just make water that gets deeper, or more shallow, until eventually it goes above water level again. It would do this until it fills up what would be considered a 'zone.'

There's probably a lot I'm not taking into account, or some things I'm missing, but how feasible would this really be? It really doesn't seem like it would be too bad, although it would have to have a lot of work go into it.

[edit: I'm not planning to make something like this on BYOND, or really anything at the moment, just tossing around ideas]
I've read volumes 1-3 of .hack. I imagine the area where pieces of "trash" get thrown into another realm, could be something like this:




Basically, in the old Pokemon Red version, and Pokemon Blue version, there was a glitch in game that would lead you to scrambled maps. When I was younger, glitches really fascinated me, and I spent hours figuring out every single 'city' like this in the game and logged them on a piece of paper(which I still have to this day). Anyways, I was thinking that something like this would be interesting to explore in a Byond game. The only issue is, you have to be careful with what you could Enter(), and the density of objects.
Sounds cool. Very complicated to pull off but cool never the less.
In response to Zecronious
Yeah. I do hope to actually take a serious look at this someday for a project, so right now I'm trying to evaluate how feasible it is, and I'm hoping I can catch some more eyes for some design critique and possible loopholes, or something along those lines.
Well from what you have described I think it's feasible.
Using procedural generation of things such as landscape and creatures shouldn't be too difficult to do.
The AI would need to be very well scripted though, and it sounded liked you were talking about genetic programming which is very interesting although I think it would work far too slowly to make them adapt to players.

Sounds like the sort of project I'd love to work on if given the chance. :D
In response to Lyndonarmitage1
Yeah. The AI is probably one of the more difficult parts, because it would need to be something the language itself could spit out in scripts, and that the monsters themselves can modify as they come across something that refines it. The world generation, as I said, probably wouldn't be too difficult.

It's a project I'd love to work on in the future. Maybe if we ever get our /map datum, it'd be something to work on with BYOND.
Take a look at Dwarf Fortress.

Minecraft and Dwarf Fortress operate off of a similar idea, but Dwarf Fortress generates from the outside in (meaning, it generates the entire world, and then generates more specific information on the fly.

Minecraft generates from the inside out, making each area as the player discovers it.

In both cases, it's a fractal landscape generator.


A Metaworld generator would need multiple sorts of generators, and not just a simple fractal landscape generator.

As for presets for hills, mountains, etc. They are generally based on the overall slope of the terrain itself. You can also multiply the slopes by other factors, and calculate by layering other maps over the heightmap itself.

There are a lot of options with random map generation, and many haven't fully been explored in videogames.

As for words being used to generate the data, I disagree here. I believe that you should be creating a system that associates data with random seeds, and then using that random seed to generate the world.

You can associate these words with seeds, by creating a somewhat unique value for each word, and then doing some kind of formula to create a seed from any combination of these words.

The idea of randomly generating monsters is quite possible as well, but graphically, it is only as diverse as your graphics allow it to be. It would take a LOT of work to get sensible monsters formed from random data, while making them completely diverse. It would be much more feasible to create several thousand monsters and creatures, and then associate them by biomes, and each area should be assigned random biomes from the seed. It would be much more possible to make monsters and equipment stronger or different by creating templates, equipment lists, etc. and modifying them randomly.
In response to DivineTraveller
maybe the scripts for the AI could be created in XML so you would have premade templates for them and such?
In response to Masschaos100
I don't see that working too well. If I were to do it, I'd use LUA.
In response to Ter13
I see what you mean about the seeding, I hadn't actually thought of that.
For the monsters, though, I imagine there would be a lot of graphics, and a large dictionary, so [adj] [noun] could be created, and possibly palette-swapped at runtime, or something. Associating them with biomes would certainly be best, because then I could associate a set of adjectives per biome as well, and with that, I could create a somewhat unique set of monsters for a while.
In response to DivineTraveller
Ah, i didn't see that edit in the post. I thought you were gonna use BYOND and the only outside language/configuration files BYOND can use are .ini files and XML :P
In response to Masschaos100
I disagree, things like LUA could still be used, but I'd basically have to write my own parser, like was done for XML and INI. Unless I'm drastically overlooking things, which is possible. Maybe one day we'll even have native external scripting support, that'd be neat.
In response to DivineTraveller
Yeah guess you're right, my knowledge of DM just isn't great or deep enough to think of a way to make a LUA parser...I still have much to learn.
In response to Masschaos100
Masschaos100 wrote:
I thought you were gonna use BYOND and the only outside language/configuration files BYOND can use are .ini files and XML :P

Well there's also this library I wrote a while ago.
In response to Nickr5
the link doesn't work :P
In response to Masschaos100
It should work now.
In response to DivineTraveller
I'm going to be a little up front with you here, DT. Something to mull over, and make you wish you had never listened to me.

Any discussion of monsters is completely pointless without discussing combat. So let's bridge the gap.


Why do thousands of monsters seem like something a player would want to deal with? Because of diversity. Diversity can challenge, annoy, and even in some cases, entertain a player. Comfort is a big concern. You don't want your game to be alien to a player, so he can't get into it, but you also don't want your game to be boring.

The graphics for the monsters isn't nearly as important as what they can do.

For instance, adding a class system to monsters, where intelligent creatures can be "leveled" in a specific class, such as goblins can gain levels in shaman, brawler, archer, or peon. Each of these classes would contain a leveled list of equipment, abilities, and strategies.

Then you get into the AI package. To make a battle entirely difficult, you could write your AI to seek aid, mix in healing potions, strength potions, firebombs, and other equipment to really give a pack of goblins some real scary power at higher levels. Then we get into numbers. Allowing the AI to function at a level of "squads" as well as individually adds some serious flavor to combat, and to monsters.

No longer are you just grinding on mobs, you are taking down a well equipped 'burz mob ready for Waagh!

Then there's the possibility of higher level mobs bringing along trolls, complete with two goblin handlers. Throw in some neat AI based-stuff where if the goblin handlers lose control of the ogre, the Ogre kills friend and foe alike, and you'll have some seriously fun stuff.

I wouldn't focus too much on "customizable scopes, sword hilts, and different wallpapers", because in the end, the player's going to say: "Hey, it's a dungeon.", not "Wow, I didn't know dungeons could generate random bloodstains and corpses!". What's really going to keep them coming is the diversity of the AI package, and the obscenely random things that happen when the AI starts coming up with situations that allow for unforeseen outcomes and humorous situations.

So, more or less, I'd say focus on a few pre-set enemies, maybe some palette changes, but REALLY focus on their AI, tactics, and leveled lists, instead of "Hey, it's a goblin with a scorpion's claw... And a crab with acid spit...". You'll win out every time.
In response to Ter13
I'm pretty glad I read that, actually. I'm actually very fond of giving monsters classes (I try to make players almost exactly like monsters, except with their own set of intelligence), and when I said earlier 'they could adapt,' I just meant for this situation. For the monster color comment I made, it was just because I figured if thing were going to generate more randomly, then maybe their color could impact it somehow (snowy area = white goblins, foresty area = green/brown goblins, etc), it wasn't the main selling point (at least, I hope that's not what it sounded like).

In the situation you mentioned, I would absolutely shoot for a fully-interactive world, where things like rocks can be moved, trees can be bashed down (and stay that way), and make sure the AI knows about every possible thing it could do, then possibly give each monster a 'quirk' -- something like intelligent, clumsy, destructive, or anything along those lines. Those quirks would have a reasonably high impact on how they handle themselves, so a clumsy monster might trip over a root, or a destructive monster might (try to) knock down a tree, push a boulder down a path, or grab a weapon from the terrain around it. I definitely agree that the monsters make the game, and how they act is what makes the game.