sloppycode.net
Gaming


Below is a collection of free and open source applications for the gaming population, a testimony to hundreds of mispent hours gaming in my early/mid 20s playing (mostly Counterstrike). They date back to 2003-2004, but have been recompiled recently using .NET 2 framework. The tools are free to use.

.NET Gaming Library

The GSN .NET Gaming Library is an open-source .NET API for querying game servers. It is written in C# and features support for the following games:

Half life + mods (Counter strike, Day of Defeat etc.)
Unreal Tournament
Unreal Tournament 2003/2004
Battlefield 1942
Quake 2
Quake 3
Call of Duty
Medal Of Honor
Return to Castle Wolfenstein
Soldier of Fortune 2

The library is unfinished, but contains a lot of working examples on how to query Quake 3, Half Life and Unreal servers which includes UDP querying via sockets. The class structure (unknowingly) uses the "Strategy design pattern", in that the manager [or strategy] class doesn't known or care about the different UDP packets being sent or returned by each game - it simply deals with player and server information returned for the game specified. In practice this is achieved with 3 base classes for Quake, Unreal, HalfLife - the 3 main game engines - and then a host of derived classes for each game that make use of the base class's query methods, but deal with any additional information sent back.

*Source download coming soon*

GSN Half Life Log Library

Codeplex homepage

A .net library, written in C#, for half life multiplayer log files sent to a listening server by the half life server. The library can be used for stats projects, IRC scorebots and rcon monitoring. The project is open source and free to use in applications (both commercial and non-commercial).

The project has support for Counter-strike only at present.

The project is very much in the vein of hlstats (who created the protocol), but has been created for .net developers to make use of the log files. The library features one class, which has a set of events that are called when various things happen in-game (bombs exploding, defuses, kills etc.).

Counterstrike Player details

Download

If, whilst playing counter-strike online, you have ever noticed that some players are harder to kill than others, the problem is usually blamed on the player having 'low rates' - i.e. having tweaked or default network settings in their half life that makes them harder to hit. Some people do this intentionally, making scripts that enable them to shoot others easily, and then take bullets like a huge sponge.

This app aims to solve all those people who accuse others of having these low rates - the app displays the rate and updaterate command that each player has on the server, so you can see exactly why you didn't kill them - whether they actually have low rates, the server is crap, or whether it's just you is crap and needs to aim better.

Look for players with rates of 9999 or less, along with updaterates of 30 or less. These are the network settings for 56k or ISDN users, not broadband - which most people playing online are now. If they have these low rates, they are either clueless to it (and have the default settings), or are using the Half Life network settings to their advantage. Details on how to use the app can be found in the readme.

NB most of the problems this app were created for have been fixed in Half Life 2 by the server forcing your update and command rate.

Half life movie manager

Download

A small tool for managing recorded half life .dem movies.

This application is for people who record movies/demo files in Half Life and mods. All you have to do is use the standard record command: 'record movie1' in the console, and then frag away. Once you're done, the application will automatically copy your demo file (movie1.dem) to the location that you set, and rename it, so you have a collection of demos that are ready to be .avi'd.

The program automatically waits until Half Life closes to copy the demo file, so you no longer have to worry about keeping your demo files in order, and can simply bind one key to 'record movie1' and press that key before you start.

 

› Home
› C#
› Snippets
› Articles
› Tools
› Taglines
› ASP
› Dictionary Object
› FSO
› Unix cheat sheet
› Gaming
› CSS
› Yak
› Umbraco
› About
› Contact
› Privacy
› Projects
› Search