Author Topic: farming in ps idea  (Read 3487 times)

Seytra

  • Forum Addict
  • *
  • Posts: 2052
  • No system can compensate lack of common sense.
    • View Profile
(No subject)
« Reply #15 on: May 28, 2005, 06:46:20 pm »
The problem would not be server resources and also not engine complexity. The server already has to store the entire map, so it does not matter whether it is modified by players or not. The engine will be more complex, sure, but not insanely.

No, the real problem with that are the clients and the connection to them. Basically, such a tile system would require the entire map to be re-downloaded by the client, not only at every startup, but also each time the tile comes into view, because it might have changed in the meantime! So while this is only a little bit of data, perhaps only three 32 bit numbers, this will add up. Additionally, the client computer would have to recalculate the entire visible map area while moving, including elevations and textures, which will place a great load on the CPU and GPU. It\'s just like when you go to the plaza when it\'s crowded, or when a lot of items have been dropped on the ground: position and ID data has to be transferred to the client, the textures / models have to be loaded and the items have to be rendered. This creates jaggy movement and lag spikes even for broadband users with SOTA comps. Once the things have been processed, the lag vanishes, but in the case of having to reshape terrain that would be a constant problem.

This is the reason why the maps are stored on the client at all.

That said, it might be possible to have sophisticated checksumming and notification algorithms in place.

It might work if:
- the tiles are large, at least the size of four average houses
- the change of tiles, due to player interaction and plant growth, is still infrequent, like one tile per visible area every hour
- elevation changes are even less frequent, so that the only thing that changes within a week are textures
- the checksumming algorithms provide means to quickly \"spot\" all differences (every client might have a dramatically different map, depending on when they last went there!) and transfer the changed information only.

This might be augmented and the impact lessened if there was a special updater for the maps only. This updater could be run prior to entering the game, and it would update all maps to the state of the server\'s maps. This way, after having not logged on for years will make for one insanely big update, but not for continous lag during playing.

This way, the \"grass-growing server\" (autonomously changing environment, like forests growing, deserts forming, etc.) could even be implemented.

However, even with all of these optimisations in place, it seems that the only way to do it would be requiring broadband access, which is not yet standard. :(

DaveG

  • Forum Addict
  • *
  • Posts: 2058
    • View Profile
(No subject)
« Reply #16 on: May 28, 2005, 10:00:23 pm »
First off, this sort of thing is the dream massively-multilayer online environment.  No doubt it would be hard to implement, but it is definitely possible.

Updating tile changes wouldn\'t be as server intensive as is seems.  The server already has to update the client with item, monster, player, and NPC, locations.  Terrain changes, in most areas, wouldn\'t be that frequent.  The way I see it, there are two ways to handle this:

1)  Simple way:  There is a \"base\" terrain which is stored in the maps on the client side.  All base tiles contain ground type (grass, dirt, stone, water, road, etc.) but no objects (individual trees, bushes, boulders, buildings, etc.).  Thus, we would have a \"blank\" map with all the elevations, main features, and such set.  Each tile would contain object info including its name, type, and age.  For simplicity, only one object per tile, or one type of small object with a quantifying attribute.  (ex. 6 rat eyes)  The client would load all of the region\'s tiles on load, and cache them for further reference.  Only tiles that change will be loaded in the future.  Thus a forest will only need to be fully loaded once, and then only individual modifications would need a reload.  The tile updates wouldn\'t really be more complicated than what exists for items, etc. now, just more complex and widespread.

2)  Fancy way:  All tiles also contain ground type and elevation.  These properties could be modified by players, and as a result would add an insane level of complexity.  (Would be cool though...)  This scenario would require a rolling load, in that you would load visible tiles as you are coming into range of them.  Obviously, this would suck up more server load, but it can be done.

