Kamrad.ru
 
 
дневники | кабинет | регистрация | календарь | участники | faq | правила | поиск | фотоальбом | каська | выйти
Kamrad.ru Kamrad.ru » Форумы общей тематики » Игры » Klad
новая тема  ответить следующая тема | предыдущая тема
Автор
  << < 1 2 > >>
Mips - offline Mips
12-12-2017 01:31 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Модератор
Злыдень немрущий



Ну тут как бы да, реляционная модель тебе не подходит... главное не хранить хмлки в файловой системе, стопицот объектов из файлов грузить... брр. Лучша уж в sql запихать


__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает

CEMb - offline CEMb
12-12-2017 05:43 URL сообщения        Профиль    Поиск    Контакт-лист   Редактировать
в поле воин...



стопицот объектов из файлов грузить... брр.
да там 1-2 файла будет.
Ну максимум 10.
Я так уже делал, где-то, вроде всё ок было

Лучша уж в sql запихать
Это ж тащить БД за собой? О_о

Mips - offline Mips
12-12-2017 11:13 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Модератор
Злыдень немрущий



все объекты в одной хмл? хмм... ну как вариант. Если уж и сломался/неподгрузился какой нить один объект, то рухнул весь тип. Так сказать не прогрузился чанк...

Идёт загрузка зимы. Пожалуйста, ждите...


__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает

CEMb - offline CEMb
12-12-2017 13:06 URL сообщения        Профиль    Поиск    Контакт-лист   Редактировать
в поле воин...



все объекты в одной хмл? хмм... ну как вариант. Если уж и сломался/неподгрузился какой нить один объект, то рухнул весь тип. Так сказать не прогрузился чанк...

Ненене, это только описалово в xml-ке. Сами чанки отдельно и в бинарниках, ибо в xml-ках сильно дорого, я думаю. Ну и объект будет идентифицироваться по id ("32 бита должно хватить надолго"). В карте хранятся id-ы c позициями (м.б. с состояниями), при загрузке карты игра смотрит на id и берёт его из списка объектов (описание) по нему создаёт и размещает объект в самой игре. Как-то так.
Хотяяя... для compatibility карту можно сохранять и в xml-ку... Но тут у меня была идея про он-лайн: держать карты в он-лайне... там идея ещё дальше попёрла, но я её пока попридержу, тогда гонять xml-ку туда-сюда уже накладно, хоть и один раз. Хрен знает, кстати, как майнкрафт это делает... я у себя играл локально, и то, отрисовка объектов при прохождении в новую область сильно заметна... что же происходит в он-лайне?
Ну и да, он-лайн тут подразумевается без мультиплеера
Сёдня вечером должно быть посвободнее, но картинки ждать всё равно ещё рано подготовка базы всегда занимает много времени

Mips - offline Mips
13-12-2017 08:39 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Модератор
Злыдень немрущий



32 бита должно хватить надолго
а нужен ли такой размах? по идее и двух байт хватит. Неужели ты сможешь вручную описать все 65к объектов? Ну ладно, допустим они клонируются и создаются автоматом, но трёх то байт точно хватит. В наше время, конечно, +/- мегабайт погоды не делает, но всё же нужно быть поскромнее в запросах.

тогда гонять xml-ку туда-сюда уже накладно, хоть и один раз
при старте лезешь на свой сайт, проверяешь обновление. Если есть дополнительные уровни или изменения в существующих, предлагаешь скачать. Уровни, например, можно по их версии проверять или по CRC, если они в одном файле. Есть такая штука как md5. Как оказалось удобное средство для сжатия ссылок. URL имеет ограничение в 4кб и, например, длиииинную строку на несколько килобайт с перечислением номеров версий можно сжать до 647db01d74f4783806829e1acd8e9cca, а при получении просто сравнить имеющиеся версии. Можно конечно не заморачиваться с get, а передать через post ничего не шифруя, но мы не ищем лёгких путей.

как майнкрафт это делает
там мир разделён на чанки по 16*16*256 блоков. А ещё там есть зерно карты, вот чего тебе не хватает для генерации уровней. Если ты разберёшься как они генерируют карту в зависимости от зерна, у тебя не будет проблем с уровнями. Их вообще можно будет генерировать в зависимости от ника игрока. И тогда у каждого игрока будет свой мир и никакие прохождения в ютубе ему не помогут, т.к. только зерно решает какой блок будет сгенерирован на карте.


__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает

CEMb - offline CEMb
13-12-2017 10:53 URL сообщения        Профиль    Поиск    Контакт-лист   Редактировать
в поле воин...



а нужен ли такой размах? по идее и двух байт хватит.
Да, я вчера тоже так подумал:
type - byte
subtype - byte
должно хватить

Неужели ты сможешь вручную описать все 65к объектов?
65к - это для двух байт
я изначально думал про 1 байт vs 4 байта
потом вспомнил, что я раньше бил объекты по типам и подтипам (в крайнем случае у меня был ещё один подтип), так и места меньше, и обработка удобнее.

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

