S.T.A.L.K.E.R.: Way of the Wolf
An Insight into Development
Welcome, welcome, to the first of the 'Insight into' series of articles - in these articles, the WotW Team will discuss and explain some of the work they do for the mod, how it's done, and maybe show you some behind-the-scenes media!
First up, it's me, Beac!
I'm the guy who does almost everything in the SDK - I bring life to the world, add the NPCs, mutants, anomalies, artifacts, missions, stashes, items, all that jazz!
I do much of this through the Level Editor (LE), and a lot of external file editing.
Here's a typical development pipeline for me on a normal task - let's take adding a basic simulation smart-terrain (where NPCs live and work) as an example.
First up is deciding where to add the smart-terrain (ST).
Is there a camp or building in the level that needs populating? What's the point of this ST?
NPCs in STALKER migrate between STs, performing assigned jobs and spending time at each one, before moving to another. This is a simplified explanation of the A-Life system.
The heart of a ST is the actual smart_terrain entity.
This little blue orb tells the game where to spawn NPCs, and gives the general location of the ST.
It also links with files outside of the LE which are used for more detailed interaction.
I put this little guy where I want to define a ST, then move onto the creation of NPC jobs.
These confusing-looking green crosses are waypoints.
Waypoints define a couple of things:
1: Where an NPC stands to perform actions and jobs within a ST.
2: Where they look when they perform those actions.
3: The actual job itself.
At first glance it seems impossible to understand how they could do these, but I'll tell you.
One set of waypoints (connected by lines) is used to define where the NPC stands (this is done through a particular naming convention - for instance level_sim_00_walker_1_walk - this convention is used by the game to auto-create the logic for job creation, saving the designer a lot of time!
Another set of waypoints is used as 'look at' references for NPCs using the previously created _walk waypoints. These have the naming convention of _look instead. Each _walk waypoint can be associated with multiple _look waypoints, with the ability to assign a % chance of each being used.
Finally, using the properties window of a waypoint (usually a _look), you can set the actual job to be performed.
In this example you can see the a=binocular animation prompt. This means that when this waypoint (a _look) is used by an NPC, they will look through their binoculars in the direction of this particular waypoint!
There are a huge amount of animations just like this that really add to the feeling of life behind NPCs.
The overall idea is to create enough waypoints and jobs for any NPCs in the ST, so that they all have something interesting to do while they hang out.
Finally we need to add references to our new ST in a couple of external files.
These will tell the game that the ST is there, tells it what NPCs to spawn, and wether the ST is usable by regular NPCs. Usability can be switched on and off for normal simulation squads (randomly generated Stalkers) on the giving/removal of an infoportion - these can be created and destroyed through game scripts.
An example of this is if you were to create a small area where a mission NPC will spawn. Usability can be turned off for the sim squads until an infoportion is received marking the end of that mission (and the removal of that NPC), allowing regular Stalkers to inhabit the ST.
That's basically it! Once you've done these things, you need to compile the level and load it up in game, and if you've done everything right, sim squads should inhabit your ST, performing the tasks you've given them!
So that's the basic pipeline for creating a simulation smart terrain! It may seem quite long winded, but when you get used to it (and do it over and over again!) it's really not much more than a few minutes work.
I hope you've learned something in this look into the world of development from my perspective, and maybe it's even been enjoyable!
Look out for next time, when another member of the team will give you an insight into development!
WotW Team Lead