ContentDesigner:Groundspawns
- Last edited 13 years ago by 192.168.100.1
EQ2Emulator: Harvest Ground Spawns
This article will demonstrate how the Content Design team builds Ground Spawns based off of collected data from EQ2 Live.
Contents
EQ2 Live
Log into EQ2 Live, find the same area you are working in, and compare the nodes in the Live area with the data you have present in the development environment. If there are nodes missing, you can easily create missing nodes using the /spawn create command. More than likely, you'll have plenty of spawned nodes to work with and should not need to create any.
You should study the area for 10-30 minutes as well, because we discovered that Harvest nodes, when untouched, seem to despawn after a period of time, stay missing for their specified respawn timer interval, then spawn again - sometimes as their partner node in the spawn location placement.
Spending the time to observe EQ2 Live's full functionality will allow you to build the best possible emulation of EQ2 Live. This is a must for our Content Designers, so please, no guessing.
RAW Data
After you run packetparser.exe -populate {world_db} and all your RAW data is pushed into your EQ2Emu DB, first time you log in you might see something similar to Figure 1 - the RAW Data.
As you can see, there are many, many shrubs, roots and collection nodes (?) in this area.
Building Your First Node
You know from your analysis of the Live zone that there are four (4) nodes that spawn in this particular area, and you know they generally exist in the 4 corners of the grassy area. Take another look at the picture above (Figure 1), and you will notice where the player is standing, the roots/gardens that are near the player can represent that particular corner of the area, so you will want to combine all those nodes into a single spawn location using the /spawn combine command.
Combining Nodes
Using the spawn combine command, you will do a rough cleanup on this small area, creating 4 spawn points with 2 possible spawn types each: roots and budding natural garden.
After cleaning part of the area, you can start seeing it becoming like Live already!
When you are finished you should have a nice, clean area like this:
Note: In these screenshots, I had also cleaned up the "?" collection nodes separately, because they are not considered ground spawns and would not be grouped/linked to the spawn process of harvest nodes.
Cleanup Remaining Junk
Anything else that is lingering around the area can be removed using the /spawn remove 1 command - PROVIDING:
- it is the same type you have already finished cleaning (same exact spawn_id's)
- not something used in a quest ie., a temporary spawn
- not a spawn that has a unique appearance (which in raw data should have a unique spawn_id)
- not a spawn needed to analyze/build spawn location groups (spawn parties)
It is very critical to not go hog-ass wild deleting everything in your path just to get the task completed. The result of hasty spawn removals will be a deletion of the entire zone, repop, and re-clean... and no one wants to do their work more than once
Offsets and Respawns
Offsets and Respawns give the groundspawns a very Live-like feel. Offsets cause the nodes to appear in a slightly different location each time they spawn, while expire timers cause nodes to depop after a certain period. These behaviors have been observed in EQ2 Live by sitting and watching a node location literally for hours, seeing them disappear on their own and re-appear a few feet over from where they last were. The RAW Data also supports this concept clearly by seeing how many nodes exist in RAW data.
Designing Offsets
Currently, you can set spawn Offsets in two ways; in-game with a /spawn set offsets command, or directly in the database (via our DB Editor for team members).
The `spawn_location_placement` table is where this gets set, and the fields are x_offset, y_offset and z_offset.
Valid ranges are pretty much anything you want to put, but for realism sake should be no more than +/- 10 in any value.
The DB Editor has an option to set all spawn locations for a given spawn to a preset value, which you are urged to try. If the presets do not work for your needs, then setting them manually is your only other option.
GM Commands in the game server can be used to set this value:
/spawn set x_offset {val} - This will set the offset x
/spawn set y_offset {val} - This will set the offset y
/spawn set z_offset {val} - This will set the offset z
Respawn/Expire Timers
Respawn timer tells the zone how long to wait after a node has been removed from the zone before popping it again. Most harvest nodes are on a 5 minute respawn timer for all areas outside the newbie zones, where there they are set to 1 minute respawn.
Expire timer tells the zone how long after the spawn pops until it is to be automatically de-popped. From our analysis of the live game, it appears SOE despawns groundspawn nodes (and possibly NPCs) after 'x' period of time in order to keep the area fresh with random possibilities. Example, if players do not need wood nodes, they do not get harvested. Random chance would eventually replace all needed nodes with wood, and thus eventually there would be no other types on the ground. By despawning nodes every 60 seconds and replacing them with random chance of another type, the groundspawns fill the needs of harvesters.
GM Commands in the game server can be used to set these values:
/spawn set respawn {value} - This sets the spawn's respawn timer, or how long once it depops should it repop
/spawn set expire {value} - This sets the spawn's expire timer, or how long after pop to depop the spawn
/spawn set expire_offset {value} - This adds a randomness to expire timers, so spawns can optionally depop at different intervals
Assigning Rewards
Rewards are those items you would get from harvesting a node (cabbage, deer pelt, sunfish). Our current system allows for the 1, 3, 5, 10 + rare harvesting opportunities, and also raises your skill depending on what you are harvesting (ie., harvesting a tree node will increase your Foresting skill to it's max for the given tier).
Groundspawn Harvesting was recently revamped (v2.0) according to guidelines discussed in this thread on the forums: Harvesting Pull: Design. A huge thank you goes to Eradani for her extensive analysis and input into how EQ2Live's harvesting system works. We have quite a bit of work yet to do to bring our system up to EQ2 Live standards, but after the last revamp, things are looking a little more live-like.
Advanced Groundspawns
There are situations with groundspawns that require a little extra "magic" to make them appear live-like. Case in point are those harvesting nodes that appear to line a wall, randomly. We do not have a facility for spawning nodes specifically along a given line or boundary on the ground. We have offsets, but generally the world does not follow a x,z axis only.
Linked Groundspawn Groups
How we have decided to mimic this scenario is by using our Spawn Group option. Similar to how NPCs are grouped together to randomly appear different spawns each time, we will set a line of groundspawns to appear along a given area, multiple node points, with a random chance that any one will appear at any given time.
Note in this image the nodes spawn specifically around the base of this rock. Obviously, every one of those nodes are not spawned at the same time, so there has to be some control over what spawns where. One concept is to divide the rough circle they make into quarters (or thirds), then spawn 1 node in each quarter with "linked spawn group associates" on varying percentages to spawn in their static locations (no offsets used).
Same could be done for straight-line nodes, like one that follow a cliff wall, not a circle but a line. Find a spot comparable to Live between the nodes, and make that your "master" node, then set the other spawn locations as linked spawn group associates to fill the voids.
The end result will be 2-4 nodes popping at any given time per location, and they will appear to move slightly around because of the spawn location group "chance" percentages you will assign.
Groundspawn Placeholders
If you see placements where 2 different types of nodes are in the exact same location, these can be /spawn combine'd to make 1 spawn out of them, and balance the spawn percentage chance to pop. Adding this option to the linked groundspawn groups makes for a very dynamic groundspawn configuration!