Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
15.02.2008 13:05

Owl Wilson
Участник
Откуда: Сургут
Зарегистрирован: 24.07.2007
Сообщений: 31
Вебсайт

Снова о проблеме появления новых русских игр

За год чтения этого форума сложилось устойчивое ощущение, что именно проблема с написанием движка тормозит все начинания и движения молодых адвентписателей в сторону своей первой игры.
На мой взгляд неверна изначальная установка о необходимости движка, которую вбивают в голову начинающим. Отсюда новичок уже твердо знает, что просто так игру не пишут - нужен движок, существующие он отвергает, а вот оставшийся единственный вариант написания собственного практически всегда увязает в истощившемся желании, недостатке чисто технических знаний и др. На мой взгляд, это очень опасный прецендент, образующий целую группу отрицательных моментов :
1) Любой новичок как пробовавший, так и не пробовавший начинать писать игру, прочно ассоциируют создание IF с первоначальным написанием движка, причем у пробовавшего - эта ассоциация уже носит отрицательный характер.
2) Любой энтузиаст, севший за написание движка, расходует весь свой энтузиазм (носящий, как правило чисто IF-шный характер) на решение унылых технических проблем движка, чаще всего на этом все и заканчивается.
3) Любому начинающему жизненно необходимо сразу же поселить протагониста хоть в какое-то пространство и отработать основные приемы взаимодействия с окр.ср., почувствовать какие новые взаимосвязи образуются только лишь после добавления одного предмета в локацию, то есть окунуться в чистую метафизику IF, вместо этого он ломает голову над тем, как его движок будет различать одинаковые внешне, но по-разному наполненные плазмой энергетические ловушки, хотя на самом деле герою его игры еще не пришлось просто попробовать прочитать надпись или поднять камень.
То есть, люди, пришедшие в IF, постепенно, сами того не осознавая, перенаправляют свою энергию в другое русло.
Три момента еще более усугубляют эту ситуацию :
а) Новички хотят создать СУПЕР-ПАРСЕР, на котором бы их игры писали все остальные и тем покрыть себя славой (как правило желание самому написать игру тут уже пропадает)
б) Ветераны IF продолжают вбивать в голову новичкам мысль о первейшей необходимости движка и бомбят немногих, написавших хоть что-то похожее на движок, своими "тестами на крутость". Это они бросают фразы типа "твоя игра отвечает на все непонятные глаголы одинаково" или "твой герой даже не может подпрыгнуть на месте". Они формируют аксиому "слабый движок = ОЧЕНЬ слабая игра".
в) Этот момент я называю "IF-аномалией автора-новичка". Абсолютно ВСЕ существующие движки отвергаются в конечном счете. Причины называются разные - итог один.

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

И так, представляю вашему вниванию концепцию "solid code", которая проста и всем знакома. Если вы хотите попробовать написать IF-игру и более-менее умеете программировать (а именно такие люди начинают писать движок), забудьте о движке и СРАЗУ НАЧИНАЙТЕ ПИСАТЬ ИГРУ самым простым способом - IF-ELSE-ELSEIF. Множьте свои IF-ы (в смысле условия внутри программы) и не обращайте внимания на то, что это самый "чайниковый" способ - в скомпилированной игре мы ваших навыков кодописания не увидим, а вот механику можно будет оценить уже сразу. К слову сказать, этим способом гипотетически  можно реализовать самую сложную функциональность в небольшой по размеру игре. Вы меня спросите "а в большой", а большие игры даже на хороших движках получется писать только ветеранам, у которых не один десяток любительских "заготовок" за плечами. Нужно отметить тот факт, что больших и сложных игр в русском IF очень мало, несмотря ни на наличие можных движков, ни на программистские способности человека. Большая и хорошая игра - это вопрос не к движку, а к автору в первую очередь.
По мере того, как вы начнете спотыкаться о "спагети-код" своей игры (а это хороший признак, это значит, что в вашей игре уже можно где-то прогуляться, что-то взять и чем-то на что-то подействовать), вы начнете работу по упорядочиванию кода - NPC и предметы инкапсулируются у вас из набора переменных в структуры (struct, record, object), появятся обособленные процедуры для наиболее частых действий, но выполняя все эти правки, вы уже будете держать в голове вашу игру, состоящую из "если X, то Y" и вы будете точно понимать для чего вы сейчас пишете тот или иной кусок кода. Хоть такой подход и не даст создать под готовой игрой универсального и мощного движка, как нельзя пропихнуть под лежащим слоном подстилку, но это даст несколько просто замечательных моментов :
1) Вашу игру, в которую уже можно будет поиграть
2) Вы набъете руку (приступая к другой новой игре, вы уже автоматически организуете элементы кода под нужды вашей игры, с каждой новой игрой эта организация будет становиться все совершеннее).
3) На определеном этапе вашего творчества в стиле "solid code" и имея несколько solid code-игр за плечами, вы уже сможете подготовить для себя некую программную базу своих игр, которую уже можно будет назвать "движком". Самое главное - игры должны опережать движок, а не наоборот.
Нас не интересуют ваши движки, нас интересуют игры.
Удачи в начинаниях!

