Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
04.12.2009 09:15

Landing
Участник
Зарегистрирован: 04.12.2009
Сообщений: 4

Идея по программированию платформы

Есть навязчивая идея попробовать написать свою менюшную платформу. Даже не в целях распространения, а в качестве тренировки в языке.
В начале, как и в большинстве систем, думал написать маленький скриптовой язык, который бы описывл объекты в игре и переводил их в код на, например, C#. Дальше этот код компилируется в сборку C#, затем через стандартные механизмы получаем объекты из сборки и играем smile
Но сколько проблем с написанием своего языка, синтаксического анализатора к нему... Поэтому появилась идея складывать программный код из блоков, в которые подставляю только введенные значения автора игры. К примеру, у автора есть программа, которая в диалоговом режиме спрашивает  у него, какие он хочет создать переменные, локации, тексты и т.д. С ввода этих значений генерируется программный код, к примеру, ввел автор переменную "сила = 10", для нее сгенерилось что-то типа:

Код:

class Game(object):
   self._strong = 10

Ввел автор локацию, получаем:

Код:

class Game(object):
   self._strong = 10

   def location_name(self):
       text = "Описание локации"

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

Идея меня очень вдохновила, но почему-то из-за легкости ее реализации, кажется есть где-то подвох smile

Неактивен

0    0    #2
04.12.2009 10:22

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

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

Re: Идея по программированию платформы

По сути вы хотите сделать обертку для другого языка, абстрагировав писателя от его сложности.
Думаю вам будет полезно почитать о законе дырявых абстракций:
http://local.joelonsoftware.com/wiki/За … Абстракций

Неактивен

0    0    #3
04.12.2009 13:21

Landing
Участник
Зарегистрирован: 04.12.2009
Сообщений: 4

Re: Идея по программированию платформы

Ну что же, это вполне имеет место быть. Начинать буду с нуля, хорошо продумывая структуру, рисовать схемы, и постепенно начинать кодить. В начале без генератора кода, проделать все действия руками, написать код, сделать сборку, скомпилировать, запустить. Оттестировать эти шаги. Затем приниматься писать генератор. И также его тестировать. Конечно могут и будут возникать ошибки, как без этого.

Есть правда и явный минус у такого подхода - одноплатформенность. Хотя ее можно решить написнием плагинов к генератору, которые будут переводить на нужный язык.

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

Отредактировано Landing (04.12.2009 13:23)

Неактивен

0    0    #4
04.12.2009 13:22

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Идея по программированию платформы

Landing, посмотри TGE.
Есть мнение, что это самый понятный конструктор менюшных текстовых игр для непрограммистов. Сделаешь лучше и проще - будет отличная платформа.

А вообще, велосипедистов не очень любят. Для изучения темы велосипедизма и самодельных платформ очень рекомендую прочесть статью Самодельные платформы.

Если тебе не только хочется не только "потренироваться", но и реальную пользу принести, приходи к нам на QSP, у нас есть что тебе предложить, наших рук на все не хватает.

Неактивен

0    0    #5
04.12.2009 13:38

Landing
Участник
Зарегистрирован: 04.12.2009
Сообщений: 4

Re: Идея по программированию платформы

Nex

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

А что в QSP, на чем она пишется и какого рода предложение? Правда, интересно. Вобщем-то с нее и началось мое знакомство с квестами после книг-игр.

Неактивен

0    0    #6
04.12.2009 13:58

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Идея по программированию платформы

Сейчас идет разработка редактора QGen, порта QSP-плеера на WinMobile, можно присоединиться к разработчикам и внести свой вклад, работая через SVN, выполняя задания-тикеты.

Еще очень хотелось бы увидеть порт плеера на Symbian и iPhone, если бы ты за это взялся, было бы очень здорово.
Практики будет хоть отбавляй, по всему, что касается QSP, будем консультировать.

Интерфейс и "скриптовый движок" QSP разделены, весь "движок" выделен в отдельную библиотеку, написанную на C. Соответственно, сделать порт на любую платформу сравнительно просто - не приходится "писать с нуля", нужно лишь собрать библиотеку и сделать к ней GUI.

Неактивен

0    0    #7
04.12.2009 14:08

Landing
Участник
Зарегистрирован: 04.12.2009
Сообщений: 4

Re: Идея по программированию платформы

Присоединился бы, но пишу на C# и Python. Под iphone надо мак + objectiveС (вроде так пишется).

Неактивен

0    0    #8
04.12.2009 14:34

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Идея по программированию платформы

Если ты принципиально пишешь только на C# и Python, то, к сожалению, в серьезных QSP-проектах участвовать не получится. На C# для QSP только парочка вспомогательных утилит написана.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru