I have a dream


Here you can make and discuss suggestions to improve the game. - Hier kannst du Vorschläge einreichen und diskutieren um das Spiel zu verbessern.

Moderators: Community Managers, Developers

User avatar

Developer

Posts: 1228

Joined: Mon Jan 22, 2007 8:48 pm

Location: Exilant aus Trolls Bane

Post Wed Dec 20, 2017 8:12 pm

I have a dream

More than 7 weeks ago I finished the glyph magic. You can test it on the development server. Since that day I’ve asked for possible development tasks but there were nothing. So I had time to dream about an Illarion, I’d realize if I had the rights and tools.

I’m sure the idea will never find grace in the eyes of the responsible people. Nevertheless I’ll publish it here.

Main objective
    Illarion is a platform for free role play in a medieval fantasy environment.
Secondary objectives
  • Illarion has a PvP and PvE fighting system with numerous different monsters. There are almost no engine side restrictions for fights.
  • Illarion has a complex craft system with a lot of different professions and numerous items to produce.
  • Illarion is full of magic.
  • The Illarion game engine contains a number of RP supporting functions.
  • The land of Illarion is huge and has a lot of interesting, nice and mysterious locations.
  • Illarion is open for single player as well as groups of player.

Limitations
  • The game engine physics is the way the world is. The character has to manage to live in with all advantages and handicaps since he or she has no way to change it.
  • Wherever possible, functions have to be designed with an automatically balancing. GM or developer activity has to be minimized.
  • Whether a player or player group plays alone and ignores everybody or interacts extremely is sole decision of the player. The platform supports but doesn’t force RP.
  • There is no need to play frequently but no right to reach or hold facilities, higher positions or targets without playing too.

Player motivation
People are motivated by possible targets they can reach. The platform should provide as much as possible different targets.
  • Become rich
  • Fight the incredible powerful monster
  • Rule a group of people
  • Play a beggar, slave, maid or other peasant
  • Explore a world
  • Become Jack of all trades
  • Build a facility
  • Become famous and powerful in an engine supported craft such as mage, craftsman, fighter …
  • Become famous in an non-engine supported craft such an bards, painter, merchant …

What stay as it is?
The following functions are available right now. A redesign of these functions is not necessary.(1)
  • Isometric game graphics (2)
  • Basic game mechanics (3)
  • Fighting (4)
  • Gathering and crafting (5)
  • Alchemy (6)
  • Magic gems (7)
  • Magic (8)
It doesn’t mean there are no improvements possible. But Illarion can live here with the current status quo. The real changes I have in mind have way more impact to the main objective than some new spells or a new gathering.

What’s different?
  • The map becomes at least 4 times as big as now (2048*2048). (9)
  • Player can build almost everywhere everything without GM or dev support. It is possible to own a limited number of tiles. (10)
  • Not maintained facilities rot (11)
  • There is one fix town only. Here the Don, the Queen and the Archmage resides. New player arrive here. All crafts are available. (12)
  • The number of NPC is reduced from about 200 to about 60.The number of NPC in the wilderness is extremely low. (13)
  • Adventure stones are placed by player. (14)
  • The Don, the Queen and the Archmage own gems of power, give character an advantage and have GM power. (15)
  • Monster spawns are dynamically. (16)
  • Trees and plants grow dynamically. (17)
  • Player can define a second target for the cross (18)
  • Adapted outlaw handling. (19)
  • Item prices are calculated dynamically (20)

Moving from one land to the next can be done by a quest. Maybe the northern wall crushes and numerous undeads flood what’s today Illarion.
Again we will have a gold rush like after the VBU and it will take a time until the prices normalize and a basic infrastructure is settled. But everything we build and create now will not be for eternity since the physics of the world (game engine) continuously works against every established structure.
Again there will be a lot of players having a short look and disappear like after the VBU. But this time we are open for new ideas and a situation like the huge Spanish RP group what left due to the impossibility of an own settlement will not happen.
The need for developer and GM presence will be much lower since the player can do most of the actions we need today a dev or GM on their own.