Отредактировано Owl Wilson (15.02.2008 13:09)

Неактивен

0    0    #2
19.02.2008 10:35

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Снова о проблеме появления новых русских игр

Eten написал:

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

Парсер для отдельного языка написать как минимум на пару порядков проще чем универсальный мегапарсер, и тем не менее для русского языка парсер все еще так и не создан. sad
В каждом языке есть свои подводные грабли. Это означает что тестить универсальный парсер нужно как минимум на 20-30 языках. Для одиночки задача неподъемная, т.к. и с русским языком у большинства "разработчиков" проблемы smile

Отредактировано ASBer (19.02.2008 10:37)

Неактивен

0    0    #3
20.02.2008 12:06

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Снова о проблеме появления новых русских игр

Owl Wilson написал:

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

ИМХО solid-code игра для русского языка это тоже утопия sad
Постараюсь пояснить:
Программы строятся на абстракциях, которые выделяются в функции. Это основа программирования.
Допустим у вас есть функция ПойтиНаЮг(Герой) которая выводит сообщение Герой.Имя+" пошел на юг." и все замечательно работает пока все герои у нас мужского рода. И не дай бог Вам в середине разработки игры ввести в сюжет героиню big_smile Количество функций, которые придется перелопатить превысит все мыслимые границы smile
Либо вначале придется разработать библиотеку функций для согласования по родам/падежам/числу/времени (что уже близко к разработке движка) либо довольствоваться крайне убогим языком (что для человека с литературным талантом неприемлемо).
Про парсер вообще молчу...

Отредактировано ASBer (20.02.2008 12:08)

Неактивен

0    0    #4
20.02.2008 14:18

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Снова о проблеме появления новых русских игр

Owl Wilson написал:

ASBer написал:

ИМХО solid-code игра для русского языка это тоже утопия sad

Ещё бОльшая утопия, чем приличный русский парсер ? wink

Трудно сопоставить... задачи поставлены разные. Приличный русский парсер (если б он был) по определению относится к другой весовой категории.

Owl Wilson написал:

ASBer написал:

Допустим у вас есть функция ПойтиНаЮг(Герой) которая ... И не дай бог Вам в середине разработки игры ввести в сюжет героиню big_smile Количество функций, которые придется перелопатить превысит все мыслимые границы smile

Проблема надумана. Храни параллельно жен/муж формы слов для соответствующих ситуаций.

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

Owl Wilson написал:

ASBer написал:

...(что для человека с литературным талантом неприемлемо).

Ох уж эти люди с литературным талантом... smile Занимались бы литературой, а не IF, ей-Богу smile

угу... а IF пишут программисты со всеми вытекающими... smile

Неактивен

0    0    #5
21.02.2008 09:39

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Снова о проблеме появления новых русских игр

Korwin написал:

Скорее следующая версия генератора будет работать с меньшим количеством ошибок.

На правах рац-предложения:
А мона, мона генератор сделать из 2х частей?
1. .dll, которая собственно генератор.
2. Front-end, который собственно пользовательский интерфейс к генератору.
Тогда .dll возможно кто-нибудь сможет использовать в своих проектах...

Korwin написал:

Ну верю я в великий и могучий язык, плохо поддающийся алгоритмизации!

аминь! smile

Неактивен

0    0    #6
07.03.2008 14:34

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Снова о проблеме появления новых русских игр

Owl Wilson написал:

при всём уважении, от пробующих себя на поприще IF программистов толку всё-таки больше (в смысле результата), чем от их оппонентов с одним литературным талантом. ВНИМАНИЕ!!! Запрещено на основе этого сообщения начинать холивар. smile

Вопрос из разряда: что лучше, танк или вертолет?
Одназначно, лучше танк с поддержкой с воздуха вертолетом. smile
(никаких холивар)

Отредактировано ASBer (07.03.2008 14:46)

Неактивен

0    0    #7
07.03.2008 14:45

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Снова о проблеме появления новых русских игр

Owl Wilson написал:

Никаких правил исключений и ситуация хранить не надо - просто n-мерный массив вариантов.

попробовал прикинуть такую таблицу для своей системки - получился 9ти-мерный массив hmm (без комментариефф)

Неактивен

0    0    #8
04.04.2008 16:22

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Снова о проблеме появления новых русских игр

Owl Wilson написал:

Кроме того - не понимаю твоего смущения, у тебя ограничение на использование ОЗУ ? smile

У меня ограничения на использование собственного мосга!
(ну не влезает в него 9-ти мерный массив, как ни старался...)
sad

Неактивен

Powered by PunBB
© copyright 2001–2026 iFiction.Ru