The Hunter
Soul_Rider
Mod Bean Join Date: 2004-06-19 Member: 29388Members, Constellation, Squad Five Blue
<div class="IPBDescription">Mod Release Thread</div><b>NOTE*</b> This is an updated and revised first topic post. <b> *</b>
This is the development thread for my mod The Hunter (Working Title).
The Hunter is an evolved version of the Fade lifeform. The game will eventually be total conversion, although within the NS fictional universe *subject to UWE's permission.
Game Modes etc are discussed later on.
This thread will be kept up to date with all the changelogs and links to the latest download.
The Hunter V0.1.2a
Changelog:
Updated Health and Damage variables to offer some balance between the teams
Added ability for Marines to spawn without building an IP
Removed hive regenerating health for Hunters.
New download link:
<a href="http://www.duplexgaming.co.uk/downloads/mods/65/the_hunter/" target="_blank">http://www.duplexgaming.co.uk/downloads/mods/65/the_hunter/</a>
The Hunter V0.1.1a
Changelog:
Massively reduced Fade Blink cost
Changed health of Hives, CC's, Res Towers and Power Nodes to ridiculous numbers. Game is an open-ended Team Death-Match currently, only ending when the server gets restarted :)
Added a Grey Box test map to the file. It's a circle with dev grey wall texture, don't get excited :)
The Hunter V0.1.0a
Fade is the only alien playable class.
Fade now has wall-walking ability.
Marines use buy menu (b) to choose their weapons.
There is no res cost for weapons.
This is designed as Team Death-Match, but I haven't removed Commander abilities yet. Weapons upgrades are removed from the tech tree.
This is the development thread for my mod The Hunter (Working Title).
The Hunter is an evolved version of the Fade lifeform. The game will eventually be total conversion, although within the NS fictional universe *subject to UWE's permission.
Game Modes etc are discussed later on.
This thread will be kept up to date with all the changelogs and links to the latest download.
The Hunter V0.1.2a
Changelog:
Updated Health and Damage variables to offer some balance between the teams
Added ability for Marines to spawn without building an IP
Removed hive regenerating health for Hunters.
New download link:
<a href="http://www.duplexgaming.co.uk/downloads/mods/65/the_hunter/" target="_blank">http://www.duplexgaming.co.uk/downloads/mods/65/the_hunter/</a>
The Hunter V0.1.1a
Changelog:
Massively reduced Fade Blink cost
Changed health of Hives, CC's, Res Towers and Power Nodes to ridiculous numbers. Game is an open-ended Team Death-Match currently, only ending when the server gets restarted :)
Added a Grey Box test map to the file. It's a circle with dev grey wall texture, don't get excited :)
The Hunter V0.1.0a
Fade is the only alien playable class.
Fade now has wall-walking ability.
Marines use buy menu (b) to choose their weapons.
There is no res cost for weapons.
This is designed as Team Death-Match, but I haven't removed Commander abilities yet. Weapons upgrades are removed from the tech tree.
Comments
First task was to make the fade spawnable, job done and really simple.
The second job I gave myself was slightly harder - a Wall-Walking Fade :)
This has not been without issues, and still has quite a few. I have to admit it's a real hack job too, but the robust UWE code let's it survive, just about.
Current issues -
Movement speed on the wall is a crawl.
Walls are too sticky.
View rotation is not implemented at all.
I don't actually climb any walls as the 30 secs would be over before you realised I was off the ground, so I just blink onto the walls instead :)
Here's the link anyway, it's at least some progress...
<a href="http://youtu.be/j4YyQ3euzmE" target="_blank">http://youtu.be/j4YyQ3euzmE</a>
In that case I hope you'll like the 3rd person view I just uploaded :)
Still issues with the speed and wall stickiness, but getting a bit better. Must admit though it's almost impossible to control in 3rd person :P
Animation is not walking on the wall yet, will need to try and hack it at some vastly later stage...
<a href="http://youtu.be/--wQaCu8dII" target="_blank">http://youtu.be/--wQaCu8dII</a>
Just imagine if you could improve it to be more like the camera movment in batman arkham city, a camera that dosn't go in all weird positions once your wall walking or go behind mesh.
TBH I don't think the 3rd person cam fits it, it would if you had more freedom of movment and combinations of attacks to do. stick with fps and keep improving core gameplay.
LoL, at the end of the video.. I didn't know Charlie played guitar?
<img src="http://img.photobucket.com/albums/v260/Soulrefuge/CharlieGuitar.png" border="0" class="linked-image" />
Here is the current version of my design document. It's fairly light on character details, but covers the main game play types I'm looking to get into the mod. I haven't gone too much into the abilities yet, really waiting to see what comes out with the 3rd hive upgrades. Weapons and special items need further consideration too. Any comments or suggestions would be great :)
<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->Design Document for:
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo-->Hunter<!--sizec--></span><!--/sizec-->
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->They have evolved<!--sizec--></span><!--/sizec-->
“A Natural Selection 2 Game-Play Modâ€
All work Copyright ©2012 by Andy (Soul Rider) Wilson except
Natural Selection Universe and Spark Engine ©Unknown Worlds Entertainment
<b>Note:</b> Document includes references, direct use and amendment of characters, history and information from the Natural Selection universe. The modification itself will run on the Spark engine and will be freely available to anyone who purchases a copy of Natural Selection 2. All copyright on the Natural Selection universe and it's Spark game engine belongs to Unknown Worlds Entertainment. I reference these items in this document due to their relevance and not to claim any copyright on the work.
Written by Andy (Soul Rider) Wilson
Version # 1.00
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo-->Game Overview<!--sizec--></span><!--/sizec-->
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Philosophy<!--sizec--></span><!--/sizec-->
This modification is a personal interpretation of a future in the Natural Selection universe and it is set a few hundred years after the Natural Selection 2 time frame.
It introduces a new alien species, called simply 'Hunter' which is an evolution of the Kharaa life-form 'Fade' from the Natural Selection universe.
The game aims to remain as true to the Natural Selection universe as possible, but accepts that sometimes compromises will have to be made. It is borne out of a deep love of the Natural Selection universe and a desire to help it grow.
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo-->Common Questions<!--sizec--></span><!--/sizec-->
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->What is the game?<!--sizec--></span><!--/sizec-->
It is a multi-player only modification of the Unknown Worlds Entertainment game Natural Selection 2. It focuses on a single alien life-form known at 'Hunter', and human marine units from the TSA (Trans-System Authority) in the Natural Selection universe.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Why create this game?<!--sizec--></span><!--/sizec-->
The Natural Selection universe is a rich and wonderful world. I like playing many different game modes, and it would be great to incorporate the two together, a great setting and more variety. I hope by offering more types of game play, we can bring more players into the Natural Selection universe.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Where does the game take place?<!--sizec--></span><!--/sizec-->
In deep space, on remote frontiers, in spaceships, outposts, settings can be constructed in any location where alien bacterium contact with human environments in possible.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->What do I control?<!--sizec--></span><!--/sizec-->
Either the 'Hunter' life form or a 'TSA' marine.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->How many characters do I control?<!--sizec--></span><!--/sizec-->
One at a time in a FPS game. You have an option of two distinct sides, the Kharaa Hunter, or the TSA Marine.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->What is the main focus?<!--sizec--></span><!--/sizec-->
To kill the enemy, and stay alive. It is a shooter at heart, that employs different game modes to offer a range of experiences.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->What’s different?<!--sizec--></span><!--/sizec-->
It offers game modes previously unavailable in the Natural Selection universe. It offers game play that will be familiar, yet different, making Natural Selection based variations of other enjoyable game modes. It will bring together some of my favorite components from multi-player games.
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo-->Gameplay<!--sizec--></span><!--/sizec-->
The 'Hunter' role is one of fast ethereal movements, cloaking and hunting, stealth game play.
The marines need to stick together, employ teamwork and combined firepower to survive.
Marines are supposed to feel afraid of the 'Hunter'
Hunter will have an energy loadout of various abilities to choose from. It will be a specified number of points to spend, probably 9. This would allow 3 levels of 3 abilities. Player could potentially select up to 5 abilities, but would still only have 9 points to spend.
Marines will have an equipment load-out where they can choose a Primary weapon, a secondary and 'special' item.
Special items will provide some special bonus, an example is stun grenades, that stop any of the hunters 'ethereal' abilities.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Overview<!--sizec--></span><!--/sizec-->
The game will ultimately have multiple game modes. They are explained below
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Game Modes<!--sizec--></span><!--/sizec-->
Hunter (hun_)
1 Hunter vs 7 Marines
Marines win if they kill 'Hunter' or time runs out.
Hunter wins if all marines are wiped out.
1 life per round for all players
Escape (hes_)
Scales 2 marines – 1 Hunter, up to max players (24 – 16v8) (would love to increase max if possible)
Marines have to make their way along a map, passing through checkpoints on route to an escape point. Hunters try and stop them.
Marines can only respawn once a checkpoint has been reached by the surviving escaping marines.
Hunters respawn after a queue time, and pick a spot relative to the marines escaping
Over-Run (hov_)
1 player randomized onto Hunter. Hunter only has a single attack. When hunter kills marine, the dead player becomes a hunter as well, and cycle continues until all marines are hunters, all hunters are dead, or time runs out. (Starting Max 24)
Combat (hco_)
Standard team death-match to frag limit or time limit. (starting max 24)
Death-Match (hdm_)
Hunter vs Hunter in all out death-match craziness. (starting max 18)<!--QuoteEnd--></div><!--QuoteEEnd-->
I need to implement the 1st person camera roll, as at the moment it feels a bit weird walking along the ceiling attached by your head :)
<a href="http://youtu.be/2X2PrupbAN8" target="_blank">http://youtu.be/2X2PrupbAN8</a>
Going to implement the normalisation of the model, fix the first person view, then leave the Hunter alone and concentrate on some of the other gameplay coding aspects..
Let me know what you think of the video :)
I am going to post the code here for creating and setting team sizes in NS. This is the code I have created, if anyone can advise of a better way, I'm all ears, but I think this is a fairly solid way of doing it.
We need to edit 5 files:
AlienTeam.lua, MarineTeam.lua, PlayingTeam.lua, Team.lua & TeamJoin.lua.
Starting with Team.lua:
Add a variable - teamMaxPlayers into the team initialize function as below
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->function Team:Initialize(teamName, teamNumber, teamMaxPlayers)
self.teamName = teamName
self.teamNumber = teamNumber
self.teamMaxPlayers = teamMaxPlayers
self.playerIds = {}
self.respawnQueue = {}
self.kills = 0
end<!--c2--></div><!--ec2-->
Scroll down to line 158 and the GetTeamNumber() function, and add the function GetTeamMaxPlayers() below it. Also remember to add teamMaxPlayers to the comment about unreset attributes.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->function Team:GetTeamNumber()
return self.teamNumber
end
function Team:GetTeamMaxPlayers()
return self.teamMaxPlayers
end
// Called on game start or end. Reset everything but teamNumber, teamName & teamMaxPlayers.
function Team:Reset()
......<!--c2--></div><!--ec2-->
Save Team.lua and move on to PlayingTeam.lua:
Edit the PlayingTeam:Initialize function for our teamMaxPlayers variable. We do this because playing team is inheriting the initialize function from Team.lua. It needs to keep the arguments consistent as the two teams inherit from this class, and will be set in the individuals teams initialization function.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->function PlayingTeam:Initialize(teamName, teamNumber, teamMaxPlayers)
InitMixin(self, TeamDeathMessageMixin)
Team.Initialize(self, teamName, teamNumber, teamMaxPlayers)
........<!--c2--></div><!--ec2-->
Save PlayingTeam.lua and move on to AlienTeam.lua:
Add the variable again to the initialize functions, then give self.teamMaxPlayers a value. In my example it is 1.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->function AlienTeam:Initialize(teamName, teamNumber, teamMaxPlayers)
PlayingTeam.Initialize(self, teamName, teamNumber, teamMaxPlayers)
self.respawnEntity = Fade.kMapName
self.upgradeStructureManager = UpgradeStructureManager()
self.upgradeStructureManager:Initialize(AlienTeam.kSupportingStructureClassNames, AlienTeam.kUpgradeStructureClassNames, AlienTeam.kUpgradedStructureTechTable)
self.playerToHydraTable = {}
self.lastAutoHealIndex = 1
self.teamMaxPlayers = 1
self.eggList = {}
end<!--c2--></div><!--ec2-->
Save this file and move to MarineTeam.lua:
Can you guess what you need to do here? I've set the Marine team to 7 players.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->function MarineTeam:Initialize(teamName, teamNumber, teamMaxPlayers)
PlayingTeam.Initialize(self, teamName, teamNumber, teamMaxPlayers)
self.respawnEntity = Marine.kMapName
self.timeSinceSquadUpdate = 0
self.updateMarineArmor = false
self.teamMaxPlayers = 7
end<!--c2--></div><!--ec2-->
Now onto TeamJoin.lua:
This is where we write the trigger code and search the team numbers and teamMaxPlayers. I updated the TeamJoin:OnTriggerEntered code like this:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->function TeamJoin:OnTriggerEntered(enterEnt, triggerEnt)
if enterEnt:isa("Player") then
local team1Players = GetGamerules():GetTeam(kTeam1Index):GetNumPlayers()
local team2Players = GetGamerules():GetTeam(kTeam2Index):GetNumPlayers()
local team1MaxPlayers = Get Gamerules() :GetTeam(kTeam1Index):GetTeamMaxPlayers()
local team2MaxPlayers = Get Gamerules() :GetTeam(kTeam2Index):GetTeamMaxPlayers()
if self.teamNumber == kTeamReadyRoom then
Server.ClientCommand(enterEnt, "spectate")
elseif self.teamNumber == kTeam1Index and team1Players < team1MaxPlayers then
Server.ClientCommand(enterEnt, "jointeamone")
elseif self.teamNumber == kTeam2Index and team2Players < team2MaxPlayers then
Server.ClientCommand(enterEnt, "jointeamtwo")
elseif self.teamNumber == kRandomTeamType then
//random and conditions
if team1Players < team1MaxPlayers and team2Players < team2MaxPlayers then
// Join random
if NetworkRandom() < 0.5 then
Server.ClientCommand(enterEnt, "jointeamone")
else
Server.ClientCommand(enterEnt, "jointeamtwo")
end
elseif team2Players = team2Maxplayers and team1Players < team1MaxPlayers then
Server.ClientCommand(enterEnt, "jointeamone")
elseif team2Players < team2MaxPlayers then
Server.ClientCommand(enterEnt, "jointeamtwo")
end
end
end
end<!--c2--></div><!--ec2-->
I am pretty sure this should work, but have no way of testing it, I have only 1 active steam friend with NS2, so if anyone can help me test this, that would be great. even if you adopt the code and test it yourself for me that would be helpful. Just need to know it works. :)
This doesn't limit the server to 8 players, so there could be a number of spectators trying to join teams. I may not have covered all logical options in the elseif join team options. If it breaks because of a logic flaw, let me know :)
I'm proud to announce the very first alpha test of my mod. It is currently in a very basic state. Current game-play is not indicative of final release :)
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Gameplay Mechanics:<!--sizec--></span><!--/sizec-->
Fades are the only alien life form. They have blink and the wall-walking ability.
Marines have no need for an armoury. Players start with a rifle and press their buy key - 'b' to buy a fully loaded gun from the choice of Shotgun, GL and Flamethrower. It shows rifle as an option, but it is not selectable. Weapons have no cost, when you run out of ammo, just buy a new gun :)
Currently commander mode is still active and can be used. Note that weapons research has been removed from the commander tech tree.
This is designed to be a team deathmatch style mod at this early phase, but as I haven't removed commander mode, who knows what people will do :)
Once people play it, I will mess around with numbers to make the fights more even. I haven't been able to test this mod other than in a listen server on my own. The alien wall-walking works, and the marine buy menu works, other than that, who knows.
If anyone would like to put this mod on a server so we can see how it plays, I would be most grateful.
Hope you have some fun with this :)
<b>DELETED DOWNLOAD LINK - New Version Released</b>
Just extract the folder to ....\steamapps\common\natural selection 2\
Create a shortcut to NS2.exe on the desktop and edit the properties with the parameter -game TheHunter
Enjoy :)
--EDIT---
Don't judge me on the quality of the code. I work by hacking things together, and while they work I leave them. When I have so many things hacked together that it starts breaking I re-write the code from scratch. Games of this scale are a new undertaking for me, so by the time the code breaks I should know what it does :P
TheHunter V0.1.1a
Changelog:
Massively reduced Fade Blink cost
Changed health of Hives, CC's, Res Towers and Power Nodes to ridiculous numbers. Game is an open-ended Team Death-Match currently, only ending when the server gets restarted :)
Added a Grey Box test map to the file. It's a circle with dev grey wall texture, don't get excited :)
New download link:
<b>DELETED DOWNLOAD LINK - New Version Released</b>
V1.0.0a Is planned to be a working reasonably balanced, but certainly fun, version of the current Team Death-Match game mode.
V2.0.0a Is planned to include a gamerules framework, and introduce a 2nd game mode
V3.0.0a Is planned to release 3rd game mode and tidy up code. New models will begin to be introduced with this version.
V1.0.0b Is planned to see the 4th game mode added, and further work towards completing the model and texture conversions.
Subsequent Beta releases will be tightening up the balance etc and adding more custom materials and maps until game is a total conversion.
Feature and model/map complete release will be V1.0.0.
Maps will be released during development as they get created. Any community assistance with any aspect of the mod is greatly appreciated :)
There are no fixed timescales for these releases, when they are done, they are done :)
Hunter mode is very much Predator/Hidden
Team Death-Match is more Alien swarming combat, but similar play mechanics
Death-Match is more Predator
Escape is more Predator/l4d/Zombie Escape mod
Over-Run is more Predator/Alien/CSS Zombie Mod
Working out some numbers for balance, as anyone playing this currently as marine is going to get their ass handed to them on a plate ;)
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->V0.1.2a Damage calculations:
NS2 Default:
Hunter Settings - 30/01/12:
(Ammo, Damage, Total)
Rifle:
50, 10, 500
40, 15, 600
Pistol:
10, 25, 250
8, 40, 320
Grenade: (changed damage type from structural to normal, reduced fire delay to 0.3 and damage radius to 6, increased lifetime to 1.8)
7, 130, 910
6, 110, 660
Shotgun: (Reduced fireDelay to 0.5, Shot spread to 18 & BulletsPerShot to 8, Increased Min&Max damage range to 45 & 5)
80, 1-18, 80-1440
64, 2-22, 128-1408
FlameThrower untouched.
Increased Marine Armour to 80
Reduced Swipe energy cost to 5, damage to 60 & fireDelay to 0.5.
Increased Blink drain cost over NS2 to 40, but left cheaper start cost at 2.
Increased Stab damage to maintain 1 shot kill of marine.
Reduced Stab energy cost to 15.
Increased Fade Armour to 90.<!--c2--></div><!--ec2-->
This should make games a bit more fun for now. Just going to look at the fade momentum code, to see about getting something like that implemented. That way people can use momentum to float into walls and cling to them. Currently it's a bit hit and miss coming out of blink, as you may need to time it pretty accurately to stick to the wall where you wanted to be. Depending on the code, I will probably implement that and these changes and release as V0.1.2a, depending on if I have any other great ideas in the meantime :)
--EDIT--
Not adding Momentum mod, as there is a bit of skill involved currently in attaching to a wall. Don't want to make it too easy :) Next update includes a vital omission from earlier games which is already patched in....
Allowing Marines to spawn without having to build an IP :)
Slightly overlooked that one in the original release :) I'll get a new release up shortly. Just trying to resolve an odd problem when removing hive healing..
Changelog:
Updated Health and Damage variables to offer some balance between the teams (using stats posted above).
Added ability for Marines to spawn without building an IP
Removed hive regenerating health for Hunters.
New download link:
<a href="http://www.duplexgaming.co.uk/downloads/mods/65/the_hunter/" target="_blank">http://www.duplexgaming.co.uk/downloads/mods/65/the_hunter/</a>
None of this has been tested beyond what I can test on my own in a listen server, so I would really appreciate any feedback. If anyone wants to put a server online, that would be great too :)
So would I, but then I'd like to see the Team Death-Match working and people playing it first :)
Does anyone have a copy of one of the older builds of NS2 where you had to implement Team Player spawns? I want to get rid of the CC and hive, and the most logical way to do that seems to be setting team spawn locations. If the code already exists, well, why bother writing it :)
Maybe it could work till you have a proper solution
I've been considering the win condition and all team death-match games have a win condition. Thinking back to combat, it kept the hives and cc, just made them non-usable. I will probably take this approach.
My problem is where to go at the moment. I currently have the ability for the hunter and marines to fight, but with no concept of how I want it to play as a game, I don't know what to implement. I know how I want it to look when it is finished, but how do I want it play?
I want the marines and hunters fighting, marines need to destroy hive, hunters the cc ala combat. Other than that, do I want a class system, where you pick a class loadout as marines, and a hunter loadout as hunter, then use that for that life? Or do I want a levelling system like combat where you unlock more abilities/weapons as you level up?
At the moment the basics are already there, players, weapons, fighting mechanics. Just need to implement the hive/cc health and remove their usability and then I have a full on team death-match, albeit without any variation other than spawn, fight, try to take down enemy base, die, rinse, repeat. I really need player input to see how it should develop.
I'm going to work up to the next version which is going to change cc/hive health and usability, then I guess I'll put it down for a bit until I get some feedback.
If anyone wants to add me on steam, so we can maybe hook up online over a listen server and test it out, my steam is <a href="http://steamcommunity.com/id/SoulRider" target="_blank">Soul Rider</a>
I noticed it has been downloaded twice on duplexgaming. Any comments from the downloaders?
My other concern is that at the moment, everything I'm doing, apart from creating a unique life-form, is essentially creating a version of combat for NS2. If I revert everything I've done to the alien classes in my mod , back to NS2 defaults, this is already a combat mode. Maybe I should just concentrate on making a combat mode for NS2 while I await more inspiration on the gameplay front?
But seriously, I hope our stats don't get reset when the game goes live, NS2 is currently the most played game in my steam profile :)
That alone will help it raise it's profile.
Typing J2 in console spawns you inside a fade in the ready room, but yet it's only a model, you don't control the entity:
<img src="http://img.photobucket.com/albums/v260/Soulrefuge/2012-02-03_00005.jpg" border="0" class="linked-image" />
Turning on cheats 1 causes lua errors to run through the console and make it unplayable. Good time to start building from scratch :)