Topic: Редактор игр

для 1.2 будет и вторая версия редактора.

я стараюсь максимально поднять юзабилити.
не надо будет заморачиваться с объектами типа

knife = obj{

blablabla
}

выбрал объект из списка, и пиши ему код.
созал новый объект - тебе загатовка дается, где только для nam, dsc прописать строчки, ну и функции ручками. Obj, room, и dlg я вынес в отдельные сущности таким образом.


А нововведения типа obj = inherit может в следующей версии будут поддерживаться.
Хотя есть возможность создания свободных объектов, где разработчик сам прописывает функции, типы данных и т.д. Поэтому проблемы не будет.

Мне еще неделю-две нужно для того чтобы закончить. Файлы игры уже успешно генерируются из XML. Осталось их интерактивно запускать. Возможно перехватывать вывод интерпретатора через pipe, поучиться дебажить красиво. Ну а дальше начинать писать игры для тестирования.

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

---
http://instead.syscall.ru/download/PyIge.zip
http://instead.syscall.ru/download/cat.ipf

Re: Редактор игр

Ух ты ! Надо тему открыть -- с переносом под линукс как нить разберемся. Это qt?
inherit не нужен! smile

Re: Редактор игр

Да. QT4 и Python.
В принципе, если очень прижмет, то можно и на С++ переписать.
Только я на Питоне пишу раз в 10 быстрее, поэтому выбрал его.
Для редактора используется Scientilla. Мощнейший редактор! Добрая половина Линуксовых IDE на его основе. Да и Jeanny вроде тоже. Lua прекрасно подствечивается.
Настройку шрифта я вынес в настройки, настройку подсветки было лень. Кто захочет сам исходный код поправит. Благо не нужно париться с компиляцией.
Кстати, скрины уже сейчас могу выложить, потому что интерфейс на 99% готов.
99 потому что не все иконки подобраны, и не хватает кнопок для запуска игры.

Может будут какие-нибдь пожелания или замечания...

Re: Редактор игр

Ок, давай тему тогда новую начнем smile А я наши посл сообщения туда приклею. У меня нет предвзятого отношения к питону. Пион так питон. А инстед на C smile

Re: Редактор игр

Давай.
А насчет Питона, я могу только одно сказать.
Если в голове есть план программы, то на Питоне это можно реализовать офигительно быстро!
За это язык и ценен. Да и синтаксис напоминает псевдокод. Поэтому его часто используют для прототипировани приложений, например, на С++.
Поэтому на Питоне я пишу, когда сам хочу, а на С++, когда обязан.

Сейчас скрины набросаю.

Re: Редактор игр

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

Re: Редактор игр

Ок.

Re: Редактор игр

лови тут.
ссылка будет доступна три дня.
http://disk.tom.ru/8audhk3

Re: Редактор игр

Скриншоты. По-моему это то, что все так долго ждали. smile

http://instead.pinebrush.com/forum/misc.php?item=154
http://instead.pinebrush.com/forum/misc.php?item=155
http://instead.pinebrush.com/forum/misc.php?item=156
http://instead.pinebrush.com/forum/misc.php?item=157

Post's attachments

Attachment icon 1.png 45.05 kb, 126 downloads since 2010-07-16 

Attachment icon 2.png 55.33 kb, 131 downloads since 2010-07-16 

Attachment icon 3.png 18.93 kb, 107 downloads since 2010-07-16 

Attachment icon 4.png 13.77 kb, 114 downloads since 2010-07-16 

10

Re: Редактор игр

Ох.... тменные скрины!
Реквестирую эту штуку на C++ под линукс!

Re: Редактор игр

Идея, забить на , -- между элементами просто два ввода. Тогда , сама вставится на экспорте. Не факт что хорошая идея, но...

Re: Редактор игр

Дайте виндузятнику пощупать big_smile браво, автор!

Re: Редактор игр

Интересно.

Александр Яковлев, к вашим услугам.

Re: Редактор игр

Пардон, но я уже несколько лет пингвинятник.
И писал, что сейчас гощу у родителей и не имею доступа к Линуксу..

Кстати, в программе нет никакой привязки к винде, поэтому для запуска в линуксе достаточно
будет прописать #!/usr/bin/env python3, допилить глюки и всё заработает.

Насчет ремейка на С++, то пожалуйста.
Переписывать будет неинтересно долго и бессмысленно.
Я же начинал писать эту прожку на С++, потом плюнул.

Насчет запятых и --.
Комментарии сам разработчик пишет. Пусть они идут в код, зачем от них избавляться.
А вот избавиться от запятых наверно можно. Только, что если в программе есть функции, или еще что пострашнее из Lua, где запятые не нужны, или нужна точка с запятой? Есть риск при генерации кода понаставить запятых где не надо.
В принципе, можно написать хитро-мудрый регексп, который будет отлаливать строчки с nam, dsc, use, obj итд, но как это будет на практике пока не знаю.