A few other points:
*  I would prefer hexagonal tiles, over square.  Square tiles can drastically limit construction freedoms.
*  The \"Nature system\" would be the one of the biggest server-side processing hits.  You would need a system to monitor tiles based on type and age to grow/decompose everything.  (dropped animal parts need to decompose, plants need to grow, etc.)
*  The other big hit would be from checking for tile updates.  (not necessarily downloading them)  This wouldn\'t really be that bad.  The server would just have to have a list of recently updated tiles in each region which the clients would just have to keep downloading.  (Checking each tile individually would be insane.)  To minimize bandwidth use on the server, each region\'s list would be broken up into 3 or so chunks.  One for new changes (last hour), one for recent changes (last 3 hours), one for all changes.  The client would only download the one needed.  Changes to the current region would be monitored by the client continuously.
*  Items should have an additional attribute to tell if it is on/in/under the tile.  (surface, partially buried, underground)  This would also make mining a much simpler system.  The nature system would just randomly move the minerals/ores around in certain regions under the surface.
*  The other big choice that affects performance would be tile size.  The best size would be about a square meter, but we would probably need a slightly bigger one to make things easier.
« Last Edit: May 28, 2005, 10:02:20 pm by DaveG »

::  PlaneShift Team Programmer  ::

Foresteer

  • Hydlaa Citizen
  • *
  • Posts: 398
    • View Profile
(No subject)
« Reply #17 on: May 28, 2005, 10:39:48 pm »
Yeah saving tiles isnt that hard.. in the cited source RPGWO the tiles are very \"small\" compared to what you are saying *as big as the player* and why does it have to moniter and check the tiles o.O? That confuses me.. why not when somebody does an action to a tile does it just not send a message to the server of the alteration? *IE: i use axe on tree... instead of every five minutes the server checks all tiles to see for change adn in five minutes THEN i see \"my\" tree cut down\": It just sends a message to change the model from TREE to TREE_STUMP as i cut it? the client sends the info to the server.. maybe a slight bit client intensive but saves on servers*

Hmmm i guess the \"nature system\" might be server intensive.. but maybe not.. how about this? The game no doubt will have or has a clock on it.. when a tree is planted at clock time 1:50:12AM and the tree has a data set to go from SEEDLING to YOUNG_TREE in say... 10-12 hours (dont want forests springing up over night that would be server intensive) then the tile just contains the data to change the model at internal clock time 1:50:12PM or you can make speed go at +25% by watering it hastening the time to growth and another +25% if you dump fertilizer on it (this wear off naturaly) *sends a lil ping or something maybe could work.. i\'ll keep thinking on it*

Yes i love the mining idea.. it would have to wait a long time but the data could have certian ores \"growing\" in certian areas in radomly sized \"lodes\" and also for every few tiles \"dug out\" you would need to have a carpenter or blacksmtith make a support (make a real community mining operation :D ) to hold the roof up.. lest one minute your mining and the next you are opening your eyes in the death realm ;)

And yeah i like the underground idea *Buried treasure hunts anybody? or Spy information dropoffs 0.0*

I think thier should be a \"slightly underground\" use shovel on tile to check for treasure and then a \"Underground level\" where you get a shovel and dig a big hole *Premade as per tile guidlines* and then dig in a direction (i better not go to far lest we go off course.. damn it i cant leave details out ;( ) Ok well tunnels one tile wide wouldnt need supports (reading books on tunneling 1 meter wide tunnels support themselves.. at 2+ meters you are risking it and at 4+ basicaly death without support)

Tile size is good at a meter (about 3 feet to my fellow rebelious yanks :P ) and way to \"think outside the box\" *ba-dum-dum* :rolleyes: i just said square becasue it may be easier on the devs.. if not then sweet

Building system here how it REALLY needs to work kinda like the sims... lay a wall or a corner on a tile and tada! build the house from there: ok slight alteration

Put the lumber for the wall on the ground.. then \"use\" hammer on nails then on lumber it will bring a menu of all the \"recipes\" *building syles you have learned.. if you seek training in odjeva then you would lrean the \"recipes\" of that building syle.. in hydlaa you would learn that syles instead* you can use.. build a few tiles worth of wall and you have a house.. then roof it :)

*building should take a high mason or carpentry skill.. so you have to hire a carpenter and/or mason or just live in a twigloo untill you can train it*

As for tile ownership... i think you should be able to buy a tile at a time.. price undetermined (it would need tweaking) but not need to own a tile to use it.. as long as nobody else does.. *if you dont have the money but just want to live off the land.. oh so RP :) * buy a about 20-30 tiles and you got yourself a right proper plot :D

