forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на BlitzMax (http://forum.boolean.name/forumdisplay.php?f=106)
-   -   Vivo (http://forum.boolean.name/showthread.php?t=16218)

Nikich 31.01.2012 17:50

Ответ: Vivo
 
Colossus, попробуй в cnfg.txt поменьше поставить 3 последних значения. И игра не виснет, а генерирует камни и деревья.
А на счет камней, это из-за того что они появляются только рядом с игроком.
Исходник выложу сегодня или завтра.

Nex 31.01.2012 18:10

Ответ: Vivo
 
Цитата:

Сообщение от Nikich (Сообщение 218247)
И можете сказать подробнее, как оптимизировать загрузку картинок? Я думал может сделать так, чтобы картинки загружались когда игрок подходит близко к объекту.

Если карта больше чем экран, то делай все тайлы карты в одном изображении, загружай через LoadAnimImage () при старте программы (загружать надо только один раз(!)) потом рисуй DrawImage image,x,y,map (x+offset_x,y+offset_y)
image - переменная (хендл) картинки которая загружена через LoadAnimImage.
x,y - координаты. тут все так же надо умножать на размер картинки
map (x+offset_x,y+offset_y) - это массив карты в котором содержатся id клеток.
Дальше надо будет завести 2 переменных, которые отвечают за смещение по X и Y (допустим offset_x и offset_y) и в зависимости от нажатия кнопок увеличивай/уменьшай эти переменные.
В итоге допустим если в массиве map (1,1) =1 (допустим камень), то рисуется 1 кадр загруженного изображения (надо чтобы в первом кадре тоже был тайл камня) и получается что на экране рисуются только те клетки, которые на экране из за чего плюс к fps. Мисус в том, что тайлы будут не много резко двигаться в стороны при движении игрока.

Program23 31.01.2012 20:01

Ответ: Vivo
 
Для начала не помешало бы изменить вот что:
Цитата:

Global R6=ReadLine(file)
Добавить шестой параметр в конфиг.

Цитата:

Graphics R1,R2,32,R6
И этот параметр означает - режим экрана.

П.С. Конечно это очень отменный :shit:-код

reumep 31.01.2012 20:21

Ответ: Vivo
 
блин, код неотформатирован

Nikich 31.01.2012 21:08

Ответ: Vivo
 
Пфф, я вообще удивлён что в нём что-то понять можно. Половина Global вообще не используется, и ещё 25% вычисляются, но тоже бесполезны:) На момент написания большей части кода меня вообще не волновала оптимизация, а когда начала волновать, уже не хотелось что-то переделывать. Скорее всего там и остатки от 3D игры остались:)
UPD:
Кто-нибудь знает почему дебаггер ест 30 фпс?

Nikich 02.02.2012 23:01

Ответ: Vivo
 
Так кто-нибудь поможет с оптимизацией?

reumep 03.02.2012 16:55

Ответ: Vivo
 
я ленивая хурма, я даже не могу свой проект дописать, а твой оптимизировать - тем более.
Просто я открываю сырцы, внимательно смотрю код, запускаю, через минуту типа такой "да ну нафиг" и иду играть в скайрим

Nikich 03.02.2012 18:27

Ответ: Vivo
 
:-D
Я думал я один такой.

Nikich 03.02.2012 19:04

Ответ: Vivo
 
Гм. Не могу изменить первый пост (видимо стоит ограничение на изменение сообщений по дате) так что залью сюда. Во-первых, фпс просто обязано повысится. Во-вторых, новая система генерации мира. Два последних значения в "cnfg.txt" указывают кол-во камней на экране, а не на всей карте. Ну, сами увидите.
И вопрос возник: Dim lol(9000000,9000000) выдаст ошибку при создании. Мол, уж слишком большой массив. Кто-нибудь знает, чему равно максимально допустимое значения для количества элементов массива?

RBK 03.02.2012 19:49

Ответ: Vivo
 
Целое число занимает в памяти 4 байта места, массив размером 10x10 займет 10*10*4=400 байт. Аналогично можешь посчитать для другого массива.

Nikich 03.02.2012 20:24

Ответ: Vivo
 
Спасибо, но каков лимит?
И ещё, требуется экран который показывается при смерти ГГ. Надпись "You died!", оформление любое.

Igor 03.02.2012 21:26

Ответ: Vivo
 
Цитата:

Спасибо, но каков лимит?
оперативная память юзера.
Если одна ячейка занимает 4 байта, то массив 30000*30000 уже займёт около (а может и больше) 4 гигабайт оперативки

Nikich 04.02.2012 00:05

Ответ: Vivo
 
С великой гордостью сообщая Вам о выходе новой версии - 0.0.7 alpha. Это просто нечто.
-Голод.
-Деревянный пол.
-Система крафта.
-Фиксы багов с сохранениями и загрузками.
-Интерес=8990

Randomize 04.02.2012 00:37

Ответ: Vivo
 
В целом
1) В папке беспорядок. Неплохо было бы разложить ресурсы по папочкам. Тебе самому будет потом проще разгребать ресурсы.
2) BMP. Без спорно хороший формат, но может стоит для маленьких изображений использовать png, а для больших(свыше 256x256) jpg? Это уменьшит в целом вес проекта.
3) Файлы сохранений текстовые - это не совсем оправдано. Может использовать WriteInt WriteFloat вместо WriteLine? Это увеличит скорость чтения файла и уменьшит его вес.
4) Где оконный режим?
5) Где ReadMe.txt описывающй управление? (может есть кнопки о которых мне не известно?)


Геймплей
1) При переходе с экрана на экран есть большая вероятность оказаться в камне
2) При движении наискосок двойная скорость перемещения
3) При выходе в меню не возобновить игру никак кроем Load
4) При любом клике герой начинает "бить". Может стоит делать анимацию удара как минимум только в том случае если мы кликнули рядом с героем?
5) Глав герой афроамериканец? :)

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

И напутствие: Не спеши с сетью. Сделай сингл проходимым и насыщенным сначала.

Nikich 04.02.2012 01:15

Ответ: Vivo
 
Большое спасибо за советы. Пожалуй сейчас и займусь исправлением этих недочетов.
На счет WriteInt да, согласен, но пока менять не стану, так как WriteLine удобнее отслеживать.
И герой не афроамериканец, это коричневые волосы:)
И для тех кто хочет помочь: нужно животное. Какое, выбирайте сами( конечно кроме всяких полярных медведей, пингвинов и тд.(герой как ни как на острове тропическом:) )). Можно и без анимации. Размеры произвольные, но желательны в какой-нибудь степени двойки(256х64, 128х32 и тд). Самым подходящим является краб.
И ещё. Сколько может переносить один человек килограммов груза? 25 кг? Речь идёт не о спортсмене.


Часовой пояс GMT +4, время: 10:42.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot