Sample Work

License

All the work presented in this page is under Creative Commons "Attribution Generics"

http://creativecommons.org/licenses/by/2.0/

You are allowed to

  • share
  • remix

There's no special attribution.

Unreal Fortress Evolution (or UnfE)

Unfe is a fortress mod for Unreal Tournament 2004.

The development lasted two years and it made it past two (beta) milestones.

The mod is a collection of amateur work. The quality of the code might not be representative of my today’s skills. There were roughly 4 programmers on the mod with very different skills.

The mod in itself consists of about:

• 8 player classes with their specificities
• A dozen of weapon
• A dozen of grenade type
• Deployable sentries and dispenser
• A set of trick jumps

The mod was running flawlessly on a full charge server.

{"module":"wiki\/image\/FlickrGalleryModule","params":{"userName":"supzi","photosetId":"72157606788987850","sort":"date-posted-asc"}}

Download UNFE source

HL² IRC Client

It’s an IRC Client built in HL². It adds a set of console command (client side) to connect/disconnect to an IRC server. Once you are connected, you can toggle the user interface panel.

The client dedicates a thread for receiving data from server. They are parsed, formatted and then forwarded to the user interface. The user interface is entirely written using Valve's proprietary GUI.

{"module":"wiki\/image\/FlickrGalleryModule","params":{"userName":"supzi","photosetId":"72157606789115812","size":"thumbnail","disableBrowsing":"yes"}}

Download HL² IRC source

MemTracer

Location and identification of memory leaks can be somewhat difficult. There’s very few tool offering the possibility of tracking memory and even fewer that track when the application is running.

The Tracer hooks windows heap allocation using Microsoft Detours. Each allocation is logged in a buffer along with a “call stack”. It logs allocation from multiple threads in a lock free fashion. A thread is dedicated to forwarding the buffers over the network.

On the other side of the socket, we have a .NET application. Again, a dedicated thread is responsible for the reception and interpretation of data.

The interpreted results are forwarded to the User Interface. The application offers the possibility of “capturing” allocation over a lapse of time. Once the capture is done, the “call stacks” are analyzed and the application builds “an allocation tree”.

This tree references every function responsible for an allocation. If you collapse an entry, it will display every sub-function that did an allocation.

I paid a lot of attention to the memory and performance footprint of the logger. The logging should be barely noticeable.

{"module":"wiki\/image\/FlickrGalleryModule","params":{"userName":"supzi","photosetId":"72157606789646768","size":"large","disableBrowsing":"yes"}}

Go to MemTracer Page

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License