LINUX.ORG.RU
ФорумGames

Существуют ли легко модифицируемые open-source шутеры от первого лица?

 open-source,


0

1

После обстоятельного изучения списка таких шутеров я понял, что не могу найти ни одного, который имел бы поддержку скриптов - все включено в компилируемый исходный код. Потенциально, таким шутером может быть liblast на движке godot, но сейчас он не готов.

В давние времена также существовала поддержка python и lua для движка cube, но все это не получило развитие.

Может быть есть что-то еще?

Подозреваю, что это одна из причин, почему шутеры с открытым исходным кодом застряли в развитии на уровне клонов quake.

Ответ на: комментарий от nebularia

Да, я про него и писал. В оригинале комната над комнатой вообще в принципе не была возможна, как и полигональные модели.

Я о том, что зачем делать на таком движке игры, если вполне актуальный по возможностям даже сейчас движок Quake 4 уже не первый год как открыт?

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от nebularia

Это уже совсем ретро.

Не знаком с этим движком, но выглядит как попытка проэволюционировать id tech 1 в id tech 2. Работа, конечно, серьезная, вот только ее уже проделали в прошлом тысячелетии.

Leupold_cat ★★★★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

А чем тебя не устраивает клон Quake?

Тем что мы живем в 2022 году. Уже появились целые родоначальники поджанров наподобие кинематографичных Half-Life и F.E.A.R., тактических как Counter-Strike, Rainbow Six или S.W.A.T., кооперативные как Left 4 Dead или PayDay, масштабные военные ARMA и Battlefield, разного рода королевские битвы, разномастные песочные шутеры наподобие Far Cry, Garry's mod, лутер-шутеры как Borderland и MMO шутеры наподобие Destiny.

Но open-source шутеры так и остались на стадии эмбриона в виде арена-шутеров и модификаций DOOM.

Ну возьми OpenArena или Xonotic за основу, например.

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

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

Скриптуха ради скриптухи?

Lua/python-плагины придумали чтобы гейм дизайнеры могли быстро поменять игровой код без пересборки всего кода движка чтобы оставить его закрытым, а также чтобы фанаты могли накостылять моды для привлечения задротов и других потенциальных покупателей продукта (поддержание жизни проекта нахаляву, вербовка отличившихся нердов на галеру по примеру valve).

У попенсорц проектов другие цели, и так как код открыт и такие проекты по факту поддерживаются сообществом, то нет смысла нагромождать излишнюю абстракцию. Да и надо ли оно, когда в каком нибудь Quake можно сравнительно легко наговнокодить нужное.

xDShot ★★★★★
()
Последнее исправление: xDShot (всего исправлений: 1)
Ответ на: комментарий от Leupold_cat

целые родоначальники поджанров наподобие кинематографичных

Какое отношение это имеет к движку? Half-life разработан на движке, который недалеко ушел от Quake, вся эта кинематографичность создана с помощью картоделов и прочих дизайнеров, используя практически тот же инструментарий.

xDShot ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Чего это не СПО? Собирается из исходников. Если зарабатываешь на игре больше «много» в год – надо поделиться. В этой кухне всё по честному.

Соотв. если заработок ноль, то переживать не о чем.

thegoldone
()
Последнее исправление: thegoldone (всего исправлений: 2)
Ответ на: комментарий от thegoldone

https://www.gnu.org/philosophy/free-sw.html

Слова “свободная программа” означают программу, которая уважает свободу и сообщество пользователей. В двух словах это значит, что у пользователей есть свобода выполнять, копировать, распространять, изменять и улучшать программу. Таким образом, понятие “свободная программа” относится к свободе, а не к стоимости. Чтобы верно воспринимать эту концепцию, вы должны понимать слово “свободный” в том смысле, который заключается в выражении “вольная речь”, а не “бесплатное пиво”.

Программа свободна, если у ее пользователей есть четыре важнейших свободы:

  • Свобода выполнять программу как вам угодно в любых целях (свобода 0).
  • Свобода изучать работу программы и модифицировать программу, чтобы она выполняла ваши вычисления, как вы пожелаете (свобода 1). Это предполагает доступ к исходному тексту.
  • Свобода передавать копии, чтобы помочь другим (свобода 2).
  • Свобода передавать копии своих измененных версий другим (свобода 3). Этим вы можете дать всему сообществу возможность получать выгоду от ваших изменений. Это предполагает доступ к исходному тексту.

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