15 (edited by excelenter 2010-07-17 07:15:40)

Re: Редактор игр

Дык я так и понял. Половина меня не линуксоид. Поэтому и хочется посмотреть редактор под винду.
Сорри за корявый пост, выражаться не умею.

Re: Редактор игр

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

Кто-нибудь умеет по-взрослому писать регулярные выражения?

Начальные условия мне видятся такие.
На вход подается весь исходник в виде целой строки.
В конце каждой строки нужно поставить запятую всегда, кроме случаев когда:
1) строка заканчивается окрывающейся скобкой или точкой с запятой
2) строка начинается с табуляции (тогда это скорее всего часть функции, там автор заботиться о запятых)
3) строка помещена в [[ ... ]]. Самый сложный случай, потому что такая конструкция может содержать в себе и кавычки и круглые скобки, и табуляции, и растянута на много строк. Если для обработки первых двух пунктов моих знаний хватает, то это для меня непроходимый квест.

Еще было бы неплохо вставлять табуляции, чтобы выходной код не выглядел так:

house = room{
nam = 'house',
dsc = '...'
}

Но всё упирается опять в строки из квадратных скобок. Потому что текст в них тоже будет табулироваться и в итоге съедет в игре.

Без табуляций всё работает, а в lua файлы наврядли кто-то полезет. Поэтому оставляю реализацию этих фич нна будущее.

Вроде всё закончил. Приступааю к тестированию. На днях выложу виндовую версию  smile

Re: Редактор игр

Думаю, на запятые можно забить пока, так как надо детектить функции, строки и прочее...

Табулировать вроде-бы безопасно, так как лишние пробелы/табуляции все равно при выводе не учитываются.

Ждем 8)

P.S. Можно забить свои паттерны на комнаты? В 1.2.0 есть почти стандартная штука xroom (модуль).

Re: Редактор игр

есть тектосвые файлы templates - это то, что будет появляться автоматически при создании новой сцены/диалога/объекта, начальные настройки при создании проекта. Их легко будет редактировать под себя.

Я изначально закладывал, что редактор берет на себя room, dlg, и obj, а функции пользователь определяет отдельно и сам заботится о типе объекта.

Если xroom - объект редкий, то его можно определять вручную в функциях.
Если, как ты говоришь, он стандартный, то надо либо делать абрибут для сцены, по которому генератор игры будет проставлять room или xroom, либо делать еще одну вкладку (нежелательно, их и так много).

Наверно, реализую атрибут.

Re: Редактор игр

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

Re: Редактор игр

Я в том смысле, что насколько легко сделать синонимы?

Типа room и xroom попадают во вкладку комнаты.

obj,act, еще что-то -- в вкладку объекты?

Просто очень интересно насколько расширяемо получилось, не в том смысле, что эти фичи обязательно нужны.

Re: Редактор игр

Я только сейчас это всё прочитал. Это очень интересно  smile . А Пайтон рулит.

Коты рулят! И велики!

Re: Редактор игр

А много новых объектов будет?

Если только xroom и act, и они синонимичны room и obj, то при создании новой комнаты, когда выскакивает окошко, где нужно будет ввести имя и поставить галочку room или xroom. А в списке комнат, xroom'ы выделять цветом, изи жирным, или как-нибудь еще.

Если таких объектов очень много, то надо менять концепцию и отказываться от стандартных obj, dlg, и room. Отказаться от вкладок, и при создании нового универсального объекта выбирать его тип из десятка. В этом случае наверно все объекты пойдут в один список, будут там группами, допустим в виде дерева, или цветных групп. Но тогда всё будет сумбурно... Мне очень удобно, когда я зашел на вкладку, а там у меня одни диалоги.

Re: Редактор игр

Немного. Просто это все равно остается комнатой/диалогом/объектом, но с новыми свойствами.

Re: Редактор игр

тогда в текущей версии пока пусть так будет,
когда появится новый Instead, тогда добавим эти объекты.

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

Re: Редактор игр

Кто разбирается в INSTEAD и Lua. Нужна помощь.

Начал переписывать квантового кота в редакторе.
Я больших отличий в коде не нашел.
Но Instead выбрасывает ошибки, для меня ничего незначащие.
Переписаны фалы main.lua и ep1.lua.
Здесь их код (без музыки и картинок. папки gfx и mus надо добавить).
http://disk.tom.ru/d3dl7b2

При запуске сразу ошибка: stead.lua:1218: error in list: home.obj
При нажатии на любой объект на сцене в доме ошибка: stead.lua:631: Call of non table object: tak.

Причем, когда я отлаживаю из командной строки через lua5.1 ошибок не выскакивает, и всё работает как нужно sad