*ahh i am soo sorry but the ideas get flowing..* Ok there needs to be some \"simsy\" bars like \"hunger\" thirst\" \"heat\" and or \"disease\" *so you need a house... if you are a low carp you are fighting for you life in the winter to stay warm in your craptastic hit oh man this would be fun* i also think there should be \"lighting\" *if underground you can see very far unless you have a lantern.. and is there night in PS? if not then i am sad.. night is so great. didnt i see night in MB?*

SideStory: If used this will raise the bar and put planeshift on the map.. the first game EVER to actualy go from \"playing\" the game to being \"In\" the game (and so RP you can smell it miels away)

Let your mind wander for a moment.. say you one day you deside to plant a tree.. you water it you keep it from being  destroyed  and the it goes from what seems like a stray blade of grass to a tall tree.. for the first time in gaming history you actualy REALLY changed the world.. for honest..

Not Hero #108,865,029 to save the princess [fakeenthusiasm]YAY![/fakeenthusiasm] but in fact  a person whos mark could[/] be left on the world for YEARS to come

Newbie: Wow thats a great temple complex :O
Oldbie: Yes mister so-an-so designed that and the randomism guild built that about one year ago.. its still in use today


out of ideas.. resume discussion amoungst yourselves

carry on :D
Warning the truth may blow your brain to shreds... Click at your own risk :P[/disclaimer]

Seytra

  • Forum Addict
  • *
  • Posts: 2052
  • No system can compensate lack of common sense.
    • View Profile
(No subject)
« Reply #18 on: May 28, 2005, 11:55:02 pm »
As I said: the problem is not server load, but bandwidth! What happens when you plant / chop down a tree? Yoh send a message to the server, fine. This is the easy part.
The next thing is that the server sends a message to each and every client that possibly views that place!
Now this doesn\'t seem bad but what if you have a lot of tiles, which you have with the extremely small size of 3m^2?
It\'s the exact same as putting a player per every 3m?2 in the plaza! The server will laugh at that, but the clients that look at it, and have to load the appropriate models, will experience extreme lag. Take this and make the clients MMORPG-like, i.e., 10000 clients, and you got bandwidth requirements for the server that are insane. Likewise, take about 500 tiles in the visible area, and you got a lot of information to the clients, so modem users will be out of luck.

Edit: I\'ve had a look at RPGWO and the reason why they can do this is simple: the clients have a very, very limited range of vision. Additionally, there is no requirement for realtime movement: a delay of 0.5s will most likely be tolerable, unlike in a 3d world where you move by estimating the progress you\'ll make.
Therefore, the amount of data needed to transfer is severely reduced, and also even if the amount is great, the delay is tolerable. Furthermore, the entire visuals and game are simple, which means that the CPU and GPU will have almost no work to do, so that even massive updates can easily be computed without slowing gameplay down.

By contrast, PS needs a wide field of vision to allow actual immersion and illusion of a world, and also to provide overview to the player for orientation. Therefore the amount of data to be transferreed would skyrocket and due to the realtime requirements of movement delays of > ~0.1s aren\'t tolerable (don\'t confuse this with ping times of 0.5s: they are being taken care of by the estimating client. They are known and constant, whereas render / transfer lag are not and thus cannot be adequately estimated in advance). Add to that that even high end computers have a very high CPU utilization and no doubt 100% GPU utilization for PS to run well, and you see that there is no slack left to calculate complex terrain modifications and load complex models all the time.
/Edit

As for the simsy bars... PS is not about staying alive! It is about adventuring! Therefore, adding all these tediums of thirst, hunger and disease will only serve to frustrate the player. Yes, PnP RPGs have food and hunting rules, but I know of noone who constantly uses them. The only times when these are actually put to use are in extreme situations that further the plot, i.e., if you\'re travelling through a desert! On all other occasions, food and water is some \"yeah, you have enough food\" thing, unless someone actually wants to RP hunting or cooking.

WEO is a good example for this: it is a survival game, i.e., the objective is staying alive and possibly reproduce. PS is an adventure / RP game, i.e., staying alive is taken for granted unless you get yourself killed; the objective is to interact with others, to solve quests and adventure.