Vsevolod-linuxoid ★★★★★
()

Сам отвечу на свой вопрос. Нашел открытый движок Torque3d, который поддерживает скрипты и имеет внутриигровой редактор уровней, прямо как в серии движков cube. Лицензия MIT. Был изначально создан для игры Tribes 2.

Поисковые системы упорно скрывали его существование от меня.

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

Подозреваю, что это одна из причин, почему шутеры с открытым исходным кодом застряли в развитии на уровне клонов quake.

Шутеры сдохли, поэтому их никто не пилит. Студии пилят кинцо, в опенсорц пилить кинцо никто не станет. Кроме кинца пилят парашу. Зачем кому-то тратить своё свободное время на парашу?

crutch_master ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid
  1. Свобода не бывает навязанной. Иначе это уже не свобода. Всё GPL и т.д. не является свободным. Потому что там это всё в обязаловку.

  2. Свобода от того, что этот достаточно большой и часто изменяющийся, чтобы поспеть за реальностью, силами «свободного» сообщества код на сдохнет завтра и не морально устареет послезавтра.

  3. Свобода от нежелательных изменений, внесённых кем-то в силу своей некомпетенции, лени, или злого умысла.

Всё это есть в Unreal Engine.

thegoldone
()
Ответ на: комментарий от thegoldone
  • Условия EULA UE5 не менее жесткие, чем GNU GPL.
  • Тебе напомнить, сколько проприетарного ПО не имеют вообще никакого развития из-за финансовых проблем, тот же движок старой Opera, например? А крупные СПО проекты от такого защищены, тот же Linux, например.
  • СПО совсем не значит, что код основного проекта может править кто угодно — сделать свой форк да, но тут уже сам виноват, раз поверил не пойми кому. И что, проприетарное ПО свободно от нежелательных изменений, внесённых кем-то в силу своей некомпетенции, лени, или злого умысла, что? Не смеши.

Ну и раз зашла речь о сортах свободы, вот отличная статья о том, что не так с BSD и MIT: https://lukesmith.xyz/articles/why-i-use-the-gpl-and-not-cuck-licenses/

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Условия EULA UE5 не менее жесткие, чем GNU GPL.

Нет. UE мягче.

Тебе напомнить, сколько проприетарного ПО не имеют вообще никакого развития из-за финансовых проблем, тот же движок старой Opera, например? А крупные СПО проекты от такого защищены, тот же Linux, например.

Да, крупных игровых движков среди СПО нету. Есть только UE, CryEngine и Unity. Они пока не решаются объединить свои наработки в один СПО проект.

Кому СПО, а кому делать что-то. И чем открытый исходный код, который можно модифицировать и распространять не устраивает – понять трудно. 5% от любой прибыли – это копейки. На фоне грабительских поборов от Гугла и Эппла в 30% с условиями – вообще не считается. Но там 5% только если продажи выйдут за млн $ за квартал. То есть продукт бесплатен или того стоит.

СПО совсем не значит, что код основного проекта может править кто угодно — сделать свой форк да, но тут уже сам виноват, раз поверил не пойми кому. И что, проприетарное ПО свободно от нежелательных изменений, внесённых кем-то в силу своей некомпетенции, лени, или злого умысла, что? Не смеши.

СПО – это когда корпорации заливают деньги и они же и контролируют разработчиков. Всё как в корпорациях. Добавляются некоторые степени свободы. И сам код при этом открытый, никто его не прячет.

А когда какой-то джентльмен тащит проект – вопрос времени, когда ему надоест.

Вопрос дела – вопрос практики. Вопрос причинно-следственных связей и прочего. Свобода здесь вторична или даже третична.

И тут вопрос у ТС – движок с открытым кодом. В академических или волонтёрских целях может подойти СПО проект. Если нужно сделать игру – тогда СПО не подойдёт. Но есть движки с открытым кодом.