(1) Even if the code is chaotic or a function could be made different, from the point of view of the main and secondary objectives the function can be used reliable without failure or major disadvantage.
(2) The graphic is sufficient for an independent indie game. There are much worse graphics successful on the market. The current game graphics do not hinder role play. In a limited amount new or adapted graphics are even possible.
(3) Running, walking, collecting items, working, fighting, trading, reading books …. All these functions work well and reliable.
(4) PvP and PvE works reliable and predictable.
(5) Multiple crafts exist. Each craft is needed anywhere. Some unbalancing is all right. There is no reason to have everything equalized.
(6) Potions can be brewed and used for different purposes. In fact the alchemy system is a golden nugget of Illarion.
(7) Magic gems with a wide use provide an excellent motivation for long term player. Due to the exponential functionality the extra power does not grow into eternity.
(8) Mage can spell and do rituals (glyphs). Even if it would be nice to have more, magic exists and can be used.
(9) Basically the map should be much larger to have space for explorers and different player settlements, whether they are for a single player, a couple or a guild.
Technically we’d need 2 maps in an overlay structure. One map contains the developer design. This parts are unchangeable by player and contain basic features like the palace of the Queen, the university of the Archmage, the residence of the Don, the main town market and workshops, the main town harbor and teleporter, the main town tavern, the cross and dungeons.
The other map is fully dynamic and can be changed by scripts and player. This part needs a basic map design only. Developers don’t place plants or building here.
Mines with good veins, perfect sand or clay pits are randomly distributed on the map. There may even be mines for a single gem anywhere in the nowhere.
(10) Every player can rent a number of tiles. I’d say 100.Here one can build its own facility no matter what. That includes walls, lockable doors, depots, teleporter or static tools. If multiple chars put their tiles together the facility can become larger. Player owned constructions can't be dstroyed by player.
There are some central structures that can be built outside of private ground too:
Follower of a god can build temples of the god they follow. There are not more than 2 temples of a god possible. Removing a temple is a medium term process. Only not maintained temples can be removed. Around a temple there is an area that is assigned to the temple and can be used as construction ground. The area must always be accessible for everybody so lockable doors are not allowed.
With play time every player earns points that can be used to build roads, harbors, bridges or other infrastructure.
(11) Every structure on the player map decays and need a continuous maintenance. No maintenance of a player owned facility over a longer period of time will lead to the fact, the char lose the ownership. If the player doesn’t pay the rent no matter why, the char lose the ownership. The facility rots back to the underlying basic structure relative fast (< 1 RL year!) There is no problem with abandoned settlements. These are a normal part of the land.
Bridges and roads expire and rot after a time, unused harbors and teleporter collapse.
Player depots that decay and disappear are lost with everything in.
(12) The main town is the gravity center of RP. Chars have everything they need. The resources around the main town are rather limited. The town contains:
  • A castle where the queen resides with training facilities for fighter a hospital and the cross.
  • A university with the library, classrooms, a laboratory and the Archmages office.
  • A craftsmen quarter with workshops of all trades and the Don’s residence.
  • A harbor where new player arrive and ferries dock.
  • A teleporter.
  • A tavern.
  • A town wall.
  • A prison mine.
(13) NPC’s have to have a dedicated reason. Not every single dungeon or facility needs a static quest.
For the faction leader see the separate chapter.
The main traders (10%) are in the main town. They have a deputy trader (5%) one can ‘rent’ for his/her own land. There is only one deputy trader per craft possible except two deputy barkeeper and two repair NPC (basically what we have today!). To woo a deputy trader away from a player rent one has to pay twice as much as the previous ‘owner’. If not paid in time the deputy returns to the main town and is free for another rent. The rent for the first half IG year has to be paid in advance. If the trader was wooed away in that time the money is lost.
(14)Every char has the right to place a single adventure stone anywhere. Restrictions might be visibility and a minimum distance to other stones. The donator of the stone is shown. That way the adventure stone system stays attractive since there will be new stones anywhere from time to time. There might be the right for a second stone after years of play time.
(15) The Don, the Queen and the Archmage own a faction each. They give their follower magic gems and advantages.
Don: Crafting base attributes plus 1. One cannot craft the 100% equipment perfect without the Don’s favor.
Queen: Fighting base attributes plus 1. One cannot kill top level monster without the favor of the Queen..
Archmage: Magic base attributes plus 1. One cannot perform 100% magic perfect without the Archmages favor.
The collected taxes and donations lead as now to magic gems.
The rank system needs a revision. I’d say there are 1 rank 9, 2 rank 8, 4 rank 7 and so on characters. In total there are 256 ranked characters per faction possible. The ranks are assigned every month anew based on the current rankpoints and the activity during the last 2-4 RL weeks. The rankpoints mainly are given by player promotion and activity in game.
The GM power of these NPC allows every GM to correct any strange, stagnating or dangerous IG situation in the center of Illarion. Every player in the main town has to take the interests of the powerful guilds into consideration.
(16) Monster spawns are almost everywhere except in the main town. The monster level and spawn rate depends on the last killed or not killed monster. That way almost monster free areas are possible everywhere but have to be maintained. Not maintained areas become more or less dangerous after a time again.
Some monster spawns move along dedicated routes even.
(17) On not rented tiles of the player map trees and plants grow dynamically. The tile just defines what can grow and how big has to be the distance to the next tree or flower. A cut tree or harvested flowers regrow at any possible tile but not per se at the same as before. Player can plant trees or flowers at positions where that plant could be grown on its own.
Plants and flower on the static map regrow at the same place.
(18) After reaching the cross every player can (not must) jump to a predefined location. The definition has to be done before the dead at the cross.
That way player can jump to their home or outlaws to hidden safe places.
(19) Handling outlaws is a big issue. The point is a lot of player will not log in if chars like Jefferson could enter the town.
I’d set a multi-level ban.
  • Lowest level: The banned cannot enter the secure area of the faction. That does not include the market, cross, training ground or library. Every member of a faction, except banned can apply such a ban. You have to have a higher or equal rank than the char who banned to revert a former decision on short notice. (something like 2-3 RL days) If the banned attacks a member of the guild in the main town, prison mine follows.
  • Second level: The char can enter the main town but cannot attack anybody without being thrown into the prison mine immediately. This is applied if there are at least 2 of 3 factions with a low level ban.
  • Third level: The banned char is not permitted to enter the main town. The character cannot attack any character in the suburbs of the main town without being thrown into the prison mine immediately. This happen if all 3 factions set a ban.
