Разработка

Проект закрыт 22.01.2008 по желанию автора.
Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Сообщение Максим Кич » 08 авг 2007, 07:58

Alchemist писал(а): Могу ошибиться, но большой вопрос - у тебя в вышеприведенном коде случаем width и height - не свойства с методами Get? Может быть что-то тратит производительность именно там?
Свойства, но я обращался к ним напрямую т.к. изнутри класса. По идее, там терять нечего.
Alchemist писал(а): Друг мой, используй вместо нативных дельфевых динамических массивов, простое выделение памяти под указатель на массив, классика динамических массивов:

Ибо, нативные динамические массивы - немеряное зло. Если ты покопаешься в исходниках rtl, то обнаружишь причину тормозов ;)
Лично у меня, после описанных операций, двигун выдавал пару десятков лосей на фрейм с 50 fps. За 50 он перевалить не мог просто в силу особенностей движка. На открытых участках со сложной геометрией фреймрейт мог упасть до 49-48, но для рогалика такая потеря не критична.

Но за классику — спасибо. Я сейчас собираюсь вообще отвязать программу от Delphi и пользоваться ей исключительно в качестве достаточно удобного IDE. По крайней мере, в новом варианте я уже не пользуюсь формами и прочими погремушками, что размеру exe пошло, мягко говоря, на пользу.
Dump the screen? [y/n]

ADB

Сообщение ADB » 08 авг 2007, 08:26

Я хочу перевести статические массивы на std::vector. Последние экспериметны показали, что это достаточно быстрая и эффективная штуковина. В принципе, так про нее и пишут.
А что, сработало?
К сожалению, это сомнительно. У меня карта 100x100. Представляешь, если ему в каждую отрисовку экрана задавать отработку каждой клетки на вырисовку тайлов и эффектов.
Если экран у меня 19x15 клеток, то обработать надо 285 клеток, а если взять целую карту - 10000 клеток! Есть разница? :wink:
В обработке каждой клетки участвуют вычисления с плавающей запятой. :?

Аватара пользователя
Alchemist
Мастер
Сообщения: 203
Зарегистрирован: 13 дек 2006, 09:15
Откуда: Нижний Тагил, Иваново
Контактная информация:

Сообщение Alchemist » 08 авг 2007, 08:31

Dmiry писал(а):
v[10] := 5;
Может, лучше так:

Код: Выделить всё

