# Natural Selection v3.2.1a This is a complete rebuild of the game [Natural Selection] for Windows and Linux. After the SteamPipe update the game remained in an pretty bad state for years, therefore I decided to recompile its sources which are provided by [Unknownworlds Entertainment]. With this update this might be the first half-life mod which achieves multi-platform support. Speaking of this you are encouraged to compile for Mac OS X. The ultimate goal is to provide a better expierence of the Natural Selection gameplay on all major platforms and a possible distribution in the future through [Steam]. ### Downloads Here you find the new compiled `.dlls` or `.so` files for client and server. If you just want to play or to host a server you can download them here: - [ns_patch_v321a.7z] Remember to extract them to your Half-Life/ns directory. The offical download url for the complete version ns v3.2 is not working with firefox. Either use: ```sh $ wget http://www.unknownworlds.com/files/ns/ns_install_v32.exe ``` or ```sh $ curl -LO http://www.unknownworlds.com/files/ns/ns_install_v32.exe ``` or follow this link http://sllegacy.unknownworlds.com/files/ns/ns_install_v32.exe ### Changes In order to make this game work for linux the old half-life engine files were replaced with the newer ones. In addtion some changes are accounted for the use of an acient glibc library. Some changes to the game itself have been made and these include: - The ChatPanel has been replaced in favor of the old hl chat. - The observatory has now a spherical detection like the sensory chamber - Removed special NS gamma since it is windows only The plan is to bring the chat and the gamma back when a cross-platfrom solution can be achieved. ### Bugs With great changes come great bugs. - Chat input is not visible while spectating - [sg reload bug] - [FPS_Effects] FPS dependant fire rates and player physics - gorge's view rotates when he drops a structure from the popup menu? - The background of text in the menu or in popups does not look nice possible realted to the `special ns gamma`. - Flashing available alien upgrade icons (defense, movement and sensory) tend to disappear when a player dies and respawns. The icons won't appear until the alien chooses an upgrade. - func_train and func_tracktrain entities don't reset to their original positions when a round has ended - windows server works only with the hlds tool If you find more please report them! ### Compile First you will need to get the files: ```sh $ git clone https://github.com/fmoraw/NS.git ``` Then goto `NS/main/source/linux` and use `make hl_cll` for the client and `make ns` for the server. Make sure you have `g++-multilib` set up for x64 operating systems. For windows compilation should be working if you have VS2010 installed. If you get the this error when running the app: `Fatal Error - could not load library (client.so)`, With a high chance it is because of some `UNDEFINED SYMBOLS` in the shared library. But you can check this with this command: ``` sh $ ldd -r -d client.so ``` If you want to debug: ```sh $ LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" gdb ./hl_linux r -game ns -dev -steam ``` Due to the new engine and the nature of Linux I had to make a lot of changes! You can find them with grep -Ril `@Linux`. ### Hosting a server Since servers are really rare at this point in time here is a tutorial how to set up an [Natural Selection] server with [hlds]. 1. Follow these steps: https://developer.valvesoftware.com/wiki/SteamCMD 2. Copy the [Natural Selection] directory to steamcmd/servers/ 3. Run the game : ```sh $ ./hlds_run -game ns -autoupdate +map ns_eclipse + sv_secure 1 + port 27015 + ip 127.0.0.1 +hostname "Natural Selection" +maxplayers 32 ``` If you are behind a NAT(Router) make sure to open at least those ports: - 27015 UDP (game transmission, pings) - 26900 UDP (VAC service) -- automatically increments if used in case of additional server processes `Under no circumstances expose your host to the internet!!!` For more information follow [this link](https://developer.valvesoftware.com/wiki/Half-Life_Dedicated_Server). In order to check if you server is connected to the steam servers copy the following url in your browser and replace `` with your external ip: `http://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=&format=json` There is an updated version of metamod called [metamodp](http://metamod-p.sourceforge.net/). Since players are also pretty rare you might want to install [rcbot] and therefore you have to download those files: - [rcbot without dlls](http://filebase.bots-united.com/index.php?act=download&id=210) - [rcbot linux dlls](http://filebase.bots-united.com/index.php?act=download&id=428) ### Usefull links * [Usefull collection of ns files server addons, maps and erverything ](http://www.brywright.co.uk/downloads/files/index.php?dir=natural-selection/) * [Great collection of ns guides/tutorials](http://www.naturalns.clanservers.com/forums/index.php?topic=5.0) * [rcbot downloads](http://filebase.bots-united.com/index.php?act=category&id=19) * [dillinger.io markdown editor](http://dillinger.io/) [Natural Selection]: [Unknownworlds Entertainment]: [ns_patch_v321a.7z]: [FPS_Effects]: [Steam]: [sg reload bug]: [hlds]: [rcbot]: Many thanks to GiGaBiTe. Half Life 1 SDK LICENSE ======================= https://github.com/ValveSoftware/halflife/blob/master/README.md You may, free of charge, download and use the SDK to develop a modified Valve game running on the Half-Life engine. You may distribute your modified Valve game in source and object code form, but only for free. Terms of use for Valve games are found in the Steam Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/ You may copy, modify, and distribute the SDK and any modifications you make to the SDK in source and object code form, but only for free. Any distribution of this SDK must include this license.txt and third_party_licenses.txt. DISCLAIMER OF WARRANTIES. THE SOURCE SDK AND ANY OTHER MATERIAL DOWNLOADED BY LICENSEE IS PROVIDED “AS IS”. VALVE AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES WITH RESPECT TO THE SDK, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, TITLE AND FITNESS FOR A PARTICULAR PURPOSE. LIMITATION OF LIABILITY. IN NO EVENT SHALL VALVE OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE ENGINE AND/OR THE SDK, EVEN IF VALVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Natural Selection copyright and trademarks ========================================== All artwork, sounds, audio, screenshots, text and code in Natural Selection, Zen of Sudoku, Spark engine and Natural Selection 2 are Copyright © 2014 Unknown Worlds Entertainment, Inc (http://www.unknownworlds.com). The mark Natural Selection was first represented in association with video-game software in June of 2001, and was first used in commerce around January, 2002. Natural Selection is Registered with the U.S. Patent and Trademark Office (No. 4,179,393). Natural Selection license ========================= See COPYING.txt for the GNU GENERAL PUBLIC LICENSE EXCLUDED CODE: The code described below and contained in the Natural Selection Source Code release is not part of the Program covered by the GPL and is expressly excluded from its terms. You are solely responsible for obtaining from the copyright holder a license for such code and complying with the applicable license terms. EXCLUDED CODE AND LIBRARIES - Half Life 1 SDK LICENSE (Copyright(C) Valve Corp.) - FMOD 3.7.5 - Lua 5.0 (http://lua.org) - Particle system library by David McAllister (http://www.cs.unc.edu/techreports/00-007.pdf). Original code and design by Charlie Cleveland (charlie@unknownworlds.com, @flayra). Many contributions from Karl Patrick (karl.patrick@gmail.com), Petter Rønningen , Harry Walsh , and probably lots of people I forgot.