Just imagine the incredible fun of walking through wilderness and getting a disease that kills you... or starve to death. Yes, they can be appealing occasionally, but most of the time, they are IMO only tediums that take away time that I\'d like to spend on the real objectives in PS.
Just as WOE doesn\'t bother with stats (except the \"fighting\" skill), PS doesn\'t need to bother with staying alive.
« Last Edit: May 29, 2005, 12:10:12 am by Seytra »

DaveG

  • Forum Addict
  • *
  • Posts: 2058
    • View Profile
(No subject)
« Reply #19 on: May 29, 2005, 12:17:52 am »
Quote
Originally posted by Foresteer
Tile size is good at a meter (about 3 feet to my fellow rebelious yanks :P )


I\'m American too.  I just can\'t stand the English measurement system...   :P

Quote
Originally posted by Seytra
As I said: the problem is not server load, but bandwidth! What happens when you plant / chop down a tree? Yoh send a message to the server, fine. This is the easy part.  The next thing is that the server sends a message to each and every client that possibly views that place!


Trees won\'t be planted/killed at too high of a rate.  (Hopefully... we may need forest guardian spirits or something...)  For the simple stuff like plants it wouldn\'t be too big of a deal.  Remember, I suggested caching this info.  So, only changes would be downloaded.  It wouldn\'t be too much more than what is already done with items on the ground now.

Quote
Originally posted by Seytra
Likewise, take about 500 tiles in the visible area, and you got a lot of information to the clients, so modem users will be out of luck.


I agree that it would be a headache to update 500 tiles.  But only a dozen or less would need to be updated at any one time.  Most of a forest, for example, would be \"static\".    The trees are adults and won\'t change, so all that info will be cached by the client.  So, if I walk into this forest, I\'d only need to get the info on the one or two trees cut down since my last time here.  (axes MUST be able to wear out to prevent deforestation)  Sending a byte or two out to all the clients (that actually go here) would not be an issue at all.

For a simple system, we don\'t necessarily need tiles.  Tiles are only really needed for constructing large things, like buildings.  For just natural stuff, we could use the same system that items and whatnot use right now.  We\'d just need to add seed items, and re-define trees as items that can be modified.
« Last Edit: May 29, 2005, 12:18:55 am by DaveG »

::  PlaneShift Team Programmer  ::

Foresteer

  • Hydlaa Citizen
  • *
  • Posts: 398
    • View Profile
(No subject)
« Reply #20 on: May 29, 2005, 01:07:51 am »
Hell Id just be happy with just growing trees for a log time :) id go about planting them and having more fun then can be imagined

And yeah Disease is a little much.. but hunger, thirst and tempurature actualy add something.. Cooks benifit from hunger and thirst and builders dont just build to have a building to look and say \"aint it purdy?\" it actualy will warm/cool you from tempurature extremes...

Plus you can\'t have everybody chatting in the tavern during a blizzard to stay warm if a blizzard is just for looks now can you ;) ?
« Last Edit: May 29, 2005, 01:08:22 am by Foresteer »
Warning the truth may blow your brain to shreds... Click at your own risk :P[/disclaimer]

almondblight

  • Wayfarer
  • *
  • Posts: 6
    • View Profile
(No subject)
« Reply #21 on: May 29, 2005, 07:34:53 am »
Harvest Moon was a lot of fun.  I\'d love too see something like that where you have to prepare the field (tilling the earth, getting rid of rocks and stumps, repairing fences), plant, water, weed, and finally harvest and sell your crops.  The whole period would perhaps last a week or two and give the player something unusual to do.  Instead of other MMORPG\'s where you log in for half an hour to complete a quest or grind a bit, you would be logging in to check out your crops and throw out any weeds.  Actually, they should add a lot of Harvest Moon elements (like player owned cows).  A small scale dynamic world probably wouldn\'t be too bad (I think), as it would only have to update the client whenever a player enters a farm.  I\'d also like to see decorative gardens for smaller houses.

DaveG

  • Forum Addict
  • *
  • Posts: 2058
    • View Profile
