IdleLands / IdleLandsOld

[DEPRECATED] A full-blown idling RPG. It has a modular backend that can be added to any existing frontend via a REST API.
http://idlelands.github.io/IdleLandsOld
MIT License
41 stars 28 forks source link

World News ("Headlines") #52

Open S0yKaf opened 10 years ago

S0yKaf commented 10 years ago

adding world News to fill the blanks in between events and to make the world seem more alive. and make those news semi random so the world feels like its evolving.

example: Weather forecast, Important people dying, someone is born, a Criminal is arrested. ....

seiyria commented 10 years ago

This will probably be implemented as a NewsEvent that can happen maybe 1/100 of the time. It will also tie into ComponentDatabase.eventsDb and a new event type will have to be added.

However, if we have the intention of making these events more persistent (ie, "The First Queen of Idletopia has passed away", "The King of Idletopia is now Baron von Schleffenstein VII", "The King of Idletopia has passed away"), this might be a little bit more difficult.

seiyria commented 10 years ago

I feel wrong placing this into a milestone when it's not been fully fleshed out. It will be revisited now that there is a global event infrastructure, but I think we first need to hammer out a bunch of details regarding what this will and won't do, and some basic implementation plans.

seiyria commented 10 years ago

Talking with @Kiniamaro:

The events should basically be a chain of events, starting with a root event and branching into many more branches and leaves, like so:

                                         new king is born
                                  /                           \
                         the weather is good              the weather is bad
                    /                \                        /           \
the kingdom prospers            all is well     the king dies           the king gets sick

.. etc. obviously the events would not be so cut and dry, but those are just examples. So, one route is new king is born -> the weather is bad -> the king dies, while another is new king is born -> the weather is good -> the kingdom prospers. When getting to the end of one chain, you would start over with a new root node and pick events accordingly.

Something that could be expanded upon is to have these events actually influence the world, too. If a king dies, maybe monsters are more likely in that zone, or perhaps the class trainers disappear for that zone. If the weather is bad, monsters might get more powerful, or if the weather is good, players might get a passive buff. All of this could be added as a Reduction accounted for in Character.calc.stat and the "current news" could just be tweaked accordingly, stat-wise, based on what is happening.

seiyria commented 9 years ago

One thing that can be done - now that there are regions on the map, regions could be further broken down into their "city zone" (norkos, maeles, vocalnus, etc) and their "region type" (aquatic, town, forest, dungeon, etc). From this, we could make events that are tied to each region a la #44 and create new variables for them (like %currentLineage, %randomGender, etc) to allow events to happen over time. They could also have an id, and a pre-requisite id so you could chain events together. There should also be a way to signify the end of the event chain.

Darkblizer commented 9 years ago

Let's refer to the events that are broadcasted by the world news as "Headlines"; using the word "event" can lead to confusion about whether the global events or player events are meant.

A way the Headlines could be generated is by first creating famous NPCs (such as the Mayor, members of royalty, an infamous knight) and then generating the headlines based on their actions, so for instance if the queen passes the duke, maybe there is a royal affair going on? Or possibly, she stabbed him and now the duke is dead! Or possibly the mayor happens to be in the wilderness when the world needs a headline, so he ends up dying due to starvation. Maybe they can even interact with the players somehow.