игрушко, мысли

Aug 08, 2016 13:30

( сам топик игрушки https://vk.com/topic-97344238_34362285 )

вот не хочу тайловую карту делать

не то что не умею. криво это, имхо.

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

можно.

а чтобы уместить описание каждого объекта в 4 байта?

тоже можно, смотрим как.

у нас скрин 800*600, пусть будет 600*600, 200 отрежем для боковой панели упр-я

сколько "экранов" будет достаточно для игрового мира?

допустим, 50*50, это будет игровой мир площадью 2500 экранов 600*600

думаю, хватит.

смотрим как можно все это уместить.

под координаты объектов по X и Y можно отвести 15 бит, т.е. макс абсолютные координаты по X и по Y будут 32767, это даже 54 экрана по 600 пискелей влезет

свободные биты (их получается 2, с каждого 16-разрядного "слова" по биту, а всего у нас 2 "слова", 2*16 = 32 бита = 4 байта) - это же дофига данных можно уместить, целых 2^2=4 состояния, 00, 01, 11, 10 и в это можно втиснуть тип объекта

а объекты какие?

- здание

- юнит

- скопление металла (разрушенный юнит)

- что-то непроходимое, напр. скопление воды (нагромождение камней)*

* скопления металла так же непроходимы

теперь как рендерить уровень на экране или как обсчитывать механику уровня

огромная 54*54 экрана карта не что иное как (условно) космическое разреженное пространство, в которое можно уместить 16к объектов (чтобы в 64кб влезть, 16384 объекта *4 байта на объект=64к, условные 64к, понимаю, что можно и 64Мб, но нафига?)

вот возьмем например скопления металла

по началу, случайно раскидывам случайные по плотности скопления металла по карте

X и Y - случайны, тип объекта = скопление металла

что дальше?

создаем отдельный массив на скопления, в который кидаем X,Y,N, где N - плотность скопления (1 байт)

или же проще - номер объекта "скопление металла" в глобальной карте, по порядку его там нахождения

при этом конечно придется все время прочесывать эти 64к на перечисление объектов

.............

, отдельный байт под Z (высоту), и 1 байт на объекты, не?

продолжение следует

игродел, мысли

Previous post Next post
Up