LINUX.ORG.RU
ФорумTalks

Сколько может стоить портирование модификации

 


0

1

Уважаемые лоровцы, прошу вас развеять мои надежды чадящим факелом суровой действительности.
Как многим из вас известно, существует компьютерная игра Jagged Alliance 2. Она была в свое время весьма популярна и любима в народе, как и сейчас (ввиду отсутствия вменяемой альтернативы). В нее продолжают играть до сих пор. Этому способствует отличное качество ее данных и множество модификаций.
Сам код игры, как многим известно, был дважды портирован на наш любимый линукс, а именно как коммерческий проект и как свободный проект на SDL. Игра была переписана на C++ в виде модификации/платформы для модификаций JA2 1.13 и даже была портирована 5 лет назад, но на столько продвинулась в светлое будущее, что стала непереносимой. Автор порта не стал продолжать перенос регулярно появляющихся изменений.
А теперь вопрос: Насколько затратен по времени и сложности процесс портирования непрерывно развивающегося мода для игры, если существует исходный код открытой игры (в виде проекта Stracciatella), исходный код модификации 1.13 (по запросу), исходный код порта модификации 1.13 и все на C++? Ну и дополнительный вопрос тем, кто в исходники заглядывал: насколько это сложно для незнакомого с C++ человека?

Ну и дополнительный вопрос тем, кто в исходники заглядывал: насколько это сложно для незнакомого с C++ человека?

Лучше не начинай.

encyrtid ★★★★★
()
Ответ на: комментарий от encyrtid

Почему? В коде все так плохо, что требуются безумные умения?
Просто если там достаточно нудной долбежки неподготовленного человека, а нормальному программисту просто неинтересно этим заниматься, то имеет смысл начинать.

siphonops ★★★
() автор топика
Ответ на: комментарий от encyrtid

Ситуация здесь точно такая же как с кваками, даже местами лучше. Код открыт, ресурсы доступны (даже можно купить без заморочек по бросовой цене, в отличии от кваки). Развитием модификации занимаются фанаты игры, а не фанаты плюсов, что говорит о невысокой сложности. Поэтому я и спрашиваю мнение видевшего код человека.

siphonops ★★★
() автор топика
Ответ на: комментарий от encyrtid

Это геморрой сам по себе

Забыл написать ИМХО.

На крестах просто можно написать 10 способами, и способ, который нашел для себя удобным автор программы, не всегда является самым удобным для того, кто просматривает код. ИМХО.

Kroz ★★★★★
()
Ответ на: комментарий от encyrtid

Как раз кресты намного проще для новичка которому надо, например, допилить какую то одну фичу.
Намного проще разобраться, чем в каком нибудь яве или RoR.

Вот портировать на другую платформу код это очень тяжко.

winddos ★★★
()
Ответ на: комментарий от siphonops

Почему? В коде все так плохо, что требуются безумные умения?

Нет, нужен програмистский склад ума. А на его дрессировку как правило уходят годы.

Даже с програмистским складом ума и знанием языка программирования, нужно еще иметь некоторый подход к написанию программы. Например, начинающм программистам неводмек зачем (и главное - где) нужны комментарии, зачем нужно форматирование кода, по каким правилам называть переменные и функции, зачем нужны всякие private, public и т. п в классах. хотя, на первый, взгляд они только осложняют жизнь. Важность перечисленного понимаешь только тогда, когда пишешь большой проект, но когда ты до этого понимания доходишь, ситуация уже такова, что проще переписать все заново. И литературы по этому - с гулькин нос (я знаю только одну книгу).

И еще. Портирование на другие платформы требует глубокого понимания языка. Самый просто пример - почему один тип данных (int) не везде одинаков.

Так что, хотя с encyrtid мы в чем-то расходимся (я считаю C++, пожалуй, самым лучшим и удобным языком, по крайней мере на фоне остальных), в том что «не начинай» мы с ним сходимся.

Kroz ★★★★★
()
Ответ на: комментарий от siphonops

Вообще у JA2 проблема та же, как и у большинства (бгг, при том что их таких штук 10) проектов отданных под GPL без ресурсов.
Т.е:
1 - Из за отсутствия ресурсов о ней никто почти не узнает из тех, кто в неё не играл.
2 - Из за «местечковости» проекта и отсутвия ресурсов проект не встает на нормальный уровень разработки.
Т.е никто толком не знает кто вообще за что отвечает, никто не знает кто и что уже пилит, люди часто пропадают с сорцами (в последний раз чуть не исчезла в небытие новая система прицеливания).
3 - Ну и самая большая проблема в том, что игру пилят в основном люди которые по процессии ни разу не программисты, эдакая мечта-идилия Столлмана.
4 - Некоторые (многие) из активных разработчиков вообще военные, особенно немцы, а потому нахождения с ними общего языка не такое и простое. Ну и ещё они могут пропасть на пол года.
5 - Из за сумбурной разработки очень сложно поддерживать две платформы, т.к разработчики которые пилят фитчи совершенно не задумываются о том, будут ли их патчи собираться не на винде.

