Ada banyak mesin permainan di dunia, tetapi tidak ada satu mesin pun yang mirip dengan Sumber dalam sejarah dan fiturnya.
Dalam pelajaran (percontohan) ini, kita akan memandu melalui langkah-langkah paling sederhana dengan kode sumber SDK, serta membuat perubahan pertama kita ke kode Half-Life 2.
pengantar
Beberapa istilah
The Sumber SDK itu sendiri adalah seperangkat utilitas dan program yang membantu Anda mengembangkan tingkat dan modifikasi sendiri untuk permainan, serta kode sumber untuk Half-Life 2 dan episode.
/ ( , :p) โ SDK.
Source?!
- . , , .
- . Source .
- SDK , SDK ( , ( อกยฐ อส อกยฐ) ) ! , Source SDK ( ...) .
- . . C++ !
.
?
- C++ ( ).
- Microsoft Visual Studio Multibyte MFC Library Microsoft Build Tools 2013 (v120/v120_xp). , VS2013.
- Git for Windows .
- Steam Source SDK Base 2013 [Single|Multi]player ( "" - upstream, )
- HLSL, :)
SDK GitHub. :
git clone https://github.com/ValveSoftware/source-sdk-2013.git
Half-Life 2/Episode 1/2, sp/
Source SDK Base 2013 Singleplayer.
Half-Life 2: Deathmatch, mp/
Source SDK Base 2013 Multiplayer.
: SP, , hl2
MP hl2mp
hl2
!!!
(client.dll) C_
, (server.dll) โ C
:
// client.dll
class C_BaseWeapon { ... };
// server.dll
class CBaseWeapon { ... };
m_, ( , ):
class C_SomeClientClass {
private:
float m_flTime = 0.0;
};
extern float g_flSomeFloat;
static float s_flSomeStaticFloat;
void SomeFunction(float flValue);
SDK, , .
client.dll
.
, .
:src/game/client/
server.dll
.
, ..
:src/game/server/
tier1.lib
, , UTL ("" STL), interface convention ..
:src/tier1/
raytrace.lib
, , . , , .
vrad , , Valve Hammer Editor.
:src/raytrace/
mathlib.lib
, , "" Source.
:src/mathlib/
vgui_controls.lib
, (, ) VGUI2.
.
:src/vgui2/vgui_controls/
VPC
Source SDK (sln, Makefile, etc.) โฆ โฆ
Valve Project Creator src/devtools/bin
.
.VPC . โ -.
:
src/game/client/client_episodic.vpc
src/tier1/tier1.vpc
src/utils/vrad/vrad_dll.vpc
: VPC !
, src/
.
โ src/creategameprojects.bat
.
src/
games.sln.
HL2
SDK HL2 Episodic. , .
, , HL2 :
-
src/creategameprojects.bat
. -
/hl2
- .
creategameprojects.bat
bash โ createallprojects.bat
bash.
VPC , , vrad (Radiosity!) height2normal.
, .
, , . , ( IDE?):
- Release.
: Debug !!! - (F6)
- , 2.
- , (creategameprojects) 1.
game/mod_hl2/bin/
game/mod_episodic/bin/
!
โ 1 โ Steam
-
mod_xxx
//Steam/steamapps/sourcemods/
- Steam ( , ...)
- "My First Episodic Mod" "My First HL2 Mod"
- :
-dev -console
- ,
sdk_vehicles
(SP)dm_lockdown
(MP)
โ 2 โ Visual Studio
โ !
- ( !!!) Debugging
- Command :
//steam/steamapps/common/Source SDK Base 2013 XXXX/hl2.exe
- Working Directory :
//steam/steamapps/common/Source SDK Base 2013 XXXX/
- Command Arguments :
-game "///xx/game/mod_xxx/" -debug -dev -console
- , (F5)!
- ,
sdk_vehicles
(SP)dm_lockdown
(MP)
โ !
Msg()
Msg()
, DevMsg()
, Warning()
, DevWarning()
ConColorMsg()
- printf()
, Source SDK. - debug output.
// somewhere in tier0/dbg.h
void Msg( const tchar* pMsg, ... );
// somewhere in code
Msg( "This is a message! %d\n", 42 );
!
:
-
src/game/server/hl2/weapon_pistol.cpp
(Server (Episodic/HL2)/HL2 DLL/weapon_pistol.cpp
) -
void CWeaponPistol::PrimaryAttack( void )
(- 255) -
BaseClass::PrimaryAttack();
- , :
BaseClass::PrimaryAttack(); // - 251 Msg( "weapon_pistol: m_iClip1 = %d\n", m_iClip1 );
- ,
- Karena kami menulis dalam argumen
-dev
, perintah cheat diaktifkan secara default, jadi tulis pepatah ke konsolimpulse 101
dan coba tembak pistol!
Kesimpulan
Apa yang telah kita pelajari?
[Saya harap] dari tutorial ini kami menemukan:
- Apa itu Source SDK secara umum dan apa yang dimakan dengannya
- Cara menghasilkan proyek menggunakan VPC
- Cara mencetak sesuatu ke konsol pengembang
Apa berikutnya?
Di bagian kedua , kami akan memecah sistem entitas SDK Sumber.
link yang berguna
- Komunitas Pengembang Katup dan bagian SSDK -nya
- Mod [SP] saya dengan banyak perbaikan