Es/Setting up Source SDK Base 2013 Multiplayer: Difference between revisions
Linkshadow40 (talk | contribs) (Semi traducido) |
Linkshadow40 (talk | contribs) No edit summary |
||
Line 246: | Line 246: | ||
These two base apps are very similar, differing mostly in update schedule. The Singleplayer base will only update with HL2 and the Episodes do, which isn't very often. The Multiplayer base will update a few times a year to incorporate engine changes from TF2 and Counter-Strike: Source. None of these updates should break mod compatibility. | These two base apps are very similar, differing mostly in update schedule. The Singleplayer base will only update with HL2 and the Episodes do, which isn't very often. The Multiplayer base will update a few times a year to incorporate engine changes from TF2 and Counter-Strike: Source. None of these updates should break mod compatibility. | ||
== | ==Estructura del directorio== | ||
Las carpetas tienen una función y significado, similar a la estructura de un directorio | |||
* game - | * game - El contenido de tu mod va aquí. | ||
* src - | * src - Contiene todo el código de fuente para ese tipo de mod. La raíz del directorio src contiene archivos .sln o .mak para montar el código. | ||
** common - | ** common - Un par de archivos usados por las librerías server.dll y client.dll | ||
** devtools - Scripts | ** devtools - Scripts y utilidades que se usan para montar el código. Se suelen llamar a estos archivos por los proyectos, y no es necesario usar esta carpeta para algo concretamente. | ||
** game - | ** game - Todo el código fuente para tus DLL. | ||
*** client - | *** client - Código usado por el client.dll (o client.dylib o client.so). Aquí hay carpetas específicas del juego. | ||
*** server - | *** server - Código usado por el server.dll. Igual que arriba, contiene archivos base del juego. | ||
*** shared - | *** shared - Código usado por client.dll y server.dll. | ||
** gcsdk - | ** gcsdk - Un par de herramientas para montar las librerías. | ||
** lib - | ** lib - Versiones binarias de las librerías que el código de fuente depende de. Esta carpeta es el directorio objetivo para vgui_controls (controles de interfaz), tier1, y mathlib (matemáticas). | ||
** mathlib - | ** mathlib - Matemáticas y cálculos usados por el juego. | ||
** public - | ** public - Archivos de cabecera para todos los DLL y librerías usados para el juego. Incluye unos cuantos archivos de código de fuente. | ||
** thirdparty - | ** thirdparty - Librerías de terceros para montar el código. Por el momento sólo contiene la librería protobuf de Google. [https://code.google.com/p/protobuf/ Google Protocol Buffers (protobuf)]. | ||
** tier1 - | ** tier1 - Clases de utilidad muy prácticas. Se compila en el archivo tier1.lib | ||
** utils - | ** utils - Varias herramientas de desarrolladores. | ||
** vgui2 - | ** vgui2 - Código de fuente para vgui_controls, el cual es usado en client.dll. | ||
Recomendamos que sigas las descripciones para añadir archivos para tu propio mod. | |||
= | =Errores comunes= | ||
A veces se pueden encontrar errores comunes en el SDK 2013. Por favor utiliza la [[{{TALKPAGENAME}}|Discusión]]antes de publicar otras soluciones. | |||
==<code>vgui_controls</code> | ==<code>vgui_controls</code> no compila.== | ||
En el 14 de Febrero de 2014, el usuario Mangr0v3 identificó este error como un fallo de la compilación en el directorio cuya dirección contiene espacios: vpc.exe creará archivos .vcxproj con espacios sin comillas, en las direcciones, que provocarán conflictos. Leer https://github.com/ValveSoftware/source-sdk-2013/issues/225 | |||
Este error se solventó anteriormente obteniendo una copia nueva del SDK. Si usas el repositorio, simplemente sincroniza el SDK. O puedes descargar el zip de nuevo. | |||
== Errores RegKey a la hora de generar los archivos de proyecto== | |||
== RegKey | |||
<nowiki>"ERROR: Unable to find RegKey for .vcproj files in solutions."</nowiki> | <nowiki>"ERROR: Unable to find RegKey for .vcproj files in solutions."</nowiki> | ||
Este fallo se produce usualmente, y es causado por que no hay una extensión asociada al programa. | |||
===Visual Studio 2010=== | ===Visual Studio 2010=== | ||
{{Warning|1= | {{Warning|1=Asegúrate de tener [http://www.microsoft.com/en-us/download/details.aspx?id=23691 2010 Visual Studio Service Pack 1] o superior instalado.}} | ||
* | * Abre el editor de registro (Regedit) | ||
*# Windows | *# Tecla Windows + R | ||
*# | *# Escribe 'regedit' sin las comillas y Intro. | ||
* | * Navega a una de estos registros, según el sistema operativo que uses: | ||
'''''# | '''''# para sistemas operativos de 32-bit (x86) :''''' | ||
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects\{60dc8134-eba5-43b8-bcc9-bb4bc16c2548} | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects\{60dc8134-eba5-43b8-bcc9-bb4bc16c2548} | ||
'''''# | '''''# para sistemas operativos de (x64):''''' | ||
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Projects\{60dc8134-eba5-43b8-bcc9-bb4bc16c2548} | HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Projects\{60dc8134-eba5-43b8-bcc9-bb4bc16c2548} | ||
* | * En la clave, tienes que crear un nuevo valor de texto. | ||
*# | *# Clic derecho: Nuevo> Valor de cadena | ||
*# | *# Rellena el hueco con esto: | ||
*#* | *#* Nombre: <code>DefaultProjectExtension</code> | ||
*#* | *#* Valor: <code>vcproj</code> | ||
*# Click "OK" | *# Click "OK" para guardar el cambio. | ||
===Visual Studio 2012=== | ===Visual Studio 2012=== | ||
Hay un parche creado por un miembro de la comunidad para solucionar este tipo de error en el Visual Studio 2012. '''''Úsalo bajo tu riesgo.''''' | |||
Descarga el código desde [https://github.com/FrontBack/VPC-Fix GitHub] (AutoIt v3 es necesario). | |||
= | =Publicando tu mod en Steam= | ||
Si tienes un juego basado en Source Engine, ya preparado para publicar en Steam, por favor [https://partner.steamgames.com/documentation/source_games lee la documentación] para más detalles. | |||
[[Category:Source SDK FAQ]] | [[Category:Source SDK FAQ]] | ||
[[Category:Modding]] | [[Category:Modding]] | ||
[[Category:SDK 2013]] | [[Category:SDK 2013]] |
Revision as of 16:39, 23 November 2014
Para empezar, necesitarás coger el código de fuente desde Valve Software Source SDK repository GitHub. ¡Después, podrás ser capaz de compilar la compilación y programar nuevos mods!
Obteniendo el código
GitHub te proporciona numerosas maneras para obtener el código y actualizarlo. Aquí tienes unas instrucciones para obtener el código de manera principal, pero Ayuda de GitHub es una buena fuente para aprender a cómo utilizar Git, y las novedades añadidas de GitHub.
Vía directa
La manera más fácil de mantenerse actualizado y tener siempre la última versión del código actualizado, es usar Git para obtener el repositorio. Git en sí, es una "CLI" para todas las plataformas, pero GitHub también te proporciona instaladores que instalan la versión CLI y una interfaz para ayudarte a mantener tus repositorios.
GitHub (Windows & Mac)
- Obtén GitHub.
- Instala GitHub .
- Visita el Source SDK 2013 en tu navegador, y pincha en "Clone in Desktop".
- Esto abrirá el programa GitHub. Sigue las instrucciones para clonar el repositorio en tu ordenador.
Cuando quieras descargarte una versión moderna del código, lo puedes hacer haciendo clic en "Sync" (sincronizar) o "Sync Branch" (sincronizar ramas).
Git CLI (Para todas las plataformas)
Instrucciones detalladas para cómo montar Git en cualquier plataforma, incluyendo la actualización del repositorio. [1].
Con el CLI instalado, puedes obtener el código usando una línea parecida a esta:
> git clone git@github.com:ValveSoftware/source-sdk-2013.git
Descarga directa
También puedes descargarte el ZIP. Esto te dará la última versión, pero tendrás que manualmente descargarla para actualizar el código. Si planeas contribuir en el repositorio con tus aportaciones al código, necesitarás seguir las instrucciones de arriba para Git, con una instancia separada de tus archivos locales.
Descarga la última versión de Source SDK 2013
Instrucciones de compilación para plataformas específicas
Creando el proyecto y los archivos
El SDK de 2013 usa el Valve Project Creator (VPC) para generar los archivos específicos para el proyecto. Estos archivos son específicos para las plataformas y son requeridos para montar el SDK. Una vez que completes este paso no necesitarás volver a llevarlo acabo si una actualización requiere nuevos archivos de proyecto.
Ve a estos directorios y ejecuta los archivos .bat para empezar a montar.
Windows
# Proyecto de un jugador (Singleplayer) > <Directorio del SDK>/sp/src/creategameprojects.bat > <Directorio del SDK>/sp/src/createallprojects.bat # Proyecto multijugador (Multiplayer) > <Directorio del SDK>/mp/src/creategameprojects.bat > <Directorio del SDK>/mp/src/createallprojects.bat
Este paso creará los archivos del Visual Studio (.vcxproj) y los de la solución (.sln) en el directorio SRC.
Nota: ¡Si no tienes Visual Studio, recibirás errores en el proceso de arriba!
Mac OS X & Linux
Nota: Mac OS X Mavericks necesita hacer cambios en algunos archivos para compilar el proyecto: Elimina el -fpredictive-commoning desde OTHER_CFLAGS en el archivo src/devtools/release.xcconfig. Cambia SDKROOT a macosx10.8 en src/devtools/base.xcconfig.
# Proyecto de un jugador (Singleplayer) > <Directorio del SDK>/sp/src/creategameprojects > <Directorio del SDK>/sp/src/createallprojects # Proyecto multijugador (Multiplayer) > <Directorio del SDK>/mp/src/creategameprojects > <Directorio del SDK>/mp/src/createallprojects
En Mac OS X, esto creará los archivos "src/games.xcodeproj" y "src/everything.xcodeproj".
En Linux, "src/games.mak" y "src/everything.mak"
Información sobre el VPC
Para obtener información sobre cómo usar el VPC, observa los scripts o ejecuta el siguiente comando:
> <Carpeta del SDK>/<gameType>/src/devtools/bin/vpc /help
Nota sobre el repositorio Git y los archivos ignorados
Los archivos de proyecto generados por VPC son listados en el .gitignore, de seta manera no son publicados en el repositorio. Los que quieran publicar sus cambios deben hacerlo haciendo una petición informando de lo que se está subiendo.
Añadiendo archivos a tu proyecto con VPC
VPC genera archivos de proyecto para todas las plataformas que el SDK soporta, así que si quieres añadir archivos a tu proyecto de una manera que te pueda permitir montar fácilmente en otras plataformas, considera usar VPC. Por ejemplo, para montar un mod multijugador, puedes añadir la línea a src/game/client/client_hl2mp.vpc
Windows
Prerequisitos
Para montar el Source SDK 2013 en Windows necesitarás Microsoft Visual Studio 2010 con Service Pack 1. También es posible usar el Visual Studio 2012 con el compilador de Visual Studio 2010 mediante "no actualizar" las configuraciones del proyecto para el nuevo compilador.
Si también quieres montar el proyecto phonemeextractor tendrás que descargar el SAPI 5.1 desde Microsoft. No se puede incluir el SDK Speech con el Source SDK por que son de empresas distintas. Simplemente descarga "SpeechSDK51.exe", elige el destino de extracción, y extrae. Ve al directorio donde extraíste los archivos y ejecuta el instalador MSI. Localiza "C:/Archivos de programa (x86)/Microsoft Speech SDK 5.1" , copia su contenido a "src/utils/". Renombra la carpeta "Microsoft Speech SDK 5.1" a "sapi51" y el phonemeextractor funcionará.
Montando
¡Recuerda primero haber leído el apartado de la creación de archivos!
- Abre la solución "everything" para el tipo de proyecto que desees crear (singleplayer o multiplayer)
- everything.sln
- Monta la solución de arriba.
- Abre la solución de arriba para el juego que estás montando.
- games.sln
- Monta la solución de arriba.
En este punto deberías tener el client.dll y el server.dll para cargar el Source Engine en el que estás basando el mod.
Montando los "shaders" (efectos)
Si estás planeando añadir nuevos efectos gráficos en tu mod necesitarás montar los archivos runtime shader en Windows. Los shaders son efectos gráficos, como los reflejos del agua, espejos, el fuego, la iluminación, las sombras, el humo y las partículas en general.
- Ve a Inicio, y ejecuta "cmd" y haz el comando CD en uno de los siguientes :
sp/src/materialsystem/stdshaders
(para mods de un solo jugador)mp/src/materialsystem/stdshaders
(para mods multijugadores)
- Duplica el archivo
build<gamename>shaders.bat
y renómbralo amontarmisshaders.bat
COPY /B build<gamename>shaders.bat montarmisshaders.bat
- Abre el archivo que renombraste
montarmisshaders.bat
en un editor de texto. - Cambia la variable
SDKBINDIR
a la localización de lainformación del cliente desde Steam. Esta carpeta puede cambiar según dónde hayas instalado el juego.
set SDKBINDIR=<steaminstallpath>\SteamApps\common\Source SDK Base 2013 Singleplayer\bin
- Ejecuta el
montarmisshaders.bat
Para más información sobre autorizando shaders en el Source SDK, consultar Shader Authoring.
Compiling Source SDK 2013 with Visual Studio 2012
Valve recommends that mod creators should use Visual Studio 2010 with Service Pack 1 to create a mod. However, this section describes how to compile a mod using Visual Studio 2012. Follow the guide on this page up until the Windows - Prerequisites section. In the Windows - Prerequisites section, it recommends that the mod creator does not update the Visual Studio projects and touches on the fact that the mod creator will have to obtain sapi.lib from Microsoft's Speech SDK. This section will describe instead how to 1. obtain and setup the Speech SDK library, 2. setup the necessary protobuf library and 3. setup and compile the Source SDK 2013 with Visual Studio 2012.

Setting up Microsoft Speech SDK (SAPI)
The Source SDK requires the Microsoft Speech SDK but doesn't come with it for licensing reasons. Download the Speech SDK 5.1 from here. This should download the SpeechSDK51.exe file. Run this and it should unzip contents to a selected folder. One of the contents it unzips is Microsoft SDK 5.1.msi. Running this with the default settings should create a directory in C:\Program Files (x86)
called Microsoft Speech SDK 5.1
. Copy the Microsoft Speech SDK 5.1
directory into the src/utils
directory and rename it sapi51
.
Compiling now shows a number of errors in the sphelper.h
file. There is more than one way to fix these errors. This section will describe how to fix them manually.
Change the following lines t have the code shown below.
Line 769
const size_t ulLenVendorPreferred = wcslen(pszVendorPreferred); // no size_t
Line 1418
static long CoMemCopyWFEX(const WAVEFORMATEX * pSrc, WAVEFORMATEX ** ppCoMemWFEX) // missing long
Line 2368
const WCHAR * PropertyStringValue() const
{
// Search for the first NULL and return pointer to the char past it.
SPDBG_ASSERT(eEventId == SPEI_PROPERTY_STRING_CHANGE);
const WCHAR * psz = (const WCHAR *)lParam; // moved this from for init
for (; *psz; psz++) {}
return psz + 1;
}
Line 2560
SPPHONEID* pphoneId = (SPPHONEID*)((WCHAR *)dsPhoneId); // improper casting
Line 2634
pphoneId += wcslen((const wchar_t *)pphoneId) + 1; // improper casting
Nota:Building now might generate an error unresolved symbol _IID_IspPhoneticAlphabetSelection
. This was perhaps caused because you had already built and the partial build is broken. This could be fixed by rebuilding the phonemeextractor
project.
Setting up protobuff
The Source SDK 2013 requires a protobuff version 2.3.0 library. A detailed set of instructions on obtaining and compiling the protobuf library can be found here on the Allied Modders Wiki.
Once compiled, copy the libprotobuf.lib
file from protobuf-2.3.0\vsprojects\Debug
or protobuf-2.3.0\vsprojects\Release
, depending on which configuration it was built in, and paste it into the src\lib\public
directory.
Setting up the Visual Studio Projects
Open everything.sln in either the source-sdk-2013\sp\src
or source-sdk-2013\mp\src
directory depending on if your mod is a single player or multiplayer mod, respectively. A prompt should appear asking if you want to update the VC++ compiler and libraries for each project in the solution. More details of this process can be found here. Click the Update
button to update the projects and solution. If you don't get such a prompt or earlier chose not to update, the projects within the solution can be updated to the newest Visual Studio at any time by right-clicking on the solution and selecting Update VC++ Projects
.
Select the project configuration to be build, either Debug or Release. This is done by right-clicking on the everything
solution in the solution explorer, selecting properties
, then navigating to Configuration Properties/Configuration Manager/Active Solution Configuration
, selecting either Debug or Release (Debug is default), pressing Close
and then Ok
.
Now build the solution by right-clicking on the everything
solution in the solution explorer and clicking Build All
. Now close the everything
solution, open the games
solution and update the projects as you did for the everything
solution. Continue the guided setup process from the Building Shaders section.
Nota:Building the solution before updating sapi and updating the protobuf library may cause a number of compiler errors including missing sapi.lib
and _MSC_VER: value '1600' doesn't match value '1700'
. The following sections should fix these errors.
Nota:Once the build is complete, consider setting up your mod for debugging.
Mac OS X
Environment & Tools Setup
Mac OS X, you will need Xcode 4.2 installed. You will also need to have "Command Line Tools" installed. You can find this at:
XCode Preferences -> "Downloads" -> "Components"
Building The Tools
Remember to create project & make files first!
To run the tools, run this command under Terminal:
> make -f games.mak
When successfully built, you should have client.dylib and server.dylib files to load with the Source SDK Base 2013 of your choice.
Linux
Steam Client Runtime
To build the Source SDK 2013 on Linux you will need the Steam Client Runtime.
- Download the Steam Client Runtime.
- Run the following commands to extract the runtime:
> tar xvf steam-runtime-sdk_latest.tar.xz
> cd steam-runtime-sdk_<version>
Replace <version> with the version you just unpacked.
> ./setup.sh
Pick your architecture and debug/release preferences. Then answer Y to everything else.
> ./shell.sh --arch=i386
SDK Build
Remember to create project & make files first!
With the above prerequisite installed, run the following:
> make -f games.mak
At this point you should have client.so and server.so files to load with the Source SDK Base 2013 of your choice. More instructions on using the Steam runtime can be found in README.txt in the installed runtime directory.
Code Organization
Naming Conventions
The Source SDK is split into two directories at the root for <gameType>, followed by source for <gameName>. If you are building a single player mod, use the "sp" directory. If you are building a multi-player mod you should base yourself on the code in the "mp" directory.
- <gameType>
- sp (singleplayer)
- mp (multiplayer)
- <gameName>
- hl2 (Half-Life 2)
- episodic (Half-Life 2 Episodes)
- hl2mp (Half-Life 2: Deathmatch)
Each directory has a matching Source SDK 2013 Base appID to use to get the base mod files:
- Source SDK Base 2013 Singleplayer
- Client AppID: 243730
- Source SDK Base 2013 Multiplayer
- Client AppID: 243750
- Server AppID: 244310 (see SteamCMD for instructions on how to install this one)
These two base apps are very similar, differing mostly in update schedule. The Singleplayer base will only update with HL2 and the Episodes do, which isn't very often. The Multiplayer base will update a few times a year to incorporate engine changes from TF2 and Counter-Strike: Source. None of these updates should break mod compatibility.
Estructura del directorio
Las carpetas tienen una función y significado, similar a la estructura de un directorio
- game - El contenido de tu mod va aquí.
- src - Contiene todo el código de fuente para ese tipo de mod. La raíz del directorio src contiene archivos .sln o .mak para montar el código.
- common - Un par de archivos usados por las librerías server.dll y client.dll
- devtools - Scripts y utilidades que se usan para montar el código. Se suelen llamar a estos archivos por los proyectos, y no es necesario usar esta carpeta para algo concretamente.
- game - Todo el código fuente para tus DLL.
- client - Código usado por el client.dll (o client.dylib o client.so). Aquí hay carpetas específicas del juego.
- server - Código usado por el server.dll. Igual que arriba, contiene archivos base del juego.
- shared - Código usado por client.dll y server.dll.
- gcsdk - Un par de herramientas para montar las librerías.
- lib - Versiones binarias de las librerías que el código de fuente depende de. Esta carpeta es el directorio objetivo para vgui_controls (controles de interfaz), tier1, y mathlib (matemáticas).
- mathlib - Matemáticas y cálculos usados por el juego.
- public - Archivos de cabecera para todos los DLL y librerías usados para el juego. Incluye unos cuantos archivos de código de fuente.
- thirdparty - Librerías de terceros para montar el código. Por el momento sólo contiene la librería protobuf de Google. Google Protocol Buffers (protobuf).
- tier1 - Clases de utilidad muy prácticas. Se compila en el archivo tier1.lib
- utils - Varias herramientas de desarrolladores.
- vgui2 - Código de fuente para vgui_controls, el cual es usado en client.dll.
Recomendamos que sigas las descripciones para añadir archivos para tu propio mod.
Errores comunes
A veces se pueden encontrar errores comunes en el SDK 2013. Por favor utiliza la Discusiónantes de publicar otras soluciones.
vgui_controls
no compila.
En el 14 de Febrero de 2014, el usuario Mangr0v3 identificó este error como un fallo de la compilación en el directorio cuya dirección contiene espacios: vpc.exe creará archivos .vcxproj con espacios sin comillas, en las direcciones, que provocarán conflictos. Leer https://github.com/ValveSoftware/source-sdk-2013/issues/225
Este error se solventó anteriormente obteniendo una copia nueva del SDK. Si usas el repositorio, simplemente sincroniza el SDK. O puedes descargar el zip de nuevo.
Errores RegKey a la hora de generar los archivos de proyecto
"ERROR: Unable to find RegKey for .vcproj files in solutions."
Este fallo se produce usualmente, y es causado por que no hay una extensión asociada al programa.
Visual Studio 2010
Aviso:Asegúrate de tener 2010 Visual Studio Service Pack 1 o superior instalado.
- Abre el editor de registro (Regedit)
- Tecla Windows + R
- Escribe 'regedit' sin las comillas y Intro.
- Navega a una de estos registros, según el sistema operativo que uses:
# para sistemas operativos de 32-bit (x86) :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects\{60dc8134-eba5-43b8-bcc9-bb4bc16c2548}
# para sistemas operativos de (x64):
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Projects\{60dc8134-eba5-43b8-bcc9-bb4bc16c2548}
- En la clave, tienes que crear un nuevo valor de texto.
- Clic derecho: Nuevo> Valor de cadena
- Rellena el hueco con esto:
- Nombre:
DefaultProjectExtension
- Valor:
vcproj
- Click "OK" para guardar el cambio.
Visual Studio 2012
Hay un parche creado por un miembro de la comunidad para solucionar este tipo de error en el Visual Studio 2012. Úsalo bajo tu riesgo.
Descarga el código desde GitHub (AutoIt v3 es necesario).
Publicando tu mod en Steam
Si tienes un juego basado en Source Engine, ya preparado para publicar en Steam, por favor lee la documentación para más detalles.