v^[10] := 5;
А без разницы в нынешних дельфях, да и фрипас нормально воспринимает. Это-же не старинный паскаль, где раименование надо было в явную делать. Что, кстати, в си не нравится - компилер по-идее всю нужную инфу имеет при компиляции, а для разименования различных типов указателей аж три разных оператора юзается... зачем? ну это так.. к слову...
Максим Кич писал(а): Свойства, но я обращался к ним напрямую т.к. изнутри класса. По идее, там терять нечего.
А какая разница - извне или снаружи, если есть методы Get/Set? Никакой - дельфя все-равно в месте использования ставит вызов метода, разница появляется если свойство напрямую из поля читает или пишет, и то небольшая - в две-три инструкции проца. Т.е. если к свойству обращаются родные объекту методы, то там просто идет извлечение данных по смещению поля от указателя на Self, а извне - перед этим еще и разименование указателя идет. Я имел в виду, что если есть метод GetWidth, то может быть в нем ширина, скажем, с какими-нибудь наворотами возвращается...
Максим Кич писал(а):Но за классику — спасибо. Я сейчас собираюсь вообще отвязать программу от Delphi и пользоваться ей исключительно в качестве достаточно удобного IDE. По крайней мере, в новом варианте я уже не пользуюсь формами и прочими погремушками, что размеру exe пошло, мягко говоря, на пользу.
Я тоже этим путем шел. Рагнарок сначала делался на формах, а потом, уже где-то через месяц был отвязан от форм и еще через полгода вообще от Canvas и родного Graphics... А IDE... да - Лазарь пока что мне в этом качестве как-то не катит... ;( да и отладка в FP как-то неудобна... привычка, однако ;(

P.S. ADB, прошу прощения за эту дискуссию в твоей теме.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Сообщение Максим Кич » 08 авг 2007, 11:54

К сожалению, это сомнительно. У меня карта 100x100. Представляешь, если ему в каждую отрисовку экрана задавать отработку каждой клетки на вырисовку тайлов и эффектов.
Если экран у меня 19x15 клеток, то обработать надо 285 клеток, а если взять целую карту - 10000 клеток! Есть разница? :wink:
В обработке каждой клетки участвуют вычисления с плавающей запятой. :?
Эти ограничения надо выставлять в голове цикла. У меня функция SetTile(x,y,...) проверяла, попадает ли (x,y) в тайловую сетку.
Dump the screen? [y/n]

ADB

Сообщение ADB » 09 авг 2007, 09:20

Alchemist писал(а):P.S. ADB, прошу прощения за эту дискуссию в твоей теме.
Ничего против не имею, самому было интересно почитать :wink:

Максим Кич писал(а):Эти ограничения надо выставлять в голове цикла. У меня функция SetTile(x,y,...) проверяла, попадает ли (x,y) в тайловую сетку.
Все верно, чтобы избавиться от лишних операций. Я использую ограничения в циклах и по ним рисую тайлы, уже далее ничего не проверяя.
Странно, что при этом начинает тормозить обсчет эффектов на каждой клетке. Это не правильно! У меня компьютер не слабенький, к тому же вон 3D игры намного больше производительности требуют, и ничего работают как надо. Что, значит я делаю не так.
В интернете нашел что-то про "лучше лишний раз не переключать режимы проекций в OpenGL и не запрещать/разрешать блендинг, это может пагубно сказаться на производительности"... Что-то вроде этого, но не точно (из головы вспоминал/придумывал). Может быть у меня такая же проблема, но в чем? :?

P.S.: Такой вариант билда, выпускать просто позор! :oops:

ADB

Сообщение ADB » 09 авг 2007, 09:34

Вот интересно. Запустил игру на работе. Здесь стоит весьма слабая встроенная видео карта. Что я увидел. А увидел я какие-то промелькивания тайлов при движении героя.
Это весьма странно. Я использую двойную буферизацию.
Может ли получаться так, что пока вырисовывается моя сцена в буфер (не на экран), процедура в main вызывает прорисовывание буфера еще до момента полной дорисовки, т.е. в промежутках.

Раньше меня так же удивляло, что если включить постоянную прорисовку, а не при движении, то, если немного расфокусировать зрение на экран, будет отчетливо заметен пробегающий "шум" по тайлам, особенно затемненным.
Можете сами убедиться в этом. Просто запустите Templer и нажмите 'S' пропуск хода - увидите это чудо!
Что-то не так в моем движке :(

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Сообщение Sanja » 09 авг 2007, 11:53

О! Кстати! Давненько свежачка о тебя не видел. Какие планы на следующий билд? Думаю что-то вроде: довести до ума граф. движок, наполнить пару-тройку локаций, добавить одну фичу для проверки играбельности. :?:

ADB

Сообщение ADB » 09 авг 2007, 21:40

К сожалению, новый билд пока еще не готов.
По плану для нового билда неободимы такие элементы:
1. Новый графический движок со своими спецэффектами.
2. Журнал квестов.
3. Усовершенствованный AI монстров: подбирание предметов с земли, использование разичных снадобий, учет атаки водоплавающих монстров (сейчас акула кусает с воды на берег :lol: ).
4. Расширение местности, введение нового оружия и монстрятника.
5. Введение экрана выбора персонажа, при старте игы, выбор расы, навыков и умений.
6. Система усовершенствования навков по ходу игры.
7. Введение новых эффектов.
8. Введение системы магии: заклинания.
И еще что-то забыл.
По времени исполнения, к сожалению, пока не могу привести точные даты. Постараюсь сделать все, что в моих силах.
Вот новый скриншот:
http://www.templer.rlgclub.ru/gallery/tp1.GIF

ADB

Сообщение ADB » 20 авг 2007, 13:48

1. Спецэффекты движка.
Готовы.
2. Журнал квестов.
Готов.

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

Все тут было хорошо, но остался я один со своим проектом. Приходится теперь все делать самому, хотя не привыкать :wink:
Но. Общаясь на форумах, я пытался построить свой проект таким, чтобы было интересно в него играть возможно не только мне :)
Я размышлял над лучшими элементами гемплея, подчерпывая их как из своей фантазии, так и сторонних проектов. Много раз мне помогали посетители форума и мастера, своими мыслями и идеями.

За время разработки, я создал неплохую техническую базу, здоровенный игровой каркас, который уперся фактически в задачу проработки самого мира.
Хотя и была выбрана за основу весьма обыденная тематика для подобных игр - стиль фэнтези, я пытался придумать какие-нибудь новые идеи в боевой системе, магии и отыгрыше.
Но сейчас, хорошо подумав, я понимаю, что не справлюсь со всем этим в одиночку. На такое придумывание мироздания уходит намного больше времени и сил, чем на программирование, хотя было отвергнуто уже несколько вариантов и существует множество наработок.
Возможно, я просто старею :lol:
Бросать свой проект я не хочу, уж больно он мне стал дорог за это время. Поэтому я, в конце концов, решил по другому выкрутиться из сложившейся ситуации.
Сейчас, так или иначе, грядет полное переформирование проекта, перевод на другую технологию организации данных, что можно использовать в свою пользу.
Я думаю взять за основу один из уже существующих миров и делать свой рпг’эшный рогалик по нему, тем самым симулируя процесс «проработки мира самостоятельно».
Однажды, вроде на старом форуме, такой вопрос уже поднимался, и мне посоветовали ряд авторов и книг с различными готовыми мирами.
Наконец я решил, что хочу увидеть в своей игре:
1) Уже придуманный кем-то мир 8) (симулирование, как решение своей проблемы созидания мироздания)
2) Средневековый дух происходящих событий (поскольку моя игра уже имеет множество проработанных элементов средневековья, которые я могу подогнать под новый мир)
3) Необычная система магии, т.е. имеющая сходство со стандартной, но с какой-нибудь необыденной для игр изюминкой (слишком громко сказано) :!: Хочу что-нибудь с концентрацией (обсуждалось в разделе форума «про магию»), и некоторым извратом для сотворения заклов :)
Главное, чтобы ее не нужно было продумывать с самого низкого.... ээээ.... нуля.
4) Боевую систему хочу оставить ту, которую уже разработал
5) Уклон на резкое отличие между классами, а так же возможностями героя, которого выбираем в начале. + достаточно обширный выбор между типами (ну, в пределе разумного, конечно)
Тоже относится и к другим персонажам мира.
6) Интересный мир, желательно. Там, где изначально есть какая-нибудь подоплека, как это существует в Adom или Angband. Типа, вот Бог Хаоса стал безобразничать, надо бы ему по шеям надавать. Или война между двумя расами и только мы можем разрешить эту проблему. Или... ээээ..... Ну в общем, надеюсь, понятно о чем идет речь :wink:
7) И самое главное! Наличие уже существующей мировой системы, обычаев, строения, оружия, известных заклинаний и свитков, а возможно и артефактов, которые можно будет в первом приближении подвести под существующий проект.

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

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

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Сообщение Sanja » 21 авг 2007, 00:33

