Game engine behind Sea Dogs, Pirates of the Caribbean and Age of Pirates games.
Related articles: Scripting Functions
Each object in the scripting language can be an instance of an entity (predefined during engine compilation), or class archetypes.
In order to become one, an entity must be registered as such (via CreateClass
or CreateEntity
function) and added to the respective layers.
There’re two base layer types: EXECUTE
and REALIZE
.
Each frame, the game will go through all its layers and make execute
and realize
passes.
During the execute
pass, game logic for the entity is updated: light flickers, seagulls react to world state, etc. During the realize
pass, graphics are sent for rendering or sounds for reproduction.
Layer order is important as well as the entity priority inside a given layer. The smaller layer numbers and priority levels are executed first.
At the end of each frame, a cleanup is made, and entities marked for removal are deleted from each layer.
Some entity types have specialized execute and realize layers, while others (purely graphical effects like rain drops or blood splatters) only have realize layers.
Currently implemented layers (in order of priority):
Layer name | Layer Id | Type |
---|---|---|
EXECUTE | 0 | Execute |
REALIZE | 1 | Realize |
SEA_EXECUTE | 2 | Execute |
SEA_REALIZE | 3 | Realize |
INTERFACE_EXECUTE | 4 | Execute |
INTERFACE_REALIZE | 5 | Realize |
FADER_EXECUTE | 6 | Execute |
FADER_REALIZE | 7 | Realize |
LIGHTER_EXECUTE | 8 | Execute |
LIGHTER_REALIZE | 9 | Realize |
VIDEO_EXECUTE | 10 | Execute |
VIDEO_REALIZE | 11 | Realize |
EDITOR_REALIZE | 12 | Execute |
INFO_REALIZE | 13 | Realize |
SOUND_DEBUG_REALIZE | 14 | Realize |
SEA_REFLECTION | 15 | Realize |
SEA_REFLECTION2 | 16 | Realize |
SEA_SUNROAD | 17 | Realize |
SUN_TRACE | 18 | Realize |
SAILS_TRACE | 19 | Realize |
HULL_TRACE | 20 | Realize |
MAST_ISLAND_TRACE | 21 | Realize |
MAST_SHIP_TRACE | 22 | Realize |
SHIP_CANNON_TRACE | 23 | Realize |
FORT_CANNON_TRACE | 24 | Realize |
ISLAND_TRACE | 25 | Realize |
SHADOW | 26 | Realize |
BLOOD | 27 | Realize |
RAIN_DROPS | 28 | Realize |
Depending on usage, each entity can be considered a class, a service or a script library.
These are the following:
ANIMALS
: ClassAnimationServiceImp
: ServiceBALLSPLASH
: ClassBATTLE_INTERFACE
: ClassILogAndActions
: ClassIBoardingStatus
: ClassBATTLE_LAND_INTERFACE
: ClassISPYGLASS
: ClassSHIPPOINTER
: ClassActivePerkShower
: ClassBITimer
: ClassItemEntity
: ClassWM_INTERFACE
: ClassBI_InterfaceManager
: ClassBLADE
: ClassBlots
: ClassCOLL
: ServiceDIALOG
: ClassGEOMETRY
: ServiceISLAND
: ClassCoastFoam
: ClassLighter
: ClassLocation
: ClassNPCharacter
: ClassPlayer
: ClassLocationCamera
: ClassFader
: ClassGrass
: ClassLights
: ClassWideScreen
: ClassCharacterAnimationKipper
: ClassLocationEffects
: ClassCharactersGroups
: ClassLocEagle
: ClassLizards
: ClassLocRats
: ClassLocCrabs
: ClassLocModelRealizer
: ClassBlood
: ClassScriptLocationLibrary
: Script LibraryLOCATOR
: ClassBLAST
: ClassMAST
: ClassMODELR
: ClassParticleService
: ServicePARTICLES
: ClassPCS_CONTROLS
: ServiceDX9RENDER
: ServiceDX9RENDER_SCRIPT_LIBRIARY
: Script LibrarySAIL
: ClassFLAG
: ClassROPE
: ClassVANT
: ClassVANTL
: ClassVANTZ
: ClassSCRIPT_RIGGING_FILES
: Script LibrarySailors
: ClassSailorsEditor
: ClassSCRIPT_LIBRIARY_TEST
: Script LibrarySEA
: ClassSharks
: ClassSEAFOAM
: ClassSEA_AI
: ClassAIFort
: ClassAIBalls
: ClassAISeaGoods
: ClassSeaLocatorShow
: ClassSEA_CAMERAS
: ClassFREE_CAMERA
: ClassSHIP_CAMERA
: ClassDECK_CAMERA
: ClassSEA_OPERATOR
: ClassShadow
: ClassSHIP
: ClassShipLights
: ClassShipTracks
: ClassSINKEFFECT
: ClassSOUND
: ClassSoundService
: ServiceSoundVisualisationEntity
: ClassTMPTELEPORT
: ClassFINDFILESINTODIRECTORY
: ClassFINDDIALOGNODES
: ClassTornado
: ClassTOUCH
: ClassWaterRings
: ClassWEATHER
: ClassRAIN
: ClassSUNGLOW
: ClassLIGHTNING
: ClassSKY
: ClassWATERFLARE
: ClassAstronomy
: ClassWorldMap
: ClassSTRSERVICE
: ServiceSCRIPT_INTERFACE_FUNCTIONS
: Script LibraryOBJ_STRSERVICE
: ClassTextureSequence
: ClassXINTERFACE
: ClassSCRSHOTER
: ClassHELPCHOOSER
: ClassInfoHandler
: ClassCONTROLS_CONTAINER
: ClassInterfaceBackScene
: ClassCAviPlayer
: ClassSteamApiScriptLib
: Script LibraryHome | Site Map |