Source engine source code
Source engine source code
ValveSoftware/source-sdk-2013
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README
About
The 2013 edition of the Source SDK
Resources
License
Stars
Watchers
Forks
Releases
Packages 0
Contributors 14
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Source Modding — Часть 1 — Основы основ
В мире существует множество игровых движков, но нет ни одного движка, похожего на Source своей историей и особенностями.
В этом (пилотном) уроке мы разберем простейшие действия с исходными кодами SDK, а также внесем наше первое изменение в код Half-Life 2.
Вступление
Немножко терминов
Сам по себе Source SDK — набор утилит и программ, помогающих в разработке собственных уровней и модификаций для игры, а также исходные коды Half-Life 2 и эпизодов.
Игра/Мод (Для сурса нет никакой разницы, игра это или мод :p) — скомпилированные исходные коды SDK.
Так почему же именно Source?!
Что нам необходимо?
Введение в сурс дела
Репозиторий
Исходный код SDK находится в репозитории на GitHub. Склонируйте его в любое удобное для вас место:
Выбор ветки
Если вы хотите написать свой первый мод для Half-Life 2/Episode 1/2, то используйте директорию sp/ и Source SDK Base 2013 Singleplayer.
Стиль кода
Поля класса именуются с префиксом m_, использование венгерской нотации рекомендуется (на то есть свои причины, которые здесь обсуждать нет смысла):
Структура кода
SDK, так же как и движок, разделён на несколько частей.
Вот пути до некоторых таких файлов:
ВАЖНО: При внесении ЛЮБЫХ изменений в VPC файл решение должно быть заново перегенерировано!
Генерация проектов
Исключение HL2
SDK имеет внутри себя также разделение на HL2 и Episodic. Использование второго позволит нам иметь некоторые фичи, например отдельную от стамины шкалу заряда фонарика.
И поэтому, чтобы не компилировать лишний код, мы можем просто исключить HL2 из скриптов:
Другие скрипты
Рядом с creategameprojects.bat также лежит его клон для bash а также два интересных файла — createallprojects.bat и его клон для bash.
Эти два скрипта заставляют VPC создавать проекты не только для чистых библиотек мода, но и для различных утилит, таких как vrad (Radiosity!) или height2normal.
Сейчас использовать я его вам настоятельно не рекомендую, так как свои собственные компиляторы карт нам пока не нужны.
Первичная сборка и запуск
Сборка
Чтобы удостовериться, что вы всё сделали правильно, необходимо собрать всё сгенерированное решение. Итак, собираем (вы же ведь открыли решение в IDE?):
После сборки в папке game/mod_hl2/bin/ или game/mod_episodic/bin/ должны появится наши клиентская и серверная библиотеки!
Запуск — Способ 1 — Steam
Запуск — Способ 2 — Visual Studio
Я рекомендую использовать именно этот способ — не копировать же бинарники мода каждый раз после сборки!
Если карта загрузилась и вы можете передвигаться и двигать камеру мышью — сборка успешна!
Первая модификация в коде
Функции семейства Msg()
Заключение
Чему мы научились?
[Я надеюсь, что] из данного урока мы выяснили:
Что дальше?
Во второй части мы разберем систему сущностей Source SDK.
SourceCE/Source-SP
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
This branch is 134 commits ahead of ValveSoftware:master.
Open a pull request to contribute your changes upstream.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Source SDK 2013 Community Edtion
This is a variation of Source 2013 with community changes to make the game look, run, and play more efficiently and add tools for developers. Some examples are implementing Physically Based Rendering, adding Biohazard’s ShaderEditor, implementing CSM, and more.
If you want to use this mod in your own creations, add attribution to your mod (say that you used this branch and give a link to it). We recommend you use the GitHub client when downloading this because we update frequently.
If you want to help contribute, message Wazanator on Steam or on Discord, or join our Discord server: https://discord.gg/GYza458
Alternatively, you can view proposed changes to be added via this link: https://docs.google.com/document/d/1yRjjMOtkjO590ApCdRn00wWshT9KKOYO0ESQIKBveOw/edit The latest suggestions and changes will always be found on Discord and GitHub
At this time only Singleplayer mods are being worked on, Multiplayer updates should be not-so far into the future.
SOURCE 1 SDK LICENSE
Source SDK Copyright(c) Valve Corp.
THIS DOCUMENT DESCRIBES A CONTRACT BETWEEN YOU AND VALVE CORPORATION («Valve»). PLEASE READ IT BEFORE DOWNLOADING OR USING THE SOURCE ENGINE SDK («SDK»). BY DOWNLOADING AND/OR USING THE SOURCE ENGINE SDK YOU ACCEPT THIS LICENSE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE PLEASE DON’T DOWNLOAD OR USE THE SDK.
You may, free of charge, download and use the SDK to develop a modified Valve game running on the Source engine. You may distribute your modified Valve game in source and object code form, but only for free. Terms of use for Valve games are found in the Steam Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/
You may copy, modify, and distribute the SDK and any modifications you make to the SDK in source and object code form, but only for free. Any distribution of this SDK must include this LICENSE file and thirdpartylegalnotices.txt.
Any distribution of the SDK or a substantial portion of the SDK must include the above copyright notice and the following:
tjhorner/node-source-engine
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
This branch is not ahead of the upstream ValveSoftware:master.
No new commits yet. Enjoy your day!
Latest commit
Git stats
Files
Failed to load latest commit information.
README
About
The 2013 edition of the Source SDK
Resources
License
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Source SDK 2013
OS X instructions are incomplete, the files cannot be possibly built due to the Windows dependencies, they need to be re-written from scratch. Shader build instructions are poorly written, not crossplatform friendly. Valve Project Creator instructions are incomplete.
For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article’s talk page.
Contents
Setting Up (All Platforms)
Setting up the Source SDK Base
Install Source SDK Base 2013 (multiplayer or singleplayer depending on your mod) from Steam->Library->Tools or from the links below:
Getting the code
Method one: Using the GitHub Desktop client (Windows/OS X)
Method two: Using the command line (Windows/OS X/Linux)
Method three: Downloading the ZIP archive
Setting up (Platform Specific)
Source SDK 2013 on Windows
Step One: Installing Visual Studio
You can also compile without Visual Studio, or using a different version.
As of 2021, Microsoft has removed the packages needed for the web-based VS2013 installer to work. To install VS2013 using the ISO method, follow these steps.
If at any point you get stuck, you can watch this video.
Also download and install the Multibyte MFC Library.
Step Two: Installing the Microsoft Speech SDK
Step Three: Compiling the Source SDK and preparing project files
\mp\src\ and run createallprojects.bat and creategameprojects.bat
Step Four : Building the shaders
Source SDK 2013 on OS X
Step One : Requirements
Step Two : Generating the Xcode projects
Run the following scripts to generate project files.
games.xcodeproj and everything.xcodeproj will be generated in the src folder.
Step Three : Building
Step Four : Binaries
When successfully built, client.dylib and server.dylib will be created and ready to use with the desired Source SDK Base 2013 branch (singleplayer or multiplayer).
Source SDK 2013 on Linux
To do: Add instructions for building with the latest Steam Runtime.
Step One: Getting the basic C/C++ development tools
You should already have these, but to be sure, you can run the following command in a terminal:
AMD64 (64 bits) users will need to download and install additional packages to target the i386 (32 bits) architecture, this can be done with this command in a terminal:
Step Two: Preparing the Source SDK 2013
Assuming you have already cloned the Source SDK 2013 through Git (or downloaded the ZIP file), just run the following commands (by replacing [SDK_ROOT] by the location of the Source SDK 2013, [GAME] by «sp» or «mp» depending on your mod and [SCRIPT] by either «./createallprojects» or «./creategameprojects»), go into :
Depending on the script you ran, you will have a master Makefile called games.mak or everything.mak that will be generated in the src folder.
Step Three: Downloading, installing, setting up the Steam Client Runtime
The Steam Client Runtime will help you guarantee compatibility with most GNU/Linux distributions. It is recommended to install it in «/valve/steam-runtime», if you don’t like this and wish to install the Steam Client Runtime elsewhere: symbolic link is your friend. We are going to assume you want to do the first option. Run the following commands in a terminal, make sure to replace «[USER]» by your login and «[GROUP]» by your group name:
Run the «./setup.sh» script in the «steam-runtime» directory, select the «i386» architecture and one configuration of your choice, say «Yes» to everything related to updates.
Step Four: Time to compile
In a terminal (like always), «cd» into the «sp» (singleplayer) or «mp» (multiplayer) directory of the SDK and the «src» directory, just run the following command to compile (replace [MAKEFILE] by «games.mak» or «everything.mak» depending on the one available to you):
If everything went well, you should have the «client.so» and «server.so» files in the «game» directory to load with the appropriate Source SDK Base 2013. You can get more instructions on using the Steam Client Runtime by reading the «README.txt» file in the installed runtime directory.
Setting up on Steam
Other information
Adding new files with the Valve Project Creator
VPC generates project files for all of the platforms that the SDK supports, so if you want to add files to your project in a way that will allow you to easily build on other platforms, consider using VPC. For example, to add a file to a multiplayer game, you could add a line to src/game/client/client_hl2mp.vpc.
Directory structure
Troubleshooting
Or if you don’t feel like downgrading to VS2013 you can try this alternative solution and see if works for you.
Once You finish It should look like this:
MSB8008: Specified platform toolset (v120_xp) or (v120) is not installed or invalid (Windows)
(Project->Properties->Configuration Properties->General->Platform toolset = Visual Studio 2010(v100))
Issues with «min» or «max» from Steam Runtime when Compiling on Linux
If you get any issues mentioning «min» or «max» while compiling on Linux, it is because you are including something that references the STL, and Valve’s macros for min and max are conflicting with it.
Usually GCC is pretty good about telling you which files in particular are erroring.
Go to those files, and surround the erroneous includes with:
This should allow you to compile. Make sure to only wrap the includes that are using the STL, as other, game-related includes may require the Valve min/max macro defines!
evil-inject0r/Source-Engine-2019
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
This branch is 192 commits ahead of quiverteam:master.
Open a pull request to contribute your changes upstream.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Source Engine 2019
Custom Source Engine branch based on Source Engine 2007 currently available on Windows in x86. Forked from Quiver.
Install Visual Studio 2019 Community, Make sure to go to Individual components and install C++ MFC for v142 build tools (x86 and x64)
Run /src/createallprojects.bat and build the solution either as release or debug.
Run /src/materialsystem/stdshaders/buildallshaders.bat, then build stdshader projects.
64-bit support is being worked on. In the current state the entire codebase compiles as 64-bit but it cannot be started at this point. Feel free to contribute with a pull request.
Run createallprojects-x64.bat to create 64-bit projects. To build 64-bit projects you need to run build-solution-x64.bat through the Microsoft Developer Command Prompt for VS2019.
You can run the engine with run_mod_hl2.bat or run_hl2r.bat.
Linux support is currently being worked on in the posix-support branch. Feel free to contribute with pull-requests.
Feel free to contribute to the project with pull requests. They will be reviewed and merged as fast as possible.
Source SDK 2013
Contents
Для начала скачайте исходный код размещённый на GitHub Valve Software Source SDK repository. А теперь вперёд, к созданию великих и прекрасных модов!
Скачивание исходников с GitHub
Git репозиторий
Установка клиента для GitHub (Windows & Mac)
Если Вы хотите обновить код, вы можете сделать это, нажав «Sync» в самом клиенте или кнопку «Sync Branch» в самом репозитарии.
Git CLI (Для всех платформ)
Подробные инструкции о том, как работать с Git на любой платформе с использованием командной строки, включая обновление с репозитария, смотрите на GitHub.
Так, например, с помощью командной строки можно создать копию source sdk 2013 на Вашем компьютере (только с установленным CLI клиентом):
Скачивание
Можно просто скачать ZIP архив со всеми обновлениями, но соответственно загружать и обновлять код придется в ручную.
Особенности создания файлов проекта на различных ОС
Создание файлов проекта и make-файлов
SDK 2013 использует Valve Project Creator (VPC) для создания специальных файлов платформы и make-файлов проекта. Эти специальные файлы, необходимы для создания SDK. Если после выполнения этого шага, Вы обновили какие-либо файлы, то необходимо все действия выполнить повторно.
ОС Windows
В результате должны появиться файлы с расширением *.vcxproj (Visual Studio Project) и *. SLn(Solution) в директории SRC.
ОС Mac OS X & Linux
В результате в Mac OS X должны появиться файлы проекта `*.mak` и Xcode в директории SRC.
в ОС Linux, `.mak` файлы будут сгенерированы в SRC директории.
Информация о VPC
Для получения дополнительной информации о том, как можно использовать скрипты VPC перейдите на страницу, или выполните следующую команду под любой ОС:
Информация о Git репозиторий и игнорируемых файлах
Все сгенерированные файлы с помощью VPC перечислены в файле с расширением *.gitignore и игнорируются при обмене с Git репозиторием.
ОС Windows
Требования к компонентам системы
Чтобы создать Source SDK 2013 под ОС Windows вам нужно Microsoft Visual Studio 2010 с Service Pack 1. Также можно использовать Visual Studio 2012 но только при установленном Visual Studio 2010, при этом в настройках проекта не выбирать «updating», при новой компиляции (Дополнительно в комментариях на GitHub).
Если для создания вашего проекта нужен phonemeextractor, то вам необходимо скачать SAPI 5.1 от Microsoft. Мы не поставляем Speech SDK с Source SDK. Для установки просто поместите sapi51 в каталог src/utils/.
Создание
В результате у Вас должны появиться client.dll и server.dll, необходимые для загрузки Вашего мода под Source движком.
Создание шейдеров
Для добавления шейдеров в ваш мод вам необходимо создать специальные файлы. Для этого, откройте окно командной строки и введите:
Более подробную информацию об инструментах работы с шейдерами Вы можете найти в Source SDK здесь.
Mac OS X
Требования к компонентам системы
В Mac OS X, вам понадобится установленные Xcode 4.2 и «инструменты командной строки» («Command Line Tools»). Вы можете найти это в:
Создание
Запустите инструменты, введите следующую комманду в Terminal:
Когда успешно соберется, вы должны увидеть client.dylib и server.dylib файлы загруженными вместе с Source SDK Base 2013 на ваш выбор.
Linux
Время выполнения клиента Steam
Для построения Source SDK 2013 на Linux ОС, вы должны иметь Steam Client Runtime.
Замените на ту версию, которую только что распаковали.
Выберите вашу архитектуру и debug/release свойства. Затем ответьте Y ко всему остальному.
Постройка SDK
Выполните следующую команду:
В результате у Вас должны появиться client.so и server.so, необходимые для загрузки Вашего мода под Source движком.
Организация кода
Принятые обозначения в названиях файлов
Каждому каталогу требуется свой Source SDK 2013 Base AppID (Идентификатор приложения) для получения базовых файлов:
Эти два базовых приложения очень похожи, различаются в основном графиком обновления. Singleplayer база обновляется только при обновлении HL2 или Эпизодов, которые происходят не так часто. Multiplayer база обновляется несколько раз в год чтобы включить изменения в движке от TF2 и Counter-Strike: Source. Ни одно из этих обновлений не должно сломать совместимость модов.
Структура папок
У всех папок примерно одинаковая структура:
Мы рекомендуем вам следовать данного соглашения при создании собственного мода.
Общие ошибки
Здесь перечислены общие ошибки SDK 2013, имеющиеся на данный момент. Используйте Discussion перед написанием других решений.
«RegKey ошибки при генерации проектов»
Эта проблема обычна вызвана отстутствием ассоциаций с расширениями файлов в вашем реестре.
Visual Studio 2010
error MSB8008: Specified platform toolset (v120_xp) or (v120)
(Project->Properties->Configuration Properties->General->Platform toolset = Visual Studio 2010(v100))
Вы так же можете увидеть действия на скриншоте.
Это работает в Microsoft visual C++ 2010 SP1, как при «release» так и при «debug».
Visual Studio 2012
Утилита созданная участником сообщества для исправления такого типа ошибки в Visual Studio 2012. Используйте на свой риск. Скачать здесь: GitHub (Требуется AutoIt v3).
Не компилируется vgui_controls
Проблема решается приобретением свежей копии дистрибутива SDK. Если вы используете локальный GitHub репозиторий, синхонизируйте (pull) ваши репозитории. Иначе можете скачать ZIP-архив и обновить файлы вручную.
nillerusr/source-engine
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Welcome to source engine:)
About
Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
Resources
License
Stars
Watchers
Forks
Releases
Packages 0
Contributors 11
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
SDK Installation
Contents
The Source SDK is freely available to all Steam users. It is used to develop mods and content for the Source 2006, Source 2007 and Source 2013 engine branches.
Valve games since 2008 onward started to have their own SDK or Authoring Tools, and are engine versions that have no source code available to the public (except Alien Swarm):
SteamPipe migration and abandonment of the Source SDK app
Previously these tools were distributed together under the «Source SDK» tool, which resided in a totally different folder from the games. Valve moved towards a model more similar to L4D and CS:GO. The SDK tools are currently shipped with the game by default. Note that the tools are only available for Windows.
The tools are located in the respective bin folder for the game (e.g: [steam]/steamapps/common/Team Fortress 2/bin ) and are meant to be launched from the following batch files:
Installation of source code and launcher
The following instructions are appropriate if you need to download Source code. If you only need the authoring tools, they probably do not apply to you.
Source 2013
Legacy branches
Click here to install the Source SDK For future reference, or if that doesn’t work:
Running
Once Steam has finished downloading you can launch the SDK from the Tools tab. You can also create a desktop shortcut by right-clicking on the SDK in the Tools tab and clicking Create desktop shortcut from the context menu that appears.
When you first run the SDK it will spend a long time extracting its downloaded archive to loose files on your disk. This will not happen again until the SDK is next updated.
After that, you will be able to select a game and run any of the tools provided by the launcher. However, you will run into problems unless the game you want to work with is fully up to date. You can make sure it is by launching the game and quitting once you get to the main menu.
Where do I go from here?
If you want to learn about how to create content for the Source Engine in general, the main page of the Source SDK documentation is a good place to start.
VSES/SourceEngine2007
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
About
Topics
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
ar1a/Source-Engine-SDK
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Setup like this
About
Resources
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Is the source code of the Source Engine available?
Is the full C++ source code of the Source Engine available?
I know the SDK is available with the purchase of a Source-based game, but my goal is to find a open-sourced game engine that includes its full implementation details for learning purposes.
2 Answers 2
No, it is not. You may obtain a source license from Valve, but Source itself is not open-source.
Further, it is generally a very dangerous approach to use entire existing engines as learning material without guidance from somebody who was heavily involved in the development of that engine.
Source code alone only tells you the how of particular design decisions, not the why behind most of those decisions which is often extremely important given that so many choices in software engineering are from among generally equally-valid options. You need context to understand why a choice is good, and if you just look at the source of some engine and parrot their techniques and idioms, you are hardly learning anything useful.
Further, just because code shipped a game doesn’t make that code good (Source in particular is prone to lot of now very outmoded design decisions with respect to C++ and OO, for example). There are plenty of horror stories dwelling in the engine codebases of even the most successful AAA titles. And as an impressionable neophyte, how are you going to be able to tell the good code from the bad?
Be very careful using source code as a learning resource, and make sure to pair it with as much supplementary information as you can.
tl;dr: Learning how to make an engine is often as useful to game making as learning to build your own computer and operating system from scratch. If you not an expert in the field, you probably do not want to make an engine. Make a game instead, the engine part already exists. Later on if none of the engines you have access to meet the criteria for your game design, you could focus on building that specific aspect and hell it might be useful to others as well since you are creating something new and not rehashing a less robust version of something that people already invested thousands of hours in.
Long version: If you really want to learn how to write an engine, don’t look at an existing engine yet. Learn instead of the parts (algorithms) that make an engine, be it rendering, physics or path finding etc. Once you gain a deep understanding of a specific aspect, you may want to check out source.
You normally do not wish to learn directly from source unless there is no superior alternative. Even experienced programmers normally would not look at the source of an entire engine to learn from it (if they can help it), they would most likely inspect a specific part of it or tweak a certain part of it. Trying to look at the source for pure learning purpose would not expose the procedure and thought process behind the engine code; That would be like tearing a building apart ti pieces in an attempt to see its insides in order to learn how to build one. While I agree with Josh’s answer, I will take it another step further, you do not even learn the «How» in many senses (unless you are familiar with the field); for instance, what methodology was used by the programming team? What principles did they rely on to implement working code? What tools and techniques did they use for debugging? All these questions are sometimes more important than the code itself (for learning purposes).
If you do wish to learn from source, look for source that is well documented and has a strong community built around it. Reading (engine) code, even if you’ve written it yourself, is often confusing.
Source SDK. Вступление
Всем привет! Результаты голосования в моей предыдущей публикации показали, что среди вас есть люди интересующиеся данным направлением.
Итак, для того, что бы начать работать с Source SDK нам понадобится.
По пути (\Steam\steamapps\common\Source SDK Base 2013 Singleplayer\bin) hammer.exe
Открываем путь \Source SDK Base 2013 Singleplayer\ и создаем папку mymod и файл gameinfo в формате текста и следующим содержимым
Запускайте хаммер, все работает!
Не могу понять, какой смысл изучать Source в 2019 году? Только если ты прям мощный фанат какой-то из игр Valve.
Ну например, низкий порог вхождения, что бы освоить фундаментальные основы.
А чем тот же Unity или Godot не годны? На них хотя бы игру потом можно сделать. С таким уже успехом можно изучать редактор Starcraft 2 или Creation Kit.
Годны, любые, которым владеет умеющий человек годны еще как.
Не соглашусь, здесь инструментарий можно так же расширять.
А с помощью unreal engine нет?)
Настраивается в два клика. Простой уровень в три клика.
Никакого, как и в 2002-ом. Там все скрипты уже написаны, движок для ленивых миллионеров.
Ну если сравнивать блек месу с left alive, anthem или с тем же project borealis то можно понять какой движок более прогресивный и современный
Мне так не кажется, там весьма затратный по времени процесс, объединять с допустим маном по редактору я не хочу.
Эх, помню свои старые уровни на Source с 2010 года (когда только начал изучать) и по сей день, иногда возвращаюсь чтобы закончить свои уровни для проекта. Сам не понимаю почему Source SDK, ведь есть Юнити и анриал, просто есть какой-то шарм в движке. Если был бы Source 2 SDK перешёл бы на него, но, увы, он доступен только внутри компании.
Просто BSP архитектура)
BSP тоже есть в UE4, разве нет?
Вот тоже бесился с освещения, когда делал уровень для CS:GO.
CSGO? Там же норм свет, надо просто смотреть пресеты для скайбокса
Там вроде сломано освещение в реальном времени.
Тестовое задание или техническое?
Везде полезем, куда глаза глядят туда и полезем, попробуем что-нибудь необычное, полазим по форумам разным, побыдлокодим конечно же!
Я в процессе уже
Source Inside
Source Tools
Возможно вы новичок и не имеете представления что такое программирование на C++ и что стоит за этими всеми названиями: «компиляция», «класс», «интерфейс» и так далее, в таком случае, вы должны приобрести базовые навыки программирования на языке C++, после чего можно будет полноценно выполнять поставленные задачи перед программистом мода.
Source SDK предоставляет исходный код для модификации движка игры.
Это означает что вы обладая определенными знаниями и инструментами можете при наличии у вас этого исходного кода внести в него нужную вам функциональность.
Что такое движок?
Например есть некая игра которую вы запускаете на вашем компьютере.
Игра состоит из программного кода и файлов с данными.
Файлы с данными нетрудно понять что это — то из чего строится игровой мир, графика, модели карты,
А код — это то что выполняется процессором, грубо говоря, чтоб эти файлики могли отображаться на экране, двигаться и звучать.
Эту программную часть и называют «движок».
Движок состоит из нескольких систем, каждая отвечает за свою задачу (рендеринг графики, работа с файлами, обработка комманд, работа с сетью, организация игровой сцены, игровые объекты…)
2. Исходники из Source SDK. Скачать всегда можно при помощи Steam.
3. Microsoft Visual Studio 7.1. Работа над кодом производится в данной среде для работы с проектами Visual С++ 7.1 от фирмы Microsoft.
Возможно есть другие пути компиляции проектов Visual С++ но это отдельная тема.
4. Знание как устроен Source SDK.
Часто программисту нужно самому менять те данные которыми оперирует код и знать каким образом эти данные организуются.
Для этого необходимо:
— изучить документацию по Source SDK: http://www.valve-erc.com/srcsdk;
— знать какие есть команды и настройки консоли для разрабочиков модов;
— понимать как создаются карты (bsp);
— понимать как создаются материалы (vmt/vtx);
— понимать как создаются модели (mdl);
— понимать как создаются звуковые скрипты и ресурсные файлы.
Эти вопросы рассматриваются в других туториалах. 5. Игра Half-Life для запуска вашего собственного мода.
После того как вы создали новый мод (Play Games → Tools/Source SDK → Create a Mod → Modify Half-Life 2) открываем файл src/Game_sdk.sln
Файл sln — это Solution — решение, такой вот термин в Visual Studio. Почему не называют его проектом как в Visual Studio 6?
Решение (.sln) состоит из нескольких проектов (.vcproj), которые можно генерировать все сразу или по отдельности.
Данный файл решения состоит из двух проектов:
client — клиент
hl — сервер
Зачем их два, а если у нас например, не будет мультиплеера в игре?
В любом случае, будь то мультиплеер или синглплеер движок будет состоять из двух частей. Это обясняется тем что сам механизм имитации игрового мира разделен на две зависящие друг от друга стороны.
Что делает сервер, а что клиент, в чем их разница?
Сервер выполняет имитацию виртуальной реальности в реальном времени позволяя синхронизировать различные игровые объекты;
к серверу присоединяются клиенты которые тоже являются этими объектами, один или несколько, вообще в движке Source может быть до 255 клиентов.
В случае сетевой игры через интерент или локальную сеть, запускается общий сервер который синхронизирует всех клиентов, а в одиночной игре работают только свой локальный сервер и клиент.
За что отвечает клиент? Он выполняет ввод управления от игрока и вывод информации в том числе поступившей от сервера. Тоесть он реализует интерфейс с игроком.
Обычно все что невозможно (нет надобности) каким-либо образом выводить для игрока не выполняется на клиенте.
Вообщето клиент имитирует примерно то же что и сервер, но не может превышать больше полномочий чем сервер. Поэтому для сервера важно только то что клиент может передавать состояние игрока, и может вносить разные настройки сервера, предусмотренные разработчиками.
Вот мы и пришли к тому что в движке есть две разные стороны которые выполняются паралельно и зависят друг от друга.
Теперь как это выглядит в исходном коде.
Есть часть кода который отвечает за сторону клиента, есть часть кода сервера, и есть часть кода которая у них общаяя.
В результате компиляции этого кода получается два DLL модуля (клиент и сервер).
Серверный код находится в директории src/dlls.
В нем содержится иерархия серверных классов, в котором одни классы являются базовыми для порождаемых дочерних классов. При проектировании классов все общие свойства нескольких дочерних классов содержатся в родительском.
Серверные классы обычно имеют имена подобные CИмя (CBaseEntity, CBasePlayer).
Сервер отвечает за суть происходящего в игре, для него не важно как это нужно отображать на экране игрока, важна сама логика происходящего.
В результате сборки проекта src/dlls/hl_sdk.vcproj получается файл server.dll.
Код клиента находится в директории src/cl_dll.
Содержит иерархию клиентских классов. Классы клиента обычно имеют имена подобные C_Имя (C_BaseEntity, C_BasePlayer). Все классы игровых объектов которые участвуют в имитации мира имеют соответствующий класс на стороне сервера.
Здесь содержится код управлющий рендерингом моделей, озвучкой, обработка GUI-интерфейса, вывод текстовых сообщений, обработка ввода клавиатуры и мыши
В результате сборки проекта src/cl_dll/client_sdk.vcproj получается файл client.dll.
Если поместить DLL файлы клиента и сервера в директорию bin вашего мода, движок сможет их подключить при запуске.
Общий код лежит в директориях src/public и src/game_shared.
В директории linux_sdk содержатся файлы для создания специального для этой платформы файла компиляции — Makefile, если вы занкомы с Unix, то уже догадались что он нужен для компиляции порта сервера под Linux.
Кроме того в Source SDK есть разные вспомогательные исходники, которые непосредственно не относятся к движку игры, их можно найти в директории src/utils
Это различные утилиты, ну например вы решили сделать какойто свой редактор для файлов в форматах движка Source, вам могут потребоваться такие исходники.
Вникаем в подробности
Для начала сделаем первый шаг в программировании мода.
Открываем файл src/dlls/hl2_dll/hl2_player.cpp
Находим реализацию метода PlayerUse, который отвечает за нажатие на клавишу USE
CBaseEntity *pUseEntity = FindUseEntity ();
Сборка файлов выполняется коммандой Build → Build Solution.
В окне вывода (Output) мы можем видеть вывод процесса сборки:
Первая компиляция может занимать довольно много времени.
Если сборка произошла удачно, в самом конце вывода будет сообщено:
Build: 2 succeeded, 0 failed, 0 skipped
Сгенерированные в результате файлы автоматически копируются в директорию bin вашего мода (в соответствии установкам Custom Build Step).
Теперь если запустить игру с нашими изменениями при использовнии каких-либо предметов (поднимите какойто предмет клавишей USE) мы должны видеть сообщение «Hello MOD!».
Запускать мод можно с помощью файла run_mod.bat в директории вашего мода.
Рассмотрим подробнее параметры командной строки для запуски собственных модов.
Вот пример:
Запомните одну из очень ценных возможностей имеющуюся в Visual Studio — это поиск в файлах с кодом.
Find in Files — поиск в файлах или Ctrl+Shift+F с клавиатуры.
С помощью поиска вы можите исследовать исходный код, и находить самые важные для вас места для модификации.
Первым делом следует рассмотреть базовые вещи с которых нужно начинать знакомство с устройством движка.
Серверу и клиенту предоставляются различные программные интерфейсы которые предоставляют огромный список различных возможностей.
Например,
IPhysics — обработка физики;
IMaterial — огранизация системы материалов;
ICommandLine — работа с коммандами консоли;
IBaseFileSystem — запись/чтение файлов;
IEngineSound — вывод звука;
IInput — ввод клавиатуры или мышки;
и так далее…
Этот список довольно длинный, детальное рассмотрение требует большего объема чем данный туториал.
Чтобы в определенном месте кода сделать проверочный вывод информации на экран например чтобы проконтролировать как выполняется код — используйте вспомогательные функции:
UTIL_ClientPrintAll, ClientPrint или Msg
При дальнейшем изучении как устроен движок встретится много деталей которые важно будет понимать:
серверные и клиентские энтити и их система взаимодействия, таблицы строк, система сообщений, события, обработчики событий, система кэширования, и многое другое.
Все это рассмотрим в следующих туториалах.
AgentAgrimar/source-sdk-trilogy
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
A fully working Half-Life: Source, Half-Life 2 + Episodes, ready to be modified and compiled!
Source SDK Copyright(c) Valve Corp.
THIS DOCUMENT DESCRIBES A CONTRACT BETWEEN YOU AND VALVE CORPORATION («Valve»). PLEASE READ IT BEFORE DOWNLOADING OR USING THE SOURCE ENGINE SDK («SDK»). BY DOWNLOADING AND/OR USING THE SOURCE ENGINE SDK YOU ACCEPT THIS LICENSE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE PLEASE DON�T DOWNLOAD OR USE THE SDK.
You may, free of charge, download and use the SDK to develop a modified Valve game running on the Source engine. You may distribute your modified Valve game in source and object code form, but only for free. Terms of use for Valve games are found in the Steam Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/
You may copy, modify, and distribute the SDK and any modifications you make to the SDK in source and object code form, but only for free. Any distribution of this SDK must include this LICENSE file and thirdpartylegalnotices.txt.
Any distribution of the SDK or a substantial portion of the SDK must include the above copyright notice and the following:
If you would like to use the SDK for a commercial purpose, please contact Valve at sourceengine@valvesoftware.com.
About
A fully working Half-Life: Source, Half-Life 2 + Episodes, ready to be modified and compiled!
lua9520/source-engine-2018-hl2_src
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
About
Leaked TF2 Source Engine source code from
2018. Thanks Tyler McVicker! (lib, tools/runtime excluded)
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
BlackRa1nFR/source-2003
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
About
Source Engine 2003 code leak
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
thexa4/source-pbr
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README
About
Source Engine Physically Based Rendering implementation
Topics
Resources
License
Stars
Watchers
Forks
Releases
Packages 0
Contributors 6
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Source engine source code
10,284 | уникальных посетителей |
519 | добавили в избранное |
You can find a more up to date version on my site now: https://www.wazanator.com/tutorials/sp2013setup/
I would also highly recommend checking out Mapbase! It has a lot of great additions to the Source SDK 2013 singleplayer base including Vscript support.
https://www.moddb.com/mods/mapbase
Don’t feel like reading or need a visual aid? Here’s a video
Check out my other guide if you are wanting to do multiplayer
EDIT: It would seem Steam does not like my links to Microsofts site for some reason. So if you see LINK REMOVED let me know in the comments. But all links should be in the description of the video
To start off you’re going to need to download a few things:
NOTE: Default notepad has some issues when looking at files like gameinfo.txt the formatting is kind of off. It’s still usable but I highly recommended notepad++ so you dont have to deal with it.
Once you have installed both Source SDK base 2013 singleplayer and visual studio 2013 run both to make sure they launch before continuing.
Choose a location you want for your mod source files to be. This will serve as the location that you will keep all your files both WIP and final. This includes but isn’t limited to maps, models, sounds, textures, scripts, code, etc.
Once you’ve picked out a spot create a new folder and name it your mods name.
Move the source-sdk-2013-master.zip into this folder, right click it and choose to extract it here.
Open up the Source-sdk-2013 folder and delete the MP branch since we do not need it.
NOTE: There can’t be any spaces at all in the file path, I suggest putting it at the top of one of your drives
Run the SpeechSDK51.exe file you downloaded. 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 of your mod and rename it sapi51.
Navigate to sp\src\utils\sapi51\Include and open sphelper.h in visual studio.
The following are changes you need to make to the code (hint if your line numbers are off by default read this [msdn.microsoft.com] ):
Navigate to source-sdk-2013\sp\src
Run both createallprojects.bat and creategameprojects.bat
Open games.sln in visual studio 2013. It shouldn’t ask if you want to update files but if it does say yes. Right click on the games solution and go to properties.
Choose Configuration Properties then click Configuration Manager.
For the Active Solution configuration choose Release
Click Close, then OK.
Right click on the games solution again but this time choose «Rebuild Solution». Wait for it to compile. If you did everything correctly you should get no errors. If you get an error debug it like you normally would, if you have never really coded before this means google the error and try and figure out why it broke on your own. Yes this might mean spending thirty minutes to an hour to figure out what broke. If you can’t figure it out and you have put a good amount of time into trying to do it on your own post on the forums as well as other places like stack overflow.
Do the same thing as above.
NOTE: If you do not plan on modifying things like vbsp, vrad, vvis, shaders and the like you do not need to bother with everything.sln
Go to Steam\steamapps\common\Source SDK Base 2013 Singleplayer
Copy the hl2 folder.
Paste it into Steam\steamapps\sourcemods (should be about 2.6 GB)
Rename it to your mods name (if your mods name contains spaces use underscores instead and use no capitals or special characters).
Source engine source code
1,550 | уникальных посетителей |
30 | добавили в избранное |
This guide will walk you through the steps of making your very own functional mod with help of the Source SDK 2013.
In this guide we will set up Visual Studio 2013 along with the important Source SDK 2013.
You will have to download a lot so if you are not patient you should download the neccessary files over night so you do not have to wait.
Side note: Visual Studio 2015 will NOT work with Source SDK 2013!! I tried it myself and I could not get it to work any way possible not even when using the settings from VS 2013! You need Visual Studio 2013 for this guide! I am sorry if you have any other version of Visual Studio installed, but you will have to use Visual Studio 2013 here!
This part is actually pretty simple! (for once at last)
Just press ‘Run’ and ‘Install’ if you are asked to.
and press ‘Open in Desktop’ After that just wait for GitHub Desktop to open and then you are asked to select where to save the files. Just select some directory where you wanna store all your development files. Hit ‘Ok’ and let GitHub do its thing.
After having downloaded the installer for Visual Studio 2013 from the link provided in the ‘Requirements’ section,
you just have to open the downloaded installer. Simple.
Just choose where to install Visual Studio 2013 (Side note: VS2013 will require a lot of space on your hard drive so be careful where you install it!), tick ‘I agree to the Terms of Service’ and you do not have to tick the second box, but you can (I usually leave it unticked). Then you press ‘Continue’ or ‘Install’ depending on your language you use. Then you will see a screen similar to the one on the right of this text. ONLY tick ‘Microsoft Fundation Classes for C++’, because you will not need anything else that is provided here. IF you want to install any of the packages later on just re-download the installer, open it, and press the ‘Modify’ button.
The next step is to press ‘Install’ on the bottom of the screen and grab about 8 and a half mugs of coffee (Well I drank that many I do not know if coffee is your thing so if you do not like coffee then, first of all wtf, but second of all just grab a tea or hot chocolate if that is more your thing)
## 1 1/2 hours later ##
(Thats how long it took for me, but it is hard to compare since I have a download speed of 7.5 Megabyte per second)
After the waiting game is over you should be greeted with a screen where you can log into a Microsoft account. You do not have to, but it will syncronize your settings over every computer aka. instance of VS2013 you log into. If you do not want to or you do not have a Microsoft account then just press the ‘Not now. Maybe later.’ link under the Login button.
NOW VISUAL STUDIO IS READY! good work.
It is pretty simple just run the installer for the VC Redistributable FIRST!! This is very important that you do it in the right order!
Then after installing the VC Redistributable you just install the Link Shell Extension. I advise you to install it on your C:\ drive, because I had some issues with Windows not finding the program sometimes for some random reason when I installed it on a seperate hard drive than the C:\ drive.
Just press: ‘Next’, ‘Next’, ‘Install’ and then you will be asked to restart Explorer. Press ‘Yes’ or restart your computer, but just restarting Explorer is way faster in some cases.
Your complete utils directory should look something like this.
Foot note: Since you copied it to the source-sdk-2013 directory you only need to do this once for both branches (sp and mp) and then the next time you make a game just copy the appropriate folder and rename it to your games name or do it like I do and decide the name later and just name everything ‘project01’, ‘project02’, etc.
For this step you need to be in your source-sdk-2013 directory. just saying.
So if you want to make a multiplayer game; copy the «mp» folder to your desired work location. And if you want to make a singleplayer game do the same for the «sp» folder
After having copied either the ‘sp‘ or the ‘mp‘ folder and renaming it to something useful, you go into the copied directory and open the «src» folder.
For a game that doesn’t need custom shader stuff and doesn’t need to modify the engine itself you just need to run the ‘creategameprojects.bat‘ and wait for it to finish. Then refresh the file browser by hitting the ‘F5’ key.
You should see a new file called ‘games.sln‘. Open it and wait for Visual Studio 2013 to update, parse and scan all files (As shown below).
Then go click the arrow left of ‘Configuration Properties’ and select ‘Debugging’. After that go to the field ‘Command’, click the arrow in the right field, select ‘Browse. ‘ and then open either.
For singleplayer mods:
and for multiplayer mods:
In the next field below (‘Command Arguments’) you will can just copy the following code:
This will start the game in windowed mode so you can see any errors showing up.
The next step is to copy do the same for the Release configuration. You can switch to the Release configuration in the top left of the properties window. Just click the drop-down menu that says ‘Debug’ or ‘Active(Debug)’ and change it to release. Now do the same as before. The exact same. After that change the configuration back to ‘Active(Debug)’.
After that just press ‘Apply’ and close the window or just press ‘Ok’, but do not forget to save the changes.
You probably don’t want to copy the compiled files everytime you change something. That’s why you need the Link Shell Extension. It allows you to trick Windows to think that a symbolic link is a real folder.
This is pretty easy to do. Just select both projects again, right-click and then hit ‘Build Selection’. After that Visual Studio will compile the game for the first time. It will take some time tho.
This is a good point to restart Steam so the game shows up in your library.
If you restart Steam you should see a new game called ‘My First Episodic Mod’ or something in that general direction. Congratulations this is your game / mod.
Source engine source code
1,390 | уникальных посетителей |
45 | добавили в избранное |
The Source Engine is a game engine created by Valve Software. The engine was first used in a commercial game in 2004 for the game Counter-Strike: Source. Later that year, Half-Life 2 and Half-Life 2: Deathmatch were both released on the Source Engine as well. Since then, the Source Engine has been used in all of Valve’s commercial games, as well as several third party games and a huge number of mods. And now I’m going to teach you how to make your own Source Mod.
When modding on the Source Engine, there are several different engine versions to choose from. This list will give you a basic idea of which engine type you’ll want to use to create your mod.
Source Engine 2006
This is the oldest version of the Source Engine. This version is used by Half-Life: Source, Half-Life: Deathmatch and various mods built on the old Source 2006 code.
NOTE: Anyone can play mods on this engine version, as long as they have the Source SDK Base 2006.
Source Engine 2007
This is the engine version that most Source Mods use. Various Source Mods have used this engine version such as Black Mesa, Dear Esther (mod), Minerva and The Stanley Parable (mod).
NOTE: Anyone can play mods on this engine version, as long as they have the Source SDK Base 2007.
Source Engine 2009
This is the engine version that is currently used by Half-Life 2, Half-Life 2: Episode 1, Half-Life 2: Episode 2 and Portal. This engine version doesn’t currently have a source code available.
NOTE: You can still mod this engine version, read Creating a mod manually.
Source Engine MP
This is the engine version that is currently used by multiplayer Source games. This version is used by Team Fortress 2, Half-Life 2: Deathmatch, Counter-Strike: Source, Day of Defeat: Source and Garry’s Mod. This engine version doesn’t currently have a source code available.
Other things you should know
Games such as Left 4 Dead, Left 4 Dead 2, Portal 2, Counter-Strike: Global Offensive and DotA 2 all run on different engine branches or have their own engine branches.
Half-Life 2 Single Player
Projects for Source Engine 2006 and Source Engine 2007.
Half-Life 2 Multiplayer
Projects for Half-Life 2: Deathmatch. This option is only available if you own Half-Life 2: Deathmatch; otherwise it will be greyed out.
Multiplayer mod from template
A specially-created SDK project that allows you to configure settings such as if your mod is team based, or if you have abilities such as sprinting and prone. This option does not require Half-Life 2: Deathmatch.
Source code only
Dumps the code without creating an actual mod. This handy if you are only creating a server plugin.
Whichever option you choose, you get the same actual source code files (even if you didn’t own one or another game). You also get an «everything» solution which includes a collection of development tools.
Most of the information from this section is from here.
NOTE: Some information has been edited to make it more accurate.
Step 1: Create a folder under steamapps\SourceMods\ (A mod can actually reside anywhere, but placing it here allows Steam to detect and launch it.)
Step 2: Create a gameinfo.txt in the folder. You now have a mod!
Step 3: Open the SDK launcher and switch to the relevant engine branch.
Step 4: Choose «Edit Game Configurations» and click «Add». Enter your mod’s name and folder.
To get the source code (or indeed any other files of Valve’s that you want to modify) you will need to use GCFScape and access sourcesdk.gcf/src_mod/. Remember to change the custom build steps to point to your mod’s folder.
All information from this section is from here.
Source Engine Features
Contents
Rendering System
Source features fast, reliable and flexible technology to render computationally intensive game environments. The highest-performing shader-based rendering available to game developers helps you quickly produce even the most complex scenes quickly and efficiently. Source’s renderer utilizes advanced processor technologies such as multi-core and SIMD, as well as the latest GPU features via DirectX, to bring your vision to life in vibrant detail.
Advanced Shader Technology
Dynamic Lighting and Shadows
Effects
Materials
Modeling and Animation
Compatibility with popular graphics and 3D modeling software lets you model realistic or highly-stylized characters, weapons, vehicles, and props within the Source environment. A robust set of tools help you efficiently rig, animate, and define physics interactions for a wide range of characters and objects.
Advanced Character Meshes
Create believable characters with accurate human characteristics:
Advanced Animation Tools
Environments
Valve Hammer Editor, the Source map creation tool, is an intuitive design environment for constructing level architecture (geometry, texturing, lighting); placing and scripting models, entities, and NPCs; and compiling and running game levels. Included is the VMPI tool, which greatly reduces map build time by distributing compilation across multiple PCs.
Physics
Source’s highly scalable, network-enabled physics system is both processor and bandwidth efficient. Construct responsive, transformable worlds where AI characters interact with physically simulated objects, and sound and graphics follow from physics. Source’s physics features can be controlled by level design.
Game Mechanics
Innovative and seamless interaction between player and non-player characters is a hallmark of Source-powered games. A sophisticated AI system allows NPCs to follow players, join in the fight, or engage the player in epic non-scripted battles. AI characters can run, fly, jump, crouch, climb stairs, and burrow underground.
Programming
Authored entirely in C++, the Source engine is architected with extensibility, flexibility, and performance in mind. Licensees of Source technology have access to all of the source code that Valve uses to build the Source engine as well as our award-winning games. This allows your development staff to spend its time realizing your game design rather than starting from the scratch.
Audio
Source includes a powerful suite of digital audio technologies to create vibrant, dynamic soundscapes within the game world. Seamlessly blend sound effects, dialogue, and music with visual elements for an intensely immersive and realistic playing experience.
Networking
Source’s multiplayer network code is time and gamer tested by millions of players around the world, with an average of more than 9 billion multiplayer minutes played per month.
Console Support
Source offers an ideal development environment for next-gen console platforms, including the Xbox 360™.
Source SDK
As a team largely comprised of former mod developers, Valve is dedicated to providing the best tools and resources for the modding community. The Source engine and SDK give you all the tools you need to produce brilliant game creations—in fact, more Source-powered mods have been successfully distributed as full-fledged commercial products than with any other engine.
The Source SDK is available free of charge via Steam with purchase of a Source-based game, such as Half-Life 2 or Team Fortress 2. Learn more about building Source-powered mods here.
wobbier/source3-engine
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
About
A simple C++ game engine that utilizes OpenGL and Havok Physics
License
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
ValveSoftware/halflife
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Half Life 1 SDK LICENSE
Half Life 1 SDK Copyright© Valve Corp.
THIS DOCUMENT DESCRIBES A CONTRACT BETWEEN YOU AND VALVE CORPORATION (“Valve”). PLEASE READ IT BEFORE DOWNLOADING OR USING THE HALF LIFE 1 SDK (“SDK”). BY DOWNLOADING AND/OR USING THE SOURCE ENGINE SDK YOU ACCEPT THIS LICENSE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE PLEASE DON’T DOWNLOAD OR USE THE SDK.
You may, free of charge, download and use the SDK to develop a modified Valve game running on the Half-Life engine. You may distribute your modified Valve game in source and object code form, but only for free. Terms of use for Valve games are found in the Steam Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/
You may copy, modify, and distribute the SDK and any modifications you make to the SDK in source and object code form, but only for free. Any distribution of this SDK must include this license.txt and third_party_licenses.txt.
Any distribution of the SDK or a substantial portion of the SDK must include the above copyright notice and the following:
DISCLAIMER OF WARRANTIES. THE SOURCE SDK AND ANY OTHER MATERIAL DOWNLOADED BY LICENSEE IS PROVIDED “AS IS”. VALVE AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES WITH RESPECT TO THE SDK, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, TITLE AND FITNESS FOR A PARTICULAR PURPOSE.
LIMITATION OF LIABILITY. IN NO EVENT SHALL VALVE OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE ENGINE AND/OR THE SDK, EVEN IF VALVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
If you would like to use the SDK for a commercial purpose, please contact Valve at sourceengine@valvesoftware.com.
This is the README for the Half-Life 1 engine and its associated games.
Please use this repository to report bugs and feature requests for Half-Life 1 related products.
If you encounter an issue while using Half-Life 1 games, first search the issue list to see if it has already been reported. Include closed issues in your search.
If it has not been reported, create a new issue with at least the following information:
Please place logs either in a code block (press M in your browser for a GFM cheat sheet) or a gist.
There are basic rules of conduct that should be followed at all times by everyone participating in the discussions. While this is generally a relaxed environment, please remember the following:
Remember: Just because the issue you reported was reported here does not mean that it is an issue with Half-Life. As well, should your issue not be resolved immediately, it does not mean that a resolution is not being researched or tested. Patience is always appreciated.
tmp64/hl1_source_sdk
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Source SDK for Half-Life 1
This repository contains parts of Source SDK 2013 ported to be used with Half-Life 1 (GoldSource) engine. Specifically:
You can find engine interfaces in tier2/tier2.h:
Documentation can be found on Valve Developer Community:
Exploiting the Source Engine (Part 1)
Introduction
It’s been a long time coming, but here’s my first post on a series about finding and exploiting bugs in Valve Software’s Source Engine. I was first introduced to it through the sandbox game Garry’s Mod in 2010, which introduced me to the field of reverse engineering and paved the way for my favorite hobby, my education, and my eventual employment.
I took a long hiatus from working with the Source Engine when I went to college and got involved obsessed with playing CTF competitions, a type of competition where participants solve challenges that mimic real-world reverse engineering and exploitation tasks. One day, I saw a post made about a TF2 RCE proof-of-concept released against the engine. To be honest, the bug and the exploit was very simple, and nothing more difficult than some of the intermediate challenges one would find in a good CTF. With that knowledge under my belt, I decided to prove myself and come back to the Source Engine with the goal of finding a true Remote Code Execution (RCE).
NOTE: As of writing, the vulnerability has not been publicly disclosed. I will be doing a writeup of the bug and exploit chain if/when it goes public.
Source games Dota 2, CS:GO, and TF2 continue to hold top active player counts on Steam. |
The Source Engine
The Source Engine is a third generation derivative of the famous Quake Engine from 1999 and the Valve’s own GoldSrc engine (the HL1 engine). The engine itself has been used to create some of the most famous FPS game series’ in history, including Half-Life, Team Fortress, Portal, and Counter Strike.
Timeline:
The Code:
The first thing that I didn’t truly appreciate about this engine (and other engines in general) is how large it is. The engine is gigantic, featuring millions of lines of C++ code to develop, render, and run games of all types (but mostly first-person games).
The code itself is old and unmaintained. Most of the code was very obviously rushed out to meet deadlines, and honestly it is a huge surprise that the engine even functions at all. This is not unique to Valve, and is very typical in the game development world.
A lot of the C++ classes included in the engine are straight up dead code. Big features were designed and developed, yet only used for very small parts of the engine. The 2013 SDK tools themselves still have difficulty building valid files for their current engine versions of the engine. Classes derive from anywhere from one to nine or more different base classes, and tend to feature a never-ending maze of abstractions on abstractions. Navigating this codebase is time consuming and generally unpleasant for beginners. All in all, the engine is due for a legacy code rewrite that will likely never happen.
Intro to Source Games:
Source Engine games consists of two separate parts, the engine and the game.
Lastly, a big feature of all Source games that was taken and evolved from the Quake engine is the ConVar system. This system defines a series of variables and commands that are executed on an internal command line, very similar to a cmd.exe or /bin/sh shell. The difference is that, instead of executing new processes, these commands will run functions on either the client or server depending on where its run. The engine defines some low-level ConVars found on both the server and client, while the game dlls add more on top of that depending on the game dll that’s running.
This is just an intro, more on all of this to follow in future posts.
The Bugs:
All of this old code and custom formats is fantastic for a bug hunter. In 2018, all that’s truly necessary to perform a full chain RCE is a good memory corruption bug to take control and an information leak to bypass ASLR. Typically, the former is the most difficult part of bug hunting in modern software, but later you will see that, for the SE, it is actually the latter.
Here is an overview of the Windows binaries:
If you’re an exploit developer, you would probably find the lack of stack cookies in a game engine with millions of players to be a very shocking discovery. This is a vital shortcoming of the already aging engine, and is essentially unheard of in modern Windows binaries. Valve is well aware of this protection’s existence, and has chosen time and time again not to enable it. I have some speculation as to why this is not enabled (most likely performance or build breaking issues), but regardless, there is a huge point to make: Any controllable stack overflow can overwrite the instruction pointer and divert code execution.
Hunting:
When hunting for these bugs, I chose to take a slightly more difficult path of only performing manual code auditing on the publicly available engine code. What this allows me to do is both search for potentially useful bugs and also learn the engine’s internals along the way. While it might be enticing for me to just fuzz a file format and get lots of crashes, fuzzing tends to find surface level bugs that everyone’s finding, and never those really deep, interesting bugs that no one is finding.
As I said previously, the codebase for this engine is gigantic. You should take advantage of all of the tools available to you when searching. My preferred toolset is this:
With these tools, my general “process” for bug hunting is this:
Find some section of the client code I feel is exploitable and want to look into more closely
Start reading code. I’ll read for hours until I come across what I think is a possible exploitable bug.
From there, I will open up IDA Pro and locate the function I think is exploitable, then compare its current code with the old, public code I have available.
If it still appears to be exploitable, I will try to find some method to trigger the exploitable function from in-game. This turns out to be one of the hardest parts of the process, because finding a triggerable path to that function is a very difficult task given the size of the engine. Sometimes, the server just can’t trigger the bug remotely. Some familiarity with the engine goes a long way here.
Lastly, I will write Sourcemod plugins that will help me trigger it from a game server to the client, hoping to finally prove the existence of the bug and the exploitability in a proof-of-concept.
Next Time
Next post, I will go more in-depth into the codebase of the Engine and explain the entity and networking system that the Engine utilizes to run the game itself. Also, I will begin introducing some of the techniques I used to write the exploits, including the ASLR and NX bypass. There’s a whole lot more to talk about, and this post barely scratches the service. At the moment, I’m in the process of working on a new undisclosed bug in the engine. Hoping to turn this one into another big payout. Wish me luck!
Установка Source SDK
Contents
Source SDK доступен бесплатно всем пользователям Steam Он используется для разработки модов и контента для Source 2006, Source 2007 и Source 2009.
Более поздние игры от Valve используют свой собственный набор инструментов SDK или Authoring Tools:
Authoring Tools в настоящее время поставляется в виде бета-версии соответствующих игр
Мы переводим на Authoring Tools следующие дистрибутивы игр:
Ранее эти средства распространялись отдельно от игры объединенные в один пакет (приложение «Source SDK» ). Сейчас же мы делаем схожую с L4D и CS:GO модель инструментов. Согласно той модели SDK Tools по умолчанию является частью игры, поэтому все, что вам нужно сделать, чтобы запустить утилиты SDK Tools, это запустить игру и обновить её до последней существующей версии. Пожалуйста, обратите внимание, что эти инструменты будут доступны только под ОС Windows.
Теперь обратите внимание на папку BIN. (Например: [steam]/steamapps/common/Team Fortress 2/bin ). Там Вы уведите несколько новых *.bat файлов, который можно использовать для настройки среды разработки и запуска соответствующих инструментов:
Если у Вас есть проблема с запуском, убедитесь что не где в путях не прописана переменная среды VPROJECT. Если Вы все же используете VPROJECT, то проверьте значение этой переменной среды в системе Windows, командой set в командной строке и установите правильное значение.
Установка и запуск
Следующие инструкции подходят только для установки Source SDK. Если Вам нужно установить Authoring Tools к какой либо игре, то смотрите разделы соответствующих игр..
Для установки новой версии Source SDK 2013 смотри: Source SDK 2013
Инструкция для установки старой версии Source SDK:
После того, как загрузка была завершена, Вы можете запустить SDK из вкладки Tools. Вы также можете создать ярлык на рабочем столе, совершив клик правой кнопкой мыши по SDK и нажав на Create desktop shortcut из появившегося контекстного меню.
Запуск
Как только Steam закончит загрузку, Вы сможете запустить SDK из вкладки Tools (Инструменты). Вы так же можете создать иконку на рабочем столе, нажав правой кнопкой мыши по SDK во вкладке Tools (Инструменты) и нажав на Create desktop shortcut (Создать ярлык на рабочем столе) в появившемся контекстном меню.
При первом запуске SDK, он будет в течении длительного времени извлекаться на жесткий диск. Этого не случится снова, пока SDK не обновится.
Что дальше?
Shader authoring/Quick Start
Contents
High Level Concepts
The two major pieces of code that have to be written to create a new shader are the HLSL code and the C++ code:
Every shader has one C++ class and one or more HLSL files that it uses to render.
The Source SDK ships with some of our production shaders that can be copied or modified to use in your own mod. To compile them and use them in a game read the following instructions:
2. Install a copy of the source code by running the Create a Mod from the SDK launcher. If the latest version of the source code is already installed, this step can be skipped.
3. Open a Windows command prompt (enter cmd in the start menu ‘run’ dialogue, change to the C:\MyMod\src\materialsystem\stdshaders directory with the cd command. Then type:
This will compile the DirectX 8 and 9 sample HLSL code and copy the resulting files into a directory called shaders in the specified mod game directory.
4. If you wish to build a DirectX 8 shader DLL open stdshader_dx8-2003.vcproj in Visual Studio 2003 or stdshader_dx8-2005.vcproj in Visual Studio 2005 and build it. This will build the C++ part of each shader into a DLL and it will automatically copy the DLL into the game’s bin directory (where the client.dll and server.dll are stored).
Build the solution and verify that game_shader_dx8.dll is now in your game’s bin directory.
5. If you wish to build a DirectX 9 shader DLL open stdshader_dx9-2003.vcproj in Visual Studio 2003 or stdshader_dx9-2005.vcproj in Visual Studio 2005 and build it. This will build the C++ part of each shader into a DLL and it will automatically copy the DLL into the game’s bin directory (where the client.dll and server.dll are stored).
Build the solution and verify that game_shader_dx9.dll is now in your game’s bin directory.
6. Now modify a material (.VMT) file to use the new shaders at the top. Something like the following:
7. The SDK includes some example files that can be copied into a mod to see how to refer to the sample shaders that were just compiled. The relevant sample files are listed below:
Filename | Use |
---|---|
[steam]\half-life 2\hl2\maps\sdk_shader_samples.bsp | Small map that refers to the shaders |
[steam]\sourcesdk_content\hl2\mapsrc\sdk_shader_samples.vmf | Map source |
[steam]\half-life 2\hl2\materials\sdk\sdk_lightmap.vmt | Material sample 1 |
[steam]\half-life 2\hl2\materials\sdk\sdk_particle.vmt | Material sample 2 |
Downloading Unreal Engine Source Code
Steps for connecting to the source code repository and downloading the latest build of Unreal Engine.
In order to understand and use the content on this page, make sure you are familiar with the following topics:
This page provides detailed instructions for subscribers to download the source code for Unreal Engine 4 (UE4) from the Unreal Engine GitHub repository, and toВ get started working with the code.
be an Unreal Engine subscriber.
haveВ a GitHub account.
have associated your GitHub account with your Unreal Engine account as described onВ the UE4 on GitHub page.
You’ll getВ access to all the latest features and bug fixes that Epic engineers make every day, practically up to the minute.
If youВ find a bug that we haven’t fixed yet, but that is crucial to your project, you can unblock your project by making the fix in your own version of the source codeВ and rebuilding your ownВ binaries.
You can improve the engine and help the whole Unreal community byВ submittingВ yourВ fixes and features back to Epic.
If you are an Unreal Engine licensee, you can access the source code through our Perforce server instead of the public GitHub repository.
Source Code Branches
You’ll notice that we’ve published UE4’s source code in three rolling branches.
Release Branch
The release branch is extensively tested by our QA team and makes a great starting point for learning UE4 or making Unreal games. We work hard to stabilize this branch with the goal of releasing new builds every one to two months.
Promoted Branch
The promoted branch is updated with builds for use by our designers and artists. We try to update this branch daily so that our subscribers have access to UE4’s latest stable features. This branch is a great place to learn how feature development works in UE4.
Master Branch
Because the master branch contains cutting-edge technology, UE4 isn’t guaranteed to compile from source.
The master branch tracks live changes being made by our engine team. Our experienced subscribers typically work from this branch when they want to work in tandem with UE4’s developers.
Other branches may appear from time-to-time as we work to stabilize new releases or hotfixes.
Downloading the Source Code
Please follow these instructions to download the Unreal Engine source code.
Please make sure you are running Visual Studio 2015 or higher for Windows Desktop installed before proceeding.
To use Git from the command line, see the Setting up Git and Fork a Repo articles.
If you’d prefer not to use Git, you can get the source with the ‘Download ZIP’ button on the right. The built-in Windows zip utility will mark the contents of zip files downloaded from the Internet as unsafe to execute, so right-click the zip file and select ‘Properties. ‘ and ‘Unblock’ before decompressing it. Third-party zip utilities don’t normally do this.
Install Visual Studio 2017.
Open your source folder in Explorer and run Setup.bat.
This will download binary content for the engine, as well as installing prerequisites and setting up Unreal file associations. On Windows 8, a warning from SmartScreen may appear. Click «More info», then «Run anyway» to continue.
A clean download of the engine binaries is currently 3-4gb, which may take some time to complete. Subsequent checkouts only require incremental downloads and will be much quicker.
Run GenerateProjectFiles.bat to create project files for the engine. It should take less than a minute to complete.
Load the project into Visual Studio by double-clicking on the UE4.sln file. Set your solution configuration to Development Editor and your solution platform to Win64, then right click on the UE4 target and select Build. It may take anywhere between 10 and 40 minutes to finish compiling, depending on your system specs.
After compiling finishes, you can load the editor from Visual Studio by setting your startup project to UE4 and pressing F5 to debug.
To use Git from the Terminal, see the Setting up Git and Fork a Repo articles. If you’d rather not use Git, use the ‘Download ZIP’ button on the right to get the source directly.
Open your source folder in Finder and double-click on Setup.command to download binary content for the engine. You can close the Terminal window afterwards.
In the same folder, double-click GenerateProjectFiles.command. It should take less than a minute to complete.
Load the project into Xcode by double-clicking on the UE4.xcworkspace file. Select the ShaderCompileWorker for My Mac target in the title bar, then select the ‘Product > Build’ menu item. When Xcode finishes building, do the same for the UE4 for My Mac target. Compiling may take anywhere between 15 and 40 minutes, depending on your system specs.
After compiling finishes, select the ‘Product > Run’ menu item to load the editor.
Our developers and support teams currently use the latest version of Ubuntu; as a result, we may not be able to provide support for other Linux distributions (including other versions of Ubuntu).
Open your source folder and run Setup.sh to download binary content for the engine.
Both cross-compiling and native builds are supported.
Cross-compiling is handy when you are a Windows (Mac support planned too) developer who wants to package your game for Linux with minimal hassle, and it requires a cross-compiler toolchain to be installed (see the Linux cross-compiling page on the wiki ).
Licensing and Contribution
Next Steps
Footnotes
The first time you start the editor from a fresh source build, you may experience long load times. The engine is optimizing content for your platform to the derived data cache, and it should only happen once.
Your private forks of the Unreal Engine code are associated with your GitHub account permissions. If you unsubscribe or switch GitHub user names, you’ll need to re-fork and upload your changes from a local copy.
Croteam-official/Serious-Engine
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This is the source code for Serious Engine v.1.10, including the following projects:
These have been modified to run correctly under the recent version of Windows. (Tested: Win7 x64, Win8 x64, Win8.1 x64)
To build Serious Engine 1, you’ll need Visual Studio 2013 or 2015, Professional or Community edition ( https://www.visualstudio.com/post-download-vs?sku=community ).
Do not use spaces in the path to the solution.
MP3 playback is disabled by default. If you need this feature, you will have to copy amp11lib.dll to the ‘\Bin’ directory (and ‘\Bin\Debug’ for MP3 support in debug mode). The amp11lib.dll is distributed with older versions of Serious Sam: The First Encounter.
3D Exploration support is disabled in the open source version of Serious Engine 1 due to copyright issues. In case if you need to create new models you will have to either use editing tools from any of the original games, or write your own code for 3D object import/export.
IFeel support is disabled in the open source version of Serious Engine 1 due to copyright issues. In case if you need IFeel support you will have to copy IFC22.dll and ImmWrapper.dll from the original game into the \Bin\ folder.
This version of the engine comes with a set of resources ( \SE1_10.GRO ) that allow you to freely use the engine without any additional resources required. However if you want to open or modify levels from Serious Sam Classic: The First Encounter or The Second Encounter (including most user-made levels), you will have to copy the game’s resources (.GRO files) into the engine folder. You can buy the original games on Steam, as a part of a bundle with Serious Sam Revolution ( http://store.steampowered.com/app/227780 )
When running a selected project, make sure its project settings on Debugging is set to the right command:
Before starting the build process, make sure you have a «Temp» folder in your development directory. If it doesn’t exist, create it. SeriousSkaStudio has some issues with MFC windows that can prevent the main window from being displayed properly.
Serious Engine is licensed under the GNU GPL v2 (see LICENSE file).
Some of the code included with the engine sources is not licensed under the GNU GPL v2:
About
An open source version of a game engine developed by Croteam for the classic Serious Sam games.
Enhanced-Source-Project/Enhanced-Source
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README
About
This is an unofficial updated branch of the Alien Swarm branch of the Source Engine. The project focuses on improving functionalities of the engine while keeping it developer friendly.
Resources
License
Stars
Watchers
Forks
Releases
Packages 0
Contributors 8
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Особенности Source Engine
Contents
Система Рендеринга
Особенностью Source является быстрая, надежная и гибкая технология рендеринга игрового мира. Высокопроизводительный, основаный на шейдерах, рендеринг доступный игровым разработчикам, помогает быстро создавать даже самые комплексные сцены быстро, и эффективно. Технология рендеринга использует продвинутые процессорные технологии, такие как многоядерный рендеринг, технологию параллельного вычисления (SIMD), также как последние графические процессоры интегрированы с DirectX, чтобы передать вам мир в ярких деталях.
Динамическое освещение и тени
Эффекты
Материалы
Моделирование и анимация
Продвинутые сетки персонажей
Создавайте правдоподобных персонажей с точными человеческими характеристиками:
Продвинутые инструменты анимации
Environments
Valve Hammer Editor, the Source map creation tool, is an intuitive design environment for constructing level architecture (geometry, texturing, lighting); placing and scripting models, entities, and NPCs; and compiling and running game levels. Included is the VMPI tool, which greatly reduces map build time by distributing compilation across multiple PCs.
Physics
Source’s highly scalable, network-enabled physics system is both processor and bandwidth efficient. Construct responsive, transformable worlds where AI characters interact with physically simulated objects, and sound and graphics follow from physics. Source’s physics features can be controlled by level design.
Game Mechanics
Innovative and seamless interaction between player and non-player characters is a hallmark of Source-powered games. A sophisticated AI system allows NPCs to follow players, join in the fight, or engage the player in epic non-scripted battles. AI characters can run, fly, jump, crouch, climb stairs, and burrow underground.
Programming
Authored entirely in C++, the Source engine is architected with extensibility, flexibility, and performance in mind. Licensees of Source technology have access to all of the source code that Valve uses to build the Source engine as well as our award-winning games. This allows your development staff to spend its time realizing your game design rather than starting from the scratch.
Audio
Source includes a powerful suite of digital audio technologies to create vibrant, dynamic soundscapes within the game world. Seamlessly blend sound effects, dialogue, and music with visual elements for an intensely immersive and realistic playing experience.
Networking
Source’s multiplayer network code is time and gamer tested by millions of players around the world, with an average of more than 9 billion multiplayer minutes played per month.
Console Support
Source offers an ideal development environment for next-gen console platforms, including the Xbox 360™.
Source SDK
Source SDK доступен бесплатно через Steam при покупке игры на базе Source, такой как Half-Life 2 или Team Fortress 2. Узнать больше о создании модов на основе Source можно здесь.
BlackPhrase/OGS
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Gold Source is a version of Quake and Quake is open source so maybe that is an option for you.
GoldSource Engine Clone Prototype
Clean open source reimplementation of the GoldSource game engine
Based on original Quake (Id Tech 2) engine sources
For more information about the project you can visit its official Wiki
Q: What’s this?
A: This is a GoldSource game engine reimplementation using only original id Tech 2 engine (NetQuake/QuakeWorld/Quake 2) sources (and its forks) and no reverse-engineered code (like from ReHLDS or Xash3D)
Q: What’s the purpose?
A: If you can’t see the purpose then you simply don’t need it and you’re just wasting your time here
Q: So no usage of reverse-engineered code at all?
A: Nope, only backtrace logs and a lot of researching of original GS engine history
Q: How much the GoldSource engine is different from the original Quake engine?
A: Let’s say it’s pretty much a «dieselpunk» version of the Quake engine
Q: What are the «backtrace logs»?
A: Call stack of the latest called program functions/class methods before crash of the program. This information allows you to see which function caused the crash and its location in source code. (Backtrace logs don’t show you the actual source code)
Q: Will the engine be able to run my precious (%MODNAME%)?
A: Technically, it’s possible to interconnect the reimplemented engine with original mods written using HLSDK, its license doesn’t explicitly forbids to do that, but that’s at your own risk. And only for non-commercial use. The game dlls compiled from the HLSDK code will still be licensed under terms of Half-Life SDK License, I can only permit to link the GPL3 OGS code with them as a special exception
Q: Can I use the HLSDK to create a mod for this engine?
A: Nope, HLSDK EULA expects that any modification created using it will be used only by the original GoldSrc engine. You need to reimplement the game code yourself or use the reimplemented OGS SDK template game code based on Quake’s QC progs code (if it’s present at the time you reading this, I’m not planning to reimplement the game code for this engine for now, can’t say for sure, but I doubt that anyone else decides to rewrite the game code for this engine, so it probably end up being used as a tech demo of the GoldSrc showcasing its features using some recreated HL Alpha maps)
Downloading Unreal Engine Source Code
Steps for connecting to the source code repository and downloading the latest build of Unreal Engine.
Choose your operating system:
In order to understand and use the content on this page, make sure you are familiar with the following topics:
This page provides detailed instructions for subscribers to download the source code for Unreal Engine 4 (UE4) from the Unreal Engine GitHub repository, and toВ get started working with the code.
be an Unreal Engine subscriber.
haveВ a GitHub account.
have associated your GitHub account with your Unreal Engine account as described onВ the UE4 on GitHub page.
You’ll getВ access to all the latest features and bug fixes that Epic engineers make every day, practically up to the minute.
If youВ find a bug that we haven’t fixed yet, but that is crucial to your project, you can unblock your project by making the fix in your own version of the source codeВ and rebuilding your ownВ binaries.
You can improve the engine and help the whole Unreal community byВ submittingВ yourВ fixes and features back to Epic.
If you are an Unreal Engine licensee, you can access the source code through our Perforce server instead of the public GitHub repository.
Source Code Branches
You’ll notice that we’ve published UE4’s source code in three rolling branches.
Release Branch
The release branch is extensively tested by our QA team and makes a great starting point for learning UE4 or making Unreal games. We work hard to stabilize this branch with the goal of releasing new builds every one to two months.
Promoted Branch
The promoted branch is updated with builds for use by our designers and artists. We try to update this branch daily so that our subscribers have access to UE4’s latest stable features. This branch is a great place to learn how feature development works in UE4.
Master Branch
Because the master branch contains cutting-edge technology, UE4 isn’t guaranteed to compile from source.
The master branch tracks live changes being made by our engine team. Our experienced subscribers typically work from this branch when they want to work in tandem with UE4’s developers.
Other branches may appear from time-to-time as we work to stabilize new releases or hotfixes.
Downloading the Source Code
Please follow these instructions to download the Unreal Engine source code.
Please make sure you are running Visual Studio 2015 or higher for Windows Desktop installed before proceeding.
To use Git from the command line, see the Setting up Git and Fork a Repo articles.
If you’d prefer not to use Git, you can get the source with the ‘Download ZIP’ button on the right. The built-in Windows zip utility will mark the contents of zip files downloaded from the Internet as unsafe to execute, so right-click the zip file and select ‘Properties. ‘ and ‘Unblock’ before decompressing it. Third-party zip utilities don’t normally do this.
Install Visual Studio 2017.
Open your source folder in Explorer and run Setup.bat.
This will download binary content for the engine, as well as installing prerequisites and setting up Unreal file associations. On Windows 8, a warning from SmartScreen may appear. Click «More info», then «Run anyway» to continue.
A clean download of the engine binaries is currently 3-4gb, which may take some time to complete. Subsequent checkouts only require incremental downloads and will be much quicker.
Run GenerateProjectFiles.bat to create project files for the engine. It should take less than a minute to complete.
Load the project into Visual Studio by double-clicking on the UE4.sln file. Set your solution configuration to Development Editor and your solution platform to Win64, then right click on the UE4 target and select Build. It may take anywhere between 10 and 40 minutes to finish compiling, depending on your system specs.
After compiling finishes, you can load the editor from Visual Studio by setting your startup project to UE4 and pressing F5 to debug.
To use Git from the Terminal, see the Setting up Git and Fork a Repo articles. If you’d rather not use Git, use the ‘Download ZIP’ button on the right to get the source directly.
Open your source folder in Finder and double-click on Setup.command to download binary content for the engine. You can close the Terminal window afterwards.
In the same folder, double-click GenerateProjectFiles.command. It should take less than a minute to complete.
Load the project into Xcode by double-clicking on the UE4.xcworkspace file. Select the ShaderCompileWorker for My Mac target in the title bar, then select the ‘Product > Build’ menu item. When Xcode finishes building, do the same for the UE4 for My Mac target. Compiling may take anywhere between 15 and 40 minutes, depending on your system specs.
After compiling finishes, select the ‘Product > Run’ menu item to load the editor.
Our developers and support teams currently use the latest version of Ubuntu; as a result, we may not be able to provide support for other Linux distributions (including other versions of Ubuntu).
Open your source folder and run Setup.sh to download binary content for the engine.
Both cross-compiling and native builds are supported.
Cross-compiling is handy when you are a Windows (Mac support planned too) developer who wants to package your game for Linux with minimal hassle, and it requires a cross-compiler toolchain to be installed (see the Linux cross-compiling page on the wiki ).
Licensing and Contribution
Next Steps
Footnotes
The first time you start the editor from a fresh source build, you may experience long load times. The engine is optimizing content for your platform to the derived data cache, and it should only happen once.
Your private forks of the Unreal Engine code are associated with your GitHub account permissions. If you unsubscribe or switch GitHub user names, you’ll need to re-fork and upload your changes from a local copy.
Nbc66/source-sdk-2013-ce
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Source SDK 2013 Community Edition
Source 2013 CE is a clean fork of Valve’s Source SDK 2013 repo with the goal of fixing up the SDK and to provide a clean bloat-free codebase that works out of the box to make developers’ lives easier.
There are currently two branches, the first one being master which will only contain fixes without any extra additions.
The second one is Experimental which is the branch we use to add new features and helpful tools for developers.
And a third branch enhancements soon to appear, which will include some neat features that we think you will enjoy, some made by the community, some backported from other engine branches such as Alien Swarm, and everything in-between.
You can find Source 2013 CE’s roadmap by going to our Trello board.
And you can also give us suggestions for fixes and features that you’d like to see in our Discord channel ( #source-SDK-2013-ce ) found in the Source Modding Community server, which you can join here.
To be able to use Source 2013 CE you will need to download:
We appreciate any form of help so ideally if you want to help this project out the best way would be to make a pull request.
Thank you for trying out this project we hope we will help you out with your Source engine troubles!
Credits for 2019 support: momentum mod, Brae, and Anthonypython Credits for CI: TF2Vintage, Deathreus, Dio, Anthonypython
About
Source SDK 2013 Community Edition is a fork of the 2013 sdk repo of the source engine which fixes most of the things that were previously broken in the normal sdk so that mod developers can start using a clean build of source withouth any additions and withouth needing to do things like fixing the speach api and much more
praydog/Source2Gen
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Source2Gen is an SDK generator for the Source 2 engine. It will generate C++ headers for many exposed classes and enumerators.
Thanks to the new Schema system within Source 2, many classes and enums are fully laid out. The Schema system exposes virtually every attribute about them. Due to this, the generated headers have an amazing amount of detail.
The 32-bit and 64-bit Windows versions of Dota 2 are supported.
A DLL injector is required to use Source2Gen. This is not included.
At least Visual Studio 2013 (or any compiler with C++11 support, only tested with VS2013 though)
Just inject Source2Gen.dll into dota2.exe (the only Source 2 game out right now) and it will generate headers in Source2Gen/bin.
Using the Generated Headers
The headers will work out of the box as long as everything in Source2Gen/shared is included and used in the project that uses the generated headers. This is because a few of the classes have function wrappers for static members. These functions need to use the Schema system to find the static member pointers at runtime.
The entirety of what Source2Gen will generate can be found in GeneratedExample.
FlaxEngine/FlaxEngine
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This repository contains full source code of the Flax Engine (excluding NDA-protected platforms support). Anyone is welcome to contribute or use the modified source in Flax-based games.
Follow the instructions below to compile and run the engine from source.
Flax plugin for Visual Studio
Flax Visual Studio extension provides better programming workflow, C# scripts debugging functionality and allows to attach to running engine instance to debug C# source. This extension is available to download here.
When building on Windows to support Vulkan rendering, first install the Vulkan SDK then set an environment variable to provide the path to the SDK prior to running GenerateProjectFiles.bat: set VULKAN_SDK=%sdk_path%
Licensing and Contributions
Using Flax source code is strictly governed by the Flax Engine End User License Agreement. If you don’t agree to those terms, as amended from time to time, you are not permitted to access or use Flax Engine.
We welcome any contributions to Flax Engine development through pull requests on GitHub. Most of our active development is in the master branch, so we prefer to take pull requests there (particularly for new features). We try to make sure that all new code adheres to the Flax coding standards. All contributions are governed by the terms of the EULA.
About
Flax Engine – multi-platform 3D game engine
Unreal Engine CI. Part 01. Source Code Build
In these several articles, I will write about the automation of projects made in Unreal Engine 4. These articles will help you to create Continuous Integration (CI) pipelines for your UE4 projects, create builds for every minor change in sources, and not worry about packaging — it will be done automatically. We will talk about client and server builds, schedules, webhooks, and Slack notifications.
The first article will be about the building engine from sources in an automatic way. Let’s GO!
Why is CI?
Continuous integration is a process in which all development work is integrated as early as possible. The resulting artifacts are automatically created and tested.
Benefits of continuous integration:
Software
All setup will be performed on Windows. Nevertheless, changes for Mac or Linux operating systems in this flow will be minor.
For projects compiling in this series of articles, we will use Visual Studio 2019 (VS2019 ). You can use also older or newer compiler which Unreal Engine supports. You can download the community version for free.
Also, you need to install Git.
You should get access to the Unreal Engine source code by linking your Epic Games and Github accounts. How to do it you can read in official docs.
There is a lot of CI software that you can use for automating your development. We will create CI pipelines in Jenkins.
Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. — Wikipedia
So the next steps — download Jenkins (it’s free) and run the installation. I recommend choosing some folder that located not on the main disk or at least not in the Program Files directory (could be some annoying permission problems).
Setup of Jenkins
After Jenkins is successfully installed you can sign in server with the administrator password. Just open the red path in a new browser tab.
After that choose the first installation option and wait while Jenkins is setting up itself. It can take some time.
Next, you should create the first admin user. Enter all data and save.
The last setup step is the Jenkins URL. You can change it later. Now we will not touch anything. Save and finish.
Language
If Jenkins interface language differs from English ones you can do the following:
Check Git
Check that Jenkins sees your Git. If not, you should manually set up a path to your Git folder:
Command Prompt could help you with the command
Jenkins job is an entity that doing continuous builds, run tests, or perform some repetitive batch tasks or scripts.
We will create a job that will download Unreal Engine sources, set up all files, and build engine.
First, create a folder where all the work will be done. But remember it will be a big folder, intermediate resources can take more than 30 GB. The job will be performed in this folder.
Create New Item by clicking in the left menu label. Enter an item name, something like UnrealEngineSource, select Freestyle Project, and click OK.
Now we should configure Jenkin’s job steps. The job consists of several sections by default
General
In this section, you can set some common information and parameters. By default Jenkins create a working folder in its’ place. We can change the default directory by clicking Advanced button on the General Tab, check Use custom workspace, and enter the directory that you have created.
Source Code Management
In this section, according to the title, all settings about source code control are located: remote repositories, triggers (we will talk about it in the next articles), and more. Choose Git and enter Unreal Engine repository URL
Click on Add Credential and enter your GitHub login/password.
After that select credentials created in the combo box.
Set up release branch — the last stable version of the engine is on this branch. Later you can change it as you wish.
Click Add button opposite Additional Behaviours and add Advanced Clone Behavior. Set a timeout to 120 minutes. Unreal Engine repository is large and Jenkins might fail due to default timeout — 10 minutes.
First test
Click Apply/Save at the bottom of the browser page. Now we are ready to launch our job. Click the item arrow and click Build now button on the left. Jenkins will start the job.
After finishing this job (it will take some time) we can see that build success.
Click on Build History and dive in Console Output.
You also can see build status on job icon-indicators.
Nice! Our job checks change in the Unreal Engine repository and pull it to our local repository.
Build steps
Before starting the build process I highly recommend you check VS Setup for Unreal Engine.
Steps for build Unreal Engine source code are the following:
Let’s do it automatically.
Click on the item arrow and click the Configure button. Go to a Build section of Jenkins. Here you can run some sort of build script that performs the build (ant, maven, shell script, batch file, etc.) where the real magic happens. Click on Add Build Step and select Execute Windows batch command. In a command field, you can write a script that you want to execute on the current step. Add
If your paths contains whitespaces enclose it in “ ”
After that add next build step and write
Now we are ready for the main step for building Unreal Engine. Let’s do it with the VS2019 compiler.
Or you can download this tool from GitHub
Run Windows Command Prompt as Administrator and launch command
You will get the path to MSBuild in the output
MSBuild command has the following syntax
ProjectFile is your project or solution file and Switches are some parameters, which we can use
You can also write flags in short form /t /p /v.
You can find more information by following these links:
So the latest build step will be the following
Run Jenkins and wait…
When Jenkins finishes his job, the Unreal Engine will be built. You can check it by opening UE4.sln in your workspace and starting a new instance:
Parametrize everything
Now we will parametrize all our steps for more flexibility in the future. It will help us to create different configurations from this one. Back to the General section and select This project is parameterized.
Add several string parameters:
Note that even when running on Windows, a lot of Jenkins plugins take the parameters in *nix syntax themselves.
Change the workspace directory and Git branch fields
Rewrite our build steps:
We use “ ” in order not to think whether the parameters have whitespaces or not.
Now click on the build button called Build with Parameters.
Templates
Move on. At the top of Jenkins’ main page, you can order your jobs by groups. Let’s create UnrealEngineTemplates View.
Add in this category our job UnrealEngineSource.
And rename it to UnrealEngineSourceTemplate.
Next, create a view with the name UnrealEngineSource, there will be different engine configurations.
Once again go to:
In our new view create new job UE Development Editor 4.25 (Freestyle Project) and add string parameters:
In our new job, we run our template job and pass parameters to it. Note that PLATFORM and MS_BUILD parameter not passing and will be set up from our template defaults (you can add it if you want).
More configurations
Now we can create as more configurations with different engine versions as we wish. We just need to add a new job and set up parameter values. Also, we can run our last job just changing parameter values.
Let’s create the configuration for the server. Create a new job UE Development Editor 4.23
You can copy it from UE Development Editor 4.25 — when you create a new item, copy the name to the bottom text field
High probability that for old engine versions current Visual Studio compiler will not work. Here, for example, I’m using VS2017. So read docs, forums to be up to date.
In addition
GIT clean
Highly recommended to set git clean before checkout in git settings of the job.
It will perform a full rebuild as a side effect. So be careful. But you will be sure that everything is fine after for example hotfix update.
Force flag
If you run Setup.bat second time you will get an error. Some files were changed and user input needed to rewrite them. This problem could be fixed by adding a force flag parameter to the Setup.bat. It allows you to ignore any command-line prompts.
Green Balls
By default success job status is marked with a blue-colored circle. More reasonable is to make this color green. Go to plugins
Search for Green Balls plugin
Install the plugin and restart Jenkins. All successful jobs will be marked with green color
Also, a video lesson is available for Russian speakers:
In the next articles, we will talk about post-build actions, build triggers, hooks, schedules, pipelines, and Slack notifications.
Create a Mod
Contents
The Create a Mod wizard automates the process of creating a Source mod. It:
Engine branch
Before starting a mod you need to choose which version of Source you will use. Change the SDK’s engine version to the one you want.
The SDK wizard
Project type
When you start the wizard, you will have to choose which project to work with.
Half-Life 2 Single Player Projects for Episode One (2006) or Two (2007). If you do not own Ep1/2 this option will be greyed out. Half-Life 2 Multiplayer Projects for Half-Life 2: Deathmatch. This option is only available if you own Half-Life 2: Deathmatch; otherwise it will be greyed out. Multiplayer mod from template A specially-created SDK project that allows you to configure settings such as if your mod is team based, or if you have abilities such as sprinting and prone. This option does not require Half-Life 2: Deathmatch. Source code only Dumps the code without creating an actual mod. This option is handy if you are just creating a server plugin.
Whichever option you choose, you get the same actual source code files (even if you didn’t own one or another game). You also get an «everything» solution which includes a collection of development tools.
Mod Information
The first option on this page is where you want the source code extracted to. The second is the name you want to use, which also defines the output folder for your compiled content (does not appear if you chose source code only).
Creating a mod manually
It’s surprisingly simple:
To get the source code (or indeed any other files of Valve’s that you want to modify) you will need to use GCFScape and access depot_211_dir.vpk in the Steam\SteamApps\common\SourceSDK\vpks folder. Remember to change the custom build steps to point to your mod’s folder.
Creating a mod with XBLAH’s Modding Tool
Creating a barebones Source engine mod usually requires more than just creating a gameinfo.txt. Mods based on Half-Life and Half-Life 2 games can be created with the XBLAH’s Modding Tool using an intuitive interface, that creates all the required files and directories. Mapbase mods are also supported.
This can be accessed within the tool through File > New.
Downloading Unreal Engine Source Code
Steps for connecting to the source code repository and downloading the latest build of Unreal Engine.
Choose your operating system:
This page provides detailed instructions for subscribers to download the source code for Unreal Engine (UE) from the Unreal Engine GitHub repository, and toВ get started working with the code.
be an Unreal Engine subscriber.
haveВ a GitHub account.
have associated your GitHub account with your Unreal Engine account as described onВ the UE5 on GitHub page.
You will getВ access to all the latest features and bug fixes that Epic engineers make every day, practically up to the minute.
If youВ find a bug that we haven’t fixed yet, but that is crucial to your project, you can unblock your project by making the fix in your own version of the source codeВ and rebuilding your ownВ binaries.
You can improve the engine and help the whole Unreal community byВ submittingВ yourВ fixes and features back to Epic.
If you are an Unreal Engine licensee, you can access the source code through our Perforce server instead of the public GitHub repository.
Source Code Branches
You’ll notice that we’ve published UE5’s source code in several branches.
Branches whose names contain dev, staging, and test are typically for internal Epic processes, and are rarely useful for end-users Other short-lived branches may appear from time to time as we stabilize new releases or hotfixes.
Release Branch
The Release branch always reflects the current official release. These are extensively tested by our QA team, so they make a great starting point for learning Unreal Engine and for making your own projects. We work hard to make releases stable and reliable, and aim to publish a new release every few months.
Main Branch
Most active development on UE5 happens in the ue5-main branch. This branch reflects the latest release of the engine and may be buggy or it may not compile. We make it available for developers who are eager to test new features or work in lock-step development with us.
If you choose to work in this branch, be aware that it is likely to be ahead of the branches for the current official release and the next upcoming release. Therefore, content and code that you create to work with the ue5-main branch may not be compatible with public releases until we create a new branch directly from ue5-main for a future official release.
Downloading the Source Code
Please follow these instructions to download the Unreal Engine source code.
Please make sure you are running Visual Studio 2019 or higher for Windows Desktop installed before proceeding.
To use Git from the command line, see the Setting up Git and Fork a Repo articles.
If you’d prefer not to use Git, you can get the source with the ‘Download ZIP’ button on the right. The built-in Windows zip utility will mark the contents of zip files downloaded from the Internet as unsafe to execute, so right-click the zip file and select ‘Properties. ‘ and ‘Unblock’ before decompressing it. Third-party zip utilities don’t normally do this.
Install Visual Studio 2019.
This will download binary content for the engine, as well as installing prerequisites and setting up Unreal file associations. On Windows, a warning from SmartScreen may appear. Click More info, then Run anyway to continue.
A clean download of the engine binaries may take some time to complete. Subsequent checkouts only require incremental downloads and will be much quicker.
Run GenerateProjectFiles.bat to create project files for the engine. It should take less than a minute to complete.
Load the project into Visual Studio by double-clicking on the UE5.sln file. Set your solution configuration to Development Editor and your solution platform to Win64, then right click on the UE target and select Build. It may take anywhere between 10 and 40 minutes to finish compiling, depending on your system specs.
After compiling finishes, you can load the editor from Visual Studio by setting your startup project to UE5 and pressing F5 to debug.
To use Git from the Terminal, see the Setting up Git and Fork a Repo articles. If you’d rather not use Git, use the ‘Download ZIP’ button on the right to get the source directly.
Open your source folder in Finder and double-click on Setup.command to download binary content for the engine. You can close the Terminal window afterwards.
In the same folder, double-click GenerateProjectFiles.command. It should take less than a minute to complete.
Load the project into Xcode by double-clicking on the UE5.xcworkspace file. Select the ShaderCompileWorker for My Mac target in the title bar, then select the ‘Product > Build’ menu item. When Xcode finishes building, do the same for the UE5 for My Mac target. Compiling may take anywhere between 15 and 40 minutes, depending on your system specs.
After compiling finishes, select the ‘Product > Run’ menu item to load the editor.
Our developers and support teams currently use the latest version of Ubuntu; as a result, we may not be able to provide support for other Linux distributions (including other versions of Ubuntu).
Open your source folder and run Setup.sh to download binary content for the engine.
Both cross-compiling and native builds are supported.
Cross-compiling is handy when you are a Windows (Mac support planned too) developer who wants to package your game for Linux with minimal hassle, and it requires a cross-compiler toolchain to be installed (refer to the Linux cross-compiling page).
Additional target platforms
Android support will be downloaded by the setup script if you have the Android NDK installed. See the Android Quick Start guide.
Development for consoles and other platforms with restricted access, like Sony PlayStation, Microsoft Xbox, and Nintendo Switch, is only possible if you have a registered developer account with those third-party vendors.
If you don’t have access to these resources, first register a developer account with the third party vendor. Then contact your Epic Games account manager if you have one, or fill out and submit the Console Development Request form for Unreal Engine if you don’t. Epic will contact you with a formal agreement to digitally sign. Once this is approved, you will receive instructions on how to access source code, binaries, and additional instructions for your platform.
Licensing and Contribution
Next Steps
Footnotes
The first time you start the editor from a fresh source build, you may experience long load times. The engine is optimizing content for your platform to the derived data cache, and it should only happen once.
Your private forks of the Unreal Engine code are associated with your GitHub account permissions. If you unsubscribe or switch GitHub user names, you’ll need to re-fork and upload your changes from a local copy.
Source engine source code
3,118 | уникальных посетителей |
40 | добавили в избранное |
Install Source SDK Base 2013 singleplayer from Steam->Library->Tools or from the link below:
steam://rungameid/243730 //paste this to your internet browser
If you haven’t installed Visual Studio and Multibyte MFC Library download them from here:
Extract your source-sdk-2013-master.zip somewhere on your desktop.
Now open it and take «sp» folder and move it to «C://» location, otherwise there might be problems with compiling,
Now rename it to your mod name, I’ll call it «Half-Life 2 Test Mod»
Go to your Microsoft Speech SDK’s installation directory, it should be in C:\Program Files (x86)\Microsoft Speech SDK 5.1.
Now open your folder on «C://» drive, go to «src/utils/» and create folder «sapi51».
Now copy all files from Microsoft Speech SDK (Bin, Docs, IDL etc.) to «sapi51» like that:
Open your «sapi51» folder, and go to «include» folder. There should be file called «sphelper.h». Open it with notepad++. Now we will be replacing some lines with fixed ones:
Change Line 769
Go to » /steamapps/sourcemods/» and create your mod folder here.
Now to go steam » /common/Source SDK Base 2013 Singleplayer/hl2″ and copy all 4 folders to your mod folder like that:
Download them from here [www.dropbox.com] and put to cfg folder.
Go to «C://» and open your mod folder, go to «src» and run «createallprojects.bat» and «creategameprojects.bat».
Open «everything.sln» with visual studio and change «Debug mode» To «Release». Do the same to «games.sln».
Go to «C:// /game/mod_hl2/bin» and copy everything inside to » /steamapps/sourcemods/ /bin».
That’s all! Now you can run your mod from your game library. :3
Структура Движка
Этот раздел в настоящее время находится в стадии разработки. Пожалуйста, не стесняйтесь добавлять любые идеи, которые вы можете отнести к структуре движка Source, которыми вы бы хотели поделиться с сообществом.
Contents
Введение
Движок «Source» разработан в необыкновенной, модульной форме. Это было сделано, для обеспечения как легких обновлений, так и засекречивания кода. Это руководство не покажет вам, как получить доступ к этим засекреченным областям, но даст вам представление о том, что представляют собой эти модули, как они взаимодействуют и как их лучше всего расширить.
Подсистема
Существует два разных, используемых, типа обработки системы. Первый, и более простой, IAppSystem используется для системы Клиента. Это не означает, что на них также нельзя ссылаться в серверной библиотеке dll, однако между клиентом и сервером нет никакой информации. Он предлагает только обработку, необходимых для инициализации подсистем с возможными ссылками на другие подсистемы, и выключение в нужное время. Файл, материал, и физические системы все вытекают из этого интерфейса.
Второй это IGameSystem. Сравнительно более сложный интерфейс, он предназначен для систем, которые должны иметь функции обновления вызова, и он может быть, при необходимости, синхронизирован между клиентом и сервером. Помимо стандартных обработок инициализации и завершения работы, он также предлагает обработки, которые вызываются для ряда событий, включая загрузку карты, сохранения / восстановления, пред/пост-рендеринг и функцию обновления с прошедшим временем фрейма.
Служебные библиотеки
Tier0
Tier1
STL, консольные команды/переменные от Valve и многое другое; смотрите в Tier1.
My First Mod
This tutorial will teach you how to create and build your first simple Source mod. In this mod we will change the speed at which Half-Life 2’s rocket travels through the world. This tutorial uses Source SDK 2007 but most of it is applicable to Source SDK 2013.
Contents
Create the project
For the purpose of this tutorial we will call our first mod, «Mymod». When you make your own mod this can be any name you wish (i.e. «Quickmod», «TreasureTroll», «Old Man With Melons Mod», etc.)
Please note that in order to get the latest source code, you must refresh the SDK content.
To create a mod project:
The Steam application will then copy all the relevant files to the destination directory that you specified. You now have a copy of Half-Life 2’s source code at that location which you can modify.
Prepare the solution
Alter the rocket’s speed
Near the beginning of the file, find the line:
Change this line to read:
By altering this number, we’ve told the rocket to travel at 400 units per second (or about 33 feet per second, or 10 meters per second). Previously the rocket traveled at 1500 units per second (125 ft/s, 38 m/s). The difference in speed will be very apparent when we compile and run the mod.
Compile the project
Run the mod
Now before you launch it’s important to ensure you have something to launch. By default, new mods will use AppId 215 (Ep1) or 218 (Orange Box). This loads the correct version of Source SDK Base, which is accessible to almost everyone with a Valve game and, in the case of 218/Orange Box, is kept up to date with the latest engine built. You can check or change your AppId in the game’s GameInfo.txt file.
SDK Base provides only Half-Life 2’s shared content, however. If you want to use content from a specific game, or HL2’s maps, you will need to change the AppId to that of the game you want to load from. If you want to ‘mount’ more than one game you can do so, but you should avoid that method unless you really need it for reasons explained on its page.
No maps are provided with your single player mod, so copy a map from the HL2 maps with GCFScape to your mod’s /maps/ directory inside of SteamApps/Sourcemods. Load a map by typing «map » (including the space) into the console and select from the list (e.g. map d1_canals_01 ) then type » impulse 101 » to give yourself a load of weapons.
In «Options», «Keyboard», and «Advanced», enable the Developer Console. Hit the tilde key (
) to bring up the Developer Console. This console will provide you with numerous tools to help you create content for the Source engine.
) for the » impulse 101 » command to work
Select and fire the RPG to view the changes you’ve made.
Debugging Techniques
You may have some difficulties following these steps using Release configuration. Change to Debug if you run into problems. Before moving on, I must point out that Source modding is a VERY difficult way to learn C++. You will be better served trying out lots of tutorials designed for learning C++, and applying what you’ve learned to modding.
Navigating Code: What is RPG_SPEED
By default, the RPG_SPEED is set to 1500.
Using break points
It’s often useful to see what’s going on in a program at a specific moment. When the program tries to run this line of code, it will be stopped. EVERYTHING in the program will be stopped. 3D graphics, mouse input, even clicking the close button have been paused. This allows you to scrutinize the state/data of the program, frozen in a moment in time.
If the mod isn’t already running, press F5 and fire it up. Load up your map and some weapons, and shoot the RPG.
Examining and modifying state
Right when the rocket tried to kick on, Visual Studio should have popped up and should say Paused in the title bar. The cursor will be on the line of code, a yellow arrow is in the margin. Hover the mouse over vecForward and you’ll see a box pop showing you the values inside of vecForward, X Y and Z. These values are currently rather small (This is a normalized vector, but that’s another tutorial). If you click the plus to expand the values, you can actually modify the values, changing the internal state of the program.
Go to Debug Menu > Windows > Autos. This will automatically show you any variables that are being used by the current code, and show them in red if they’ve changed their value.
Stepping through execution
This line of code we have “paused execution” at is an instruction to use the SetAbsVelocity function, and it also passes some data to the function: vecForward * RPG_SPEED.
Press F11. Alternatively, you can use Debug Menu > Step Into, or find the button in the toolbar with the same icon. Notice again the yellow arrow in the gray margin. This arrow indicates the next instruction the program will execute.
We are now inside the SetAbsVelocity function. Examine the value of vecAbsVelocity. You’ll notice that it’s much bigger than vecForward before, because it’s been multiplied by RPG_SPEED. Now examine, m_vecAbsVelocity. This is the actual saved velocity of the rocket. Right now it’s still rather small, because the rocket just got ignited and hasn’t sped up at all. Press F10. F10 is similar to F11, except that it wont go inside of functions.
If you examine the two variables again, you will see they haven’t changed yet. Press F11 (or F10. Since this isn’t a function to step into, it has the same effect) once more. Now examine m_vecAbsVelocity. You will see that the values from vecAbsVelocity have been assigned, or copied over. This is a very powerful debugging technique. It allows us to see how the programs state changes from one line to the next. If something isn’t working how we expect, we can watch things as they happen and trace to where things are going wrong. You can also trace backwards. Start from where the unexpected result is observed, and examine the state there. If part of the state (like a variable) is not right, go back to where the wrong state might have become present (the last place the variable got assigned a value). Use the Go to Definition, or Find all References to help you hunt down the possible places. Repeat the process until you hone in on the source of the error.
More debugging techniques
You’ve built your first mod. Now what?
You’ve now set up, built, and debugged your first mod. Now experiment and tinker. Getting your hands dirty is the best way. If you have coding questions, there is a formal news group called HLCODERS. If you are serious about mod programming, track it down. There are also many communities centered around HL2 and modding, and most have a programming forum, tutorials, etc.
For a stepping stone to different aspects of mapping see What makes a good level?
Source engine source code
1,853 | уникальных посетителей |
65 | добавили в избранное |
Don’t feel like reading or need a visual aid? Here’s a video
NOTE: Default notepad has some issues when looking at files like gameinfo.txt the formatting is kind of off. It’s still usable but I highly recommended notepad++ so you dont have to deal with it.
Once you have installed both Source SDK base 2013 Multiplayer and visual studio 2013 + MFC run both to make sure they launch before continuing.
Choose a location you want for your mod source files to be. This will serve as the location that you will keep all your files both WIP and final. This includes but isn’t limited to maps, models, sounds, textures, scripts, code, etc.
Once you’ve picked out a spot create a new folder and name it your mods name.
Open up the source-sdk-2013-master.zip and navigate to source-sdk-2013-master\mp and copy both «game» and «src» into your folder.
NOTE: There can’t be any spaces at all in the file path, I suggest putting it at the top of one of your drives
Inside of the src folder find and run «creategameproject.bat» this will then create the project file «games.sln»
Launch Visual Studio 2013 and open the games.sln project file.
Right click on «Solution ‘games'» and go to properties.
Choose Configuration Properties then click Configuration Manager
For the Active Solution configuration choose Release
Click Close, then OK.
Right click on the games solution again but this time choose «Rebuild Solution». Wait for it to compile. If you did everything correctly you should get no errors. If you get an error debug it like you normally would, if you have never really coded before this means google the error and try and figure out why it broke on your own. Yes this might mean spending thirty minutes to an hour to figure out what broke. If you can’t figure it out and you have put a good amount of time into trying to do it on your own post on the forums as well as other places like stack overflow.
Navigate to Steam\steamapps\sourcemods and create a folder for your mod.
Go to your project folder and navigate into the game/mod_hl2mp folder.
Copy the gameinfo.txt, maps folder, and scripts folder from the mod_hl2mp folder into your mod folder.
Navigate to Steam\steamapps\common\Source SDK Base 2013 Multiplayer\hl2mp and copy the cfg folder, custom folder, and resource folder into your mods folder.
In your mods folder create a bin folder, materials folder, models folder, and sound folder.
The gameinfo.txt is a very important file for your mod. It’s what tells the engine what to call your mod in steam, the title to use on the main menu, what kind of mod it is, and most importantly what files to mount.
First thing you need to do upon opening it up is select everything and delete it. Then copy paste in the new text from either pastebin or ghostbin [ghostbin.com]
Now then if you want to mount additional content from a game like Counter-Strike: Source this is the file you do it in. Follow Valves example, in the case of CSS it would look like:
Navigate to src\game\client\Release_mod_hl2mp and copy the client.dll and paste it into the bin folder located in your steamapps\sourcemodes\modname
Same thing for server.dll
Restart Steam and your mod should now show up in your Steam library.
If you want to compare here’s a finished version. [drive.google.com]
When people ask questions in the comments I’ll update with answers here as well so that others don’t run into similar issues 😃
Looking for some more resources regarding setting up your mod?
Be sure to check out https://developer.valvesoftware.com/wiki/Category:Programming for basically anything you need to know.
Leystryku/leysourceengineclient
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
A small Source Engine Client which deals with the basic communication neccessary to connect to a Source Engine Server which is based on a OB Game (e.g. Garry’s Mod, TF2, etc.). If you do use this or use from code from this PLEASE give credit. Ever since this has been released several people have created their «own version» while not giving any credits to the original. Please don’t be that guy. If I release code open source, you are free to use it as much as you like. You do not have to pay for it whatsoever. But please give credit when using my work or using code from my work.
If it crashes with a MessageBox on startup install the VC++ 2019 redists from microsoft https://www.microsoft.com/.
If you wish to compile this yourself:
The only supported platform right now is Windows. Feel free to contribute!
note: This was created BEFORE the recent source engine leak in 2018 or whatever.
About
A source engine network client implementation based on some of my reversing work with basic functionality ( joining servers, talking, receiving/sending voicedata etc. ). Made this & reversed netchan to learn about Sources networking.
alliedmodders/hl2sdk
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
About
Half-Life 2 SDK Mirrors
Topics
Stars
Watchers
Forks
Releases
Packages 0
Contributors 10
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Sandern/py-source-sdk-2013
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
This branch is 287 commits ahead of ValveSoftware:master.
Open a pull request to contribute your changes upstream.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
A Source SDK 2013 fork with automatically generated bindings for Python 3. The aim of these bindings is to have a (semi) safe Python environment of Source Engine to play around with. For a better idea of what these bindings offer, check out the examples directory.
These automatic bindings were originally made for Lambda Wars mod. Also see the Python folder of this for more examples of what is possible (most game code is written in Python!).
Please let me know if you have any issues. Pull requests are welcome too!
Currently tested on Windows (VS2013 Community Update 5) and OSX (XCode 7.3) only:
Open games.sln or games.xproj and compile. For OSX, you might need to change the projects sdk.
Start mp/game/PySource and load a map
Test Python by entering one of the following commands:
Examples can be found in the Python game directory examples. These examples cover the Your First Entity page from VDC among others.
Generating new modules
PySource makes use of castxml, pygccxml and pyplusplus to generate Boost Python bindings. You can find instructions in mp/src/srcpypp.
Open mp/src/srcpypp/settings.py and uncomment the unwanted modules. Then run in the same folder:
An updated vpc file will be generated, so after this step you need to rebuild your project files.
Most of the modules can be disabled, but the example modules will fail to import. Also the srcbuiltins module exposes Msg and Warning functions to Python, which is used to redirect stdout and stderr.
List of binding modules
Note: Most of these modules are complemented by Python modules (e.g. entities)
About
A Source SDK 2013 fork with automatically generated bindings for Python 3.
Установка и Отладка Исходного Кода
В этой статье рассматриваются основные шаги по установке и отладке исходного кода.
Contents
Шаг За Шагом
Запуск мастера Create a Mod
Компиляция Исходного Кода
Общая информация о компиляции находится здесь: Выбор Компилятора
В настоящее время, код лучше собирается под VS2005. Хотя Visual Studio 2010 это лучший выбор для Source.
VCE2005 пользователям необходимо скачать Windows SDK (Windows 2000 пользователи: Platform SDK). Для Visual Studio и VCE2008 этого не требуется.
Отладка
Настройка параметров отладки
Запуск в отладчике
Альтернатива: интеграция во время выполнения
Ссылки
Хороший шаг после выполнения этой статьи, взглянуть на статью Ваша Первая Энтити, в котором вы будете вносить изменения в исходный код.
Если вы планируете интегрировать обновления кода от Valve, и если вы хотите иметь резервную копию кода и историю ревизий, взгляните на статью Использование Source Control с Source SDK.
source-engine-discord/SourceEngine.Demo
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Outputs game statistics from CS:GO demos as JSON. The solution has three projects:
Only builds/releases for Windows are currently automated.
To build and publish a release, run
Creating a Release
Update the version number in Directory.Build.props and commit the change. Then, create a tag with git. It is recommended to use annotated tags:
Note that CI enforces SemVer 2.0.0 format compliance as well as the versions in the tag and the project being equal.
Finally, push the tag along with the commit for the version bump:
unrealengine47/UnrealEngine4
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Welcome to the Unreal Engine source code!
From this repository you can build the Unreal Editor for Windows and Mac, compile Unreal Engine games for Android, iOS, Playstation 4, Xbox One, HTML5 and Linux, and build tools like Unreal Lightmass and Unreal Frontend. Modify them in any way you can imagine, and share your changes with others!
We have a heap of documentation available for the engine on the web. If you’re looking for the answer to something, you may want to start here:
If you need more, just ask! A lot of Epic developers hang out on the forums or AnswerHub, and we’re proud to be part of a well-meaning, friendly and welcoming community of thousands.
We publish source for the engine in three rolling branches:
The release branch is extensively tested by our QA team and makes a great starting point for learning the engine or making your own games. We work hard to make releases stable and reliable, and aim to publish new releases every few months.
The promoted branch is updated with builds for our artists and designers to use. We try to update it daily (though we often catch things that prevent us from doing so) and it’s a good balance between getting the latest cool stuff and knowing most things work.
Other short-lived branches may pop-up from time to time as we stabilize new releases or hotfixes.
Getting up and running
The steps below will take you through cloning your own private fork, then compiling and running the editor yourself:
Install GitHub for Windows then fork and clone our repository. To use Git from the command line, see the Setting up Git and Fork a Repo articles.
If you’d prefer not to use Git, you can get the source with the ‘Download ZIP’ button on the right. The built-in Windows zip utility will mark the contents of zip files downloaded from the Internet as unsafe to execute, so right-click the zip file and select ‘Properties. ‘ and ‘Unblock’ before decompressing it. Third-party zip utilities don’t normally do this.
Install Visual Studio 2013. All desktop editions of Visual Studio 2013 can build UE4, including Visual Studio Community 2013, which is available for free. Be sure to include the MFC libraries as part of the install (it’s included by default), which we need for ATL support.
Open your source folder in Explorer and run Setup.bat. This will download binary content for the engine, as well as installing prerequisites and setting up Unreal file associations. On Windows 8, a warning from SmartScreen may appear. Click «More info», then «Run anyway» to continue.
A clean download of the engine binaries is currently 3-4gb, which may take some time to complete. Subsequent checkouts only require incremental downloads and will be much quicker.
Run GenerateProjectFiles.bat to create project files for the engine. It should take less than a minute to complete.
Load the project into Visual Studio by double-clicking on the UE4.sln file. Set your solution configuration to Development Editor and your solution platform to Win64, then right click on the UE4 target and select Build. It may take anywhere between 10 and 40 minutes to finish compiling, depending on your system specs.
After compiling finishes, you can load the editor from Visual Studio by setting your startup project to UE4 and pressing F5 to debug.
Install GitHub for Mac then fork and clone our repository. To use Git from the Terminal, see the Setting up Git and Fork a Repo articles. If you’d rather not use Git, use the ‘Download ZIP’ button on the right to get the source directly.
Install the latest version of Xcode.
Open your source folder in Finder and double-click on Setup.command to download binary content for the engine. You can close the Terminal window afterwards.
In the same folder, double-click GenerateProjectFiles.command. It should take less than a minute to complete.
After compiling finishes, select the ‘Product > Run’ menu item to load the editor.
Set up Git and fork our repository. If you’d prefer not to use Git, use the ‘Download ZIP’ button on the right to get the source as a zip file.
Open your source folder and run Setup.sh to download binary content for the engine.
Both cross-compiling and native builds are supported.
Cross-compiling is handy when you are a Windows (Mac support planned too) developer who wants to package your game for Linux with minimal hassle, and it requires a cross-compiler toolchain to be installed (see the Linux cross-compiling page on the wiki).
Native compilation is discussed in a separate README and community wiki page.
Additional target platforms
Android support will be downloaded by the setup script if you have the Android NDK installed. See the Android getting started guide.
iOS programming requires a Mac. Instructions are in the iOS getting started guide.
HTML5 support will be downloaded by the setup script if you have Emscripten installed. Please see the HTML5 getting started guide.
Playstation 4 or XboxOne development require additional files that can only be provided after your registered developer status is confirmed by Sony or Microsoft. See the announcement blog post for more information.
Licensing and Contributions
Your access to and use of Unreal Engine on GitHub is governed by the Unreal Engine End User License Agreement. If you don’t agree to those terms, as amended from time to time, you are not permitted to access or use Unreal Engine.
We welcome any contributions to Unreal Engine development through pull requests on GitHub. Most of our active development is in the master branch, so we prefer to take pull requests there (particularly for new features). We try to make sure that all new code adheres to the Epic coding standards. All contributions are governed by the terms of the EULA.
The first time you start the editor from a fresh source build, you may experience long load times. The engine is optimizing content for your platform to the derived data cache, and it should only happen once.
Your private forks of the Unreal Engine code are associated with your GitHub account permissions. If you unsubscribe or switch GitHub user names, you’ll need to re-fork and upload your changes from a local copy.
Source 2
Quake ▶
GoldSrc ▶
Source ▶
Source 2
Source 2 was first made public with the Dota 2 Workshop Tools Alpha in August 6th 2014 and formally announced by Valve in March of 2015 at the Game Developers Conference. It was then implemented into Dota 2 on June 17th 2015. Valve has announced that Source 2 will be released to the public for free, and it will only take money should it be used for commercial products.
The engine is capable of rendering highly complex and well detailed scenes with minimal framerate drops, thanks to its new 64-bit support alongside Vulkan, allowing for better multi-core rendering and more efficient 3D rendering.
Support for 32-bit, OpenGL, DirectX 9, XAudio, and macOS versions below 10.14 were removed in 2021.
Source engine source code
2,647 | уникальных посетителей |
387 | добавили в избранное |
*Nemstools Website is down. This Gamebanana Submission [gamebanana.com] Acts as a backup of all his useful tools, including GCFScape and VTFEdit.
$AmbientBoost
Makes model more evenly lighted from all angles
$Animation «idle» «myanim.smd»
$Attachment «MyAttachmentName» «ValveBiped.weapon_bone» 0 0 0 rotate 0 0 0
Sets a point on your model used for attaching muzzle flash, flashlight etc.
$CDMaterials «models/weapons/stuff»
Look for materials in this path relative to the game’s materials folder.
$Hierarchy «child bone» «parent bone»
$IllumPosition 0 0 0 «ParentBone»
Sets the lighting origin of this model. The three numbers are x, y, z positions and «ParentZone» is an optional parent bone.
$KeyValues <
>
KeyValues Options
$Opaque
Used when model is fully/mostly opaque.
$Origin 0 0 0 0
Tweak this to adjust the relative position of a first-person ViewModel.
In order, these four numbers are X, Y, Z positions, horizontal rotation.
$Root «BoneName»
Sets the root bone.
$Scale #
Sets the thickness of geometry weighted to each bone. Can be 0.5 (half thickness), 1.0 (normal) 2.0 (dummy thicc)
$SurfaceProp «weapon»
Set this model’s surface property. Only useful on world models/props.
GEEKiDoS/cstrike-sdk-2013
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
This branch is 5 commits ahead of ValveSoftware:master.
Open a pull request to contribute your changes upstream.
Latest commit
Git stats
Files
Failed to load latest commit information.
README
About
The 2013 edition of the Source SDK with counter-strike source
Resources
License
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Ultimate Source SDK v3 by Psycho-A
Данная сборка позиционируется как общая платформа для маппинга, level-дизайна и моддинга под все версии движка Source Engine и работающие на нем игры (серия Half-Life 2 и Portal, Counter-Strike: Source, Day of Defeat: Source, Team Fortress 2, серия Left 4 Dead, Alien Swarm, Counter-Strike: Global Offensive и др.). В силу совместимости со Steam, множества полезных дополнительных программ, а также улучшений процесса работы с SDK и играми, сборка может служить полноценной заменой лицензионного Source SDK.
Hammer Editor
(builds 5845/5439/4715/4037)
Model Viewer
Face Poser
Выбор Движка
SDK Configurator
Run Current MOD
Run Engine Tools
kHED v1.1.4
Studio Compiler v0.4
MDL Decompiler v0.5 (fix by Hooch)
Fix VPK Content
Batch Compiler Pro v3.2.5
Tools Compiling Pro v2.3
Valve Batch Compile Tool v1.0t
BSPSource Decompiler v1.3.8
Crafty Object Viewer v1.0.2
GCFScape v1.8.3
EntED v1.0
PakRat (JRE)
EntSpy (JRE)
Map Analyst v2.6e
VTFEdit v1.3.2 Full
Bump Generator v5.3
Auto Seamer v1.0.1
Fix VTF Version
HDR Shop v1.0.3
Terrain Generator v3.0.5
DispGen v0.1A
Twister v1.1
Hammer Units Conversion
SoundScape Creator v1.0.0
Resource Edit SDK v1.0.2
VGUI Localization Tool
CTX Converter v1.1.1
HL2ModExe Creator
Bat to Exe Converter v1.5
RAD Video Tools v1.99s
View Log v2.1
Create Mod Wizard
Reset Game Configurations
Edit Game Configurations[/list][/spoiler]
Варианты сборки:
[spoiler=Standard Edition (рекомендуется)]Наиболее оптимальный вариант для самого широкого круга мапперов. Сборка поддерживает работу со всеми играми и модами серии «Half-Life 2 / Orange Box (Singleplayer и Multiplayer)» как старых, так и обновленных их версий (то есть, движки «Source Engine 2006, 2007, 2009, MP»). Возможность коддинга (т.е. программирования) в созданных вами модах доступна на движках Source 2006, 2007.
— Half-Life 2 (+ Episodes);
— Portal 1;
— Zombie Panic: Source;
— Моды на движке Source 2007 (Orange Box).
— Моды на движке Source 2009 (Orange Box).[/spoiler]
[spoiler=Multiplayer Edition]Если вы поклонник мультиплеера, то возможно, часть SDK, используемая только для сингла, вам не понадобится. В данную версию входят только движки версии «Source Engine 2007» и «Source Engine MP», позволяющие создавать как карты для популярных многопользовательских игр Valve, так и собственные многопользовательские моды (как уже сказано выше, движок «Source 2007» поддерживает коддинг).
— Counter-Strike: Source;
— Half-Life 2: Deathmatch;
— Day of Defeat: Source;
— Team Fortress 2;
— Garry’s Mod;
— Zombie Panic: Source;
— Моды на движке Source 2007.[/spoiler]
[spoiler=Complete Edition]Пожалуй, самый полный вариант сборки для любителей поэкспериментировать. Поддерживаюется маппинг как под традиционные игры и моды на Source (версии 2006/2007/2009), так и под игры, выпущенные на более свежих и модифицированных версиях движка Source (NCF/VPK-based), т.е. «Left 4 Dead», «Alien Swarm», «Portal 2» и «CS:GO». На движке «Alien Swarm» также присутствует возможность создания собственных модов и коддинга.
— Half-Life 2 (+ Episodes);
— Half-Life 2: Deathmatch;
— Counter-Strike: Source (включая версию 34);
— Day of Defeat: Source;
— Team Fortress 2;
— Portal 1;
— Garry’s Mod;
— Zombie Panic: Source;
— Insurgency;
— Left 4 Dead 2;
— Alien Swarm;
— Portal 2;
— Counter-Strike: Global Offensive.
— Моды на движке Source 2006;
— Моды на движке Source 2007 (Orange Box);
— Моды на движке Source 2009 (Orange Box).
— Моды на движке Alien Swarm.[/spoiler]
[spoiler=Alternative Edition]Версия для тех, кто собирается использовать в своих трудах только свежие решения последних лет. Традиционные движки и игры на основе GCF-кэшей не поддерживаются данной версией. На движке «Alien Swarm» присутствует возможность создания собственных модов и коддинга.
— Left 4 Dead 2;
— Alien Swarm (+ моды на движке);
— Portal 2;
— Counter-Strike: Global Offensive.[/spoiler]
Дополнение «Source SDK – Mod Bases».
Если вы работаете над модом, в котором планируете использовать только собственный контент и ресурсы, то для полноценной работы вам достаточно скачать пакет «Mod Bases», являющийся дополнением к данному SDK. При этом, никакие GCF-файлы или распакованные ресурсы игры вам вовсе не понадобятся. Более подробная информация содержится на странице дополнения.
Просьба к пользователям:
Прежде чем задать вопрос, ознакомьтесь с FAQ (инструкцией).
Ссылки для скачивания:
[spoiler=Source SDK v3.11 (Standard Edition)]Ge.tt | Яндекс-Диск (322 Мб)[/spoiler]
[spoiler=Source SDK v3.11 (Micro Edition)]Ge.tt | Яндекс-Диск (248 Мб)[/spoiler]
[spoiler=Source SDK v3.11 (Modder Edition)]Ge.tt | Яндекс-Диск (184 Мб)[/spoiler]
[spoiler=Source SDK v3.11 (Multiplayer Edition)]Ge.tt | Яндекс-Диск (249 Мб)[/spoiler]
[spoiler=Source SDK v3.11 (Complete Edition)]Ge.tt | Яндекс-Диск (587 Мб)[/spoiler]
[spoiler=Source SDK v3.11 (Alternative Edition)]Ge.tt | Яндекс-Диск (333 Мб)[/spoiler]
[spoiler=Исходники и Примеры] Основная часть (для всех версий сборки):
Ge.tt | Яндекс-Диск (173 Мб)
Контент для игр из Complete/Alternative Edition:
Ge.tt | Яндекс-Диск (37 Мб)[/spoiler]
[spoiler=Базовые GCF-файлы для моддинга]Минимальный набор кэша библиотек движка и игровых ресурсов, необходимый для модостроительства на движках Source 2006, 2007, 2009.
Для желаемого движка необходимо скачать файлы, содержащие в именах год его выпуска, плюс общие файлы ресурсов с пометкой «Shared».
После скачивания, все файлы необходимо разархивировать в общую папку и убедиться, что в настройках SDK к ней указан верный путь (о настройке читайте в мануалах сборки).
Скачать с Яндекс-Диск[/spoiler]
[spoiler=Пакеты «Source SDK – Mod Bases»]Страница дополнения[/spoiler] [/color][/b]
Патчи и обновления:
Ниже будут выкладываться патчи, фиксы и обновления. Обновления носят кумулятивный характер: более новые обновления включают все предыдущие.
Все апдейты ставятся поверх установленной сборки в общую корневую папку. После установки апдейта в некоторых случаях будет произведена самонастройка сборки.
[spoiler=Обновление с версий 3.0x до 3.11 (Standard/Micro/Modder/Multiplayer Editions)] Данное обновление не является расширением до Complete Edition, а лишь вносит изменения в предыдущие версии сборки в случае, если вы скачивали их ранее.
Дистрибутивы Complete и Alternative Edition выложены отдельно. Остальные дистрибутивы так же имеют актуальные версии.
Спсиок изменений:
* Обновление включает содержимое предыдущего HotFix’а v3.02.
* Восстановлена возможность смены языка в играх после процедуры изоляции от Steam;
* Исправлена ошибка, когда при работе со Steam-игрой, после компиляции карты вместо игры запускался Source SDK (ошибка SteamAppId);
* Улучшения в оболочке компиляции в Hammer: теперь она умеет запускать игры с AppId из GameInfo.txt и просчитывать общее время компиляции;
* Добавлена поддержка Steam ClientApp: теперь игры можно подключать и запускать не только в оригинальном Steam, но и в Cracked Steam;
* Устранена ошибка «Could not obtain mutex» (ошибка в модуле прогрессбара), иногда вызывавшая проблемы при установке и настройке сборки;
* При добавлении игры (либо ее версии) утилита «Edit Game Configurations» теперь прописывает правильный EXE-файл запуска, а не HL2.exe;
* Плагин превью текстур «MysticThumbs» не поддерживается Windows 8, поэтому его установка на данной ОС теперь запрещена;
* Если выбранный в USSDK движок не содержит dll для запуска игр, то при добавлении игры ее корневая папка теперь сменяется автоматически;
* Множество других изменений, направленных на повышение стабильности.
Ссылка #1 | Ссылка #2 [/spoiler]
[spoiler=Критическое исправление v3.12 (для версий 3.1x любой вариации сборки)] Данное исправление необходимо скачать тем, у кого после 19.04.2013 наблюдается вылет «hl2.exe» при запуске игр.
Описание исправления:
* Исправлен вылет игр в связи с ошибкой работы SteamClient.dll в онлайн-режиме после недавних обновлений.
* Обновлён эмулятор RevEmu до актуальной версии (10.03.2013).
Ссылка #1 | Ссылка #2 [/spoiler]
[spoiler=Обновление до версии 3.5-alpha с wrapper’ом для SteamPipe] Обновление добавляет в SDK поддержку всех перешедших на SteamPipe Source-игр и Source SDK Base 2013
VideogameSources/Team-Fortress-2-Source-Engine
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
This branch is not ahead of the upstream lua9520:master.
No new commits yet. Enjoy your day!
Latest commit
Git stats
Files
Failed to load latest commit information.
About
Leaked TF2 Source Engine source code from
2018. Thanks Tyler McVicker! (lib, tools/runtime excluded)
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Installing and Debugging the Source Code
Contents
Installing
To compile your code on Linux, see Compiling under Linux. To get the latest code, see GitHub.
Debugging
Debugging is the process of a human examining closely the inner workings of a program. It can reveal the causes of crashes and other bugs.
Windows
You can now press F5 at any time to start debugging. (If you really do want to debug in Release mode, repeat the above for that configuration. But don’t expect the results to be very useful).
The paths will be unique to the version of the SDK being used. For example, with Source SDK 2013, the settings for a single player mod might be:
Run-time attachment
If you want to debug a process that is already running, choose Debug > Attach to Process. and select it from the list.
Linux
gabivlj/game-engine-source-code
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Dessert: A 2D Game Engine for MacOS and Windows.
Disclaimer: This is only the source code!! You will need to install SDL2 by yourself.
For examples on how to use, check the SpaceInvaders folder, we use every API of the engine in that game:
For more information on how to create your own managers or components check Externals folder, we make a more detailed guide on how does it work there.
This project is not by any means ready for production and optimized for real use. Use it by your own risks.
About
Engine source code for the Game Engines lessons.
Анализ проекта Source SDK
Source SDK — набор утилит для создания модификаций на движке Source, разработанный корпорацией Valve. Исходные коды проекта были скачаны и проверены ещё в конце 2013 года. На новогодних праздниках я планировал написать статью о результатах проверок. Но лень победила творчество, и я приступил к написанию статьи только когда вернулся на работу. Впрочем, я думаю, вряд ли за этот период что-то успело измениться в исходных кодах. Предлагаю вашему вниманию ознакомиться с подозрительными местами, которые я нашёл с помощью анализатора кода PVS-Studio.
Что такое Source SDK
Позаимствую описание проекта из Wikipedia:
Source SDK (англ. Software Development Kit — «набор разработчика приложений») — набор утилит для создания модификаций на движке Source, бесплатно распространяемый Valve через сеть Steam всем игрокам, купившим любую Source-игру от Valve. Данный набор позволяет редактировать карты на двух версиях движка — 15-ой и обновлённой 7-ой (старая версия движка, используемая в Half-Life 2, не используется из-за совместимости с новой версией).
Проект достаточно большой, так что не удивительно, что в нём всегда можно выявить недочёты. Анализ был выполнен с помощью инструмента PVS-Studio.
Подозрительные выражения
Деление переменных на самих себя
PVS-Studio выдаёт предупреждение V501 на следующий файл: viewpostprocess.cpp 1888
Двойной вызов функции IsJoystickPOVCode()
PVS-Studio выдаёт предупреждение V501 на следующий файл: textentry.cpp 1639
Два раза вызывается функция ‘IsJoystickPOVCode(code)’. Второй вызов избыточен или следовало вызвать другую функцию.
Всегда ложное условие
PVS-Studio выдаёт предупреждение V547 на следующий файл: vrad.cpp 2412.
Условие «numbounce text)» вычисляет размер указателя, а вовсе не длину строки. Скорее всего, здесь следовало написать: Q_strcpy( msg->text, data);
Работа с уничтоженным массивом
PVS-Studio выдаёт предупреждение V507 на следующий файл: baseflex.cpp 1326
Адрес временного массива помещается в переменную ‘pszAct’. Так как этот массив будет разрушен, использовать адрес, содержащийся в ‘pszAct’ нельзя. Однако, на практике, этот код может работать, что создаёт ложную видимость корректности кода. Весьма вероятно, что область памяти, которую занимал временный массив ‘szActName’, далее не используется. В результате, программа ведёт себя так, как ожидает программист. Однако это везение и не более того.
Выход за границу массива
PVS-Studio выдаёт предупреждение V557 на следующий файл: hud_weaponselection.cpp 632, 633.
Счетчик цикла принимает значения от 0 до 6. Однако массивы xModifiers и yModifiers содержат в себе только 4 элемента. В результате, возникнет выход за границу массива.
Опасное использование оператора new.
Проверки, не имеющие смысла
PVS-Studio выдаёт предупреждение V668 на следующий файл: disp_vbsp.cpp 532.
Если не удаётся создать объект типа ‘CCoreDispInfo’, то должна быть вызвана функция g_CoreDispInfos.Purge(). Но эта функция вызвана не будет. Если произойдет ошибка выделения памяти, то возникнет исключение std::bad_alloc. Этот код является устаревшим и должен быть модифицирован с учетом изменений в поведении оператора ‘new’.
Другие места, где проверяется, что вернул оператор ‘new’ будут приведены в конце статьи в приложении.
Оператор new в деструкторе
PVS-Studio выдаёт предупреждение V509 на следующий файл: particles_new.cpp 92.
Опасно использовать в деструкторе конструкции, которые могут привести к возникновению исключения. Именно такой конструкцией и является оператор ‘new’. В случае ошибки выделения памяти, он генерирует исключение.
Поясню в чем опасность. Если в программе возникает исключение, начинается свертывание стека, в ходе которого объекты разрушаются путем вызова деструкторов. Если деструктор объекта, разрушаемого при свертывании стека, бросает еще одно исключение, и это исключение покидает деструктор, библиотека C++ немедленно аварийно завершает программу, вызывая функцию terminate().
Опечатки
Ошибка во вложенном цикле
PVS-Studio выдаёт предупреждение V534 на следующий файл: beamdraw.cpp 592.
Обратите внимание на второй цикл:
В условии завершения вложенного цикла используется переменная ‘i’, относящаяся к внешнему циклу. У меня есть сильное подозрение, что мы имеем дело с опечаткой.
Неправильная инициализация
PVS-Studio выдаёт предупреждение V525 на следующий файл: networkvar.h 455.
Мне кажется, функция должна была быть написана так:
Обратите внимание на последний вызов функции.
Последствие Copy-Paste
PVS-Studio выдаёт предупреждение V537 на следующий файл: trace2.cpp 189.
Скорее всего, этот код писался с помощью Copy-Paste. Смотрите, в первой строке используются члены класса с именем ‘x’. Во второй, с именем ‘y’. А в третьей есть как ‘z’, так и ‘y’. Скорее всего, код должен быть таким:
Присваивания разных значений одной переменной
PVS-Studio выдаёт предупреждение V519 на следующий файл: vgui_fpspanel.cpp 192.
По всей видимости, должно было быть написано:
Плохой конструктор
PVS-Studio выдаёт предупреждение V519 на следующий файл: ai_utils.cpp 49.
Неопределённое поведение
Сложные выражения
PVS-Studio выдаёт предупреждение V567 на следующий файл: c_baseanimating.cpp 5301, 5302.
Почему здесь возникает неопределённое поведение и почему нельзя предсказать значение переменной ‘m_nResetEventsParity’ хорошо описано в документации. В описании есть пример очень похожего кода.
Сдвиги
PVS-Studio выдаёт предупреждение V610 на следующий файл: c_func_breakablesurf.cpp 157.
Сдвиг отрицательных чисел приводит к неопределённому поведению. В этом коде отрицательным числом является ‘
0x03′. Подробнее вопрос сдвига отрицательных чисел я уже рассматривал в статье «Не зная брода, не лезь в воду. Часть третья».
Отсутствует виртуальный деструктор
PVS-Studio выдаёт предупреждение V599 на следующий файл: c_baseplayer.cpp 454.
Существует класс CFlashlightEffect. Он имеет не виртуальный деструктор. Однако, от этого класса наследуются класс CHeadlightEffect. Вытекающие из этого последствия, думаю, понятны.
Подозрительная арифметика
В проекте достаточно много мест, где странно сочетаются целочисленные типы и типы с плавающей точкой. Есть подозрение, что некоторые вычисления будут недостаточно точными или вообще не имеют смысла. Я продемонстрирую далее только 3 примера. Остальные подозрительные места перечислены в приложении.
Первый подозрительный фрагмент
PVS-Studio выдаёт предупреждение V674 на следующий файл: c_te_bloodstream.cpp 141.
Очень подозрительно вычитать из переменной типа ‘int’ значение 0.00001.
Второй подозрительный фрагмент
PVS-Studio выдаёт предупреждение V674 на следующий файл: prediction.cpp 977.
Тип переменной ‘step’ выбран не очень удачно.
Третий подозрительный фрагмент
PVS-Studio выдаёт предупреждение V636 на следующий файл: detailobjectsystem.cpp 1480.
Возможно, есть смысл вычислить значение переменной ‘flRatio’ более точно. Причина низкой точности — целочисленное деление. Для повышения точности, можно написать так:
Разное
Путаница с типами
PVS-Studio выдаёт предупреждение V556 на следующий файл: props.cpp 1520.
Переменная ‘Reason’ имеет тип PhysGunDrop_t. А ‘PUNTED_BY_CANNON’ относится к ‘PhysGunPickup_t’.
Потенциально опасный fprintf
PVS-Studio выдаёт предупреждение V618 на следующий файл: vice.cpp 52.
Функция ‘fprintf()’ может работать вполне корректно. Однако она потенциально опасна. Если случайно или сознательно в строке ‘msg’ будут содержаться управляющие символы, то последствия будут непредсказуемы.
Безопасный вариант кода:
Приложение
В файле будут перечислены другие предупреждения PVS-Studio, которые, на мой взгляд, заслуживают внимания. Но не следует целиком полагаться на этот список. Я смотрел проект поверхностно и мог на многое не обратить внимание. Плюс настоящая польза от статического анализа в его регулярном использовании, а не в разовой проверке проекта.
Talk:Source SDK Known Issues
Contents
Can’t open CreateModFiles\source2009\gameinfo_sp.txt
Brand new install of Steam. I own and have installed the following games:
plus others. I haven’t played them yet.
In the TOOLS list I have installed the following:
When I launched the Source SDK, the «Engine Version» was set to «Source Engine 2009», the «Current Game» was set to «Half-Life 2». I clicked on «Create a Mod». On the next screen I selected «Modify Half-Life 2 Single Player» and then clicked «Next >». I browsed to a directory and gave the mod a name, after clicking «Next >» I got this error:
Clicking OK only repeats the Error message, it is stuck in a loop. —Unsigned comment added by Just in case (talk • contribs). Please use four tildes (
) to sign your username.
SDK doesn’t start, help
) to sign your username.
Community bugs
For bugs found after the November 2007 sdk update, the current buglist can be found at Source SDK SE2 Bugs. For past bugs, please see the August 2006 Community Buglist.
Will this be a page later or?—Gear 12:44, 7 Nov 2007 (PST)
Issues with the Article itself
SDK_Does_Not_Compile_Under_Linux is no longer relevant after the 2006-08-14 SDK update.
Is it possible to add some of the ‘SDK code issues’ errors text in there, so a search engine could list this article? The MountAppFilesystem() error probably has a handful of people still looking for help. Hell, after 2 weeks of looking for help, I finally found an forum that had this article linked here. And scary is that I’ve been running through this Valve Developer Community since the start!
SDK engine code error
when starting source SDK i get a message stating that there are no engines on my computer the it can find do i need different version of SDK to get the counter strike source engine to show up so i can make a new map.
Try launching the SDK with the «-engine ep1» launch option (no quotes). If that doesn’t work, the problem is (probably) with your gamecfg.txt. It is possible to edit this file manually, but using the SDK menu to «reset game configurations» would be safer. Oh yeah, you need to own Counter-Strike:Source, too.—Bit Mage 14:25, 18 Dec 2008 (PST)
Direct Hammer shortcut
The SDK launcher program doesn’t remember which game type you were working on last (I’m sure it used to). So the shortcut to Hammer causes it to load the wrong game type (unless you are working on whatever it defaulted to). Does the SDK Launcher have a command line option for the game to default to? Supertin 15:59, 17 Jun 2008 (PDT)
No SDK?
Hammer runs, but won’t appear
Mod not loading
I can’t load my mod. It shows the Loading Screen and then closes itself. No Errors. It is not from scratch.
Mod not loading
Cache Error
Have you tried making Steam verify any GCFs your mod uses?—Bit Mage 04:30, 22 June 2010 (UTC)
SDK is hiding Source 2006??
i recently updated sdk and all that jazz but ever since then whenevr i open my source 2006 tab it show under it te games but i cannot click on the scroll bar or anything!
Help with Half-Life 2 DM,Source SDK 2006
Okay, so I load up SDK, go to the hammer editor under 2006. I want to make maps for half-life 2 deathmatch
Hammer loads up just fine, but when I tell it to create a new file, or open a previous one, I get this «Fatal Error» message 4 times in a row
Can anyone donate a editor/wireframe file,pls?—Gyro 09:31, 4 November 2010 (UTC)
I actually have uninstalled the SDK completely, and tried resetting the configurations, but nothing works. I actually gave up on this a while ago, and now make Portal 2 maps
game_text no longer works
Attempting to create a new line in a game_text entity will fail due to hammer editor «fixing» backslashes(from \n to /n ). Apparently the only way to fix this is to edit the file in notepad. Very frustrating.—Unsigned comment added by Ibemad (talk • contribs). Please use four tildes (
) to sign your username.
Russian translation (partially, at the moment) available for the page
finding the software
Can someone please tell were to get steam engine, source SDK? I onestly don’t were to it all.—Unsigned comment added by Camp111 (talk • contribs). Please use four tildes (
) to sign your username.
Open the Steam client, select LIBRARY from the top. Next to the search bar, select the TOOLS drop-down, scroll down until you see Source SDK. Right-click and select Install. or double-click to begin the download and installation process. —Mattshu 22:30, 17 September 2011 (PDT)
Source SDK 2009 Error
Okay So I’ve begun using Source SDK MP for map making but now for personal reasons I want to / need to start using the Source SDK 2009 engine. Every time i open it it says i have no game configurations to run it with. Games i own: Counter-Strike:Source Team Fortress 2 and 60 others. I’ve tried resetting my Source SDK game configs ect. Reinstalling Source SDK Reading every topic about this on Google reinstalling SDK + CS:Source Reinstalling every game and steam running as a administrator Reinstalling my entire OS Watching hours of YouTube and it still won’t work. Anybody wanna do team viewer or give a actual helpful tip? Thanks in advance.
Instances not being compiled in Source 2009
Instances are not compiled with the map in source engine 2009, newer engine branches work fine.
SamVanheer/halflife-updated
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Half Life 1 SDK LICENSE
Half Life 1 SDK Copyright© Valve Corp.
THIS DOCUMENT DESCRIBES A CONTRACT BETWEEN YOU AND VALVE CORPORATION (“Valve”). PLEASE READ IT BEFORE DOWNLOADING OR USING THE HALF LIFE 1 SDK (“SDK”). BY DOWNLOADING AND/OR USING THE SOURCE ENGINE SDK YOU ACCEPT THIS LICENSE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE PLEASE DON’T DOWNLOAD OR USE THE SDK.
You may, free of charge, download and use the SDK to develop a modified Valve game running on the Half-Life engine. You may distribute your modified Valve game in source and object code form, but only for free. Terms of use for Valve games are found in the Steam Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/
You may copy, modify, and distribute the SDK and any modifications you make to the SDK in source and object code form, but only for free. Any distribution of this SDK must include this license.txt and third_party_licenses.txt.
Any distribution of the SDK or a substantial portion of the SDK must include the above copyright notice and the following:
DISCLAIMER OF WARRANTIES. THE SOURCE SDK AND ANY OTHER MATERIAL DOWNLOADED BY LICENSEE IS PROVIDED “AS IS”. VALVE AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES WITH RESPECT TO THE SDK, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, TITLE AND FITNESS FOR A PARTICULAR PURPOSE.
LIMITATION OF LIABILITY. IN NO EVENT SHALL VALVE OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE ENGINE AND/OR THE SDK, EVEN IF VALVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
If you would like to use the SDK for a commercial purpose, please contact Valve at sourceengine@valvesoftware.com.
This is the README for the Half-Life 1 engine and its associated games.
Please use this repository to report bugs and feature requests for Half-Life 1 related products.
If you encounter an issue while using Half-Life 1 games, first search the issue list to see if it has already been reported. Include closed issues in your search.
If it has not been reported, create a new issue with at least the following information:
Please place logs either in a code block (press M in your browser for a GFM cheat sheet) or a gist.
There are basic rules of conduct that should be followed at all times by everyone participating in the discussions. While this is generally a relaxed environment, please remember the following:
Remember: Just because the issue you reported was reported here does not mean that it is an issue with Half-Life. As well, should your issue not be resolved immediately, it does not mean that a resolution is not being researched or tested. Patience is always appreciated.
undnull/refraction
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Refraction is an open-source Source Engine 2013 mod aimed for adding some Quality-of-Life changes and fixes to the SP SDK.
At its current state Refraction is about 75% compatible with HL2 and Episodic maps.
Optional and discontinued features
Refraction is a dual-licensed project.
In short: you may use the code as long as you have LICENSE_MIT added to your source and binary tree via thirdpartylegalnotices.txt
About
A Source Engine 2013 SP mod aimed to provide bug fixes and various development features
asc-community/MxEngine
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
MxEngine is an educational modern-C++ general-purpose 3D game engine. Right now MxEngine is developed only by me, #Momo, but any contributions are welcome and will be reviewed. Fow now MxEngine supports OpenGL as graphic API and targets x64 only. I develop the project in my free time, so updates may be not so frequent!
Note: MxEngine is currently being ported to new Vulkan rendering backend. Development progress of the rendering library can be found here: VulkanAbstractionLayer
MxEngine releases come with versions in format X.Y.Z where X stands for major release, Y for minor release and Z for bug fixes or non-significant changes.
Major releases are prone to breakage of already existing API and functional but bring a lot new features to the engine. Usually it is possible to rewrite all code using new API and retain former behaviour.
Minor releases may change API or add new features but usually user code can be easily adapted to them. With this releases also come some new MxEngine user libraries (for example new bindings or non-required components)
Bug fixes & improvements are just fixes to already existing code to reestablish initially planned behaviour. This fixes may also be merged into major or minor releases if they come in the same time.
For full version list see versions.md file
Installing and running MxEngine
As a developer (if you want to contribute or check samples)
Right now MxEngine is distributed in source code with configurable CMake files. Here are the steps you need to do to compile and run MxEngine sample projects:
As a user (if you want to develop your own application)
To develop your own applications using MxEngine you can use template project with already setup dependencies: MxEngineTemplate (make sure it contains up-to-date version of the engine)
You can easily create spheres, planes, cylinders and etc. Custom number of vertecies for displacement maps are supported out of box
Loading object from file
MxEngine is using Assimp library which can load any popular object format. To load materials simply pass same path to object file
Dynamic directional lights, spot lights and point lights are supported. Each has a similar interface and is created in a uniform way
Using scripts for runtime code compilation
Creating multiple objects using GPU instancing
you can create MxObjects which share same mesh and material. They all can have different position and color, but still rendered in one draw call
Playing audio files
To play audio files in 3D world, attach listener to player object and create object with audio source component. mp3, wav, flac and ogg file formats are supported
Controlling particle systems
The engine supports particle systems which are computed on GPU (up to million particles at 60FPS)
(); particles->SetMaxParticleCount(5000); particles->SetParticleSpeed(10.0f); particles->SetShape(ParticleSystem::Shape::HEMISPHERE);»>
Managing multiple cameras
You can create cameras and render scene from different angles. The results can be used for post-effects or dynamic textures
Creating physical objects
MxEngine supports realtime physics simulation. Just add RigidBody component and attach suitable collider
Raycasting on your game scene
All physical objects with colliders can be raycasted and accessed using simple api
Setting up timers and events
You can sign up for event or create timer with specific call interval in one line of code
Reading input from user devices
To read input, you can add event listener or just retrieve state in update method. Also, there are binders for player controls
Integrating your editors into MxEngine runtime editor
If you want custom editors in your application, you can use ImGui functions in update loop
Saving rendered images to disk
Sometimes you want to save rendered image to your hard drive. There are functions to do so
Drawing debug primitives
There are cases when you just want to display some 2D primitives to debug your game or check current object state
You can save your game objects, resources and scripts into a json script file. They can be loaded later with one function
If you are interesed in libraries MxEngine depend on, consider reading dependencies.md file. It contains third-party library list with links to each project’s github repository and brief explanation of why each library is used in the engine. Note that some of the libraries are shipped in modified version, so do no try to edit engine CMake file if your are unsure if everything will still work correctly
Answers to some questions:
Is it possible to build MxEngine under Linux/MacOS/other system?
MxEngine supports Windows/Linux builds. Unluckly, other systems are not supported out-of-box for now. If you want to help with porting library to other systems, consider reading PR guideline.
Whats the roadmap for the engine? Which features can I expect to see, if I follow this repository?
I put all features and not-fixed bugs to the public trello board. If you want to see some specific feature in engine, which is not mentioned already, you can request it in feature request issue
Why do you do this project? How long are you planning to develop the engine? Will it one day be better than UE/Unity/Godot?
Initially this was an educational project (actually I still learn a lot of new things when developing it), where I learned about OpenGL, graphics, software engeneering and game development. I loved it and still love to spend my free time fixing some stuff or implementing new features. Thats really a great opportunity to have such cool project, even if it will never be any better than existing game engines like Unity or Unreal Engine
If I want to help you with development, how can I get into this project? Is there a documentation for it?
Sadly there are too much things that I need to document and so much features which I need to implement, that I have almost no time for proper documentation. You can start with ProjectTemplate CMake project, and try some things for yourself. I promise I will add more samples with each release to make usage of the engine easier. If you want to help me with developing, building on other systems or fixing bugs, first contact me personally (links to my social media can be found in my profile). We can discuss what you may do and how can you help the engine to progress
More engine screenshots
physics simulation with colliders turned on
Sponza scene with one point light
light and sound bounds, other debug utilities
shadow casting from dynamic lights, screen-space reflections
Projects based on MxEngine
Here is the list of some projects using MxEngine. If you want to see yours here, contact me.
FrictionalGames/HPL1Engine
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.markdown
HPL1 Engine Source Code
Yes, here it is at last the Engine that made the Penumbra Series.
Read through the TODO file for various known things that should be cleaned up / fixed.
Included are project files for Xcode, Visual Studio 2003 and Cmake (for Linux)
We encourage everyone to contribute code to this project, so just sign up for a github account, create a fork and hack away at the codebase. We will start an Open Source forum on the Frictional Games forums as a place to talk about changes and to submit patches from your forks.
All code is under the GPL Version 3 license except for the «test» which are included under the ZLIB license. All of the assets are licensed under the Creative Commons Attribution Share-Alike 3.0 license except for the CG shaders which are under the ZLIB license. Please read the COPYING and LICENSE-* files for more information on terms of use.
sourcegraph/sourcegraph
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Sourcegraph is a fast and featureful code search and navigation engine.
Features
Sourcegraph has three editions:
Source code for all three editions is contained in this repository. See the License section for more details.
Sourcegraph Enterprise (free up to 10 users)
The fastest way to run Sourcegraph self-hosted is with the Docker container. See the quickstart installation guide. There are also several additional ways of running a production instance.
Sourcegraph should now be running at https://sourcegraph.test:3443.
For detailed instructions and troubleshooting, see the local development documentation.
Refer to the Developing Sourcegraph guide to get started.
The doc directory has additional documentation for developing and understanding Sourcegraph:
This repository contains both OSS-licensed and non-OSS-licensed files. We maintain one repository rather than two separate repositories mainly for development convenience.
All files in the enterprise and client/web/src/enterprise fall under LICENSE.enterprise.
The remaining files fall under the Apache 2 license. Sourcegraph OSS is built only from the Apache-licensed files in this repository.
htmlacademy/template-engine-source
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Исходники для курса «Шаблонизаторы HTML»
Инструкция по установке и сборке
Для начала вам нужно установить Node.js на свой компьютер, если он ещё не установлен. Как установить Node.js можно узнать по этой ссылке
Когда менеджер пакетов установлен, нужно установить сами зависимости с помощью консольной программы yarn install
Теперь все необходимые утилиты и пакеты установлены, можно переходить к запуску сборки.
Ещё раз опишем по пунктам действия, которые нужно сделать для работы с данной сборкой:
dougrattman/SourceEngine2007
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
About
Source engine 2007 fork
License
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Adrianilloo/SourceSDK2013
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
This branch is 21 commits ahead of ValveSoftware:master.
Open a pull request to contribute your changes upstream.
Latest commit
Git stats
Files
Failed to load latest commit information.
README
About
The 2013 edition of the Source SDK
Resources
License
Stars
Watchers
Forks
Releases 4
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Source engine source code
Hi there,
I want to start the Development of a little RTS Game. I have more than 10 year experience in C++ development. I have spend weeks now to try out any web-links to find any information to get started with source engine. Everywhere ist talking about source engine is free, but ending up in non helpfull information. I did not find any understandable descriptions or tutorials how to setup the development environment based on the source engine, just for an own game. I have installed Source SDK, but it looks like only to be applicable for modification development of already existing games like HalfLive or Portal. Every of the tools is not starting e.g. Hammer Editor says there isn’t a configuration file available. I think Source SDK, sound promising, but is not applicable for my needs.
Does anyone can give me a hint where to find the required information?
* Where to get/download a working game development environment based on source engine?
* How to setup the game development environment?
* Is it a good idea to deal with valve source engine environment?
What you can get is the source code and assets of HL2, HL2:MP, Alien Swarm. Then you can modify any of them to make your RTS game/mod. There is already an RTS mod called Lambda Wars.
Also the errors you are getting from Hammer are caused by using the outdated Source SDK Launcher. You’ll want to install Source SDK Base 2013 (you’ll need it for running your mod anyways) and use the Hammer in its bin folder (Steam/SteamApps/common/Source SDK Base 2013/bin/Hammer.bat).
If you are looking to make an RTS game you are looking at the wrong engine I’m afraid. Source 1 uses bsp tech which while good for games like Quake and Half-Life 2 is not good for more open world games like an RTS. It is possible (as there have been about 2 or 3 RTS mods at this point) but it’s like using a hammer to put a screw in a board, yeah you can do it but it doesn’t make it the best tool for the job. Not to mention the Source coding community is not large at all, learning Source and coding with it is an uphill battle because there is not a lot of good documentation. There’s some good articles on the wiki but they a lot are outdated at this point because they were written between 2005-2010. A number of things have changed during that time which makes previous code examples not work without some troubleshooting and that is not ideal honestly for someone who is trying to learn the engine.
I would look at the Spring Engine [springrts.com] the code is open source with a GNU GPL v2 which means that your code must be open sourced but everything else can be closed source (so things like texture, models, sounds, etc) so as to provide the community and future developers the ability to learn off your code. If you want to make a for profit RTS game on a budget that’s where I would start. Other engines you should consider would be Unity and Unreal 4. I mean you could even probably consider a more 2D focused engine if you wanted.
I hope this next bit doesn’t get me a ban but I would be hesitant at this point in time to recommend holding out for Source 2.
We still know very little about the engine but what we do know so far doesn’t exactly put it as a strong competitor to Unreal 4 yet outside of the networking is apparently very well done. People are making some really amazing things with Unreal 4, there’s a large community, direct developer support and a lot of tutorials and examples already out there. On top of that the longer Source 2 is not released the further Unity and Unreal get ahead in terms of user foothold and when it is looking like there won’t be huge differences between the two it becomes harder to convince developers who are already have a feel for the other engines to switch.
Valve has done a lot for developers and the modding community but in the last couple of years they have slipped quite a bit and let down people. They put to much reliance on the community to update their wiki for them and develop the tutorials and fixes they should be doing. I hope it’s a case of them being too occupied with Source 2 and making sure that launches really well and support from there on out will be amazing with well documented code and a group in charge of running community relations between developers and the Source 2 team but at this point I have very little hope given the track record. I guess what I’m trying to say is that Valve is great at making tech but they are not great at documenting that tech for third party use and I don’t blame them as that is the least fun part of development.
That said Ludwig has done a great job of looking after the SDK 2013 repo and I wish more of Valves employees were hands on with the community like he is.
Adding PBR to Your Mod
The goal of this article is to show you how to implement Thexa4’s PBR shader into your own Source SDK 2013 mod. Implementing this shader will allow you to use the metalness/roughness PBR workflow in materials.
Contents
Introduction
Requirements
Implementation
Before doing anything, we need to download the files we need.
You can do this by going to the links below, clicking the «Raw» button and once the page has loaded right-click and select «Save As. «.
Then all you have to do is save each one of the files to your Source mod’s code directory under src/materialsystem/stdshaders/.
We do this so that when we refresh the solution they will appear in the solution explorer.
Shader Compilation
We need to compile the shaders that we have before we can use them. Create two files in src/materialsystem/stdshaders/ named mymod_dx9_30.txt and mymod_dx9_20b.txt and add this inside:
mymod_dx9_30.txt
mymod_dx9_20b.txt
Adding new text files for shader compilation will allow you to compile the PBR shaders without affecting the standard LightmappedGeneric shaders.
This will also reduce compile times significantly.
Now open the buildsdkshaders.bat file using Notepad and edit this part below from:
This will allow you to use the custom text file that we made earlier to compile our PBR shader.
After that, we can now start the shader compilation by running buildhl2mpshaders.bat, buildhl2shaders.bat or buildepisodicshaders.bat depending on your mod’s base.
Make sure you’ve followed the Shader Authoring article to the point where the newly compiled shaders will be properly placed on your mod’s shaders/fxc/ folder.
If the shaders compile without problems, go back to your source code directory /src/ and run createallprojects.bat.
Run the solution and build shaders in Release.
Fixes
Physics props turn black when used with the PBR shader after 2-3 seconds due to Prop Sleeping. After a set time, props «bake» their lighting for optimization.
You can bypass this by typing r_PhysPropStaticLighting 0 on the console or by hardcoding it in src/game/client/c_physicsprop.cpp.
Here is how you can hardcode it:
Below #include «tier0/memdbgon.h» add this:
Then find ConVar r_PhysPropStaticLighting(«r_PhysPropStaticLighting», «1»); and turn it into this:
Parameters
Examples
Brush (non-model surfaces) material example
Model material example
Model material example with specular map
Conclusion
And that’s it! You should now have PBR in your mod.
Valve Software
We’ve verified that the organization ValveSoftware controls the domain:
www.valvesoftware.com
Pinned
Issue tracking for the Steam for Linux beta client
Issue tracker for the Linux port of SteamVR
Reliable & unreliable messages over UDP. Robust message fragmentation & reassembly. P2P networking / NAT traversal. Encryption.
Compatibility tool for Steam Play based on Wine and additional components
10 Updated Aug 27, 2022
Wine with a bit of extra spice
14 Updated Aug 27, 2022
dxvk tree containing branches used by Proton
0 Updated Aug 27, 2022
The 2013 edition of the Source SDK
46 Updated Aug 27, 2022
A runtime environment for Steam applications
3 Updated Aug 26, 2022
List of devices Steam and SteamVR will want read/write permissions on, to help downstream distributions create udev rules/etc
4 Updated Aug 23, 2022
47 Updated Aug 22, 2022
CS:GO Event Documents
1 Updated Aug 17, 2022
Reliable & unreliable messages over UDP. Robust message fragmentation & reassembly. P2P networking / NAT traversal. Encryption.
2 Updated Aug 12, 2022
0 Updated Jul 28, 2022
People
Top languages
Most used topics
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
junjiehuang/SourceEngine
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
The latest available Source Engine source code, gathered from a variety of sources
About
The latest available Source Engine source code, gathered from a variety of sources
Resources
License
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Source engine source code
Copy raw contents
Building Friday Night Funkin’: Kade Engine
Please note that these instructions are for compiling/building the game. If you just want to play Kade Engine, play in your browser or download a build instead: play in browser ⋅ latest stable release ⋅ latest development build (windows) ⋅ latest development build (macOS) ⋅ latest development build (linux). If you want to build the game yourself, continue reading.
Also note: you should be familiar with the commandline. If not, read this quick guide by ninjamuffin.
Also also note: To build for Windows, you need to be on Windows. To build for Linux, you need to be on Linux. Same goes for macOS. You can build for html5/browsers on any platform.
Windows-only dependencies (only for building to Windows. Building html5 on Windows does not require this)
If you are planning to build for Windows, you also need to install Visual Studio 2019. While installing it, don’t click on any of the options to install workloads. Instead, go to the individual components tab and choose the following:
This will install about 4 GB of crap, but is necessary to build for Windows.
macOS-only dependencies (these are required for building on macOS at all, including html5.)
If you are running macOS, you’ll need to install Xcode. You can download it from the macOS App Store or from the Xcode website.
If you get an error telling you that you need a newer macOS version, you need to download an older version of Xcode from the More Software Downloads section of the Apple Developer website. (You can check which version of Xcode you need for your macOS version on Wikipedia’s comparison table (in the min macOS to run column).)
Cloning the repository
Since you already installed git in a previous step, we’ll use it to clone the repository.
Finally, we are ready to build.
Check the Troubleshooting documentation if you have problems with these instructions.
ValveSoftware/Source-1-Games
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This is the README for the Source 1 based games. Source 1 based games include Team Fortress 2, Left4Dead2, and Counter-Strike: Source.
Please use this repository to report bugs and feature requests for Team Fortress 2, Counter-Strike: Source, Left4Dead2, and the Source 1 Engine.
There are basic rules of conduct that should be followed at all times by everyone participating in the discussions. While this is generally a relaxed environment, please remember the following:
Remember: Just because the issue you reported was reported here does not mean that it is an issue with Team Fortress 2, Counter-Strike: Source or any other Source 1 game. As well, should your issue not be resolved immediately, it does not mean that a resolution is not being researched or tested. Patience is always appreciated.
If you encounter a bug while using Source 1 games, first search the issue list to see if it has already been reported. Include closed issues in your search.
If it has not been reported, create a new issue with at least the following information:
Please place logs either in a code block (go here for a GFM cheat sheet) or a gist.
Your system information must include:
If you are asking for a new feature or enhancement for a game, first search the issue list to see if it has already been asked for. Include closed issues in your search.
If it has been asked for, go ahead and put your 2 cents in for it in the existing entry.
If it has not been asked for, create a new issue with at least the following information:
Remember that just because you ask for a feature improvement doesn’t mean we’ll get to it. We’re mostly going to be focused on existing bugs rather than enhancing these games. That being said, it does make a difference to know what you want here. Be clear. Be concise.
Driver Contact Information
Some of the issue you may be experiencing are due to the various video drivers. Here is an incomplete list of places that you might be able to file bugs or get additional help:
AMD Steam Linux forum for reporting compatibility and performance issues with AMD hardware:
The AMD Open Source driver is a part of Mesa, so use the links under «Intel» to report issues with it.
For discussions, there is the mesa-users email list:
Bugs and feature requests should be logged in bugzilla:
NVIDIA supported drivers
Open Source NVIDIA driver (nouveau)
If you know of any other places, please let us know.
Known Video Driver/Card issues:
6xxx and 7xxx hardware have been EOL’d. The code specific to these GPUs isn’t even compiled into drivers anymore.
6xxx and 7xxx GPUs are incapable of performing sRGB functionality needed by Source Engine titles when being driven by OpenGL. (The sRGB behavior as specified in OpenGL is slightly different than the behavior that was actually unspecified in D3D9, which is why this works in D3D9 but not in OpenGL).
About
Source 1 based games such as TF2 and Counter-Strike: Source
Source SDK 2013: Your First Shader
Contents
Introduction
This page will teach you how to create a screen space pixel shader for use with Source SDK 2013.
Prerequisites
This tutorial assumes the following:
Overview
Definitions
Words you should understand the meaning of before you continue reading:
Architecture
Before we can begin, it is helpful to have a high-level understanding of the shader system in Source. The shader system consists of 4 major modules. The table below lists each module and describes (in a simplified fashion) its purpose:
Module name | Purpose |
---|---|
materialsystem | Responsible for loading vmt files and managing shader modules. |
shaderapidx9 | Low level graphics handling. Contains the implementation specific (DirectX) interface to the graphics adapter. This module also stores all of the shader instances. |
stdshader_dx9 | Contains the base set of shaders that ship with all Source games. The _dx9 identifier indicates that this module contains only DirectX 9 versions of the built shaders. Fallback shaders will be described later in this article. The stdshader modules expose a dictionary that maps symbolic shader names to shader objects. This will be used during shader lookups which we’ll cover below. |
game_shader_dx9 | This module will contain all of your custom shaders. It is last to load in the game initialization process, thus allowing you to replace shaders defined in stdshader_dx9 (or below). |
Shader Loading Process
The shader loading process is straightforward:
Parts of a Shader
A shader in source consists of four parts:
Name | Purpose |
---|---|
Source file (.cpp) | Contains the C++ implementation of the shader. Its from here that you select the various shader combinations and perform state changes. |
Vertex shader | The shader code that operates on all applicable vertices. |
Pixel shader | The shader code that operates on all applicable pixels. |
Material | Applied to surfaces you want your shader to render on. |
Since our shader is a screenspace shader, we can leverage the SDK_Screenspace_General vertex shader. This means we’ll only need to write code for the source file, the pixel shader, and the material.
Source File
This will add it to the build.
Pixel Shader
In that same directory, you’ll need to create a pixel shader file called my_pixelshader_ps2x.fxc with the following contents:
Now you’ll need to edit stdshader_dx9_20b.txt and add the following line: my_pixelshader_ps2x.fxc
Material
Putting It All Together
If you’ve followed the steps above, you should have created three files:
Now all you need to do is the following:
Read on for the explanation of the various parts.
Why It Works
This section will go through the different parts of the shader we just made.
The Source File
Declaring the Shader
The shader source file’s first purpose is to declare your shader to the Source engine. Recall that in the shader loading process section, I mentioned how each shader module exposes a dictionary of all known shaders to the material system. The following line does this for our shader:
The first parameter is the name of your shader. If you actually dig into the BEGIN_SHADER macro, you’ll find that this actually declares a namespace with the same name as your shader (in this case, MyShader ). The last line in the shader file:
Actually creates a static instance of your shader (which registers itself with the shader module) like so:
Declaring Shader Parameters
Next, you’ll notice the shader parameters block:
This block allows you to define inputs that can be set via your material. You can create multiple materials with different parameters in order to generate different effects out of a single shader. For now, we’ll leave this block empty.
Requesting a Full Frame Buffer
Initially when I wrote the code for this example shader, I wasn’t able to get it to work. Turns out if you don’t actually tell the shader system that you want a full framebuffer texture, the material will be rendered incorrectly if used as an overlay. To fix this, I simply put the following lines of code in:
Now, when you use the material with r_screenoverlay, it’ll render your shader on a surface that’s the same size as your game’s window, thus rendering properly.
Defining a Shader Fallback
Source is well known for its ability to scale across different sets of hardware. This is due (in part) to the shader fallback system. This system allows the shader author to specify a fallback shader to use if the current shader is incompatible with the graphics hardware it is running on. For example, the Core shader for Half-Life 2: Episode One actually had three variants, DX9, DX8 and DX7. The DX9 shader would fall back to DX8 and the DX8 shader would fall back to DX7 with DX7 falling back to wireframe. The shader in this tutorial is written with only DX9 in mind so we fall back to the wireframe shader if we fail:
The Drawing Process
The next line (while not necessary) disables writing to the depth buffer for optimization purposes.
The DECLARE_STATIC_VERTEX_SHADER and SET_STATIC_VERTEX_SHADER lines tell the shader that we want to use sdk_screenspaceeffect_vs20 as our vertex shader. sdk_screenspaceeffect_vs20 is actually a named type that must be declared before it can be used. This is why the following lines are at the top of MyShader.cpp :
The next set of lines:
Select the dynamic combinations of the vertex and pixel shader. You can read up on shader combinations here.
Finally we have this line:
This line is what actually renders your shader. It needs to go at the end of the SHADER_DRAW block.
The Pixel Shader
Texture coordinates are a pair of (x,y) values that lie on a plane. 0,0 is the top left of the plane. 1,1 is the bottom right of the plane. The plane in this case is actually the screen itself (hence the name: screenspace).
Next, we define our main function. Every shader must have a main() function as an entry point:
We use the COLOR semantic at the end of main() to tell HLSL that we’re returning a value that should be used as the pixel color (RGBA format). In our pixel shader’s case, we’re returning red.
The Material
The material is super simple:
Final Thoughts
Whew! You’ve made it through this wall of text. By this point you should:
When you’re ready, check out the next tutorial: Source SDK 2013: Your Second Shader
nullworks/source-sdk-2013-headers
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
This branch is 6 commits ahead of ValveSoftware:master.
Open a pull request to contribute your changes upstream.
Latest commit
Git stats
Files
Failed to load latest commit information.
README
About
Headers from 2013 edition of the Source SDK
Resources
License
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Apress/introduction-video-game-engine-development
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Apress Source Code
This repository accompanies Introduction to Video Game Engine Development by Victor Brusca (Apress, 2021).
Download the files as a zip using the green button, or clone the repository to your machine using Git.
New Sample Game Projects
A new game project, well a port of an old cell phone game, to the MmgGameApi used in this text. The game is an RPG that runs off of a data file. It’s a great example of how easy it is to port old Java based call phone games to the game engine. Use the link below to get the source code and check it out. Enjoy!
Release v1.1 corresponds to the code in the published book, without corrections or updates.
See the file Contributing.md for more information on how you can contribute to this repository.
General Project Notes
Ssome general project notes to help make sure you have things setup correctly and can address the most common issues quickly are as follows:
The ENGINE_CONFIG_FILE field of the static main class should point to the game project’s config file in the ‘cfg’ directory with a relative path from the project’s working directory.
The game engine config file should have a NAME entry with a value that is the same as its associated project and that project’s resource folder.
To turn off the gamepad 1 input add this line to your game engine config file:
Install Monogame Latest (C# Version Only):
Chapter 20: DungeonTrap Project Setup (E1)
Chapter 20 starts the game build process by getting your development environment setup and ready to go. You’ll also get the project compiled and running with a generic main menu screen.
Chapter 21: DungeonTrap Main Menu Screen (E2)
In Chapter 21, we add in a custom main menu screen and supporting classes then run the game to demonstrate the changes.
Chapter 22: DungeonTrap Base Classes (E3)
In this chapter you’ll start creating the classes that power the DungeonTrap game by defining the base classes that form the game’s foundation.
Chapter 23: DungeonTrap Level 1 and 2 Extended Classes (E4)
Chapter 23 takes us further along in our game creation journey by defining all the classes that extend the game’s base classes.
Chapter 24: Completing The Game (E5)
In this chapter we complete the DungeonTrap game by reviewing the finished game classes one method at a time.
About
Source Code for ‘Introduction to Video Game Engine Development’ by Victor Brusca
Source
Valve | Released 2004
The Source engine is a 3D game engine developed by Valve Corporation. Its unique features include a large degree of modularity and flexibility, an artist-driven, shader-based renderer, accurate lip sync and facial expression technology, and a powerful, efficient and completely network-enabled physics system.
Left 4 Dead 2 Mapping Tutorials
Left 4 Dead 2 Mapping Tutorial series. Also compatible with Left 4 Dead 1. In this series I will teach how to make maps for campaigns initially and later.
This guide will guide you through how to install and setup the Dark Messiah of Might and Magic SDK for both the singleplayer and multiplayer version of.
This guide will guide you through how to install and setup the SiN Episodes SDK.
How to install and fix ReShade SSAO (Ambient Occlusion) for Source Engine
In this tutorial i will show you how to install ReShade and repair messed DepthBuffer in Source Engine for SSAO/DepthOfField and all depth related shaders.
TUTORIAL: How to make ‘Propper’ work for CSGO using CSS
I always had trouble with Propper and csgo, i never got around to getting it to work properly, but now i managed to find a workaround using Counter-strike.
[Source Engine] Implementing Basic SSAO Shader | Part 2
It is the second part of ‘Implementing Basic SSAO Shader’ tutorial. In this part I will show you how to make the shader work in game.
[Source Engine] Implementing Basic SSAO Shader | Part 1
In this tutorial I will show you (not teach) how to implement basic SSAO shader into Source Engine.
Fixing CS:S Worldmodel for HL2 NPCs/HL2MP Players
Fixing Counter-Strike: Source’s weapon worldmodels for use with HL2 NPCs/HL2MP Players.
Running CUBE V2 Mod, Post Steampipe
With the advent of Steampipe, thousands of mods stopped working correctly. Often, they can be made to run with some edits to gameinfo.txt, but getting.
SteamPipe and Background Maps
After the SteamPipe update, many mods ceased function. Most of these mods could be fixed by changing the contents of GameInfo.txt, but some were resilient.
Setting up a mod with the Source SDK 2013
Just follow through these two videos, and you will have a mod that you are able to add custom code into. Since The new 2013 version of the SDK just recently.
How to make a prop in XSI for HL2
UDK: Creating Modular Assets from a Texture Sheet
Tutorial that shows how to create modular assets very quickly using a texture sheet.
Creating a custom env_screenoverlay
This tutorial will show you how to create a image in Photoshop that can be overlaid onto the player’s vision in Half-Life 2 + Episodes
How to modify weapon models
How to decompile a model, edit a QC file, instal xsi addon, use XSI Mod tool 7.5
Creating HD Eyelashes for Characters
This tutorial can be applied not only on eyelashes, but on any kind of organic or non-organic asset. Cables, hair, intestines, ribcages, clothes, ropes.
Hammer #005: Stairs and Ladders
A video tutorial explaining the best methods of creating stairs and ladders for your map.
Hammer #004: Applying Textures
A video tutorial on using the Face Edit dialog to add materials to brushes, plus a few related tips and tricks.
Hammer #003: 3D Skybox
A video tutorial explaining the application and method of creating a 3D skybox for your Source map.
Hammer #002: Lighting & Reflections
A video tutorial explaining the usefulness of each static light entity.
Hammer #001: Basic Everything
A concise video that teaches the basics of the Hammer user interface.
Making a Source mod, and setting it up for programming.
Just follow through these three videos, and you will have a mod that you are able to add custom code into. Since I was tired of looking for video tut’s.
The fifth of six tutorial videos to help players learn the ropes of Nuclear Dawn’s gameplay and challenges. Get studying!
How to add a sourcemod to Source SDK
This is the tutorial that shows you how to properly add a sourcemod to your Source Sdk. This is a step-by-step tutorial, DONT RUSH YOURSELF!
The third of six tutorial videos to help players learn the ropes of Nuclear Dawn’s gameplay and challenges. Start studying!
The second of six tutorial videos to help players learn the ropes of Nuclear Dawn’s gameplay and challenges. Start studying!
phys_slideconstraint is usefull for karts, traps or just puzzle in your’e map.
Getting setup for Portal 2 mapping
Get A head start before the offical sdk comes out. Shows you how to set up hammer to get cracking on those Portal 2 maps.
Learn how to use smoothing groups to eliminate hard shading where you don’t want it.
Design 3
learn how to make games using UDK, Unity, and source. and also learn how to make 3D models using Softimage, 3ds Max, and Maya.
No tutorials were found matching the criteria specified. We suggest you try the tutorial list with no filter applied, to browse all available. Post tutorial and help us achieve our mission of showcasing the best content from all developers. Join now to share your own content, we welcome creators and consumers alike and look forward to your comments.
sourcejs/Source
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
The project been stale for a while and currently is in the [ON HOLD] state until we find new maintainer or original author get’s back to the design systems field. SourceJS been brought to the public ahead of it’s time, and turned out to be too ambitious to handle by a small team of people.
Today, the ideas SourceJS surfaced are evolving in other open source projects, like styleguidist and storybook. Email r@rhr.me if you’re interested in taking over the ownership.
The most advanced tool for documenting, testing and managing Front-end Components achieving productive team work.
SourceJS powered workflow allows developers to code new components directly in the documentation. Combining web components development with documentation and team communication processes, makes SourceJS a powerful tool for Front-end developers and designers.
🎥 Check out short video overview:
Our main goal is to provide flexible, modular environment for managing reusable Front-end components library. We don’t focus on specific technologies, allowing to seamlessly integrate SourceJS workflow with your existing codebase.
SourceJS component management engine was originally developed in OK.ru front-end development team and is recommended for big and middle sized projects. Especially for fast growing web portals, outsource teams with similar project and companies with multiple services.
Have questions? Just reach our community through Gitter Chat:
SourceJS is NOT
To clear some confusion around Living Style Guide Platforms comparison, let us define few main differences.
Static site builder
SourceJS is a dynamic Node.js application, and does not build static website as Pattern Lab, KSS, StyleDocco are doing. Dynamic environment allows to connect unlimited number of plugins and middlewares for compiling docs, styles, text right on the flight.
CSS Documentation parser
Join the community
If you notice some bugs, or need to help finding a better solution in your process, feel free to create an issue, and we will solve your problem together.
Respecting open source community, we track all our tasks publicly on GitHub. Follow our milestones and twitter announcements @SourceJS to keep in sync with latest plans.
List of few global upcoming features
SourceJS follows semantic versioning and we do our best to keep as less breaking changes as possible.
Preparing to 1.0 release, we plan to keep migration path very smooth and painless. So if you will keep in sync with minor releases and API deprecation announcements, you won’t face any problems setting up major release updates.
SourceJS client-side part is supported in all latest major browsers and IE8+ in Clarify for testing components.
Licensed under MIT License, read more at license page.
About
[ON HOLD] Living Style Guides Engine and Maintenance Environment for Front-end Components. Core repository.
Downloading and compiling the Unreal Engine source code
As we mentioned in our previous tutorial UE4 can be downloaded in two different versions. The first one and most commonly used is the Launcher or Binary version which we already covered, and the other is the Source version which we will cover in this tutorial.
How to download the Source version of Unreal Engine 4
The source version of Unreal Engine 4 is located on a website called GitHub a web-based Git or version control repository.
Git is a version control system (VCS) for tracking changes in computer files and coordinating work on those files among multiple people. It is primarily used for software development, but it can be used to keep track of changes in any files. As a distributed revision control system it is aimed at speed, data integrity, and support for distributed, non-linear workflows. Git was created by Linus Torvalds in 2005 for development of the Linux kernel, with other kernel developers contributing to its initial development, Its current maintainer since 2005 is Junio Hamano. As of April 2016, GitHub reports having more than 14 million users and more than 35 million repositories, making it the largest host of source code in the world.
To download the source version of Unreal Engine 4 go to https://github.com/ and create an account.
Once you have created a GitHub account you need to return to your Unreal Engine account at https://www.unrealengine.com/dashboard click on your Profile, there you will see all your information you have entered during your Unreal Engine account creation. On the bottom right you will see a field named GITHUB ACCOUNT NAME. Enter your GitHub account username there, check the “I have read and agree to the End User License Agreement” prompt and click save.
Note: You can only link one Unreal Engine account to one GitHub account. You can change the GitHub account associated with your Unreal Engine account if you chose so in the future, but you can not link your GitHub account to two different Unreal Engine accounts.
How to fork the Unreal Engine repository
After you have successfully linked your Unreal Engine account with your GitHub account, you need to return to GitHub and navigate to the Unreal Engine repository located at https://github.com/EpicGames/UnrealEngine.
Caution: Make absolutely sure you have successfully linked your Unreal Engine account with your GitHub account, otherwise you will not be able to see the Unreal Engine repository on GitHub.
Once you have reached the repository page click on the Fork button at the top right of the page.
A popup will ask you where you want to fork the repository, select your username.
After that is complete you need to download and install the GitHub desktop client from https://desktop.github.com/, both Windows and Mac versions are available, Linux is not supported. Linux users must download the latest Git application from https://git-scm.com/downloads. In order to make changes to the source code of Unreal Engine you need to download (clone) the source code you forked earlier to your account. If you made any changes that you feel are noteworthy you can submit a pull request to Epic to integrate them into the editor.
Project fork
In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct and separate piece of software. Free and open-source software is that which, by definition, may be forked from the original development team without prior permission without violating copyright law. However, licensed forks of proprietary software (e.g. Unix) also happen.
Pull requests
Contributions to a source code repository that uses a VCS are commonly made by means of a pull request. The contributor requests that the project maintainer “pull” the source code change he made, hence the name “pull request”. The developer creates a pull request to notify maintainers of a new change; a comment thread is associated with each pull request. This allows for focused discussion of code changes. Submitted pull requests are visible to anyone with repository access. A pull request can be accepted or rejected by maintainers. Once the pull request is reviewed and approved, it is merged into the repository.
For Windows and Mac users:
To download (clone) your forked repository, do the following steps:
Start the GitHub client and log in with your credentials and complete the first time setup wizard.
[edgtf_image_gallery type=”image_grid” column_number=”3″ pretty_photo=”yes” grayscale=”no” images=”6837,6838,6839″ image_size=”full”]
Once the client is open you will see the following windows, now click on the plus (+) sign on the top left corner of the GitHub client.
A pop up menu will appear, click on the Clone tab you should see, your username and underneath the following repositories, EpicGames/Unreal Engine, EpicGames/UnrealTournament and UnrealEngine (with a fork symbol).
Click on the last entry UnrealEngine (with a fork symbol) and click on Clone Unreal Engine. Choose a folder where you want to save your Unreal Engine repository and click ok.
[edgtf_image_gallery type=”image_grid” column_number=”2″ pretty_photo=”yes” grayscale=”no” images=”6842,6843″ image_size=”full”]
Wait for a while for the download to complete.
For Linux users:
Set up Git for Linux using this guide.
Fork and Clone the Unreal Engine using this guide.
Wait for a while for the download to complete.
Alternative way of downloading the source code
In case you don’t want to use the GitHub client to clone the Unreal Engine repository, you can download the files as a ZIP file. All you have to do is click on the green Clone or Download button on the right side of the Unreal Engine repository page and then click on the Download ZIP button. Select a folder for the file and click OK. Once the download is complete, unzip the file wherever you want and you are ready for the next step.
Building Unreal Engine from Source on Windows, Mac and Linux
The following steps will guide you through the process of compiling and running Unreal Engine 4 on Windows, Mac and Linux operating systems. The examples used are for Windows 8 and 10, macOS Sierra and the latest version of Ubuntu.
For Windows users:
If you haven’t already done so, now is the time to install Visual Studio 2013. Although MFC libraries are included in Visual Studio’s default installation settings, make sure that MFC libraries are included for ATL support. You can also use Microsoft’s free version (Visual Studio Community 2017).
Once downloading is complete, navigate to the folder you chose to clone your Unreal Engine repository and run the Setup.bat file. This will download around 4GB of files which include all the necessary files needed to compile and run the engine. Time to make a cup of coffee as this might take some time depending on your Internet connection. Subsequent checkouts take less time to download.
A warning from SmartScreen may appear in Windows 8 or 10. Click ‘More Info’, then click ‘Run Anyway’ to continue running the Setup batch file.
Once the download is complete go to the directory where the Unreal Engine files are located.
Inside the root directory, run GenerateProjectFiles.bat to set-up your project files. All project files are intermediate ([UE4Root]\Engine\Intermediate\ProjectFiles). You must generate project files each time you sync a new build to ensure they are up to date. If you delete your Intermediate folder, you must regenerate project files using the ‘GenerateProjectFiles’ batch file.
Load the project into Visual Studio by Double-clicking UE4.sln.
Set your solution configuration to Development Editor.
Set your solution platform to Win64.
Right-click the UE4 target and select Build.
Running the Editor
Set your startup project to UE4.
Right-click the UE4 project, hover over ‘Debug’ and click ‘Start New Instance’ to launch the editor.
Alternatively, you can press the F5 key on your keyboard to start a new instance of the editor.
Congratulations! You’ve compiled and launched the engine from source.
For Mac users:
If you haven’t already done so, now is the time to install the latest version of Xcode.
Once downloading is complete, navigate to the folder you chose to clone your Unreal Engine repository and run the Setup.command file. This will download around 4GB of files which include all the necessary files needed to compile and run the engine. Subsequent checkouts take less time to download. Once the download is complete close the Terminal window that has opened.
Inside the root directory, run GenerateProjectFiles.command to set-up your project files.
Load the project into XCode by Double-clicking UE4.xcodeproj.
To set your build target, select UE4Editor – Mac for My Mac in the title bar.
To build the project, select Product > Build.
Running the Editor
Select Product > Run to launch the editor.
Congratulations! You’ve compiled and launched the engine from source.
For Linux Users:
Inside the root folder, run Setup.sh from the terminal to download the engine’s binary content.
This will download around 4GB of files which include all the necessary files needed to compile and run the engine. Time to make a cup of coffee as this might take some time depending on your Internet connection. Subsequent checkouts take less time to download.
If you don’t see a **SUCCESS** message after running this step, refer to the ‘BuildThirdParty.log’ file for more information. ‘BuildThirdParty.log’ is located in the [UE4Root]/Engine/Build/BatchFiles/Linux directory.
Please make sure your system has at least ten (10) gigabytes of disk space before performing the following steps.
Inside the root directory, run Setup.sh from the terminal to setup the files needed to generate the project files.
Now, run GenerateProjectFiles.sh from the terminal to generate your project files.
To build the project, run make from the terminal.
Depending on your system’s specifications, it may take anywhere from ten minutes to over an hour to compile the engine. If you want to shorten the time it takes to compile the engine from source, we recommend compiling the source code on a machine that has at least eight (8) gigabytes of RAM with a multi-core processor having at least eight (8) cores (including hyperthreading).
Running the Editor
If you’re unable to create an OpenGL context as you’re working through these steps, you may need to update your graphics drivers (refer to Unreal Engine’s documentation on Supported Graphics Drivers ).
Navigate to the editor’s binary path by entering cd Engine/Binaries/Linux/ into the terminal.
Run UE4Editor to launch the editor.
Congratulations! You’ve compiled and launched the engine from source.
Now that we have both versions of Unreal Engine 4 up and running on our machines it is time for a break. On our next post we will download some of the free content available on the Unreal Marketplace, create our first project and start getting familiar with the Unreal Engine Editor.
If you want to buy us a beer and see your name entered in the Backers Hall of Fame you can do so by visiting our Patreon page. Thank you.
Источники:
- http://habr.com/ru/post/510834/
- http://github.com/SourceCE/Source-SP
- http://github.com/tjhorner/node-source-engine
- http://developer.valvesoftware.com/wiki/Source_SDK_2013
- http://github.com/evil-inject0r/Source-Engine-2019
- http://developer.valvesoftware.com/wiki/Source_SDK_2013:ru
- http://github.com/nillerusr/source-engine
- http://developer.valvesoftware.com/wiki/SDK_Installation
- http://github.com/VSES/SourceEngine2007
- http://github.com/ar1a/Source-Engine-SDK
- http://gamedev.stackexchange.com/questions/69511/is-the-source-code-of-the-source-engine-available
- http://dtf.ru/gamedev/65380-source-sdk-vstuplenie
- http://source-inside.ru/source-engine/coding/article_20050218.html
- http://github.com/AgentAgrimar/source-sdk-trilogy
- http://github.com/lua9520/source-engine-2018-hl2_src
- http://github.com/BlackRa1nFR/source-2003
- http://github.com/thexa4/source-pbr
- http://steamcommunity.com/sharedfiles/filedetails/?id=232923055
- http://steamcommunity.com/sharedfiles/filedetails/?id=701723333
- http://steamcommunity.com/sharedfiles/filedetails/?id=122063233
- http://developer.valvesoftware.com/wiki/Source_Engine_Features
- http://github.com/wobbier/source3-engine
- http://github.com/ValveSoftware/halflife
- http://github.com/tmp64/hl1_source_sdk
- http://ctf.re/source-engine/exploitation/reverse-engineering/2018/08/02/source-engine-1/
- http://developer.valvesoftware.com/wiki/SDK_Installation:ru
- http://developer.valvesoftware.com/wiki/Shader_authoring/Quick_Start
- http://docs.unrealengine.com/4.26/en-US/ProgrammingAndScripting/ProgrammingWithCPP/DownloadingSourceCode/
- http://github.com/Croteam-official/Serious-Engine
- http://github.com/Enhanced-Source-Project/Enhanced-Source
- http://developer.valvesoftware.com/wiki/Source_Engine_Features:ru
- http://github.com/BlackPhrase/OGS
- http://docs.unrealengine.com/4.27/en-US/ProgrammingAndScripting/ProgrammingWithCPP/DownloadingSourceCode/
- http://github.com/Nbc66/source-sdk-2013-ce
- http://github.com/praydog/Source2Gen
- http://github.com/FlaxEngine/FlaxEngine
- http://medium.com/@lifeexe/unreal-engine-ci-part-i-source-code-builds-8000ca1da723
- http://developer.valvesoftware.com/wiki/Create_a_Mod
- http://docs.unrealengine.com/5.0/en-US/downloading-unreal-engine-source-code/
- http://steamcommunity.com/sharedfiles/filedetails/?id=835920750
- http://developer.valvesoftware.com/wiki/Engine_Structure:ru
- http://developer.valvesoftware.com/wiki/My_First_Mod
- http://steamcommunity.com/sharedfiles/filedetails/?id=1471028432
- http://github.com/Leystryku/leysourceengineclient
- http://github.com/alliedmodders/hl2sdk
- http://github.com/Sandern/py-source-sdk-2013
- http://developer.valvesoftware.com/wiki/Installing_and_Debugging_the_Source_Code:ru
- http://github.com/source-engine-discord/SourceEngine.Demo
- http://github.com/unrealengine47/UnrealEngine4
- http://developer.valvesoftware.com/wiki/Source_2
- http://steamcommunity.com/sharedfiles/filedetails/?id=1316254513
- http://github.com/GEEKiDoS/cstrike-sdk-2013
- http://forum.csmania.ru/viewtopic.php?t=21609
- http://github.com/VideogameSources/Team-Fortress-2-Source-Engine
- http://developer.valvesoftware.com/wiki/Installing_and_Debugging_the_Source_Code
- http://github.com/gabivlj/game-engine-source-code
- http://habr.com/ru/company/pvs-studio/blog/209286/
- http://developer.valvesoftware.com/wiki/Talk:Source_SDK_Known_Issues
- http://github.com/SamVanheer/halflife-updated
- http://github.com/undnull/refraction
- http://github.com/asc-community/MxEngine
- http://github.com/FrictionalGames/HPL1Engine
- http://github.com/sourcegraph/sourcegraph
- http://github.com/htmlacademy/template-engine-source
- http://github.com/dougrattman/SourceEngine2007
- http://github.com/Adrianilloo/SourceSDK2013
- http://steamcommunity.com/app/211/discussions/0/594821545179118583/
- http://developer.valvesoftware.com/wiki/Adding_PBR_to_Your_Mod
- http://github.com/ValveSoftware
- http://github.com/junjiehuang/SourceEngine
- http://github.com/KadeDev/Kade-Engine/blob/stable/docs/building.md
- http://github.com/ValveSoftware/Source-1-Games
- http://developer.valvesoftware.com/wiki/Source_SDK_2013:_Your_First_Shader
- http://github.com/nullworks/source-sdk-2013-headers
- http://github.com/Apress/introduction-video-game-engine-development
- http://www.moddb.com/engines/source/tutorials
- http://github.com/sourcejs/Source
- http://hotgates.eu/downloading-ue-source-code/