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
17.02.2008 01:38

luciofulci
Участник
Зарегистрирован: 20.11.2007
Сообщений: 7

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

Проблема в том, что игры писать очень сложно, особенно на РТАДСе. А для языков программирования существуют всякие IDE, которые делают написание кода (особенно для тех, у кого программирование - хобби) сравнительно простым.
Пока самый крутой вариант IDE - это новый TADS-режим для Emacs'а. Подсветка синтаксиса, автоматическая вставка отступов, автодополнение и т.д. Emacs вообще прикольная штука (сорри за оффтоп).
Идеальная среда разработки для интерактивной литературы - это когда работа распределяется так: 10-15% на кодинг, все остальное - на сюжет. То есть захотел, например, добавить локацию - нажал на кнопку, появилось окно, заполнил поля и все. Жаль, что этим никто не занимается.
Нужны качественные генераторы коды, вроде "Генератора падежей". Признаться, если бы этой программы не было, я бы вообще никогда не заставил себя садиться за написание игры - это был бы ад sad А так пишу потихоньку на РТАДСЕ и хочу лишний раз выразить респект всем участникам этого проекта.
А парсер я таки написал smile Простой, как три рубля, но тем не менее. Разумеется, он абсолютно бесполезен с точки зрения написания игр, зато он немного научил меня программировать на Python'е, ценить имеющиеся движки, и отучил изобретать велосипеды с квадратными колесами smile Но единственное, что: писать на Python'е мне, не имевшему до этого практически никакого опыта кодинга, было гораздо проще, чем на ТАДСе sad Так что, на мой скромный взгляд, исходя из собственного опыта - нужны генераторы кода (я уже приводил пример генераторов падежей), помощники и так далее.
Так что если кто-то захочет вписать свое имя историю и поупражняться в кодинге - не стоить тратить время на собственный движок, лучше разработать IDE для RTADS на уровне скажем SPE для Python'а...

Неактивен

0    0    #3
18.02.2008 20:28

luciofulci
Участник
Зарегистрирован: 20.11.2007
Сообщений: 7

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

Hind написал:

Похоже, проще создать мощную русскую IDE для TADS 2 smile

Да вот не думаю, что это проще. Во всяком случае я вообще не встречал действительно мощных IDE для TADS 2. А русская IDE, возможно, отличалась бы только русским языком интерфейса и встроенным генератором падежей.
По поводу изначально русской платформы - я не совсем понимаю, о чем идет речь. Русский язык сложнее английского практически по всем параметрам, то есть по ходу создания платформы придется внедрять те же функции, что и в случае в английским (проще говоря - изобретать велосипед), плюс еще дополнительные, связанные со спецификой великого и могучего. Я, конечно, не специалист, но исходные коды того же TADSа (как второго, так и третьего) доступны для скачивания и использования. Почему бы не взять и не доработать их? Возможно, в процессе можно будет убрать что-то специфически-английское, типа артиклей. Повторюсь, я не специалист, но просто мне кажется это более логичным, чем делать все с нуля...

Отредактировано luciofulci (18.02.2008 20:29)

Неактивен

0    0    #4
19.02.2008 01:25

luciofulci
Участник
Зарегистрирован: 20.11.2007
Сообщений: 7

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

Да я ж говорю, не специалист я :)
Про РТАДС осведомлен, Андрею действительно ОГРОМНОЕ спасибо.
Генератор падежей полностью автоматизировать на уровне движка вряд ли удасться, в связи с наличием исключений. Да и не думаю, что нужно это - в принципе, генератора падежей вполне хватает - в худшем случае приходиться вносить небольшие правки - не более того.
По поводу генератора карт - это безусловно нужное дело, как и любой инструмент, который позволяет автоматизировать нетворческий элемент создания игр. Было бы еще очень здорово, если бы программа еще могла читать исходники ТАДС и генерировать карту. А также генерировать список предметов для локации. Впрочем, что-то я "слишком много кушать"(с) Ш-М. :) Для этого придется писать тот же парсер, только разве что чуть менее "хитрый" чем для самостоятельного движка, то есть это прорва работы.

Неактивен

0    0    #5
19.02.2008 19:33

luciofulci
Участник
Зарегистрирован: 20.11.2007
Сообщений: 7

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

Eten, извини, но перечитай свой постинг. Такое ощущение, что русский у тебя не совсем родной.
Медитирую над фразой раз ты решил стать боксером, то ты являешься боксер, но чтобы стать им полностью тебе придется приложить силы с учетом того, что ты еще остаешся на предыдущей стадии. Так и не понял, что ты имеешь в виду, но сердцем чувствую - что-то очень важное sad

Отредактировано luciofulci (19.02.2008 19:34)

Неактивен

Powered by PunBB
© copyright 2001–2026 iFiction.Ru