Half-Life 1 map renderer using C#/.NET/DirectX. It was an interesting experience in loading and rendering BSP maps. Also contains an attempt at collision detection.
This piece of software is the result of a college project I worked on together with some peers somewhere back in 2003-2004. Mostly out of nostalgia, I decided to try to revive it and donate it to the public domain. I think/hope my former collegues won't mind.
The goal was to develop a 3D engine that could render Half-Life 1 maps. I totally love that game, so the choice is obvious. C# and DirectX were chosen because we learned C# that year and I already had some familiarity with DirectX. Another team would craft a map of the school campus to go with it. Unfortunately, the map didn't quite make it that far...
The slightly peculiar name stands for Experimental Rendering System.
Almost 10 years after it's conception, it turned out to be pretty hard to get the code to build and run again. This mostly because of the evolution of the .NET framework and managed DirectX no longer being supported. It really deserves a port to a more modern platform. If anyone wants to give it a try, good luck and let me know.
- DirectX: any version as of 9.0c should work. 9.0c June 2010 release
- .NET Framework 1.1. Later versions are NOT backwards compatible so you really need 1.1, which can unfortunately be a bit tricky on more recent Windows systems.
- You'll need some HL1 BSP map (Counter-strike maps are very useful for example) and associated WAD file(s) to get it to run. I don't have the rights to include any, sorry.
Escape = exit application
Arrows = Move forward/backward/left/right
Right shift = Move up
Right control = Move down
P = Reset position
Mouse scroll = zoom
Print Screen = Take screenshot - saved next to the executable as [001..999].jpg
C = Toggle collision detection
Z = Toggle wireframe rendering
F = Toggle frustum culling
B = Toggle BSP culling
F2 = Reset brightness, contrast and gamma correction
F3/F4 = Decrease/increase brightness
F5/F6 = Decrease/increase contrast
F7/F8 = Decrease/increase gamma correction
File: eresys.ini
[settings]
graphics=directx (only supports directx for now)
fullscreen=true|false
width=<window width or horizontal screen resolution, eg: 1024>
height=<window height or vertical screen resolution, eg: 768>
depth=16|24|32 (color depth in bits/pixel)
hal=true|false (use hardware acceleration or software emulation)
tnl=true|false (hardware accelerated transform & lighting)
vsync=true|false
brightness=0.5
contrast=0.5
gamma=1
controls=directx (only supports directx for now)
profiler=true|false
map=<filename>.bsp
All required files for maps (BSP, WAD, BMP for skymap) should reside in the same folder as the executable (e.g. bin folder).
Eresys.exe
-ini=<config file>.ini (overrides default name eresys.ini)
-map=<filename>.bsp (overrides map from config file)
The engine generates (and overwrites) 2 log files on each run:
eresys.log
main application log, contains usefull info on errors or warningsentityscript.log
the entity script from the last loaded BSP file