Ну незнаю, gameforums.ru да forums.rpgworld.ru, больше посоветовать нечего.

Хотя нет, ты ж был под впечатлением от игр по миру TES? Это отлично проработанная вселенная, есть куча материалов по ней, чем она не устроила-то?

ADB

Сообщение ADB » 21 авг 2007, 08:01

Sanja писал(а):Ну незнаю, gameforums.ru да forums.rpgworld.ru, больше посоветовать нечего.
Спасибо за ссылки, изучу. Сегодня зашел в книжный магазин, в раздел фантастика-фэнтези, и... увидел на полках множество книг современных писателей. Проблема в том, что глаза разбегаются. :roll:
Моя задача выбрать наиболее интересный мир фэнтези, или что-то, что было бы более или менее ново, не успело наскучить людям в играх.
Sanja писал(а):Хотя нет, ты ж был под впечатлением от игр по миру TES? Это отлично проработанная вселенная, есть куча материалов по ней, чем она не устроила-то?
Да, я действительно давно впечатлен миром TES, как много ребята трудились над ним, сколько успели проработать. Но этот мир уже несколько изъезжен ими самими. Есть ощущение даже, что они сами устали от него. Недаром сейчас они работают над Fallout 3.
Поэтому я не думаю, что играющие особенно впечатлятся, если я сделаю рогалик на основе TES.
Нужно что-то новое, что небыло до косточки разобрано в различных играх.

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Сообщение Maelstrom » 21 авг 2007, 08:22

Спасибо за ссылки, изучу. Сегодня зашел в книжный магазин, в раздел фантастика-фэнтези, и... увидел на полках множество книг современных писателей. Проблема в том, что глаза разбегаются.
Рудазова почитай
Цикл про архимага (т.е. исключая только "Экипаж" и "Три мудреца в одном тазу"). Поначалу про землю будет, а потом весьма интересные миры описываются, да и про магию там много интересного есть.
Поэтому я не думаю, что играющие особенно впечатлятся, если я сделаю рогалик на основе TES.
Угу. Ибо меня от него просто тошнит. Лучше уж тогда Forgotten Realms делать, хотя тоже не стоит.

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

ADB

Сообщение ADB » 21 авг 2007, 09:14

Maelstrom писал(а):я не вижу ничего сложного в создании мира самостоятельно
Старый я стал, видимо :)
Раньше лучше получалось.

Фокус в том, чтобы выбрать какой-нибудь мир с его правилами, созданиями, персонажами, магией и... перелопатить его на свой лад.
:wink: Все равно, в конечном итоге, мир получится свой. Мне нужна лишь точка опоры.

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Сообщение Maelstrom » 21 авг 2007, 09:41

Тогда, я говорю, Рудазова почитай. Там много миров описываются со своими особенностями.
Айв кнгенгах Йог-Сотот

ADB

Сообщение ADB » 21 авг 2007, 10:39

Maelstrom писал(а):Тогда, я говорю, Рудазова почитай. Там много миров описываются со своими особенностями.
Ок, спасибо ;)

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей