Feature Specification: Spawn System
Moderators: ALFA Administrators, Staff - Technical
- ç i p h é r
- Retired
- Posts: 2904
- Joined: Fri Oct 21, 2005 4:12 pm
- Location: US Central (GMT - 6)
Feature Specification: Spawn System
Spawn System
The requirements for the ALFA Spawn System are detailed below.
For a short explanation of the feature specification format, visit:
http://www.alandfaraway.org/phpbbforum/ ... hp?t=27229
Functional Requirements
Spawning of NWN objects will be accomplished using waypoints, which can be configured to spawn objects individually, in numbers greater than one (same blueprint), or in groups (multiple blueprints). NWN objects will include creatures, encounters, items, and placeables. Objects can be configured to spawn and despawn according to a builder defined schedule that is based on a given day and time. A number of reserve objects and the delays between spawning can be specified at the spawn point as well as a spawning radius and the direction they're facing. Spawning can also be restricted to when PCs are in the vicinity (area) of the spawn point.
Player restricted spawn points in a destination area will activate (if inactive) during player transitions to that destination area. The spawn point will be responsible for scheduling its next spawn cycle and for deactivating itself in the absence of players in its vicinity (area). Restricted spawn points that skip their spawn cycle will automatically activate on the next player transition into the area.
Unrestricted spawn points will enter into the scheduler from the onset and spawn according to their time cycles. Spawn groups that reach a certain strength will form raiding parties (AI?) and initiate attacks on nearby population centers (of any race or type).
Visual and sound effects can also be defined for a given spawn point.
NWN Object Dependencies
Waypoints
Local Variables and External Configs
sACRSpawnResref, sACRSpawnGroup, iACRSpawnTimeIn, iACRSpawnTimeOut, iACRSpawnMinNumber, iACRSpawnMaxNumber, iACRSpawnReserveNumber, bACRSpawnNearPC, iACRSpawnMinDelay, iACRSpawnMaxDelay, iACRSpawnChance, iACRSpawnDayIn, iACRSpawnDayOut, iACRSpawnFactionStrength, fACRSpawnRadius, fACRSpawnFacing, iACRSpawnVFX, iACRSpawnSFX
Logging and Debugging (global LOG & DEBUG (on/off) constants)
TBD
Persistence Requirements
TBD
Event Dependencies
OnAreaExit, OnHeartbeat? (Area)
The requirements for the ALFA Spawn System are detailed below.
For a short explanation of the feature specification format, visit:
http://www.alandfaraway.org/phpbbforum/ ... hp?t=27229
Functional Requirements
Spawning of NWN objects will be accomplished using waypoints, which can be configured to spawn objects individually, in numbers greater than one (same blueprint), or in groups (multiple blueprints). NWN objects will include creatures, encounters, items, and placeables. Objects can be configured to spawn and despawn according to a builder defined schedule that is based on a given day and time. A number of reserve objects and the delays between spawning can be specified at the spawn point as well as a spawning radius and the direction they're facing. Spawning can also be restricted to when PCs are in the vicinity (area) of the spawn point.
Player restricted spawn points in a destination area will activate (if inactive) during player transitions to that destination area. The spawn point will be responsible for scheduling its next spawn cycle and for deactivating itself in the absence of players in its vicinity (area). Restricted spawn points that skip their spawn cycle will automatically activate on the next player transition into the area.
Unrestricted spawn points will enter into the scheduler from the onset and spawn according to their time cycles. Spawn groups that reach a certain strength will form raiding parties (AI?) and initiate attacks on nearby population centers (of any race or type).
Visual and sound effects can also be defined for a given spawn point.
NWN Object Dependencies
Waypoints
Local Variables and External Configs
sACRSpawnResref, sACRSpawnGroup, iACRSpawnTimeIn, iACRSpawnTimeOut, iACRSpawnMinNumber, iACRSpawnMaxNumber, iACRSpawnReserveNumber, bACRSpawnNearPC, iACRSpawnMinDelay, iACRSpawnMaxDelay, iACRSpawnChance, iACRSpawnDayIn, iACRSpawnDayOut, iACRSpawnFactionStrength, fACRSpawnRadius, fACRSpawnFacing, iACRSpawnVFX, iACRSpawnSFX
Logging and Debugging (global LOG & DEBUG (on/off) constants)
TBD
Persistence Requirements
TBD
Event Dependencies
OnAreaExit, OnHeartbeat? (Area)
Last edited by ç i p h é r on Mon May 14, 2007 1:05 am, edited 3 times in total.
- Overfilled Cup
- Orc Champion
- Posts: 437
- Joined: Tue Apr 05, 2005 6:45 am
cool beans. Wish I could make something like that integrated system you talk about.. I mean come on..The basic builder could do the basic stuff..With a bit of practice..Fully marchable patrols with stops to help old ladies across the street and put out fires and WOW...even bend down to pick up the dog doody on the corner. Cool stuff Cipher.
- ç i p h é r
- Retired
- Posts: 2904
- Joined: Fri Oct 21, 2005 4:12 pm
- Location: US Central (GMT - 6)
You and I certainly have experienced the pain there, haven't we? Having activity support in the spawning/patrolling system ensures less headaches with non-compatible systems, a more robust package builders can weave their immersive magic with, and the eradication of dozens of one off user defined scripts. Those should really be reserved for the strange and unusual, not relatively common activities you'd expect NPCs to be engaged in. 
When I have some more time, I'll elaborate on what I wrote. I know Thangorn's posted a few things on the content threads which I'll also need to pull over here as soon as I can decipher his writing!
When I have some more time, I'll elaborate on what I wrote. I know Thangorn's posted a few things on the content threads which I'll also need to pull over here as soon as I can decipher his writing!
- Overfilled Cup
- Orc Champion
- Posts: 437
- Joined: Tue Apr 05, 2005 6:45 am
Has this stalled?
It will be an important feature and needs more feedback. Currently with what we know anout NwN2 it seems these systems will be fully transferable to the new game. The best thing about that is we can spend our time making them better rather than redoing them completely.
Thats a boon for us as well as the community.
It will be an important feature and needs more feedback. Currently with what we know anout NwN2 it seems these systems will be fully transferable to the new game. The best thing about that is we can spend our time making them better rather than redoing them completely.
Thats a boon for us as well as the community.
- ç i p h é r
- Retired
- Posts: 2904
- Joined: Fri Oct 21, 2005 4:12 pm
- Location: US Central (GMT - 6)
- ç i p h é r
- Retired
- Posts: 2904
- Joined: Fri Oct 21, 2005 4:12 pm
- Location: US Central (GMT - 6)
Here is the spawn system Riotnrrd was working on:
http://www.alandfaraway.org/phpbbforum/ ... php?t=6108
http://www.alandfaraway.org/phpbbforum/ ... php?t=6108
DAMN! I've been after him for a month of more to get me that. Holy crap that's more complex than I'd assumed.
PC: Bot (WD)
Code: Select all
----- ----- ----- -----
/ \ / \ / \ / \
/ RIP \ / RIP \ / RIP \ / RIP \ /
| | | | | | | | |
*| * * |* *| * * |* *| * * |* *| * * |* *|
_)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_(- ç i p h é r
- Retired
- Posts: 2904
- Joined: Fri Oct 21, 2005 4:12 pm
- Location: US Central (GMT - 6)
If the beta version is in the Whitehorn mod, you could possibly extract it.
Updated the spec based on the discussion in the other thread. If we can, let's build on that discussion here so we keep it organized. Moved patrols, activities, and professions to the AI thread.
EDIT: BTW, I've tried to pry all the requirements intermingled in conversation across several different threads and place them in the spec here, so I've undoubtedly misinterpretted some things and missed others. If you notice anything missing, incorrect or wish to have something stated differently, please let me know.
Updated the spec based on the discussion in the other thread. If we can, let's build on that discussion here so we keep it organized. Moved patrols, activities, and professions to the AI thread.
EDIT: BTW, I've tried to pry all the requirements intermingled in conversation across several different threads and place them in the spec here, so I've undoubtedly misinterpretted some things and missed others. If you notice anything missing, incorrect or wish to have something stated differently, please let me know.
- ç i p h é r
- Retired
- Posts: 2904
- Joined: Fri Oct 21, 2005 4:12 pm
- Location: US Central (GMT - 6)
In going over some of the discussions thus far, if we intend to develop an encounter system that essentially "manages" spawns dynamically (populations, demographics, growth, spawn point randomization, encounter randomization, etc), then there really only seems like two things which the spawn system would regulate:
1. spawn statics - spawn X many resrefs in location Y
2. spawn point properties - define the environment and the kinds of spawns an area will support naturally
The problem I see with #2 is that it would break modularity if we wanted spawn and encounter systems to operate discretely. In that case, spawn properties would also have to be defined within the boundaries of the encounter system, or at least the definitions would have to be shared. Again, much depends on what we intend to do with the encounter system. The rest will, I think, be defined around it.
1. spawn statics - spawn X many resrefs in location Y
2. spawn point properties - define the environment and the kinds of spawns an area will support naturally
The problem I see with #2 is that it would break modularity if we wanted spawn and encounter systems to operate discretely. In that case, spawn properties would also have to be defined within the boundaries of the encounter system, or at least the definitions would have to be shared. Again, much depends on what we intend to do with the encounter system. The rest will, I think, be defined around it.
- ç i p h é r
- Retired
- Posts: 2904
- Joined: Fri Oct 21, 2005 4:12 pm
- Location: US Central (GMT - 6)
- ç i p h é r
- Retired
- Posts: 2904
- Joined: Fri Oct 21, 2005 4:12 pm
- Location: US Central (GMT - 6)
I think there are many ways builders might want to configure spawn points that can be used independently or in combination with one another. Here are some of them:
By EL (the most basic method):
This spawns a variety of CRs to satisfy a given EL. The EL can either be defined by the builder specifically (fixed for that spawn point) or can be calculated by the encounter system based on party level, if left undefined; A true PnP encounter.
By Creature (resref):
A specific blueprint to spawn. This would restrict the spawn point to only this blueprint. This is probably best used for spawning in distinct objects like unique NPCs, placeables, and items.
By Groups (various resrefs):
A set of blueprints to spawn. This would restrict the spawn point to the blueprints provided. This can be used for spawning in mixed sets of creatures or combinations of creatures and other objects. This is also the best way to spawn in a camp.
By Type/Race:
A specific creature type or race. This would restrict the spawn point to creatures of the specified type (monsters) or race (humanoids).
By Tribe/Faction:
A specific tribe or faction. This would restrict the spawn point to creatures belonging to the specified tribe (monsters) or faction (humanoids).
By Alignment:
A specific alignment. This would restrict the spawn point to creatures that have the specified alignment.
Essentially, we'd be cross referencing the Monster Manual in many different ways and allowing builders to define exactly what they want at any given spawn point. Mixed sets (of types) may complicate matters for the encounter system though.
Thoughts? Anything else we might want to add to this?
By EL (the most basic method):
This spawns a variety of CRs to satisfy a given EL. The EL can either be defined by the builder specifically (fixed for that spawn point) or can be calculated by the encounter system based on party level, if left undefined; A true PnP encounter.
By Creature (resref):
A specific blueprint to spawn. This would restrict the spawn point to only this blueprint. This is probably best used for spawning in distinct objects like unique NPCs, placeables, and items.
By Groups (various resrefs):
A set of blueprints to spawn. This would restrict the spawn point to the blueprints provided. This can be used for spawning in mixed sets of creatures or combinations of creatures and other objects. This is also the best way to spawn in a camp.
By Type/Race:
A specific creature type or race. This would restrict the spawn point to creatures of the specified type (monsters) or race (humanoids).
By Tribe/Faction:
A specific tribe or faction. This would restrict the spawn point to creatures belonging to the specified tribe (monsters) or faction (humanoids).
By Alignment:
A specific alignment. This would restrict the spawn point to creatures that have the specified alignment.
Essentially, we'd be cross referencing the Monster Manual in many different ways and allowing builders to define exactly what they want at any given spawn point. Mixed sets (of types) may complicate matters for the encounter system though.
Thoughts? Anything else we might want to add to this?
I think you're blurring the line between the spawn system and encounter system, though I'm not sure there ever was a clear line. I don't think the spawn system should do anything except spawn things at certain locations.
I haven't contributed much to this discussion because I'm still trying to think through it and find an elegant solution to where the encounter system stops and the spawn system begins. Maybe I was wrong, and they should be one and the same?
I haven't contributed much to this discussion because I'm still trying to think through it and find an elegant solution to where the encounter system stops and the spawn system begins. Maybe I was wrong, and they should be one and the same?
I'd restrict EL by terrain. Sharks attacking in the moutains would be silly.
PC: Bot (WD)
Code: Select all
----- ----- ----- -----
/ \ / \ / \ / \
/ RIP \ / RIP \ / RIP \ / RIP \ /
| | | | | | | | |
*| * * |* *| * * |* *| * * |* *| * * |* *|
_)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_(- ç i p h é r
- Retired
- Posts: 2904
- Joined: Fri Oct 21, 2005 4:12 pm
- Location: US Central (GMT - 6)
I've been having the same struggle delineating the two systems. I'm taking the approach that the spawning system would simply concern itself with applying the spawn rules at a given spawn point and nothing more. This could just as easily be built into an encounter system, except that item and placeable spawns would have no relevance to encounters, so...I can see it both ways.
lol. Land sharks? It'd be priceless to see the expression on the players faces though.Fionn wrote:Sharks attacking in the moutains would be silly.