Все версии TTD

Вопросы разработки OpenTTD, обсуждение новых сборок и патчей, решение проблем новых версий.

Модераторы: Smoky555, Группа модераторов

Все версии TTD

Сообщение Alver » Вс фев 04, 2007 23:19

По форуму долго искать наверное - есть ли где-нибудь на этом форуме тема со ссылками на все основные ветки разработки TTD?

Как я понимаю - это TTDPatch, OpenTTD, MiniIN (закрылось), LittleMini. Собрать бы все вместе в одном месте, чтобы не искать кругом. Будет проще и разработчикам - чтобы понять что есть что и где, и пользователям. Меня интересует этот вопрос как разработчика - хочу понять что уже есть, зачем понаделали столько версий разных (не люблю за это опен-соурс, слишком ветвится), ну и добавить от себя то чего не хватает в игре.

Если такая тема уже была - сорри. Эту надо будет удалить. Если нет - предлагаю сюда все собрать (буду выносить все в первый пост).
Alver
Диспетчер
Диспетчер
 
Сообщения: 173
Зарегистрирован: Чт фев 01, 2007 11:51

Сообщение Quark » Вс фев 04, 2007 23:28

TTDPatch — не ветвь OpenTTD
все патчи можно найти на http://www.tt-forums.net, ветви на svn.openttd.org, а собрать всё в одном месте и еще чтобы при этом всё игралось задача не из лёгких

Советую немного узнать про технологии OpenSource, в частности коллективной работы и ветвления — ветви создаются для тестирования отдельных вещей без вреда основной разработке или фиксации релиза (в котором со временем только баги исправляются)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Alver » Пн фев 05, 2007 00:47

Quark писал(а):Советую немного узнать про технологии OpenSource, в частности коллективной работы и ветвления — ветви создаются для тестирования отдельных вещей без вреда основной разработке или фиксации релиза (в котором со временем только баги исправляются)


имелось ввиду не только ответвления, а вообще разработки TTD.

что такое опен-соурс к сожалению знаю :) И именно поэтому об этом и говорю. Обычно несколько человек если разрабатывают в конце концов умудряются из-за каких-то деталей разойтись во мнениях, и каждый начинает дальше гнать свой проект. Глядя на то что сейчас наворотили - именно это похоже с OpenTTD и произошло. Поэтому и хотелось бы "навести порядок", хотя бы для себя.

за ссылку на SVN - спасибо. Сколько вообще разработок TTD (не только OpenTTD и бранчей)?
Alver
Диспетчер
Диспетчер
 
Сообщения: 173
Зарегистрирован: Чт фев 01, 2007 11:51

Сообщение Quark » Пн фев 05, 2007 12:36

Как раз в OpenTTD сплошной порядок :) Именно поэтому существует множество патчей, которые по различным критериям (качество кода и наличие багов, а также диалог с лидерами проекта) не могут быть включены в основную ветвь.

А с технологиями OpenSource, вы знакомы поверхностно. Основной фактор в нём — коллективная разработка.

«Продолжений» TTD два — TTDPatch и OpenTTD.

Когда «каждый начинает дальше гнать свой проект» — это называется fork, а бранч — это временнное отвлетвление, созданное, как я уже говорил, для тестирования отдельных вещей без вреда основной разработке. После завершения тестирования бранч сливается с основной ветвю, Fork же зачастую уже невозможно слить из-за большого количества конфликтов в коде.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Alver » Пн фев 05, 2007 13:31

отлично, так уже намного понятней.

LittleMiniIN по такой классификации - что тогда получается?

и еще вопросик - хотелось бы принять участие в разработке. можешь скинуть ссылку на тему в англоязычном форуме, где объяснено что и как. Искать там что-то - просто мрак :)
Alver
Диспетчер
Диспетчер
 
Сообщения: 173
Зарегистрирован: Чт фев 01, 2007 11:51

Сообщение Quark » Пн фев 05, 2007 15:18

LittleMiniIN это моя сборка патчей, отностится к сборкам :) Хотя из «сборок» на англоязычном форуме только MiniIN.

По разработке практически нигде не объяснено «что и как» — есть инструкции по компиляции кода и некоторые заметки, их можно найти на wiki.openttd.org

Участие можно принимать, разрабатывая собственные патчи — если привести их требуему виду и обговорить с разработчика (лучше всего иметь комменатрии в патче), то можно добиться включения их в основную ветвь. А если сделать много хороших патчей, то можно заработать себе репутацию и получить полный доступ к модификации основной ветви.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Пн фев 05, 2007 15:20

«Сборка» — это объединение различных патчей в один код, из которого можно сделать играбельный бинарник. В OTTD это делается сравнительно легко, для сравнения могу привести различные моды eMule.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Alver » Пн фев 05, 2007 16:27

код уже забрал, скомпил и начал ковырять потихоньку что там к чему. то что все на С написано немного напрягает, но почему именно так сделано понятно.

Можешь чуть подробней отписать насчет патчей? какие сейчас есть основные и в-общем информацию что и как делается? Если не затруднит конечно :)
Alver
Диспетчер
Диспетчер
 