URL имеет ограничение в 4кб
Ну если что-то слать на сервер, и при том большое - надо уже сервер поднимать и на него софт делать, который будет принимать данные и раскладывать. Но пока это не планирую. Ну в ближайшие пару недель точно

там мир разделён на чанки по 16*16*256 блоков.
да, и вот эти чанки надо очень быстро подгружать на клиента. Раньше у них один блок был 1 байт, сейчас вроде сделали 2 байта, так как биты в байте у них все кончились
итого один чанк - 64(128 now) килобайт... ну вроде и не так много... фиг знает.

А ещё там есть зерно карты, вот чего тебе не хватает для генерации уровней.
Не, с зерном тоже всё понятно, но тут есть разница большая между минекрафтом и кладом: минекрафт-таки это рандом на 99%, а клад должен быть рандомом на 10-15%, всё остальное должно быть какими-то вполне "разумными" лабиринтами, для прохождения которых нужен мозг В минекрафте же в любую точку можно попасть с помощью кирки и блоков.
Ну и у меня сейчас в голове новая идея для генерации, но пока сам проект пустой, я её не озвучиваю. Потому что мне она нравится, а вероятность её реализации низкая. А подписаться и потом не сделать - крайне обидно
Поэтому я пока подписался только под тем, что могу. Ну, типа.
PS: у меня внезапно вчера кончилась работа, которую надо делать руками, сейчас всё перешло в очередную стадию проектирования, я там могу не участвовать (за это меня могут окончательно выгнать) поэтому времени сейчас должно стать больше Ну, вроде. Сейчас ещё приходится читать документацию по технологиям для следующей стадии.

Mips - offline Mips
13-12-2017 20:43 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Модератор
Злыдень немрущий



type - byte
subtype - byte

16 типов с 16 подтипами? ну ты прям минималист. Используй хотя бы пару байт. Не byte, а char например.

65к - это для двух байт
четырёх

сервер поднимать и на него софт делать, который будет принимать данные и раскладывать
щас это вообще без проблем делается. Даже можно бесплатный домен второго уровня замутить, правда в какой нить зоне .ga например. Нужен только комп с инетом 24/7 и всё. Желательно белый IP, но даже если у тебя IP динамический то можно через динднс прикрутить. Правда каждый месяц прийдётся перерегивать домен, но это делов на пять минут. Что касается софта, можно просто поставить xampp, там уже всё есть. В конце концов можно тупо фтп поднять и выкладывать туда обновления, там вообще знаний никаких не нужно, просто складывай архивы в нужную папку и страничка сама сфоримирует нужные ссылки для скачивания.

минекрафт-таки это рандом на 99%
вообще 0% рандома. Я ведь не зря тебе про зерно сказал. Создаёшь мир, запоминаешь зерно, идёшь на другой комп, в другом городе/стране, создаёшь новый мир с этим зерно и бац, у тебя создаётся абсолютно такой же мир! Даже в сундуках в шахте за 100 тыщ блоков от места твоего появления будут точно такие же ресурсы лежать. Хотя, казалось бы, содержимое сундуков должно генерироваться рандомно - ан нет, есть какой то хитрый xor у них по ходу для генерации. Ща попробую поискать инфу как генерится мир по зерну

меня могут окончательно выгнать) поэтому времени сейчас должно стать больше
думаешь у безработных много свободного времени?


__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает

CEMb - offline CEMb
14-12-2017 06:41 URL сообщения        Профиль    Поиск    Контакт-лист   Редактировать
в поле воин...



16 типов с 16 подтипами?
В байте 8 бит, это 256 типов с 256 подтипами, я вчера ещё завёл subtype2, бывают случаи, когда он нужен.
Вчера ещё посмотрел на описалово и решил сделать type и subtype строками, чтобы было удобнее с этим работать. В коде сделал бинды этих строк в числа. Потом добавил бинды чисел в шаблоны объектов, чтобы при вычитке карты по коду сразу находить шаблон для создания.
Мне уже нужен редактор карт, до генерации, да и вообще он нужен для всяких тестов.

Даже можно бесплатный домен второго уровня замутить, правда в какой нить зоне .ga например.
да у меня уже куплен домен, и веб-сервер есть, и ftp, там всё есть. Там вроде даже можно такой же форум поднять из коробки
Надо только посмотреть, можно ли сделать ещё одного ftp-юзера для игры, который сможет ходить только по определённым папкам, ибо корневого использовать нехорошо.

вообще 0% рандома.
Не, я про саму генерацию. К примеру, в майнкрафте ты поменял алгоритм генерации, у тебя гора сгенерилась чуть в сторону или чуть выше - пофиг, особо ни на что не влияет. В кладе же, один лишний/недостающий блок может поломать всё прохождение. Поэтому в кладе генерация должна учитывать топологию (граф топологии, по которому будет строиться лабиринт) и рандомить уже в её рамках.

думаешь у безработных много свободного времени?
А да! я был несколько раз без работы вообще, последний раз мне за короткий период удалось сделать раз в пять больше в своём проекте, чем за весь предыдущий год! но деньги и нужды никто не отменял, всё равно потом пришлось идти работать

