While we may have been keeping quiet about our progress on Sven Co-op 4.1, we certainly haven’t been sitting around doing nothing. Since today happens to be Sven Co-op’s 11 year anniversary, we figured it would be an appropriate time to share some of the things we have been working on.
Aside from tons of crashfixes, bugfixes, AI improvements, balance tweaks, etc., SC 4.1 is also set to include a large set of new entities that will radically expand the possibilities level designers have when creating their maps, which should help ensure a steady influx of fun, original maps in the future.
A brief resume of the new entities and their functions:
Changes the keyvalue of an entity. Can perform arithmetic operations or even binary logical operations on values.
Copies a keyvalue of one entity to another keyvalue of another entity.
Allows the mapper to provide individual players with a targetname. This could be used to attach various things to players, or perhaps to create player classes with different abilities.
Compares the keyvalue of an entity with a value specified by the mapper, and fires a true or false target depending on the result of the comparison.
Changes the model of an entity. Supports players and playermodels. Useful for mutating enemies, force changing playermodels or ambient model effects.
Allows a mapper to trigger custom votes. Useful for canceling cutscenes or choosing difficulty levels.
Allows a mapper to spawn any entity he wants as well as set the keyvalues for it. Keyvalues can be copied from other entities, e.g. the brush model of a func_pushable.
This entity checks how many players are on the server and triggers its targets if the specified values match.
This entity checks how many slots the server has and triggers its target if the specified value matches.
Serves as a clip brush but gives more control over what gets blocked. Also allows players to be blocked.
Allows mappers to create weather effects such as rain or snow.
More detailed information on the new entities, as well as changes to original entities, can be found in this thread.
If you’re not entirely up to date on mapping lingo, or would just like to hear some examples of what exactly these new features could be used for in the game, here are some possible usages:
Using trigger_changevalue and its arithmetic functions, a mapper could set up a system for buying weapons or detpacks. Using trigger_renameplayer and trigger_condition, a player with the "Demoman" class could then set up a detpack on a wall. With the wall broken down, a Gargantua is revealed. Using trigger_copyvalue to copy its health value, the gargantua will gradually become more enraged as it takes damage, and a trigger_changemodel entity will increase its movement and attack speed. Various scripted events will also be triggered, and the garg will start breaking down the building it is in. The garg will eventually call for some of its xen pals for backup, and the number of xen creatures teleported in will be proportional to the amount of players on the server, using the game_player_counter entity.
In case you're more of a visual person, we also have a test video showing some of the new features:
These are just a tiny fraction of the things made possible with these entities, so there is a lot to look forward to!