То, что распределение повреждений по частям тела - абсолютное зло. Дисбаланс образуется жуткий.А что не так с ИВАНом? Можно чуть поподробнее, что именно не понравилось?
Разработка
Модератор: ADB
Ну в ПЗ тоже распределение ударов по частям тела - и ничего, дисбаланса не замечается. Просто кто-то смог нормально константы подогнать, а кто-то не смог. И не факт, что автор это сможет, так что писать рогалик сначала надо с расчётом на дальнейшее усложнение, а не усложнять изначально с расчётом на дальнейшее дописывание (как это я ща делаюMaelstrom писал(а):То, что распределение повреждений по частям тела - абсолютное зло. Дисбаланс образуется жуткий.

Но это всё моё скромное мнение).
З.Ы. учёт попаданий по частям тела порождает ещё одно еретическое желание - разделение хп по частям тела, создание разделённого здоровья с учётом связей и прочих демонических вещей, способных увести момент издания игры на бесконечность).
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
Повторюсь, конечно, но ребята сделавшие Call of Cthulhu умудрились реализовать повреждения по частям теля в шутере(!) и не убить при этом баланс. Так что, дело в реализации, а не в идее.Maelstrom писал(а):То, что распределение повреждений по частям тела - абсолютное зло. Дисбаланс образуется жуткий.А что не так с ИВАНом? Можно чуть поподробнее, что именно не понравилось?
Dump the screen? [y/n]
-
- Мастер
- Сообщения: 371
- Зарегистрирован: 27 ноя 2006, 00:55
- Откуда: Санкт-Петербург
- Контактная информация:
Эх. Все никак не могу разобраться с графическим движком игры.
Скорее всего я неправильно использую какие-то инструкции OpenGL.
Как только включаю режим постоянной перерисовки, как и должно быть по идее, начинаются жуткие тормоза. Если убираю миникарту и анимацию - бегать начинает быстрее.
В чем же дело....

Скорее всего я неправильно использую какие-то инструкции OpenGL.
Как только включаю режим постоянной перерисовки, как и должно быть по идее, начинаются жуткие тормоза. Если убираю миникарту и анимацию - бегать начинает быстрее.

В чем же дело....

Cracked by Bill Gilbert =)
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
У тебя при отрисовке тайлов есть проверка выхода за пределы массива?ADB писал(а):Эх. Все никак не могу разобраться с графическим движком игры.![]()
Скорее всего я неправильно использую какие-то инструкции OpenGL.
Как только включаю режим постоянной перерисовки, как и должно быть по идее, начинаются жуткие тормоза. Если убираю миникарту и анимацию - бегать начинает быстрее.
В чем же дело....
Dump the screen? [y/n]
-
- Мастер
- Сообщения: 371
- Зарегистрирован: 27 ноя 2006, 00:55
- Откуда: Санкт-Петербург
- Контактная информация:
Но самое большое уродство моего проекта - это использование статических массивов данных и постоянное открытие/заккрытие файловых потоков (иногда несколько раз в секунду!), чтобы читать данные о предметах из временной БД на диске и не только.
Статические данные ограничены и используются не экономно - отсюда великие размеры файловых данных, состоящие большей частью на данный момент из пустых ячеек.
Думаю, все переделать.

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

Cracked by Bill Gilbert =)
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
Попробуй снятьADB писал(а):Есть все проверки. Например, рисуется только тот квадрат, который находится в области видимости.

Я наконец-то смог собрать из подручных материалов псевдо-ASCII на основе тайлов с возможностью изменения «освещения» тайла в трю-палитре. И, соответственно, сварганил класс с кучей перекрытых функций, которые и должны были выводить тайлы в нужное место тайловой сетки. И там было тупо прописано условие:
if (x<0) or (y<0) or (x>width) or (y>width) then SomethingWentWrong()
else РисуемТайл;
После чего запускаю всю эту радость на компиляцию и офигеваю от 4-5 fps.
Снимаю проверку.
Летает.
Dump the screen? [y/n]
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
А что, сработало? Кстати, использование статических массивов не обязательно зло. Лично я в старой версии от 5 до 10 fps терял на работе с памятью. Помнится, очень ускорила заменаADB писал(а):Что за?![]()
Не может быть!
Может там еще какие-нибудь подводные камни есть?
SetLength(VisMatr,0,0) на Finalize(VisMatr). Эта сволочь (VisMatr) была динамическим массивом и использовалась для всех лосей (читай, для каждого источника света + обзор игрока), на каждом кадре. Выигрыш получился чуть ли не вдвое. Но це Делфа. У тебя могут быть другие приколы.
А выход лучше ловить по эксепшинам, хотя я ещё не пробовал, оставил как есть.
Dump the screen? [y/n]
- Alchemist
- Мастер
- Сообщения: 203
- Зарегистрирован: 13 дек 2006, 09:15
- Откуда: Нижний Тагил, Иваново
- Контактная информация:
Могу ошибиться, но большой вопрос - у тебя в вышеприведенном коде случаем width и height - не свойства с методами Get? Может быть что-то тратит производительность именно там?Максим Кич писал(а): Попробуй снятьУ меня сейчас в процессе перехода на новый движок случилась любопытная ситуация.
Я наконец-то смог собрать из подручных материалов псевдо-ASCII на основе тайлов с возможностью изменения «освещения» тайла в трю-палитре. И, соответственно, сварганил класс с кучей перекрытых функций, которые и должны были выводить тайлы в нужное место тайловой сетки. И там было тупо прописано условие:
if (x<0) or (y<0) or (x>width) or (y>width) then SomethingWentWrong()
else РисуемТайл;
После чего запускаю всю эту радость на компиляцию и офигеваю от 4-5 fps.
Снимаю проверку.
Летает.
Друг мой, используй вместо нативных дельфевых динамических массивов, простое выделение памяти под указатель на массив, классика динамических массивов:Максим Кич писал(а): А что, сработало? Кстати, использование статических массивов не обязательно зло. Лично я в старой версии от 5 до 10 fps терял на работе с памятью. Помнится, очень ускорила замена
SetLength(VisMatr,0,0) на Finalize(VisMatr). Эта сволочь (VisMatr) была динамическим массивом и использовалась для всех лосей (читай, для каждого источника света + обзор игрока), на каждом кадре. Выигрыш получился чуть ли не вдвое. Но це Делфа. У тебя могут быть другие приколы.
Код: Выделить всё
type
TVector = array [0..0] of Integer;
PVector = ^TVector;
var
v: PVector;
GetMem(v, len * SizeOf(Integer));
v[10] := 5;
FreeMem(v);

Может, лучше так:v[10] := 5;
Код: Выделить всё
v^[10] := 5;
Первая заповедь фотолюбителя: Проявил себя - закрепи!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость