Движок, которого не хватает
| |
andycopper | Дата: Понедельник, 01 Апреля 2019, 15:15 | Сообщение # 1 |
уже был
Сейчас нет на сайте
| Всем привет. Я очень давно сижу в ридонли на этом сайте, и всяких тем уже тут повидал. Но есть тред, который я был бы рад с вами обсудить, потому что чем больше я о нем думаю, тем безумнее ме кажется эта мысль, а это уже верный признак того, что мысль достойная. Прошу меня сразу простить за высокопарную графоманию - я не технарь, и мыслю абстрактными категориями.
Вкратце суть треда - на рынке игровых движков нет движков с возможностью создавать кроссплатформенные игры без каких либо знаний программирования. Сейчас все скажут, что ну как же - юнити с плеймейкером, ue c блюпринтами, годот с визуальным скриптингом, простигосподи coppercube c его смешным набором пресетов поведений - однако же полноценную законченную игру в этом всем можно сделать только подключив знания какого либо ЯП, потому как изначально эти движки были заточены под высокоуровневую разработку, а блюпринт система была реализована как "костыль", прошу прощения за грубость.
Есть огромная серьезная ниша с невероятно обширной аудиторией, которой не жалко отдавать денег из своих карманов, лишь бы делать игры без программирования. На рынке игровых движков и различных эдиторов есть прослойка, в которую до сих пор никто по нормальному не влез - или не допрыгивают, или перерастают. Чтобы не томить своим монологом - на рынке полно игровых редакторов, но все они делятся на три части: это 2D конструктор, это 3D движок, и 2D/3D кадавр движка-с-конструктором.
Редакторы и конструкторы 2Д игр имеют максимально низкий порог входа и позволяют сделать ну просто что угодно, но только в двумерной плоскости.
Движки с 3D позволяют накодить вообще что захочешь, но только если ты знаешь ЯП, а как показывает мой (сугубо личный) 10летний опыт - когда ты знаешь ЯП, у тебя "провисает" все остальное(начиная от унылой истории в сюжетах и идеях, заканчивая безвкусицей во внешнем виде всего этого), а когда ты умеешь все остальное - ты не знаешь ЯП, а значит и геймдевелопер из тебя так себе.
Кадавры - это прекрасное сочетания красоты и извращения в одном лице, которое происходит тогда, когда люди с программным складом ума пытаются сделать "удобно" - в таких движках/редакторах появляется "визуальное программирование". Я нахожу это апогеем самобичевания в геймдеве.
Сейчас важная информация: я не говорю что существующие решения плохи. Они прекрасны, без шуток, это все - рабочие инструменты. Но так или иначе - все было придумано и создано людьми, а значит может ими же быть и улучшено.
Так вот. За 10 лет я не встретил ни одного движка, позволяющего делать недурные разножанровые игры/приложения без единой строчки кода. Я не говорю про игры ААА-уровня - я не нашел движка который бы позволил делать трехмерную игру любого жанра пусть даже с пятилетним опозданием по качеству выдаваемой графики - ближе всего к этому приблизились GameGuru и CopperCube, но первый крайне ограничен в каких-то примитивных вещах и требует знания Lua, а второй просто перестал поддерижваться разрабами, не успев обрасти сообществом (хотя и требует знаний всего то навсего JS).
Есть прекрасный Construct 2/3 , позволяющий делать любые 2Д шедевры без единой строчки кода - не редактор, а гимн домашнему геймдеву. Всем известный ГеймМейкер - нестареющая классика, которая тоже может в 2Д/3Д почти без кода. Или другая крайность - Популярный и раскрученный Юнити с массой контента к нему - все прекрасно, но без C#/C++ на плеймекерах и прочих блюпринтах к нему, далеко не уедешь. И чем дальше в лес, тем больше дров с программированием. Это не плохо. Но я вижу в этом незанятую нишу.
Собственно, может быть кто-то опровергнет мои догадки и посоветует инструмент, в котором ЯП не обязательное условие для создания интерактивных трехмерных сцен? Или возможно знает, людей, которые промышляют подобными разработками - я бы с радостью на добровольных началах вклинился бы в их процесс разработки, чтобы помочь им сделать user friendly инструмент разработки с минимальным порогом входа. Чтобы этот инструмент не уступал в нем гейммейкерам и C2/С3. Конечно, без программирования никуда, нельзя от этого отказываться. Но. Почему никто до сих пор не занял пустующую нишу игровым редактором в трехмерном измерении с возможностью делать игры без единой строчки кода с самого нуля? Что мешает собрать воедино возможные игровые сущности, использовать ту же концепцию с предопределенными поведениями как в С2, и дать возможность все это скриптовать простыми комбинациями "событие - условие - действие"? Разве игры все кардинально чем то отличаются друг от друга и не может быть простого игрового движка, в котором все это не нужно каждый раз писать с нуля?
|
|
| | |
drcrack | Дата: Понедельник, 01 Апреля 2019, 16:10 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| кстати вот че еще заметил — на рынке софта нет решений чтобы самому с нуля без программирования создать свою операционную систему типо виндоус 10
что мешает собрать воедино возможные сущности типо загрузчика, менеджера памяти, планировщика процессов и скажем там систему обновлений и дать возможность все это скриптовать простыми комбинациями "событие - условие - действие"? разве ОС чем-то кардинально отличаются друг от друга и не может быть простого движка в котором можно просто нарисовать дизайн окошек а не писать все с нуля?
собственно, может быть кто-то опровергнет мои догадки и посоветует инструмент, в котором ЯП не обязательное условие для создания современных операционных систем?
Сообщение отредактировал drcrack - Понедельник, 01 Апреля 2019, 16:12 |
|
| |
LP | Дата: Вторник, 02 Апреля 2019, 14:27 | Сообщение # 4 |
частый гость
Сейчас нет на сайте
| ИМХО за десять лет могли бы и выучить какой-нибудь ЯП.
|
|
| |
TLT | Дата: Вторник, 02 Апреля 2019, 15:56 | Сообщение # 5 |
Сейчас нет на сайте
| Время поменялось. Сейчас уже нет тренда делать игры без программирования, т.к. уровень образования в этом деле развился до того, что есть доки, шаблоны, курсы и статьи, и очень много людей знают базовые основы, которых более чем достаточно для создания даже сложной игры при хорошем изучении движка (UE4, Unity и пр.). Поэтому топчики наоборот отходят от этого, оставляя сие модулям, как упомянутые для Unity... Неактуально!
Дао, выраженное словами, не есть истинное Дао.
|
|
| |
TimKruz | Дата: Вторник, 02 Апреля 2019, 18:17 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| Цитата andycopper ( ) чем больше я о нем думаю, тем безумнее ме кажется эта мысль, а это уже верный признак того, что мысль достойная Идея-фикс не обязана быть достойной просто потому, что ты на ней помешан, по себе говорю)
Цитата andycopper ( ) лишь бы делать игры без программирования Это всё очень относительно. Для кого-то накидать "из кубиков" логику игры – это "ох-ах, яждизайнер, зачем вы мне своей логикой в лицо тычите", а для кого-то написать сложный скрипт для готового движка – это "какое ж это программирование, если я не могу своими руками разобрать движок на кусочки ассемблерного кода и собрать из них собственного монстра".
Да и само понятие "движка" сильно размыто. Тот же конструктор карт в игре – это тоже "движок" (как набор удобных инструментов и готовых компонентов), ограниченный возможностями игры. Расставил фигурки по карте, дал им другие имена – вот и новая игра. Я так в детстве в "шахматы" играл, придумывая фигуркам новые роли и правила (аналогично с колодой игральных карт; кому нужны какие-то солдатики и готовые правила, когда есть богатое воображение?)...
Цитата andycopper ( ) когда ты знаешь ЯП, у тебя "провисает" все остальное(начиная от унылой истории в сюжетах и идеях, заканчивая безвкусицей во внешнем виде всего этого), Спорное утверждение. Если ты только и делаешь, что кодишь, то, возможно, у тебя просто нет времени на работу над остальными частями. Можешь выделять часть времени на кодинг новых фич, часть – на повышение вкуса и навыков в графике, часть – на чтение художественной литературы и написание пробных сюжетов, и т.д. Конечно, это сложнее, чем быть узким специалистом, но если хочешь – почему нет?
В конце концов, у тебя всегда остаётся возможность делать игры-песочницы (сюда же рогалики с псевдографикой и т.п.), где не нужны сюжеты и графон, но нужен сложный геймплей и вот это вот всё программерское.
Плюс с "почти готовой" игрой без внятной графики и унылым сюжетом ты можешь найти нужных специалистов, а с голой идеей ("смотрите, как будет круто!") в 99% случаев ловить будет совсем нечего.
Цитата andycopper ( ) а когда ты умеешь все остальное - ты не знаешь ЯП, а значит и геймдевелопер из тебя так себе. Фрилансеры или тот самый друг-тыжпрограммист спешат на помощь. Как будто большая проблема...
К тому же, некоторые виды "творческих" игр в принципе не требовательны к коду – те же визуальные новеллы, например. Что нужно художнику и сценаристу, чтобы сделать визуальную новеллу? Склеить картинки с текстом в нужном порядке в виде приложения, а для этого есть специальные конструкторы.
Цитата andycopper ( ) позволяющего делать недурные разножанровые игры/приложения без единой строчки кода Под "без единой строчки кода" подразумевается визуальное соединение мышкой логических блоков, визуальное тыканье мышкой в кнопки GUI-меню, или вообще нажатие кнопки "сделать крутую игру"?
Просто, например, если представить движок, в котором нужно описывать будущую игру на каком-то "почти естественном" языке, то есть буквально текстом, то это опять же будет "программирование". Просто программирование на языке, близком к тому, которым мы тут сейчас общаемся. Это тоже плохо, и необходимо тыкать в "сделать круто" без единой строчки текста?
Цитата andycopper ( ) знаний всего то навсего JS ИМХО, разделение ЯПов на "всего-то навсего" и "о-го-го сколько" некорректно. Тем более в плане игровых скриптов... Логика программирования везде одинакова, различен только синтаксис и некоторые особенности записи. Даже если взять совсем несравнимые ЯПы, под капотом у них одни и те же цепочки машинных кодов, и вопрос только в том, нравится ли тебе тот фантик, в который завёрнуты эти коды. Короч если осилил JS – не вижу проблемы в остальных ЯП. Главная проблема с библиотеками (или их отсутствием, но почему бы не написать свою?).
Цитата andycopper ( ) Construct 2/3 , позволяющий делать любые 2Д шедевры без единой строчки кода Насколько я помню, там вроде нужно составлять логику из всё тех же графических кубиков... И да, это программирование.
Цитата andycopper ( ) ГеймМейкер - нестареющая классика, которая тоже может в 2Д/3Д почти без кода Вот GameMaker (старый) помню хорошо, и там ты без кода никуда – просто по умолчанию этот код выглядит как графические кубики, которые ты таскаешь по окошку. Когда устаёшь таскать кубики мышкой – жмёшь волшебную кнопку и превращаешь кубики в строчки кода, а дальше шпаришь по старинке, на клавиатуре...
Цитата andycopper ( ) собрать воедино возможные игровые сущности А вот Васе Пупкину понадобилась специфическая игровая сущность, которой у тебя в движке нет. Будешь выкатывать апдейт движка с сущностью "Для_Васи", или всё-таки разрешишь Васе самому определять, что в его игре является сущностью?
Цитата andycopper ( ) использовать ту же концепцию с предопределенными поведениями Опять, Васе понадобилось поведение, которое ты не предопределил. Будешь предопределять сам или заставишь Васю...
Цитата andycopper ( ) ...все это скриптовать простыми комбинациями "событие - условие - действие"? Ведь это так просто, "событие, условие, действие"! Ещё событие – ещё действие! А нужно что-то сложнее – добро пожаловать в лес из кучи непонятных комбинаций, в которых даже комментарий для себя-из-будущего воткнуть нельзя...
Сорри, вспомнил свой небольшой опыт общения с Blender Game Engine... аж кисть руки заболела. Движок может и хорош, но без ненавистного Питона можно сломать мышку вместе с рукой...
Цитата andycopper ( ) Разве игры все кардинально чем то отличаются друг от друга и не может быть простого игрового движка, в котором все это не нужно каждый раз писать с нуля? 1. Игры ничем не отличаются на самом общем уровне: там всего лишь бесконечный цикл обработки "событий". Чем выше абстракции, тем сильнее отличия, вплоть до того, что в гоночках надо делать врум-врум, а в стрелялках – бах-бах.
2. Чем проще игровой движок, тем больше нужно писать с нуля, потому что он мало что умеет "из коробки". И наоборот, чем сложнее игровой движок, тем меньше тебе нужно делать самому, потому что движок делает за тебя очень многое.
Но есть одно "но". Если движок простой, значит, он реализует только базовые функции – то есть он низкоуровневый. Грубо говоря, простой движок даёт тебе кирпичи, цемент, доски, лопату и вот это всё по мелочи, а дальше делай что хочешь.
Если же движок сложный, значит, он реализует максимально продвинутые функции – то есть он высокоуровневый. С ним тебе дают панель управления с кнопочками, подписанными "сделать дом", "сделать второй этаж", "сделать отделку квартир" и т.д.
Разумеется, что ты можешь взять "сложный" движок, выкрутить винтики из панели управления, снять её и начать разбираться с проводками, идущими от кнопок, дабы понять, как сделать, например, не жилой дом, а сарай или музей. Но сможешь ли ты разобраться в хитросплетении всех этих проводков, не выкинув весь движок на свалку и не начав писать свой?..
Кхм, короче, чем проще движок – тем он тупее, и тем меньше в нём "готовенького", а, значит, у него больше возможностей. Чем сложнее движок, тем труднее разобраться в хитросплетениях его кишок, чтобы сделать что-то оригинальное.
Вот... Это, наверное, и мешает "просто собрать воедино". Ибо непросто получится.
И согласен с pixeye, код писать на самом деле быстрее и проще, чем возиться с GUI-мишурой, а описывать логику каких-то сложных процессов придётся в любом случае, и код тут тупо удобнее. Даже более того, все эти навороченные IDE с кучей свистелок скорее мешают, ибо в большинстве случаев достаточно простого редактора текста...
Цитата pixeye ( ) Напечатать текст емко и понятно или сделать лапшу из блок схем. Однако всё-таки хотелось бы иметь скорость набора текста и зрительное восприятие тех же блок-схем. То есть почему бы не сделать ЯП, который достаточно просто конвертировать в человекочитаемое графическое представление, но при этом по-прежнему возможно набирать простым текстом?
К тому же, возможно, "лапша из блок-схем" происходит не из-за самих блок-схем, а из-за неумения организовывать логику маленькими кусочками. Лапша из кода в одной функции на несколько экранов тоже плохо воспринимается, а вот код, разбитый на маленькие и понятные фрагменты – и комп переваривает, и людьми читается без проблем.
На эту тему я ещё давно когда-то задумывался, пытался придумать более понятную модель (как в графическом виде, так и в плане текстовой записи)... Придумался только примитивный метаязык, который я даже сам не могу в дело пристроить, хоть и хочу на нём игровой движок основать((
P.S. Сорри за многабукав, тема просто слишком близка мне...
|
|
| |
rivalfx | Дата: Среда, 03 Апреля 2019, 16:32 | Сообщение # 7 |
участник
Сейчас нет на сайте
| Хочется внести кирпичик ясности к подымаемой теме здесь.. На пс 4 , вроде даже в этом году выходит интересный проект dreams . Кому если интересно загуглите. Dreams ps4. Вот эта игра полностью соответстчует первому посту. Порог вхождения самый минимальный по знаниям. Необходимо консоль пс4. И ты уже можешь там лепить свои миры, уровни, музыку и мультики. Возможно нечто подобное когда нибудь выйдет на пк. Но сам лично жду дримс, бету пропустил. Но руки чешутся впредвкушении простого игростроя, так для себя побаловаться)))
|
|
| |
TimKruz | Дата: Суббота, 06 Апреля 2019, 20:34 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| rivalfx, вот только это не то, что предлагает andycopper в первом посте, как мне кажется. Он хочет полноценный движок, с помощью которого можно создавать независимые игры любого жанра и любой сложности без знаний/навыков программирования, а Dreams и десятки аналогичных игр на ПК (где можно создавать свой контент и играть с ним) всё-таки игры со встроенным редактором, т.е. ограничены неизменным набором базовых "кирпичиков" и вездесущим копирайтом...
Кстати, непонятно, зачем выпускать такое на PS4, если туда нельзя подключить клавомышь и, соответственно, нельзя прицельно расставлять объекты и нельзя использовать хоткеи... Управление как всегда портит всё(
Сообщение отредактировал TimKruz - Суббота, 06 Апреля 2019, 20:37 |
|
| |
|