Как написать патч?

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

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

Как написать патч?

Сообщение Mio » Ср июн 19, 2013 19:34

Я себе хорошо представляю, как можно изменить игру непосредственно: скачиваем исходники, что-то меняем, компилируем, пробуем и т.д. Но таким образом мы меняем сами исходники.

А как написать патч? И вообще, как правильно надо редактировать исходный код, чтобы потом это можно было реализовать в виде нормального патча?

И еще. Где можно найти склад патчей и их исходных кодов?
С одной стороны интерес у меня чисто игровой. Потому что когда я захожу в игре в пункт "Проверить он-лайн контент" то там весьма не богатый набор модулей. Например там есть Very Large Ships. Но мне не нужны "Very". Нахрен мне судно на 15000 тысяч единиц товаров, оно будет грузится больше года и все товары испортятся. Мне хочется корабли вместимостью 1000-1500 единиц, т.е. на 2-3 полных состава. Наверняка такие корабли есть, но где их взять?
И отдельный вопрос, как их установить в игру, если я играю на планшете (Android)?

С другой стороны этот вопрос меня волнует с точки зрения разработки. Хочется глянуть исходники того, как другие люди пишут патчи и реализуют схожие или в чем-то пересекающиеся с моей идеи.
Mio
Шпалоукладчик
Шпалоукладчик
 
Сообщения: 20
Зарегистрирован: Пн июн 17, 2013 09:21

Re: Как написать патч?

Сообщение kraks » Ср июн 19, 2013 21:14

Похоже, не совсем хорошо представляешь... Эх... Недавно ж вроде спрашивали. :?
Короче. Есть базовая игра (стабильная или текущая версия). Изменить ее поведение можно несколькими способами:
- с помощью подключаемой дополнительной графики (так называемых NewGRF) - это похоже на плагин, т.к. в современных версиях игры подавляющее большинство этой графики можно скачать прямо из игры, установить и играть, никакой правки исходников такой способ не требует (если только ты сам не создаешь новый набор графики) - кстати тут слово "графика" достаточно условное, потому что с помощью NewGRF можно менять в игре достаточно много всего;
- с помощью патчей, т.е. кусков кода на C++, которые надо добавить к исходникам игры и скомпилировать ее заново;
- с помощью подключаемых ИИ и игровых скриптов (скачиваются и устанавливаются примерно как и NewGRF).

Теперь к твоим вопросам. Когда ты говоришь об онлайн контенте и скачивании, например, Very Large Ships, ты пользуешься терминами NewGRF. Когда ты говоришь о правке исходников игры, ты говоришь о патчах. Это различие надо понимать.

Если ты хочешь поправить какую-то функциональность в игре, то действительно, надо скачать исходники игры, поковырять в них, как тебе нужно, пересобрать и играть. Если ты это делаешь только для себя, то тебе этого будет достаточно. Если ты хочешь, чтобы твои ковыряния стали доступны еще кому-нибудь, тогда сделай патч. Это делается с помощью различных систем контроля версий. Короче, если ты будешь способен править C++ код игры, то с этим уже будешь знаком... После этого другой человек может скачать исходники игры, взять твой патч, используя систему контроля версий "наложить" его на исходники и пересобрать игру.

Если же ты говоришь о правке Very Large Ships, то есть NewGRF, то это совсем другая песня. Для создания таких файлов на текущий момент существует 2 способа:
- старый (без использования языка NML);
- новый (с использованием языка NML).
В зависимости от того, на чем делался тот или иной NewGRF, править его нужно тоже на этом же (если доступны исходники и автор не против). Однако, я не уверен, что это хорошая идея... Одно дело, правка игры, другое дело - набора графики, который кто-то делал под определенную идею... Хотя, поищи, попробуй. Поиски начинай с официального форума. :)

(А может просто вместо Very Large Ships скачать что-то типа FISH? :wink: )
Аватара пользователя
kraks
Президент
Президент
 
Сообщения: 889
Зарегистрирован: Вт окт 03, 2006 01:05
Откуда: Москва

Re: Как написать патч?

Сообщение Edd.Dragon » Ср июн 19, 2013 22:44

Mio писал(а):Я себе хорошо представляю, как можно изменить игру непосредственно: скачиваем исходники, что-то меняем, компилируем, пробуем и т.д. Но таким образом мы меняем сами исходники.

