раскрыть ветку (21)
раскрыть ветку (18)
раскрыть ветку (14)
раскрыть ветку (8)
раскрыть ветку (7)
раскрыть ветку (6)
Был Lite, потом поменялся на kaddy. Когда-то давно был в Z-Team (собстна, для них и делал эту сборку). Но уже давно не играю.
раскрыть ветку (5)
раскрыть ветку (2)
Где-то года три назад перестал активно играть. И около года назад перестал устанавливать тии первым делом при переустановке системы :-)
раскрыть ветку (1)
А моды делаются только вмешательством в исходники проекта? (Да, они на C++, с которым я дружу, но редактировать чужой код - сложно) Или все же есть нечто вроде AmxMODx?
раскрыть ветку (4)
Нет, нету, только на C++. Актуальная версия - https://github.com/teeworlds/teeworlds/tree/0.6
В принципе, структура там довольно простая.
Если пользуетесь Windows, то нужна Visual Studio, если Linux или OS X - gcc. Под Windows нужно использовать командную строку Visual Studio (где настраивается нужное окружение).
Также нужен Python (вроде бы третий) и bam ( https://github.com/matricks/bam ) - инструмент для сборки (скопируйте его в папку с исходниками и введите в командной строке bam all).
Стуктура исходников такова:
src/base - системные вызовы и математические функции. Менять не нужно ничего в 99% случаев.
src/engine - основной движок, заголовочные файлы. Здесь тоже обычно ничего не нужно менять.
src/engine/client - движок клиента игры. Работа с графикой, сетью и всем тем, что не относится непосредственно к игровому процессу.
src/engine/external - сторонние библиотеки (pnglite, wavpack, zlib). SDL лежит отдельно в папке other/sdl и требуется только если в системе нет своих исходников SDL (актуально для Windows).
src/engine/server - движок сервера игры. Работа с сетью, подключение игроков, загрузка карты и все прочее.
src/engine/shared - общие файлы движка как для клиента, так для сервера.
src/game - все то, что относится непосредственно к игровой части.
src/game/client - клиент игры. Основной файл и святая святых - gameclient.cpp.
src/game/client/components - компоненты клиента игры. Каждый соответствует интерфейсу src/game/client/component.h и регистрируется в src/game/client/gameclient.cpp. В большинстве случаев достаточно бывает поменять часть какого-нибудь компонента. Свои компоненты пишутся для какого-то нового функционала, типа информационной панели или аимбота :-)
src/game/editor - редактор игры.
src/game/generated - изначально пустая папка, но после первой сборки здесь будут лежать сгенерированные файлы с описанием сетевого протокола. Менять их бесполезно, но смотреть стоит обязательно, ибо структуры описания игроков, оружия и т. п.
src/game/server - серверная часть. Основной файл - gamecontroller.cpp
src/game/server/entities - игровые объекты: игроки, флаги, лазерные лучи, итемы, снаряды. Если желатете, чтобы гранаты летели сквозь стены - вам сюда.
src/game/server/gamemodes - режимы игры. Стандартные трогать не рекомендуется, лучше создать свой на основе них. Каждый регистрируется в src/game/server/gamecontext.cpp в методе OnInit (в самом низу).
Остальные папки никто никогда на моей памяти не трогал :-)
И еще несколько тонкостей.
Никогда не нужно менять файлы из папки datasrc, а также src/game/tuning.h и src/game/gamecore.cpp. После их изменения ваша версия станет несовместимой с официальной.
Основная физика игры лежит как раз в src/game/gamecore.cpp. Для предотвращения лагов клиент делает "предсказание" (prediction) на несколько шагов в соответствие с ней, пока от сервера не придет новый пакет. Таким образом, если вы желаете сделать пролетающую сквозь стену гранату или игроков, приготовьтесь к лагам при прохождении этой самой стены.
Ну, что еще упомянуть, не знаю :-)
В принципе, структура там довольно простая.
Если пользуетесь Windows, то нужна Visual Studio, если Linux или OS X - gcc. Под Windows нужно использовать командную строку Visual Studio (где настраивается нужное окружение).
Также нужен Python (вроде бы третий) и bam ( https://github.com/matricks/bam ) - инструмент для сборки (скопируйте его в папку с исходниками и введите в командной строке bam all).
Стуктура исходников такова:
src/base - системные вызовы и математические функции. Менять не нужно ничего в 99% случаев.
src/engine - основной движок, заголовочные файлы. Здесь тоже обычно ничего не нужно менять.
src/engine/client - движок клиента игры. Работа с графикой, сетью и всем тем, что не относится непосредственно к игровому процессу.
src/engine/external - сторонние библиотеки (pnglite, wavpack, zlib). SDL лежит отдельно в папке other/sdl и требуется только если в системе нет своих исходников SDL (актуально для Windows).
src/engine/server - движок сервера игры. Работа с сетью, подключение игроков, загрузка карты и все прочее.
src/engine/shared - общие файлы движка как для клиента, так для сервера.
src/game - все то, что относится непосредственно к игровой части.
src/game/client - клиент игры. Основной файл и святая святых - gameclient.cpp.
src/game/client/components - компоненты клиента игры. Каждый соответствует интерфейсу src/game/client/component.h и регистрируется в src/game/client/gameclient.cpp. В большинстве случаев достаточно бывает поменять часть какого-нибудь компонента. Свои компоненты пишутся для какого-то нового функционала, типа информационной панели или аимбота :-)
src/game/editor - редактор игры.
src/game/generated - изначально пустая папка, но после первой сборки здесь будут лежать сгенерированные файлы с описанием сетевого протокола. Менять их бесполезно, но смотреть стоит обязательно, ибо структуры описания игроков, оружия и т. п.
src/game/server - серверная часть. Основной файл - gamecontroller.cpp
src/game/server/entities - игровые объекты: игроки, флаги, лазерные лучи, итемы, снаряды. Если желатете, чтобы гранаты летели сквозь стены - вам сюда.
src/game/server/gamemodes - режимы игры. Стандартные трогать не рекомендуется, лучше создать свой на основе них. Каждый регистрируется в src/game/server/gamecontext.cpp в методе OnInit (в самом низу).
Остальные папки никто никогда на моей памяти не трогал :-)
И еще несколько тонкостей.
Никогда не нужно менять файлы из папки datasrc, а также src/game/tuning.h и src/game/gamecore.cpp. После их изменения ваша версия станет несовместимой с официальной.
Основная физика игры лежит как раз в src/game/gamecore.cpp. Для предотвращения лагов клиент делает "предсказание" (prediction) на несколько шагов в соответствие с ней, пока от сервера не придет новый пакет. Таким образом, если вы желаете сделать пролетающую сквозь стену гранату или игроков, приготовьтесь к лагам при прохождении этой самой стены.
Ну, что еще упомянуть, не знаю :-)
раскрыть ветку (3)
Если бы я мог поставить сто плюсов - я бы это сделал :)
Огромное спасибо, пошел вкуривать сырцы
P.S. Надеюсь, ничего критичного в использовании не Visual Studio, a уже ставшей привычной wxDevC++ нет?
Огромное спасибо, пошел вкуривать сырцы
P.S. Надеюсь, ничего критичного в использовании не Visual Studio, a уже ставшей привычной wxDevC++ нет?
раскрыть ветку (2)
Как правильно сказал @PedoTeddyBear, чем редактировать файлы - без разницы. Стоит отметить, что привязать проект Visual Studio с IntelliSence - долго и муторно, и проще взять какой-нибудь Sublime Text 2 или vim и редактировать код безо всякой IDE.
bam умеет собирать через gcc и Visual C++. Под виндой для gcc вам надо настроить окружение mingw или cygwin и запустить bam в командной строке с этим окружением. В случае с Visual C++ вместе с ним поставляется "Командная строка Visual Studio", которая тоже настраивает свое окружение. Сборщик bam умеет определять, в каком окружении он запущен, и использовать нужный компилятор.
Если вы первый раз случайно запустили bam в стандартном окружении, без компилятора, то он определит настройки неправильно. Чтобы потом собрать Teeworlds, удалите файл config.lua - в нем хранятся настройки для сборки.
bam умеет собирать через gcc и Visual C++. Под виндой для gcc вам надо настроить окружение mingw или cygwin и запустить bam в командной строке с этим окружением. В случае с Visual C++ вместе с ним поставляется "Командная строка Visual Studio", которая тоже настраивает свое окружение. Сборщик bam умеет определять, в каком окружении он запущен, и использовать нужный компилятор.
Если вы первый раз случайно запустили bam в стандартном окружении, без компилятора, то он определит настройки неправильно. Чтобы потом собрать Teeworlds, удалите файл config.lua - в нем хранятся настройки для сборки.
Традиционно сборка делается через собственную систему "bam". А в какой программе редактировать текстовые файлы - это уже тебе самому решать...
Офигенная игрушка. Сейчас среди игроков обсуждается пробивание в стим, но разрабы против. Умирает потихоньку ведь(