Bans can be set or removed even if the char is not online.
There is a teleporter, one repair NPC, a travel book trader, a buy everything but for 2.5% trader and the Hemp Neckty Inn depot anywhere in the suburbs in a rather suspicious environment. Maybe the Hemp Neckty Inn is placed a short distance outside where the real wilderness started.
(20) All prices of items are continuously (1/IG day) recalculated based on how many of the item was bought or sold at the market merchants. Often bought and never sold increase the price, often sold and never bought decrease. The item quality and durability has an influence to the price.
From time to time there will rise items where one can buy the material at the market produce them and sell the crafted items. Why not? The function will correct that soon.

Don’t ask me how the world of Illarion will looks like in detail after such a change. I can’t say where the best places are and what the best way to survive it and be successful is. The only thing I’m absolutely sure about, it will be a highly dynamic world with a lot of challenges and opportunities for everybody who is willing not to die with the stagnation of the Illarion nowadays.

What looks like an enormous amount of work isn’t that huge. According to my experience in the development for Illarion (books, quests, gems for crafter, glyph magic, GM tools, NPC’s …) and after more than 30 years in software engineering I’d say 3 persons with all necessary rights, 6-8 hours per week and knowledge of the server for setting up the few necessary server calls could have it easily ready for roll out in one year on Christmas 2018.
Take into consideration, compared to individual solutions a generic self-adapting function is slim, easy and error proof.
The map will contain about 5% of fully designed areas on the main level. Everything else will be created by some slim scripts. A lot of components can even copy from the current map.

What hinders us to start such a project technically?
  • There is nobody with rights and knowledge to apply functions to the server.
  • There is nobody able to introduce new people into the development of server and client. Setting up a working development environment is not possible.
User avatar

Posts: 47

Joined: Sun Apr 03, 2016 11:02 am

Post Wed Dec 20, 2017 10:04 pm

Re: I have a dream

Soo... I'm not the most active player myself but have helped my boyfriend while coding and also have done some coding in Illarion myself (I even added a luabind to the server!^^). Also I'm a software dev in RL (well, from now on), so I hope I can give some answers to allow you to give your ideas some more shape. And I also think most of your ideas are real good, even if maybe many people here will disagree with me :|

  Code:
The map becomes at least 4 times as big as now (2048*2048)

Advantage: There may be enough space to build freely and to do what you want
Disadvantage: Players may be spread out more which is problematic due to low player numbers
Compromise: Find a reason why player should stay in the center off the map (a reason thats not: most player are there). Maybe let monsters be stronger the more away you get from the center or get some non-fighter requirements.

  Code:
- Player can build almost everywhere everything without GM or dev support
- Item prices are calculated dynamically

Now this collides with one of the main problems of Illarion: Older players are extremely wealthy, newer players may never catch up. This is enhanced by a large margin because the saving space is unlimited in Illarion, so an older player could influence the dynamic economy single handed. We need to find a solution to make storage more limited and make large storage expensive (imo). Otherwise building isnt affordable by "new" players or much to easy for older players. Even from a RP perspective this is breaking immersion: some guy buying 2000 breads eating 50 a day ... what? Maybe the currently active players should find a deal to loose some of their items for making illa ready for a larger playerbases. I know this is hard, but I think it has to be done someday.

