Инди-разработка требует креативных решений. У меня нет времени и сил изобретать велосипеды и делать всё так, как принято в индустрии. Поэтому часто приходится выкручиваться :)
Вот взять например редактор объектов. Нужен ли он? В проекте сложней крестиков-ноликов – обязательно. В слепую править сотни параметров, потом грузить игру и смотреть что получилось – это не достойно настоящих джедаев. Однако при ближайшем рассмотрении его создание должно было бы затянутся на месяцы: ведь в нём будет куча диалогов, в них дофига контролов, связанных с параметрами объектов. И это всё богатство придётся держать в актуальном состоянии на всём протяжении разработки! Ведь создаётся он не под готовый движок, и новые параметры у объектов будут появляться с завидной регулярностью.

Ясно дело что такой путь не для меня, разработчика-одиночки. А теперь давайте подумаем: а что собственно требуется от движка игры? Правильно, только отображать изменения в реальном времени. А теперь внимание вопрос: “Накой фиг нам создавать тучи диалогов с параметрами если все данные в игре лежат в православном формате XML и править его очень удобно с помощью программы XMLNotepad??”. Вот тут то ко мне пришла конгениальная мысль – пусть мы будем править все данные в удобном редакторе XMLNotepad, а наша программка пусть отслеживает все изменения ресурсов для редактируемого объекта и если время изменения файла поменялась – перегрузить изменённые ресурсы. Достаточно просто сохранить файл (нажать CTRL+S), и результат изменений сразу отобразится во вьюпорте!

Причём метод позволяет добиться такой функциональности, которой не располагают даже многие коммерческие движки:
- можно в реальном времни текстурить объекты в фотошопе и сразу видеть финальный результат в движке!
- можно менять сетку (например корректировать нормали) объекта и видеть сразу результат!

Вообщем этот метод даёт огромный функционал инди-разработчику, требуя затратить минимум времени для его реализации.

Вот полноразмерное видео такого редактора (20mb в разрешении 1680x1050):
http://depositfiles.com/files/6qz6z31gf

Превьюшка на youtube:

Поделиться

Ответить на это

Ответы на эту тему форума

Из похожих соображений (динамическое обновление параметров) пошли в своей практике немного дальше сделав универсальную библиотеку сериализации с отображением в интерфейс пользователя. То есть создав класс - любые его переменные можно выгрузить не только на винт но и вывести в UI. Автоматически генерятся эдитбоксы, списки и т.п. Это очень удобно. Все правится на лету.

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


Левая часть сгенерирована автоматически на основе переменных класса.
Библиотека кстати выложена в открытый доступ. http://code.google.com/p/yasli-serialization/ (можно подключить SVN)

По поводу сканирования файлы на изменения - это сомнительно. Помоему можно просто сделать обновления виювера по кнопке - это еще проще. Но идея интересная.

Ответить на это

Впринципе главная идея моего метода - использовать огромный функционал интерфейсов сторонних программ для работы своей программы :)
Поэтому за короткое время можно добится большой функциональности программы.

Библиотеку вашу для сериализации посмотрю. Довольно интересно...

Ответить на это

Класс. Меня посещала подобная идея с автогенерацией интерфейса.
Но что-то никак не брался хоть попробовать реализовать.
Спасибо, очень интересно будет взглянуть на код и результат.

Ответить на это

посмотри на отообажение свойств PropertyGrid в VS это и есть генереный интерфейс редактирования, мало того его можно поиспользовать, этот проперти грид умеет недактировать .NET property любого объекта. Для того чтобы натравить его на пользовательский С++ класс можно генерить при помощи рефлекшена "псевдоним класса" потом с помощью рефлекшена же создавать объект этого "псевдонима" и синхронизировать свойства.

Ответить на это

мысль правильная, я так много где делал

Ответить на это

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

Ответить на это

Ну если так принято назови к каких движках есть такой же редактор объектов который для редактирования свойств объекта использует интерфейс чужих программ :)

Ответить на это

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

Ответить на это

Ну чтож, если кто то ещё такое практикует я только за. Я не претендую на уникальность идеи, просто делюсь своим опытом с другими участниками ресурса.

Ответить на это

RSS

О

Bersi Bersi Создал(а) это сообщество по интересам в Ning.

Создайте свое сообщество по интересам!

© 2009   Создатель в Ning: Bersi.   Создать свое сообщество по интересам

Эмблемы  |  Сообщить о проблеме  |  Конфиденциальность  |  Условия использования