Are Persistent Worlds Possible?
by Matthew Tedder · in Game Design and Creative Issues · 09/21/2007 (3:18 pm) · 9 replies
I have been making my first little experimental games--mostly using the 3D models and graphics supplied with Torque for learning (is it legal to use the trees and such for my own final games?). My brother is working on another set of characters and buildings in blender, but it'll take a while.
My main question is, can a Torque server be used for a persistent mission? Does it leak memory or anything like that?
My goal is a game where every mission is a persistent, neolithic world with a very simple but functional ecosystem. Plants grow to mature size then periodically grow new trees in random nearby locations. Deer eat grass and the footsteps of all creatures reduce their growth until killing them.
The AI will consist of "simplemen" and "noblemen", whereby the simplemen does only what is necessary for subsistence and reproduction, except where he has an assigned leader (a nobleman) who can give additional kinds of orders. The noblemen have the simplemen's AI, plus an ability to lead an assigned group of simplemen toward the accomplishment of prioritized goals set by their leaders (e.g. defend area, conquer area, colonize area).
Players will take-over control of selected noblemen in their tribes, when they play. And when disconnected (for any reason), the AI will take over again.
Certain noblemen men may also be assigned as "demigods", who do not take damage. The demigods are world-administrators, they will do things like adding new plants, deer, and wolves when and were necessary.
New tribes will be established when a new player account is added to the game. The player starts as a simpleman in the tribe of another, but can birth new simplemen who form a shadow tribe until the moment he chooses to revolt. At that moment, the player's main character becomes a nobleman and his shadow tribe becomes new.
Does this all sound doable? I am an experience programmer (C,C++, PHP, Perl, Bash, Basic, others) but only a couple weeks into Torque (on nights and weekends when I can find the time). This game is a little dream of mine, and a way to experiment with some of my cultural AI concepts.
My main question is, can a Torque server be used for a persistent mission? Does it leak memory or anything like that?
My goal is a game where every mission is a persistent, neolithic world with a very simple but functional ecosystem. Plants grow to mature size then periodically grow new trees in random nearby locations. Deer eat grass and the footsteps of all creatures reduce their growth until killing them.
The AI will consist of "simplemen" and "noblemen", whereby the simplemen does only what is necessary for subsistence and reproduction, except where he has an assigned leader (a nobleman) who can give additional kinds of orders. The noblemen have the simplemen's AI, plus an ability to lead an assigned group of simplemen toward the accomplishment of prioritized goals set by their leaders (e.g. defend area, conquer area, colonize area).
Players will take-over control of selected noblemen in their tribes, when they play. And when disconnected (for any reason), the AI will take over again.
Certain noblemen men may also be assigned as "demigods", who do not take damage. The demigods are world-administrators, they will do things like adding new plants, deer, and wolves when and were necessary.
New tribes will be established when a new player account is added to the game. The player starts as a simpleman in the tribe of another, but can birth new simplemen who form a shadow tribe until the moment he chooses to revolt. At that moment, the player's main character becomes a nobleman and his shadow tribe becomes new.
Does this all sound doable? I am an experience programmer (C,C++, PHP, Perl, Bash, Basic, others) but only a couple weeks into Torque (on nights and weekends when I can find the time). This game is a little dream of mine, and a way to experiment with some of my cultural AI concepts.
#3
Mikey Busch--I am working through it piece by piece. I am pretty sure my strength will be in AI programming. I sure wish Torque were open source, so I could GPL my work. Crystal Space just wouldn't hold still for me. They have no regular release cycle--it's perpetually development code. That's why I bought a Torque Indie license.
09/22/2007 (9:14 pm)
Thak--I will take a look. Mikey Busch--I am working through it piece by piece. I am pretty sure my strength will be in AI programming. I sure wish Torque were open source, so I could GPL my work. Crystal Space just wouldn't hold still for me. They have no regular release cycle--it's perpetually development code. That's why I bought a Torque Indie license.
#4
09/23/2007 (12:14 pm)
Well if you need a 3d artist matthew hit me up, i got nothin better to do.
#5
09/23/2007 (9:09 pm)
How about deer (standing, moving, grazing) and wolf (standing, moving, striking, eating)? If you have nothing better to do. This is definitely going to take me a while, but I am determined.
#6
I really like the idea of npc reproduction and aging and final death no respawn just that ones frickin dead and hes not coming back now whos gonna drag it into the woods and bury it type death.
I also like the no npc's not even a game secondlife genre and feel it could be made worthy by implementing it in torque and backpedaling from all of secondlifes mistakes (very numerous).
One issue/question I would have for both of these scenarios or genres in which I am interested is land and land ownership. I was thinking of starting small with one non tiled terrain chunk and making a small model of my little world. But in the persistant w/npc mmo type world I would want the npcs to buy and sell land to each other as well as defend their property from the player/beasts/npcs. Now, It hits me how in the world can I possibly set different chunks of land as owned by different people.
Im talking about taking our one chunk and saying ok here are (3) 512sqm lots this one is for bob this one is for suzy and this one is vacant. Any ideas on how to proceed with something like that?
12/21/2007 (11:03 am)
Persistant MMO type worlds and Secondlife Type Virtual Worlds are my main 'quest' if you will in game dev right now. I know torque can handle it being truely pimping as it is, the only thing is finding a way to implement this. I really like the idea of npc reproduction and aging and final death no respawn just that ones frickin dead and hes not coming back now whos gonna drag it into the woods and bury it type death.
I also like the no npc's not even a game secondlife genre and feel it could be made worthy by implementing it in torque and backpedaling from all of secondlifes mistakes (very numerous).
One issue/question I would have for both of these scenarios or genres in which I am interested is land and land ownership. I was thinking of starting small with one non tiled terrain chunk and making a small model of my little world. But in the persistant w/npc mmo type world I would want the npcs to buy and sell land to each other as well as defend their property from the player/beasts/npcs. Now, It hits me how in the world can I possibly set different chunks of land as owned by different people.
Im talking about taking our one chunk and saying ok here are (3) 512sqm lots this one is for bob this one is for suzy and this one is vacant. Any ideas on how to proceed with something like that?
#7
> Does it leak memory or anything like that?
we run tge 1.3-based servers which stay up pretty much arbitrarily long w/ average concurrencies in the hundreds of users. i think our longest uptime is a couple weeks, which is our usual time between updates. we've modified them a bit, but memory leaks will be the least of your concerns with the system you're envisioning.
12/21/2007 (11:39 am)
> My main question is, can a Torque server be used for a persistent mission?> Does it leak memory or anything like that?
we run tge 1.3-based servers which stay up pretty much arbitrarily long w/ average concurrencies in the hundreds of users. i think our longest uptime is a couple weeks, which is our usual time between updates. we've modified them a bit, but memory leaks will be the least of your concerns with the system you're envisioning.
#8
- bool birthAt(int argType, int argX, intargY); // births new object type, random gender..
- bool grabRight(int argObjectId); // grabs object in front into right hand
- bool strikeRight(int argObjectId); // strikes with right hand (and whatever is in it)
- int build(int argType); // builds a buildable object type, e.g. axe if hands have 1 rock and 1 wood in them
The map is a big vector > > space where the vast majority of them point to basic elements which are: rock, dirt, water, and air. Since the attributes of these objects never change, only one of each is instantiated to this is reasonable with memory. My laptop can run a 1000x1000x25 map very efficiently. Oh, and I made the map pseudo-spherical (walking too far east brings you back west and too far south brings you up north--maybe this part cannot be represented in Torque so I will change this to be just an option).
As for undertaking the dead, they deteriorate and/or are eaten by wolves. I have deer, wolves, and humans as inhabitable objects. I also have grass, wheat, and trees that grow and propagate.
As for ownership of land, it could be managed in a couple of ways: (1) control entry and exit points to certain places in a map, such as guarding a small valley with guard posts; (2) delegate regions to a demigod who has the power to increase/decrease growth rates, create resources, and birth new objects. For me, I will just focus on the first method. So far, I have only made one demigod per world named "Virtuous" and he/she only has powers to cause earthquakes (modify the height map) and insert new objects. I want to ecosystem to take care of balancing powers, population/food supply, etc. so the demigod only needs to step in when things get out of wack.
I will get back to Torque.. I wish there was a book that just explained the basic tools and how to do basic things, instead of guiding me through code they wrote. It's hard learning someone else's code. And my graphical artist only knows Blender and cannot figure out how to export models for me. Every book I buy on Torque presumes I am using Windows--but I don't have any Windows or Mac machines.. I am all Linux so the nice graphical modeling tools that come with those books are useless for me.
12/21/2007 (3:43 pm)
I stepped away from Torque for a while and wrote a world emulation in C++ (no graphics). I have implemented most of the functionality I wanted and optimized it a bit for performance. It's all wrapped in a World class. Some public attributes include applyNature() (moves objects as per gravity, velocity, orientation and ages all objects like growing trees, deteriorating buildable objects not contained within another object) and various commands to inhabitable objects such as: - bool birthAt(int argType, int argX, intargY); // births new object type, random gender..
- bool grabRight(int argObjectId); // grabs object in front into right hand
- bool strikeRight(int argObjectId); // strikes with right hand (and whatever is in it)
- int build(int argType); // builds a buildable object type, e.g. axe if hands have 1 rock and 1 wood in them
The map is a big vector
As for undertaking the dead, they deteriorate and/or are eaten by wolves. I have deer, wolves, and humans as inhabitable objects. I also have grass, wheat, and trees that grow and propagate.
As for ownership of land, it could be managed in a couple of ways: (1) control entry and exit points to certain places in a map, such as guarding a small valley with guard posts; (2) delegate regions to a demigod who has the power to increase/decrease growth rates, create resources, and birth new objects. For me, I will just focus on the first method. So far, I have only made one demigod per world named "Virtuous" and he/she only has powers to cause earthquakes (modify the height map) and insert new objects. I want to ecosystem to take care of balancing powers, population/food supply, etc. so the demigod only needs to step in when things get out of wack.
I will get back to Torque.. I wish there was a book that just explained the basic tools and how to do basic things, instead of guiding me through code they wrote. It's hard learning someone else's code. And my graphical artist only knows Blender and cannot figure out how to export models for me. Every book I buy on Torque presumes I am using Windows--but I don't have any Windows or Mac machines.. I am all Linux so the nice graphical modeling tools that come with those books are useless for me.
#9
12/22/2007 (1:00 am)
Wow. We have a lot of the same ideas for persistance. You seem to be alot farther down the path than me tho. Best of luck man. I hope you will keep us posted I look forward to learning more about your ideas.
Torque Owner Mikey Busch
Hades