-----

Now, a more general note: programming can be a hard task. but it is much harder and discouraging if you cant just implement a feature but have to think about what exactly and in what extent it is implemented. So to get more active development I think a feature should be described in the smallest simplest steps possible. That means: If a programmer wants to implement something, he would just to take the feature description and sees: ahh i have to do this and than that. He does not need to think anymore about what should be implemented. He just needs to choose what he wants to implement and can do it step by step after it.

If you do this, I'm absolutely willing to help you :) And I'm quite sure recruiting new devs will be easier, because a well structured project will attract more devs than a project with one a partly visible concept.

sorry, I wrote this in a hurry. So there are lots of errors and bad language. If something cannot be understood, I will translate it to german later or refine this text.
User avatar

Posts: 40

Joined: Mon Aug 22, 2016 5:22 pm

Post Thu Dec 21, 2017 7:47 am

Re: I have a dream

Hi. I can't say I agree with each and every sentence here, but I like the general direction of having more freedom in game.
As for the part of actual development, I really feel that there is a lack of product owner / project manager. I think Estralis functions as such, but he is not very active. For example I have 3 open pull requests for the client for several months and I don't even know who can merge these.
As for setting up the environment, I think a possible solution would be a VM with build environment, so that new devs could just download it, run some update script and start working. I think it's rather easy for the server (and there is already a VM that just needs some more tools installed). But for the client it might require lots of memory: as far as I understand you can only build with IntelliJ IDEA, and I have it open now and it takes 1G RAM, so such a VM would need at least 4G to run. Does this requirement sound ok? If so, I can try to set up such a VM.
User avatar

Posts: 434

Joined: Mon Jun 30, 2008 5:11 pm

Post Thu Dec 21, 2017 11:14 am

Re: I have a dream

Those points summarize huge part of ideas what were rejected. I think change in this direction what Banduk presented would be perfect for game anyway. I can show an example for sandbox game where player character has extremaly much space for own choices how to remake surrounding. That game is not RP, but has much more active players. The problems there are mostly abandoned villages, towns and much low possibility to find another player. Too big map can destroy Illarion's situation even more than current stagnation.

http://www.havenandhearth.com/portal/

And about those points. I like almost everything but some of those I disagree.

Player depots that decay and disappear are lost with everything in.


I would rather like to see if after collapse of depot all items "flies" to main depot in the main town.

(15) The Don, the Queen and the Archmage own a faction each. They give their follower magic gems and advantages.
Don: Crafting base attributes plus 1. One cannot craft the 100% equipment perfect without the Don’s favor.
Queen: Fighting base attributes plus 1. One cannot kill top level monster without the favor of the Queen..
Archmage: Magic base attributes plus 1. One cannot perform 100% magic perfect without the Archmages favor.


Why I MUST play knight to be a perfect warrior? Where are personal choices of character? What if I want to play bounty hunter (prefers freedom than loyalty) and my char is raising his skills of combat to earn more money? Same with mage, crafter etc. Each person has a different reasons, different mindset, different goals. Such a simplification doesn't fit to Illarion. We don't need classes.

Handling outlaws is a big issue. The point is a lot of player will not log in if chars like Jefferson could enter the town.


After creating the system of settlements out of main town classical (current) way of seeing outlaws will change much. I suppose domination in main town lose much interesting in every groups. But it's difficult to rate what can happen. I would rather wait for solution to the moment when new shape based on points you presented will appear.

On the rest points I see no defects. They can be liked or not but are logical.
User avatar

Developer

Posts: 1228

Joined: Mon Jan 22, 2007 8:48 pm

Location: Exilant aus Trolls Bane

Post Thu Jan 04, 2018 11:11 pm

Dynamic Market – Details

Even if unbelievable the dream might get an approval here is a detailed concept of a dynamic price system:

Every time an item is bought or sold to an NPC, the number is count. Buy and sold is count separately.
Once a cycle (1 IG day) the number is added to 3 recursive counters. These counters represent short, medium and long term developments. A price correction is calculated.
count = (count * n + new number) / (n + 1)
Parameter:
  • n=3 - short term (about RL day)
  • n=20 - medium term (about RL week)
  • n=80 – long term (about RL month)
The price calculation based on the number of times, an item is traded plus an offset. The offset can be negative.
dp = xp * a * ( arctan( b * max(0,xn+xo) / xs)*2/pi – c)
    dp: price difference
    xp: price of item
    a,b,c: parameter
    xn: itm_need
    xo: itm_[buy|sell]_offset
    xs: itm_[short|medium|long]_[sell|buy]
    pi: 3,141…