Сообщения: 173
Зарегистрирован: Чт фев 01, 2007 11:51

Сообщение Alver » Пн фев 05, 2007 16:29

Кстати, вопрос еще один, тем кто код перегоняет на С++. можно там подключиться? И хорошее дело сделаю, и разберусь заодно что к чему в коде.
Alver
Диспетчер
Диспетчер
 
Сообщения: 173
Зарегистрирован: Чт фев 01, 2007 11:51

Сообщение Koser » Пн фев 05, 2007 17:58

Alver писал(а):Кстати, вопрос еще один, тем кто код перегоняет на С++. можно там подключиться? И хорошее дело сделаю, и разберусь заодно что к чему в коде.

На С++ перегонять ничего не надо.Пиши классы прям так.Для примера смотри yapf - написан на C++ прекрасно компелится и работает.
Можешь посмотреть мои наработки в топие "Создаём ум компа",там то же есть классик.:)
Аватара пользователя
Koser
Начальник станции
Начальник станции
 
Сообщения: 107
Зарегистрирован: Пн май 15, 2006 12:21

Сообщение DarkFenX » Пн фев 05, 2007 19:37

"Кстати, вопрос еще один, тем кто код перегоняет на С++. можно там подключиться?"
Что-то я сомневаюсь.
Как показывает практика, для вхождения в состав "кор девелоперов" любого более-менее большого опенсурс-проекта надо довольно долго показывать свою верность им и периодически присылать патчи, которые без нареканий будут приниматься (а пока ты не в кор тиме - патчей будет вполне достаточно, а сама команда уже решит, применять их к транку или нет).
- It's hot as hell in here.
- You see it too? For me, it's always like this.
Аватара пользователя
DarkFenX
Директор
Директор
 
Сообщения: 303
Зарегистрирован: Сб окт 28, 2006 12:50
Откуда: Russia, Saint-Petersburg

Сообщение Quark » Пн фев 05, 2007 20:12

«Можешь чуть подробней отписать насчет патчей? какие сейчас есть основные и в-общем информацию что и как делается? Если не затруднит конечно»
ну, какие есть патчи рассказывать не буду — есть форум http://www.tt-forums.net/viewforum.php?f=33 еще есть список http://ottd.rkhosting.co.uk/ не обязательно полный

Что и как делается
Если есть цель собрать в кучу несколько патчей (слить), то для этого (кроме знаний программирования) понадобится примерно следующее (для Windows):
1) TortoiseSVN — позволяет скачивать нужную ревизию с SVN и применять на неё патч, так же она умеет применять патч на любую версию, автоматически скачивая нужную и проводя слияние между 3 файлами (оригинал, патч, новая версия). В этом процессе могут появиться конфликты — когда в новой версии изменился тот же кусок, что и в патче. Такие конфликты надо решать вручную, изменяя код таким образом, чтобы в нём оказались и изменения из патча и из новой версии. Патчи лучше всего применять в порядке возрастания версий кода, на которых они основаны, после применения первого патча догоняем версию до следующего и т.д. — так больше вероятности, что патч встанет с наименьшими затратами, код патча можно будет по ходу догнать до новой версии.
2) Если первый способ с автоматическим получением исходных версий по каким-то причинам не устраивает (или не работает — я им не пользуюсь, но если кто опробует — поделитесь впечатлениями), то можно всё делать вручную — для этого нам понадобится программа для слияния файлов KDiff3.
С помощью TortoiseSVN получаем нужную для патча версию, делаем копию и применяем на неё патч. Теперь в KDiff3 загружаем исходную версию, пропатченную и нашу рабочую и запускаем слияние, попутно решая все возникающие противоречия.
3) Далее нам нужно проверить работоспособность полученного кода, для этого берем MSVS 2005 Express (бесплатная) и загружаем в неё код, запускаем компиляцию в режиме отладки и если всё получилось, то пробуем позагружать сценарии/сохранёнки и погонять их в ускоренном темпе немного. Если всё работает компилируем с оптимизацией (релиз) и снова тестируем, но уже как долго работает игра в ускоренном режиме, для большего ускорения можно отключить анимацию, звук и свернуть окно.

Всё вышеописаное довольно примерно, если найдёте лучший способ — пишите.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Пн фев 05, 2007 20:14

Отдельным вопросом стоит совместимость старых сохранённых игр с новой версией — немного о способах решения проблеммы можно узнать, посмотрев на код MiniIN.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Alver » Пн фев 05, 2007 22:49

http://ottd.rkhosting.co.uk/ - то что нужно.

насчет включения в команду - я туда и не рвусь специально. просто хочу понять какие задачи сейчас висят и над какими стоит работать. а дальше видно будет!

Ну и насчет алгоритма работы с патчами - спасибо за инфу. с svn работал уже, вот с патчами как раз и поковыряюсь ))
Alver
Диспетчер
Диспетчер
 
Сообщения: 173
Зарегистрирован: Чт фев 01, 2007 11:51


Вернуться в Разработка OpenTTD

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

cron