(No subject)
« Reply #22 on: May 29, 2005, 07:57:41 am »
Yeah, I love Harvest Moon too.  But, we don\'t want to turn PlaneShift into an all-out farming game.  We just want to add some farming elements.  In my opinion, cows is going a bit too far.  I think we should be aiming for a dynamic world that gives some simple farming as an option, but not the ability to set up their own full-blown livestock farm.  That might be nice, but not in-line with this game.

My goals:
*  Dynamic world with free growing/plantable plants/fungi of many kinds
*  Plant and grow your own garden with collected seeds
*  Bury/dig up items
*  Free \"growing\" minerals/ores/gems underground
*  Harvesting of materials from the world (wood, stone, mud, etc.)
*  Free construction (signs, bridges, buildings, etc.) using various materials

::  PlaneShift Team Programmer  ::

Foresteer

  • Hydlaa Citizen
  • *
  • Posts: 398
    • View Profile
(No subject)
« Reply #23 on: May 29, 2005, 08:17:53 am »
Well id like a cow (where does the cooks milk for cake comes from?) ARE YOU SAYING YOU HATE CAKE OMZTTYLBBLQ!!?

seriosuly cows would be nice as a monster to be tamed and used.. but on such a low priority that i dont expect any time in seeable on unforseeable future

Also yeah not ALL farming.. but \"in all things you do, do completely\" you would wanna cover all the bases (not right away but eventualy)

harvest moon friends of mineral town!!  best portable investment since \"Pokemon Sapphire\" brining much joy on long trips and wait lines :)
Warning the truth may blow your brain to shreds... Click at your own risk :P[/disclaimer]

Zan

  • Veteran
  • *
  • Posts: 1944
  • Just a regular guy, with an irregular soul
    • View Profile
    • Photography
(No subject)
« Reply #24 on: May 29, 2005, 02:15:22 pm »
I would not want to see any cows in the game, nor do I think there will be any. It \'s similar to those people who want to see horses to ride or dragons to fight. PS should be original in my eyes so no cows :P

Though I don\'t mind the idea of having livestock if it are unique creatures. I agree with what DaveG said. We don\'t want to make this a farming game, just a roleplaying adventure game where some farming is allowed. There will be tamable creatures avaiable in the future but I hope there won\'t be any massive herds of creatures because I can see things getting a bit chaotic.

So if you want a cow, you should be able to get one cow creature as a pet but no herds of them.
Zan Drithor, Member of the Vaalnor Council
Tyrnal Relhorn, Captain of the Vaalguard
Thromdir Shoake, Merchant
Giorn Kleaver, Miner.

Grayne Dholm, Follower of Dakkru

Foresteer

  • Hydlaa Citizen
  • *
  • Posts: 398
    • View Profile
(No subject)
« Reply #25 on: May 29, 2005, 02:53:34 pm »
Thats what i said.. plus im sure there will be a max tamed monster limit based on tame skill.. wanna fill your \"tame slots\" with livestock go ahead :P

And as the thread is about farming though your only gonna hear farming ideas ;)
Warning the truth may blow your brain to shreds... Click at your own risk :P[/disclaimer]

almondblight

  • Wayfarer
  • *
  • Posts: 6
    • View Profile
(No subject)
« Reply #26 on: May 29, 2005, 07:33:23 pm »
Quote
Originally posted by Zan
 I agree with what DaveG said. We don\'t want to make this a farming game, just a roleplaying adventure game where some farming is allowed.


Perhaps, I suppose it depends on what your goals are.  Personally, I think that greater roleplaying would be achieved by allowing the player more options as to how they approach the game.  In almost every MMORPG, it is like a level grinding treadmill where everyone has the same goal and you go out and kill or quest to attain that goal.  Though there are ways to address this in terms of changing \"quest and kill\" gameplay, it would be nice if one could go through the game without having to play that way at all.  I know the primary focus will be the adventuring gameplay, but other elements (farming, trading, politics, art, etc) would help flesh out the world.

Sorry for going off on a bit of a tangent, I know most of these suggestions are of the \"in the future, we may put it in, and in the far future we may fully implement it\" variety.  Just think of them as possible long term goals.

Foresteer

  • Hydlaa Citizen
  • *
  • Posts: 398
    • View Profile
(No subject)
« Reply #27 on: May 29, 2005, 07:56:43 pm »
^^ 8o ZOMGing Xenophobes Batman!!! i just discovered a new form of life on planet earth!!