Mips - offline Mips
15-12-2017 00:29 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Модератор
Злыдень немрущий



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

гора сгенерилась чуть в сторону
не там вообще другой принцип. Ты меняешь одну буковку и у тя координально всё меняется. Где была гора, может стать океан например. Я бы понял если бы это был рандом, но введя такое же зерно при создании нового мира в этом месте будет тоже самое. Как?!? Ответа я там и не нашёл, всем пофиг на такую генерацию или я не так искал.

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

Мне уже нужен редактор карт
только для визуального отображения или с сохранением, запуском прохождения? ТЗ в студию. Ну или скрины хотя бы или описание чтоль.
Я конечно могу какую нить балалайку те состряпать типа шахмат на канвасе. Ну т.е. фон клеточный, ты выбираешь тип и им рисуешь. Хотя, зачем изобретать велосипед, если полно всяких пиксельарт редакторов. Или ты хочешь что-то в стиле TEdit для террарии?


__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает

Mips - offline Mips
15-12-2017 01:21 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Модератор
Злыдень немрущий



велосипед


__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает

CEMb - offline CEMb
15-12-2017 06:31 URL сообщения        Профиль    Поиск    Контакт-лист   Редактировать
в поле воин...



не там вообще другой принцип. Ты меняешь одну буковку и у тя координально всё меняется.
Не, я про сам генератор, у него есть свои какие-то внутренние правила, по которым он расставляет всё по карте. К примеру, если подправить сам генератор, чтобы он делал горы шире - ничего топологически в майнкрафте не поменяется.

Я бы понял если бы это был рандом, но введя такое же зерно при создании нового мира в этом месте будет тоже самое. Как?!?
Там псевдорандом. Зерно, текстовое, это заготовка для хеша. Хеш - зерно для рандома, рандом в зайце при генерации для одинакового зерна, рандом всегда начинается с одного и того же числа. Потом поверх этого навешивается какая-нить магия Перлина, и получается ландшафт я такую штуку делал, тока в числах. Типа, карту высот.

только для визуального отображения или с сохранением, запуском прохождения?
я пока сваял карту в текстовом редакторе, чтобы просто было что рисовать в окне игры. Но текстовый редактор неудобен:
1. на одну сущность может быть переменное число свойств, у меня пока type и subtype, иначе сложность работы в "редакторе" растёт
1.1. пустоты забиваются нулями
2. приходится использовать цифры, и подсматривать в список биндов.

да, в редакторе можно будет сделать проверку проходимости и сохранять карты.
Ещё немного про рандом и свойства. Будут, например, сундуки, связанные одним неким treasure_type и treasure_id: к примеру три сундука с одинаковыми таким параметрами будут означать, что только в одном из них рандомно будет лежать treasure_type, что добавит вариативности прохождения одной и той же карты, например. Это всё пока на уровне идеи.

ТЗ в студию. Ну или скрины хотя бы или описание чтоль.
Да не, это конь в вакууме пока, будет эволюционно делаться по мере надобности что-то добавляться и убавляться.

велосипед
О, это что? Генератор для настольных RPG?

Devlog: сделал загрузку карты из файла и создание объектов по шаблонам. Это всё потом поменяется, просто чтобы было от чего отталкиваться. Карта - пока один уровень.

Mips - offline Mips
15-12-2017 10:20 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Модератор
Злыдень немрущий



treasure_id
id же штука уникальная должна быть. Может treasure_subtype?

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

сделал загрузку карты из файла и создание объектов по шаблонам
скрины давай


__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает

CEMb - offline CEMb
15-12-2017 11:34 URL сообщения        Профиль    Поиск    Контакт-лист   Редактировать
в поле воин...



id же штука уникальная должна быть. Может treasure_subtype?
это не совсем id, это id для "таблицы" сокровищ, он уникальный для конкретного сокровища, но нужен рандом, поэтому этот id (может быть даже в виде treasure_subtype) будет висеть на нескольких коробках. Кроме рандома про то, что будет в составе сокровища, будет присутствовать рандом, в какой из коробок оно лежит. Но так как нельзя рандомно положить его в любую коробку - нужно указать, в какой коробке может быть такое сокровище, за это treasure_id и отвечает.

ну по крайней мере как вариант для создания данжей его ведь можно использовать.
А у них там алгоритм где-то выложен? Или просто API какое-то наружу торчит, судя по строке снизу, что скоко-то тыщ раз сгенерено за последний день

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

CEMb - offline CEMb
15-12-2017 22:20 URL сообщения        Профиль    Поиск    Контакт-лист   Редактировать
в поле воин...



сыкреншот, таки!

Текущее время: 06:08 << < 1 2 > >>
новая тема  ответить следующая тема | предыдущая тема
 
Перейти:

версия для печати   отправить эту страницу по e-mail   подписаться на эту тему

 
Powered by: vBulletin Version 2.0.1
Copyright ©2000, 2001, Jelsoft Enterprises Limited.
Любое использование материалов сайта
возможно только с разрешения его администрации.


 

Рейтинг@Mail.ru
Рейтинг@Mail.ru