Dynamic infestation
As I promised last time, we're going to start giving a peek at some of the work we've been doing on Natural Selection 2. This is a bit unusual as game developers typically keep everything about the game (even it's existence) secret until pretty far along in the development. Although there are some good reasons for this, we've decided to take a different approach for NS2 and really "open the kimono" to show off what we're doing, as we do it.
One of the features that we've been prototyping is dynamically generating bacterial infestation in the world based on what portions of the map the alien team occupies. This feature is a departure from the original Natural Selection where the alien growth is built into the map by the designer and thus remains static throughout the game. Imagine the environment changing before your eyes as the balance between sides shifts back and forth.
This is what it looks like:
In addition to being an atmospheric visual effect, having dynamic infestation gives us opportunities to develop some interesting game play elements. High on our list is having map entities which are triggered when an area becomes infested or uninfested. For example, you could have a computer console that shuts down when overrun by infestation and causes the lights in the room to go out. If the marines clear out the room and fight back the infestation, the system comes back online and the lights flicker on to fill the room. What about abilities and technology which only function when players are on their home turf?
Well at least that's the theory.
At this stage we're still investigating the technical feasibility of creating good-looking dynamic infestation before committing to it in the game design. We haven't really seen anything quite like this in a game before, so going into it we weren't really sure how to pull it off and tried out a few different approaches before settling on the current one.
We're pretty happy with the current results which can you see in the video above. Please excuse my inept programmer level design . Charlie was kind enough to provide a melodic narration.
To build the infestation, we generate a mesh to get the lumpy appearance and use texture effects to make it transition onto the surface of the walls smoothly. Building the mesh has definitely been the most challenging aspect, especially since we need it to work over essentially any geometry that we throw at it.
At first we though the lighting would also be a tough problem, since Source is based on pre-computed light maps for the static geometry. Trying to illuminate something that dynamically changes at run-time doesn't immediately seem feasible in this scenario, but the facilities built into the BSP for doing normal mapping actually made it pretty simple.
While the progress has been good, we still have a bunch of technical hurdles to work though and lots of ideas on how to take the feature to the next level.
We hope you enjoy your first look at NS2!