J-R's Source SDK resources page.
Back Home




Troy : Divine Playground -> Link to TDP Developer




Source SDK resources websites:

http://www.valve-erc.com/srcsdk/ (Official website for the Source SDK)
http://www.valve-erc.com/srcsdk/Hammer/html/Manually_Config_Hammer.html (Manual config for Hammer)
http://www.chatbear.com/board.plm?b=4986&v=flatold&g=21 (Official forum for Source SDK, Mapping, Art&Sound, Source coding)

Important Paths & Files:
- SDK home directory : sourcesdk = "\Valve\Steam\SteamApps\UserName\sourcesdk"
- Base SDK Base/Point/Solid/Move classes values: "sourcesdk\bin\base.cfg"
- CStrike game FGD file (Base/Point/Solid/Move classes definitions): "sourcesdk\bin\cstrike.fgd" (@include "base.fgd")
- CStrike game .ini file: "sourcesdk\bin\gamecfg.ini"


Bin Tools:
- hammer.exe : Source's level-editor. Inputs .vmf (ascii) files
- height2normal.exe : create .tga height map from input bumpscale (ex: "bumpscale” ”.02”) ,normal value and compress value.
- hlmv.exe : model viewer (physics tweaks, bones). Inputs .mdl(binary) files
- scenemanager.exe : doesn't work.
- studiomdl.exe : compile .qc model/animation/materials files into .mdl files.
- vbsp.exe : compile map into binary space partitionned format. (used in Hammer)
- vrad.exe : compile map into radiosity references (used in Hammer)
- vtex.exe : create .vmt(ascii), .vtf(binary) materials/shader files from .tga texture (http://www.game-lab.com/?p=viewtut&id=256&l=1)
- vvis.exe : compile map into visibility index (used in Hammer)

SDK Source :

Client dll path : "src/cl_dll/"
Server dll path : "src/dlls/"
Shared definitions between Client/Server: "src/game_shared/"


SDK Entities



Common to all entities:

- In the class declaration public: DECLARE_CLASS is a class declaration defined in networkvar.h
- In the class declaration public: DECLARE_DATADESC signify that we'll use a data description table in the class implementation.
- Right after the class declaration: LINK_ENTITY_TO_CLASS( hammer_classname, class); hammer_classname is the entity name that will appear in Hammer, this instruction link it to the class defined above.
- BEGIN_DATADESC( class ) : Start the data description for the class
-
DEFINE_X's : see data description table
- END_DATADESC() : End the data description for the class
- Client-side entities must follow thie "C_" convention (ex: class C_MyEntity : public C_BaseEntity)

Logical Entity (CLogicalEntity) :
- This entity type has no position, no visual, its receives input from the game map and send output according to game state. (ex: timer, run-tim logic operations)
- Must derive from CLogicalEntity wich derivates from CServerOnlyEntity (will not transmit data to client)
- COutputEvent is a parameterless entity event, it implements void "FireOutput( CBaseEntity *pActivator, CBaseEntity *pCaller, float fDelay = 0 )".
- Add the class definition in the mod's .FGD file.

Brush Entity :
- This entity is constructed in hammer using Brushes (static architectural structures). Brush entities can be statics volumes (triggers, portals, wall health), or moving entities (platform, door, button, gun target).
- Can derive from CBaseToggle wich derivates from CBaseEntity.
- Declare the function type of the entity DEFINE_ENTITYFUNC() : see data description table

Point Entity :
- Exists only at one point in the map.

Model Entity (CBaseAnimating) :
- This entity has a visual component, can move and can be interracted with. (ex: NPCs, Gibs, mines, crane, ammo)
- Must derive from CBaseAnimating wich derivates from CBaseEntity.
- The asset associated with this entity must be precached using the Precache() method. Precaching asset.
- This entity must be spawned using the Spawn() method.
- The logic sequence of an entity creation is Spawn()->Precache()->Activate()

Physic and Physic entities:



Weapon Classes (Model Entities):

 


Special Effects :


- Special effects are used in many differents


01/12/2004:
Second map made with Hammer.
- Terrain displacement was made using paint geometry in the displacement tool from the Face Edit Sheet.
- The 1/16 3D Skybox was made using the entity sky_camera. There is no light_environment added.


30/11/2004:
First map:


By Jean-René Bédard