\"Newbien Not-Stupidous\" :D *they are very rare it seems ;) *

Yeah i hope for exactly the same thing.. just be able to play ,no goal really and no goal needed.. any goals i have i set for myself, instead of the game setting  it for me

Bravo
« Last Edit: May 29, 2005, 07:57:09 pm by Foresteer »
Warning the truth may blow your brain to shreds... Click at your own risk :P[/disclaimer]

Seytra

  • Forum Addict
  • *
  • Posts: 2052
  • No system can compensate lack of common sense.
    • View Profile
(No subject)
« Reply #28 on: May 29, 2005, 08:44:13 pm »
Quote
Originally posted by DaveG
Remember, I suggested caching this info.  So, only changes would be downloaded.  It wouldn\'t be too much more than what is already done with items on the ground now.

Of course only changes would be downloaded, but I see a lo of woodcutting goung on. After all, wood is one of the main materials for construction and other use, so it should be sellable.
Quote
Originally posted by DaveG
Quote
Originally posted by Seytra
Likewise, take about 500 tiles in the visible area, and you got a lot of information to the clients, so modem users will be out of luck.


I agree that it would be a headache to update 500 tiles.  But only a dozen or less would need to be updated at any one time.  Most of a forest, for example, would be \"static\".    The trees are adults and won\'t change, so all that info will be cached by the client.  So, if I walk into this forest, I\'d only need to get the info on the one or two trees cut down since my last time here.  (axes MUST be able to wear out to prevent deforestation)  Sending a byte or two out to all the clients (that actually go here) would not be an issue at all.

Even if forests wouldn\'t change frequently, if tiles are used for farming, and if these tiles are the tiny size of ~3m^2, there will, unless plant growth takes RL weeks, be a lot of change and thus tiles to update. This is why I feel that tilesize must be relatively large compared to the field of vision.
Quote
Originally posted by DaveG
For a simple system, we don\'t necessarily need tiles.  Tiles are only really needed for constructing large things, like buildings.  For just natural stuff, we could use the same system that items and whatnot use right now.  We\'d just need to add seed items, and re-define trees as items that can be modified.

Have you ever moved to a place where ~ 500 items were placed on the ground? I have, in the days of the Emissary scroll drops. The models were simple, yet the sheer number gave me jerky movement until I had all their positions (still framerate dropped). Considering that my system is towards the high end of the scale, and also that I\'m on broadband, this means that for the average system the effects will be a lot worse.

This is the reason why, even without adaptive distance, creatures and items aren\'t displayed if they are beyond a certain distance (which is rather close).

So beware of small tilesize. :)

DaveG

  • Forum Addict
  • *
  • Posts: 2058
    • View Profile
(No subject)
« Reply #29 on: May 29, 2005, 09:15:43 pm »
Quote
Originally posted by Seytra
Have you ever moved to a place where ~ 500 items were placed on the ground? I have, in the days of the Emissary scroll drops. The models were simple, yet the sheer number gave me jerky movement until I had all their positions (still framerate dropped).


Yeah I agree, a full forest might not work at this stage in the game.  Theoretically, it\'s quite possible though.  The program just isn\'t designed to handle that many items at once.  If we automatically go for the ideal world we\'ll quickly realize that it can\'t be done, yet.  Until everyone\'s computer can handle a fully detailed forest, I would agree that we should be shooting for smaller and less densely grown flora.  (ex. scattered fruit trees, berry bushes, mushrooms, herbs, etc.)  If we still wanted to get wood from a forest we could make a compromise.  Something like having a pre-modeled forest (a little more detailed than we have now) and designated NPC lumberjacks whom we would buy materials from.  Players could still cut down the occasional tree away from the forest (with the stipulation that they must replant it) but they would be forbidden to enter the lumberjack\'s territory.

Random other thought:  Eventually, we need to get rid of item labels.  It should be the player\'s responsibility to identify items (and not tiny things from a distance) and get labels based on skill after its picked up.  The only cue its an item should be that it highlights when the mouse is waved over it.  Just think of the idiocy of a few dozen labels of \"apple\" on an apple tree.

::  PlaneShift Team Programmer  ::