The function itself runs against a limit even a million sold or bought items cannot pass. arctan(0)*2/pi = 0; arctan(eternity)*2/pi = 1. That way there is no way even for a very rich character to influence the price on short term extremely.
    parameter a: The faction of the current price that can be influenced in that step. [0-1]
    parameter b: As lower as faster the influence increases [0-1000]
    parameter c: Moves the function in y direction so negative values are possible. [-1-1]
See https://www.dropbox.com/s/jjgz9la3ioeboh6/DynamicPriceCalculation.xlsx?dl=0. Here you can play with the function.

There is one set of parameter a,b,c for each count (in total 6). As a beginning I’d set
For player buying (increase price):
    short term: a=0.05; b=2; c=0 (relative fast increase but low effect, effect visible, so a reaction is seen
    medium term: a=0,05; b=5; c=0,05 (slow increase and a very small negative effect for nothing bought. big increase of medium term huge buy orders)
    long term: a=0,07; b= 4; c= 0,3 (slow increase with a larger part of a negative effect foe decreasing price if nothing bought.
The same parameter for player selling (decrease price)

The item data base needs 11 new columns:
  • itm_sell
  • itm_buy
  • itm_short_sell
  • itm_short_buy
  • itm_medium_sell
  • itm_medium_buy
  • itm_long_sell
  • itm_long_buy
  • itm_sell_offset
  • itm_buy_offset
  • itm_need
For each column a read and write lua script command is necessary.

As a start the number of traded items is calculated out of all ingredients. The ingredients of semifinal products are calculated n times where n is the number the semifinal product is needed.
A 1 is added to the final value so final products have at least a 1.
The number is corrected by 1/250 (10%/week) of the difference in between itm_need and itm_long_sell+itm_long_buy.
That way itm_need represent the number of traded items on long term.
User avatar

Developer

Posts: 1228

Joined: Mon Jan 22, 2007 8:48 pm

Location: Exilant aus Trolls Bane

Post Wed Jan 10, 2018 2:14 pm

Dynamic spawns

Here is another system in detail, I'd need for the concept.

Dynamic Spawns –Details
The basic idea is to give it into the players hand, what monster one can find where. A killed monster is replaced by a weaker one, a not killed monster is replaced after a time by stronger one.
That way maintained areas become safer, less maintained areas more interesting for top level fighter.

Parameters allow areas, where always are monster of a dedicated level. That way spots for fighter or safe areas can be designed.
There are a lot of extraordinary settings out of the box possible e.g.:
  • Whelps are always part of a wolf pack
  • Try to pass this area without killing a monster. They will become stronger with each kill.
  • A sleeping dragon guards his treasure.

A spawn has one dynamic value (spawnState) that has to be stored. It is an integer. We can use script variables for.
The value is managed as a reverse leaky bucket. There is a continuous flow in and an erratic removal.
For a better understanding all times are in minutes.

A spawn has some parameter:
  • spawn position
  • lowest spawn state (minSpawnState)
  • highest spawn state (maxSpawnState)
  • flow in, how many minutes takes it to add 1 to the spawnState (fillTime)
  • maintenance cycle (maintenanceTime)
  • distance of free movement of the monster (minDistance)
  • max allowed distance for a monster (maxDistance)
A spawn has a number of monster. Each monster has some parameter.
  • possible monster, a list of possible ID’s
  • max number of this monster at one time (maxNumber)
  • lowest spawn state (minMonState)
  • highest spawn state (maxMonState)
  • faction in spawn (faction [0-1])
  • kill value (monKill)
  • respawn (respawnTime)

Calculation procedure
  • Every fillTime’s minute a 1 is added to spawnState. spawnState cannot be higher than maxSpawnState.
  • Every time a monster is killed by player monKill is subtracted from spawnState. SpawnState cannot be lower than minSpawnState. Maintenance is called in respawnTime.
  • Every maintenance the spawn is reorganized.
  • If there is no player in sight all monster with maxMonState < spawnState are removed (kill without loot).
  • If there is no player in sight of a monster which distance to the spawn center is > minDistance and <= maxDistance it will be removed with probability = (distance monster to spawn – minDistance)/(maxDistance-minDistance). If the distance is > maxDistance it will be removed in every case.
  • The sum of factions of all monster alive is calculated.
  • Out of all monster with monMonState <= spawnState < maxMonState a monster is taken to spawn if the sum of factions of all monsters alive plus the faction of this monster is <= 1. This is done recursively until no monster can be spawned anymore.
  • Next maintenance is called in maintenanceTime.
Designing a spawn you should first decide how long it should take to come to the full powered spawn and set up the global spawn parameter.
Then the set of monsters can be designed. The necessary kill value should be calculated according to the question: How many sets of monster I want to have been killed to come into a lower monster range?
We can design a set of default spawns that can be used, so there is no need to set every single spawn separately.
The center of a spawn doesn’t need to be static. It could be used for wandering monster packs (e.g. winter in south, summer in north) or some random undead parties on Mas.
There should be a position (0,0,0) where the spawn pauses automatically. So moving a spawn center to that position the spawn will not respawn anymore.

Example 1:
We want a spawn, where top level fighter kill some top monster but not farm all the time. The refill and kill should be relative fast. The spawn is resettled within 4 hours.
    minSpawnState = 0
    maxSpawnState = 240
    fillTime = 1
    maintenanceTime = 10
3 Monster: Alkolyth; Golden Legionair; Skeleton
    maxNumber; 3;4;2
    minMonState:120;60;0
    maxMonState:240;180;120
    faction: 0.3; 0.21; 0.4
    killValue: 30; 20; 40
    respawn: 1; 2; 4
Example 2:
We want a wolf pack, which becomes stronger with time. It has always cubs and need about 2 RL weeks to become full powered.
The trick with the low level whelps is, they are permitted in all possible spawnStates but have almost no kill value.
    minSpawnState = 0
    maxSpawnState = 400
    fillTime = 4
    maintenanceTime = 60
6 Monster: whelp, young wolf, wolf, grey wolf, pack leader, lamb slaughter
    maxNumber; 3;4;4; 4; 1; 2
    minMonState:0;0;0;100;200;300
    maxMonState:400;100;200;300;400;400
    faction: 0.1; 0.2; 0.2; 0.2; 0.2; 0.3
    killValue: 1; 5; 10; 10; 40; 20
    respawn: 4; 2; 2; 2; 5; 4
Example 3:
We want a sleeping dragon. Some monsters guard his treasure. He will wake up if the guards were slaughtered. The treasure you can get only, if there is no monster alive.
The trick here is to have the boss in the middle. A respawn of 0 makes that at a kill the next monster is spawned immediately. After killing the low level skeletons there is a time without monsters of 5 min.
    minSpawnState = 0
    maxSpawnState = 120
    fillTime = 1
    maintenanceTime = 10
3 Monster: skeleton, black bone dragon, golden legionair
    maxNumber; 3;1;3;
    minMonState:0;40;80
    maxMonState:40;100;120
    faction: 0.3; 0.8; 0.2
    killValue: 5; 65; 10
    respawn: 5; 0; 0
User avatar

Developer

Posts: 1228

Joined: Mon Jan 22, 2007 8:48 pm

Location: Exilant aus Trolls Bane

Post Mon Jan 22, 2018 12:58 pm

Dynamic Grow –Details

Dynamic Grow –Details
In The Dream plants and trees have to grow dynamically in the most parts of the map.
This article describes a system, I have in mind.
To verify if the system works it was realized for test purposes in c#.
This are some examples I tested: https://imgur.com/a/tGZ2p
  • Some random dense thickets
  • A solitary cactus
  • Plants grow close to water only
  • A pine forest
The following configuration is needed:
    - Underground
    - ListOfPlantsToGrow
    - ListOfSurroundings
A surrounding has the following parameter
    - ListOfItemToCount
    - ListOfItemIsListOfUnderground
    - MinDistance
    - MaxDistance
    - MinCount
    - MaxCount
A configuration could be a simple xml file and doesn't need any code (Example: the pine forset):
  Code:
<?xml version="1.0" encoding="utf-8"?>
<NatureDesign xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <baseTile>11</baseTile>
    <growItemId>
        <int>3660</int>
        <int>3661</int>
        <int>3662</int>
        <int>1817</int>
        <int>1812</int>
        <int>1813</int>
        <int>590</int>
        <int>150</int>
        <int>308</int>
    </growItemId>
    <surroundings>
        <Surrounding>
            <itemId>
                <int>6</int>
            </itemId>
            <maxDistance>12</maxDistance>
            <minNumber>0</minNumber>
            <maxNumber>50</maxNumber>
            <isTile>true</isTile>
        </Surrounding>
        <Surrounding>
            <itemId>
                <int>3660</int>
                <int>3661</int>
                <int>3662</int>
                <int>1817</int>
            </itemId>
            <maxDistance>2</maxDistance>
            <minNumber>0</minNumber>
            <maxNumber>0</maxNumber>
            <isTile>false</isTile>
        </Surrounding>
    </surroundings>
</NatureDesign>

Called for a random position or by a player action any plant out of ListOfPlantsToGrow is placed on position if:
    - underground is Underground
    - Sum of all items or underground out of ListOfItemToCount in range MinDistance to Max Distance is in between MinCount and MaxCount for each surrounding
For ListOfItemToCount exist some defaults like:
    - passable underground
    - any item
Since live becomes static without dead, there has to be a kill procedure as well.
The configuration is:
    - ListOfPlantsToKill
    - Underground
    - DeadProbability
    - RemainingItem
On a random position the plant is removed with DeadProbability and replaced by RemainingItem if:
    - underground is Underground
    - item is member of ListOfPlantsToGrow
Any automatic change should happen only if there is no player in sight. So that sudden plop up of trees like Asterix’s acorns will not happen in sight of player.
To get more dedicated areas like a pine forest, leaf tree forest, ocean coast etc. there should be some more undergrounds exists, even if the graphic is the same:
  • water – ocean (salt)
  • water – lake
  • water – creek
  • grass – tundra
  • grass – plain
  • grass – orchard
  • forest – boreal
  • forest - broad-leaved
  • forest – tropical
Using the system some interesting configuration would be possible:
  • A plant that grows only on forest edge or on orchards (cherry tree).
  • A plant that grows in lakes not more than 2 from the shore if the shore is not rock or sand (reed).
  • Small thick wood isles in tundra.
  • A plant occupy an area en masse if not collected (rare herb).
  • A new planted will grow out to a full apple tree at any time in future or die from any reason.
  • A tree that can grow in a swamp becomes on medium term a dead tree. The dead tree on his part will become a fallen tree afterwards.
User avatar

Developer

Posts: 1228

Joined: Mon Jan 22, 2007 8:48 pm

Location: Exilant aus Trolls Bane

Post Fri Feb 16, 2018 6:06 pm

Naming

Naming
Developer might have a name for every structure, river, rock or dungeon on the map. This name is not used in the game.

So let’s start with the Nameless Mountain, South River and Main Town.

The game should let the player the freedom inventing all the names. Propagating names by placing road signs, writing expedition reports and arguing with another guild that prefers another name is a good reason for role play. Giving some information about the past of any structure and force a naming is a good chance for GM quests.
And who cares if a name of a river changes over time?

Posts: 29

Joined: Sun Jun 11, 2017 12:29 pm

Post Fri Feb 16, 2018 7:00 pm

Re: I have a dream

That are quite some great Ideas in my opinion, but especially one got me quite hooked; The possibility to build.

In my opinion the Building itself should be affordable by everyone. The Main question to do it would be just: Whats more important to the Character: Safety or independence. In one of the "Selfmade" settlements, you would be independent from the "normal towns, but of course it also means the chance that you will be the victim of outlaws is also higher. Maybe also some Storage chests accesable by everyone, and with some bad luck you have your house and your independence, but lost everything else to some roaming bandit-player. Such a thing would of course not happen in a "Standard Town", as there only the Depots exist and all of your items are safe of course. maybe to avoid being robbed some spawnable and buyable (VERY EXPENSIVE) NPC could be made, which attack everyone but the one who spawned them. This way when you get out of your house or want to log off, you spawn your NPC what looks for your stuff, and when you get back, or log on, you can despawn him again.

That would be my two cents to this little "dreaming" ;)

Caine
User avatar

Developer

Posts: 1228

Joined: Mon Jan 22, 2007 8:48 pm

Location: Exilant aus Trolls Bane

Post Fri Feb 16, 2018 9:46 pm

Mining and other Gathering - Details

Mining and other Gathering - Details
It should be possible to create different resource densities just by mapping. Any structure where every rock gives the same amount of coal and stone and gems should be avoided even in the same mine.

This could be done by a number of resource sets, the mapper or even a script can assign to an item.

The resource set should be a structure containing for each tool a list of gatherable items.
There might be different tools available so on some places at the shore a player might gather water using buckets, salmons or trout using fishing rods and sand or raw topaz using shovels.
For each resource there is an information:
    - gathered item or spawned monster
    - fertility
    - next item
    - forced end
    - end message for both languages
With the gathered item you define which item you find. Data should be possible.
The fertility controls the amount of items you find and the probability of an event.
The probability to find a single resource out of the list is = fertility/sum(all fertilities).
The probability the gathering action ended with the default value is = 1/ sum(all fertilities).
The gathering ended immediately if the gathered item has the tag <forced end>.
Next item defines the item that follows: e.g. a coal vein is replaced by an empty coal vein. A 0 defines the item is removed without replacement.
The end message is shown to the player if the gathering ended with this resource.

The same structure works and exists for monster one spawn while gathering.

There is no need the item knows how many pieces of a material has been collected already. Over large number of gatherings the gathered amount per item is as designed even if a single player found a resource almost empty or never ending. Stopping and restarting the gathering has no influence to the probabilities. These are calculated again every gathering step.

Standard collections e.g. for all mining, pure elements or magic gems can be implemented. The parameter of the loaded standard is taken except the designer decides to overwrite it e.g. the probability.

A structure may looks like follow:
  Code:
<gathering>
    <tool>34</tool>
    <default>
        <nextitem>33</nextitem>
        <endmessage_de>Die Kohleader ist erschöpft. Du wirst dich anderswo nach Kohle umsehen müssen.</endmessage_de>
        <endmessage_en>This coal vein is empty. You should look at another place for more coal.</endmessage_en>
    </default>
    <resource> <!-- Coal -->
        <item>4321</item>
        <fertility>12</fertility>
    </resource>
    <resource> <!-- Topaz -->
        <item>222</item>
        <fertility>0.5</fertility>
    </resource>
    <resource> <!-- pure elements -->
        <itemcollection>pure_elements</itemcollection>
        <fertility>0.001</fertility>
    <resource>
    <resource> <!-- magic gems -->
        <itemcollection>magic_gem</itemcollection>
    <resource>
    <resource> <!-- beer mug -->
        <item>1234</item>
        <fertility>0.1</fertility>
        <forcedend>true</forcedend>
        <endmessage_de>Zwerge vergessen gerne Bierkrüge. Vor allem wenn sie leer sind.</endmessage_de>
        <endmessage_en>You fond a beer mug. Obviously an empty beer mug has no walue for an dwarf anymore.</endmessage_en>
    </resource>
    <resource> <!-- the coal vein disappears forever -->
        <item>4321</item>
        <fertility>0.00001</fertility>
        <nextitem>0</nextitem>
        <forcedend>true</forcedend>
        <endmessage_de>Hier wird es wohl auf lange Sicht keine Kohle mehr geben.</endmessage_de>
        <endmessage_en>There will be no more coal in this vein on long term.</endmessage_en>
    </resource>
    <monsterspawn> <!-- any slime -->
        <monstercollection>slime_any</monstercollection>
    <monsterspawn>
</gathering>


Designing resource sets must not need any developer skill. With a simple tool a game developer can create and test a working gathering structure. A GM should be possible to apply a one time structure to an item on the fly.

Now some interesting settings without coding are possible:
  • Deep in the mine the fertility is higher than at the entrance.
  • There is a single spot of raw gems in a mine.
  • On a former battlefield people find frequently rusty armory and swords while gathering.
  • The entrance of an area is blocked by a rockslide one need about 100 hits to remove every blocking rock.
  • Opening a chest with a chisel spawns a liche.
  • One has to free the entrance of an mine from garbage before you reach the valuable veins.

btw: This is working for every gathering based on items you work on with tools.

Posts: 84

Joined: Sun Mar 12, 2017 6:42 pm

Post Mon Feb 19, 2018 11:33 pm

Re: I have a dream

I feel like this will lower regular gem output, which I'll say for finesmithing and by extension glyph forging will just be that much more difficult to level than the other crafting skills. Seeing as to how regular gems are used for many crafting recipes as well, I feel that unless regular gem output does not change from what it is now, it will be detrimental.

Edit:Why would using a chisel on a treasure chest spawn a lich? :?
User avatar

Developer

Posts: 1228

Joined: Mon Jan 22, 2007 8:48 pm

Location: Exilant aus Trolls Bane

Post Tue Feb 20, 2018 8:10 am

Re: I have a dream

Charlotte-ate-wilbur wrote:I feel like this will lower regular gem output, which I'll say for finesmithing and by extension glyph forging will just be that much more difficult to level than the other crafting skills. Seeing as to how regular gems are used for many crafting recipes as well, I feel that unless regular gem output does not change from what it is now, it will be detrimental.

Edit:Why would using a chisel on a treasure chest spawn a lich? :?

Sorry, that was clearly misunderstood.
The concept just shows a way, I'd create an environment.
The concept says nothing about the gem, coal or whatever output. So if skilling or gathering becomes easier or more difficult depends. But it allows to create a gathering, where not every item allover in the world behaves calculable in the same way.
It allows a GM or designer without coding to change gathering.
And it allows some fancy effects without coding a cording the pattern: Use a tool (chisel) with an item (chest) and you get items (noting) plus mosnter (lich) n (one) times.

Return to Proposals / Vorschläge

Who is online

Users browsing this forum: No registered users and 1 guest

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.