В общем печально все это.

winddos ★★★
()
Ответ на: комментарий от encyrtid

Холиворы разводить не будем. Живи в своей реальности.

Kroz ★★★★★
()
Ответ на: комментарий от winddos

Дак Lesh его давно забросил. С тех пор, как он этим занимался, вышло множество новых версий, одна из которых даже нормально работала под вайном, пока все опять не поломали. Может из лоровцев кто-то недавно копал это дело?

siphonops ★★★
() автор топика
Ответ на: комментарий от winddos

Из за отсутствия ресурсов о ней никто почти не узнает из тех, кто в неё не играл.

Ресурсы очень доступны. Это кваку первую или вторую до недавнего времени можно было найти только на торрентах или развалах, да и сейчас, когда она появились в русском сегменте стима по откровенно конским ценам, мало что изменилось.
А JA2 есть на гоге и от акеллы, по вменяемой цене, ну и на торрентах само собой.
Печально, что альтернатив нет совсем (окромя клонов x-com). 3d-ремейк уровня игры для планшета не тянет даже на ремейк и проигрывает старым отечественным Е5, Е6.

siphonops ★★★
() автор топика
Ответ на: комментарий от siphonops

Ну так ресурсы нельзя положить в репозиторий или нормально распостранять вместе с exe*шником даже.
А потому новых людей и нет :(

У FreeSpace 2 та же судьба, хотя там вообще лицензия проприетарная.

winddos ★★★
()
Ответ на: комментарий от winddos

Ну так ресурсы нельзя положить в репозиторий или нормально распостранять вместе с exe*шником даже.

Ну OpenTTD взлетел же. Ресурсы дорисовали совсем недавно, до этого все сами находили.

siphonops ★★★
() автор топика
Ответ на: комментарий от siphonops

OpenTTD с ноля писали.

А v1.13 разрабатывалась на основе существующего кода и с применением кучи костылей.
Т.е это не Ъ opensource проект, от того все болячки.

winddos ★★★
()
Ответ на: комментарий от Kroz

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

И что за книга?

ymuv ★★★★
()

Ну и дополнительный вопрос тем, кто в исходники заглядывал: насколько это сложно для незнакомого с C++ человека?

Если в планах человека - изучить C++, можно попробовать. Копание в чужих исходниках здорово поднимает опыт. А если хочется перенести мод и забыть язык - как тут уже сказали, лучше не начинай. Охотник успокоится, а покалеченного мамонтёнка жалко.

hobbit ★★★★★
()
Ответ на: комментарий от ymuv

И что за книга?

Хэзфилд Р., Кирби Л. «Искусство программирования на C Фундаментальные алгоритмы, структуры данных и примеры приложений». Пусть не сбивает название "...на С" - большинство подходов применимо ко всем языкам. Ты только глянь на содержание, сразу поймешь что это стоящая книжка.

Kroz ★★★★★
()
Ответ на: комментарий от ymuv

Только что прочитал на стр 61 (33) главу «C против C++». Там есть пример, который нормально скомпилится в С, а в С++ - c warning. Сходу приведешь такой пример? А я думал, что С++ скомпилит нормально любой код на С. Надо будет перечитать на досуге...

Kroz ★★★★★
()

Если все-таки решишься (опять-таки не советую) - книге, что я привел выше, стр. 573 (289), Глава «Межплатформенная разработка: программирование коммуникационных средств» содержит общий подход и некоторые (далеко не все) аспекты.

Kroz ★★★★★
()
Ответ на: комментарий от hobbit

hobbit писал:

Если в планах человека - изучить C++, можно попробовать.

Kroz писал:

Если все-таки решишься (опять-таки не советую)

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

siphonops ★★★
() автор топика

Jagged Alliance 2

Офигительная игра.

По сабжу судить сложно. Но вообще, качественный кодинг - дело довольно-таки затратное.

observer ★★★
()
Ответ на: комментарий от siphonops

Перенос - вообще дело сложное.

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

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

По-хорошему в основной проект добавляется слой абстракции от ОСи и дальнейшие изменения игровой логики, механики и т.д. никак не влияют на портируемость. Если там этого нет, а авторы не стесняются использовать WinAPI/DirectX, то портировать будет сложно. Если стесняются и есть рабочий порт предыдущей версии, то все шансы на то, что портирование сведётся к копированию изменений из win версии в линукс версию.

насколько это сложно для незнакомого с C++ человека?

Ну с С++ придётся познакомиться, очевидно. Зависит от человека. Думаю всё реально.

Legioner ★★★★★
()
Ответ на: комментарий от siphonops

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

Да, кстати.
А что собственно поломали? Когда?

Сегодня играл под Wine в последнюю версию v1.13 от июля этого года, работает идеально без установки каких либо костылей.

winddos ★★★
()
Ответ на: комментарий от winddos

Очень сильно тормозило. С багфиксом от 25 июля - чуть меньше.
Колесико мыши не функционально.
Игра при выстрелах очень сильно тормозит. Это появилось с версии, которая вышла год назад и остается по сей день.

siphonops ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.