А как написать патч?

Это и есть патч - вносим твои правки и перекомпилируем.
Аватара пользователя
Edd.Dragon
Директор
Директор
 
Сообщения: 266
Зарегистрирован: Сб янв 14, 2012 06:09

Re: Как написать патч?

Сообщение Mio » Ср июн 19, 2013 22:51

Спасибо, про патчи я все понял.

kraks писал(а):Если же ты говоришь о правке Very Large Ships, то есть NewGRF, то это совсем другая песня.

Неее, об этом я и не помышлял. Я просто хочу корабли меньшей вместимости, но большей, чем стандартные. Я уверен, что они уже существуют (модули). Я хочу спросить, где их найти.
Вообще кому могла прийти в голову мысль сделать корабли вместимостью соответствующие 700 (!) ж/д составов? Ладно еще разгружать, но загружать его сколько надо? На это уйдут многие годы. Он заржавеет у причала...

kraks писал(а):(А может просто вместо Very Large Ships скачать что-то типа FISH? :wink: )

Что такое FISH?
Mio
Шпалоукладчик
Шпалоукладчик
 
Сообщения: 20
Зарегистрирован: Пн июн 17, 2013 09:21

Re: Как написать патч?

Сообщение Wowan » Чт июн 20, 2013 01:27

Mio писал(а):Вообще кому могла прийти в голову мысль сделать корабли вместимостью соответствующие 700 (!) ж/д составов?
А где это такие корабли? Что-то с арифметикой не то.
FISH — набор кораблей. Искать в онлайн-контенте или на tt-forums.
Аватара пользователя
Wowan
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1383
Зарегистрирован: Вт сен 18, 2007 14:43
Откуда: трасса М1, Минск — Москва

Re: Как написать патч?

Сообщение Mio » Чт июн 20, 2013 15:58

Wowan писал(а):А где это такие корабли? Что-то с арифметикой не то.

Да, это я приврал, в десять раз. В описании было что-то про 75 поездов.
Mio
Шпалоукладчик
Шпалоукладчик
 
Сообщения: 20
Зарегистрирован: Пн июн 17, 2013 09:21

Re: Как написать патч?

Сообщение Wowan » Чт июн 20, 2013 23:58

Даже 75 — много. Если прикинуть, что нормальный поезд должен везти хотя бы 2000-3000 тонн (а лучше 5000-8000), то судно даже на 150000 тонн трудно представить. По-моему, в Опене такого нет.
Аватара пользователя
Wowan
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1383
Зарегистрирован: Вт сен 18, 2007 14:43
Откуда: трасса М1, Минск — Москва

Re: Как написать патч?

Сообщение Edd.Dragon » Пт июн 21, 2013 03:06

Wowan писал(а):По-моему, в Опене такого нет.


Small tanker: 10 000 000 liters of oil
Large tanker: 22 000 000 liters of oil (like train with 773 wagons!)


Подумаешь, вагоны с составами попутали. С кем не бывает! ;)
Аватара пользователя
Edd.Dragon
Директор
Директор
 
Сообщения: 266
Зарегистрирован: Сб янв 14, 2012 06:09

Re: Как написать патч?

Сообщение Wowan » Пт июн 21, 2013 23:38

Во-первых, это абсолютно нормальные значения для малых и средних морских танкеров. Даже чуть заниженные. Крупнейшие в мире танкеры перевозят более 500 000 тонн нефти (далеко за полмиллиарда литров в пересчете на цифры Опена).

И вагончики какие-то детские, по 28 с половиной тонн.
По-хорошему, 366 вагонов получается. Ничего особенного.
Аватара пользователя
Wowan
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1383
Зарегистрирован: Вт сен 18, 2007 14:43
Откуда: трасса М1, Минск — Москва

Re: Как написать патч?

Сообщение Edd.Dragon » Сб июн 22, 2013 00:05

Я всего-лишь процитировал откуда взялось число 700. А вот переводить его из вагонов в составы - бессмысленно. Т.к. в жизни составом можно считать 50 вагонов. А в игре хоть 10, хоть 20 - у кого как )))

Так что, таки да - для кого-то это 75 составов, а для кого-то может всего 30-40...
Аватара пользователя
Edd.Dragon
Директор
Директор
 
Сообщения: 266
Зарегистрирован: Сб янв 14, 2012 06:09


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

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

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