У меня у самого есть СПО проекты. И сообщество время от времени предлагает залить туда какое-нибудь непотребство. И мне нужно время на разрешение этих вопросов. Самому не принимая участия в написании кода. И времени не очень хватает.

Это я к тому, что время не берётся ниоткуда. Это тоже валюта. Кто-то платит её. И я просто отождествляю все эти валюты – личное время, доллары, вклад и прочее. Между ними нет разницы. И утверждёня вида – «правильно платить в тугриках» – просто бессмысленны. Тугрик ничем не лучше остальных валют. И ничем не хуже.

thegoldone
()

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

А так, он довольно легко модифицируется. Например, из нестандартных режимов в сети есть сервера с режимами «королевской битвы», «пряток», «зомби-мода». Причём для игры в нестандартные режимы не надо качать или править отдельный клиент - просто подключаешься к нужному серверу и всё.

В давние времена также существовала поддержка python и lua для движка cube, но все это не получило развитие.

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

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

Тем что мы живем в 2022 году. Уже появились целые родоначальники поджанров наподобие кинематографичных Half-Life и F.E.A.R., тактических как Counter-Strike, Rainbow Six или S.W.A.T., кооперативные как Left 4 Dead или PayDay, масштабные военные ARMA и Battlefield, разного рода королевские битвы, разномастные песочные шутеры наподобие Far Cry, Garry’s mod, лутер-шутеры как Borderland и MMO шутеры наподобие Destiny.

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

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

Но open-source шутеры так и остались на стадии эмбриона в виде арена-шутеров и модификаций DOOM

Да к великому счастью, и называется это не «на стадии эмбриона», а «на стадии до вырождения»! Потому что только в DOOM и можно было бегать по большой сложной нелинейной карте, искать секреты, вспоминать где была красная дверь или что открылось когда нажал выключатель. И хреначить из BFG кибердемонов. Поэтому из всех современных шутеров, в том числе перечисленных, я поиграю, пожалуй, во FreeDoom. Посмотри карту depot если интересно, вот это шедевр.

Ну арены это да - этого навалом.

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

А какая задача-то? Звучит как будто что ты хочешь сам не знаешь что.

Потому что «набор скриптов полностью управляющий игрой» подразумевает полное отсутствие нескриптового кода и захардкоженных поведений, и это, по сути, просто lua/python биндинги к opengl/vulkan и физическим движкам. Ну бери, скриптуй, «полностью управляй».

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

С третьей стороны, есть движки типа godot - там и скрипты и готовый движок. Бери и делай, что тебе не хватает?

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

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

Он есть исключительно на клиентской стороне, но я согласен, что он позволяет достаточно многое.

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

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

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

С третьей стороны, есть движки типа godot - там и скрипты и готовый движок. Бери и делай, что тебе не хватает?

Конкретно с godot все хорошо, если не считать того, что там, на данный момент нет готового шутера, только пара новорожденных проектов. Хотя и с другой стороны, это хороший повод им помочь.

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

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

Держи при себе всегда блокнот с ручкой в кармане, дома, на работе, в туалете, в автобусе, над/под раковиной перед операционной, а вот в операционной не надо. на крайняк йодом на чём попало можно накалякать :D мимолётные идеи всегда нужно записывать.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от Leupold_cat

нет готового шутера

Не существует понятия «готовый шутер», это не задача даже. Создать плоскость, разместить камеру на некоторой высоте от неё, разрешить крутить её мышкой и двигать стрелками - вот и всё что отличает шутер от не шутера.

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

Как минимум, скрипты быстрее в разработке, потому что исходный код нужно перекомпилировать

перекомпиляция с 0 занимает порядочно времени, но типичная компиляция независимо от размера проекта занимает секунды - это не то время, на котором можно сэкономить время разработки

Хотя, в любом случае, Torque3d меня заинтересовал, тоже его поковыряю

next_time ★★★★★
()

Может быть есть что-то еще?

Можно написать скрипты на Pawn для сервера XashDS (движок Xash3D FWGS) с плагином AmxModX.

Если интересен пример того, что можно сделать скриптами и модами на основе этого движка, посмотри на Paranoia 2: Savior 2019.

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