Среда, 06 Июля 2022, 22:02

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » JanCarlo [17]
Результаты поиска
JanCarloДата: Понедельник, 04 Июля 2022, 23:34 | Сообщение # 1 | Тема: Таблица предметов и статов игрока
был не раз
Сейчас нет на сайте
GameDev2, я не уверен что эти таблицы корректно составлены.
В целом там по предсетам две таблицы item_types и items, так же для монстров monster_types и monsters, для абилок так же.

А можете еще поделиться ссылками типа той что вы скинули если есть еще?

В целом пока что необходимо организоватб таблицы скилов/статов игрока и монстров, предметы, и самих монстров.


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Воскресенье, 03 Июля 2022, 09:56 | Сообщение # 2 | Тема: Таблица предметов и статов игрока
был не раз
Сейчас нет на сайте
Добрый день!

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

Вопрос - как эргономичнее создать таблицу юзера, с ключами, и таблицу предметов с ключамми?
Предметы могут быть как боевые (влияющие на статы перса), к примеру топор повышающий урон, или латы повышающие броню. А есть предметы не боевые, допустим кусок мяса восстанавливающий хп, или мухоморы, которые могут телепортировать игрока куда то)) Или некоторые предметы изменяющие на время характеристики другого игрока.

В кратце, что бы не перегибать со статами перса, у перса будет всего 4 стата - сила, ловкость, интеллект, мудрость.
У предметов же будет вес, дополнительные всякие свойства и тд.
Предмет может находиться на локации (выкинул кто то или скрафтил, или респавнулся), предмет может быть в мешке у пользователя, на самом пользователе, в магазине, в хранилище, в комиссионном магазине, быть передан другому игроку.

В одной браузерке для предметов сделали две таблицы, одна item_types (где есть несколько сотен строк видов предметов, все уникальные) и таблица items где уже сами предметы привязанные к юзерам, локациям или тому подобное. А таблица users содержала пачку полей со всеми характеристиками игрока.

Есть ли смысл у предметов в таблице делать поле settings куда можно положить json массив со свойствами предмета?
Поле для всех одно будет, а свойства будут отличаться.

В общем дайте пожалуйста совет как сделать таблицы под предметы и под юзеров. Возможно какие то паттерны проектирования можно заюзать. В том приватном коде всё работает и налажено, но код старый и черт ногу сломает тк все переменные сокращены до 2-3 символов и ничерта не понятно)

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


VK группа игры (Разработка 22 года): https://vk.com/browsermud

Сообщение отредактировал JanCarlo - Воскресенье, 03 Июля 2022, 10:29
JanCarloДата: Воскресенье, 24 Апреля 2022, 18:19 | Сообщение # 3 | Тема: Расположение монстров и их обновления
был не раз
Сейчас нет на сайте
TLT, Не, игра текстовая, MUD, бои пошаговые. Но суть я понял, и это вариант кстати, спасибо. Тогда получается проверка наличия моба идет непосредственно во время перемещения на саму эту локацию, тогда нет необходимости создавать задания временнЫе со слушателями. Но тут тогда возникает вопрос, а если моб будет передвигаться в радиусе нескольких локаций соседних. Если моб не передвигается, то статически привязывается к локации и проблем нет. В общем мб попробую пока мобов сделать без передвижения, а потом если что доработать.

VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Воскресенье, 24 Апреля 2022, 13:04 | Сообщение # 4 | Тема: Расположение монстров и их обновления
был не раз
Сейчас нет на сайте
Granner, Вобще локации статичные, типа города/леса, но есть зоны где локации могут перемещаться в пространстве. Но локации меняют только координаты расположения, на структуру данных это не влияет. То есть если моб будет привязан к локации, то локация уедет вместе с мобом, игроками, предметами на ней и тд

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

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


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Воскресенье, 24 Апреля 2022, 11:11 | Сообщение # 5 | Тема: Расположение монстров и их обновления
был не раз
Сейчас нет на сайте
Добрый день!

Ведется активная разработка игры браузерной, уже многое сделано. Сейчас подходит этап создания монстров с их расположением/обновлением на локациях.

Допустим что класс монстров готов, у них есть скилы, статы, уровни и тд.
В игре есть система локаций, на локациях могут находиться игроки, здания, npc, предметы и так далее.

Вопрос - как сделать респавн монстров?
Допустим в базе есть пару таблиц - типы монстров и сами монстры все имеющиеся.
Каждый моб привязан к конкретной локации. Умирая монстр удаляется из бд, но как сделать его восстановление? Проект на Ларавеле, предположу что необходимо создать задание на проверку всех локаций на наличие монстров и как по крону проверять по времени. Допустим у монстра может быть в бд поле с заданием какой нибудь дельты - сроки респавна монстра, допустим раз в 1-5-15 минут. Но с событиями я еще не работал. У лары есть модуль Events/События, можно создать задания для событий и слушателей. Но, в игре будут тысячи локаций, их уже несколько сотен, скажем 85% локаций будут иметь монстров - получается что и событий может быть сотни? Это как бы заведомо неверно.

Предположу что, если мы имеем таблицу ТИПОВ монстров, то можно добавить поле к примеру "rooms" и в нем хранить json массив локаций где может располагаться этот тип монстров, и плюс поле респавна. Тогда создаем событие на, допустим, ежеминутный перебор (не знаю какая это будет нагрузка на систему если хотя бы пару сотен игроков будет) всех типов монстров, на каких локациях они должны располагаться, далее проверка есть ли монстр на той локации, и если нет то обновление.

В общем пока сложно понять как это грамотнее сделать.

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

Как бы саму задачу выполнить не составит проблем, проблема в грамотном подходе =)

Заранее спасибо

В общем господа, есть идеи?


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Понедельник, 04 Апреля 2022, 09:56 | Сообщение # 6 | Тема: Здания на локациях - организация бд
был не раз
Сейчас нет на сайте
Господа, всем спасибо.
maker-rus, Действительно, сумбурно я всё написал. В целом вы всё поняли верно, кроме последнего пункта "один и тот же тип может иметь разную функциональность", тут не совсем так. Вот к примеру есть тип здания банк - банков может быть много и они могут иметь разные названия и описания, а механика одна и та же. Открытие счета, переводы, снятие и тд. Другой тип здания допустим завод, там вообще совсем другая механика.

Во всём остальном всё верно и я попробую сделать так как вы сказали. Я собственно изначально думал сделать примерно так, но что то отошел в сторону :D Опыта в этом смысле маловато


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Четверг, 31 Марта 2022, 21:16 | Сообщение # 7 | Тема: Здания на локациях - организация бд
был не раз
Сейчас нет на сайте
Добрый вечер!

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

Игра браузерная, текстовая, на ларке. Решаю вопрос связи зданий с локациями по бд. Большинство локаций не имеют отношения к игровой механике, только бои и монстры на локациях. Но некоторые локации ключевые.

Допустим банк на локации, госпиталь лечебный, магазин и прочее. Игрок приходит на локацию, название, описание и координаты подгружаются из таблицы rooms.

1) Сейчас есть база локаций (таблица rooms, поля x/y/z/name/description/room_type_id/zone_id).
Допустим: id475/5/5/5/Вход в пещеру/Севернее виднеется проход в пещеру/1/1

2) Есть таблица room_types (room_id / name / type) - Общая таблица типов зданий (под каждый тип зданий своя отдельная таблица)
Допустим: id1- 475 / Банк / bank
id2 - 476 / Магазин / shop

3) Есть таблица конкретно банков room_type_banks (room_id / name / description и будут добавляться еще поля отвечающие за логику банка)
Допустим: 475 / СверхВыгодный банк / Здесь вы можете сохранить свои честно награбленные деньги!

Суть в том, что структура самих локаций меняться не будет, если только дополняться.
А вот зданий будет много и логика их работы будет очень разная. Магазинов как и банков как и других зданий будет много.

Я подумал так, что перед отрисовкой локации, где я из бд дергаю данные от самой локации, я буду дополнительно идти в общую таблицу зданий, и выяснять тип здания на локации по её ИД.

Далее из модели общих зданий я свичом распределяю запросы, типа если тип локации bank, то идем в подТаблицу room_type_banks и по ид локации находим запись банка который принадлежит к этой локации.

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

Но, вопрос!

К примеру банк имеет возможность открыть счет игроку (разово) если счета нет, если счет есть то отрисовывается форма управления своим счетом, кнопка историй переводов и так далее, история переводов идет в отделный component во вью. Допустим открытие нового счета идет по маршруту /createBankAccount - по этому пути в контроллер передаются данные о юзере и в контроллере есть метод create который откроет юзеру счет. Ну и другие методы управления счетом.

Каким образом мне собирать данные о других типах зданий и так же универсально отправлять во вью? Не могу же я во вью писать логику под каждый тип здания. В целом не совсем понятно, как после сбора сведений о типе зданий выбрать необходимый blade шаблон для отрисовки здания. У каждого типа здания может быть несколько маршрутов и всё это будет сильно отличаться от других типов зданий. Допустим у банка маршрут на создание счета, на переводы/пополнение, маршрут на историю транзакций. А у здания госпиталя один маршрут - отхилить игрока и всё.

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

Да и в целом, хороша ли такая концепция? Я такое первый раз пишу.


VK группа игры (Разработка 22 года): https://vk.com/browsermud

Сообщение отредактировал JanCarlo - Четверг, 31 Марта 2022, 21:23
JanCarloДата: Среда, 23 Марта 2022, 13:33 | Сообщение # 8 | Тема: Нужен игровой интерфейс UI для html/css/js
был не раз
Сейчас нет на сайте
Цитата TLT ()
PSD/PNG - это и есть готовое, ЛОЛ. Человек не разбирается в форматах графики, не знает отличий форматов, а лезет делать игры...

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

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

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


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Среда, 23 Марта 2022, 10:44 | Сообщение # 9 | Тема: Нужен игровой интерфейс UI для html/css/js
был не раз
Сейчас нет на сайте
Цитата TLT ()
В чём проблема? Открываешь PSD, нарезаешь как нужно, сохраняешь в PNG, подключаешь в html-коде.

Я кажется спрашивал где скачать можно что то готовое или купить и наверно на то есть причины, а нарезать вы можете сами если есть желание и время, можно и на печи той же...


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Среда, 23 Марта 2022, 09:26 | Сообщение # 10 | Тема: Нужен игровой интерфейс UI для html/css/js
был не раз
Сейчас нет на сайте
Добрый день!

Скажите пожалуйста, может кто знает где можно купить/скачать html дизайны игрового интерфейса под постапокалипсис?
Профиль игрока / формы входов / списки меню / хедеры / футеры и так далее
Ну или что то аналогичное этому - https://graphicriver.net/item/postapocalyptic-game-ui/21182938? Там по ссылке правда psd, а нужно html/css/js.

Сейчас игра в разработке, дизайн никакой и дизайнера нет, готов купить какое то временное решение, а то чернобелый текст с рамками никуда не годится :D

Заранее спасибо


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Среда, 16 Марта 2022, 13:13 | Сообщение # 11 | Тема: Ищу движок под MUD на php
был не раз
Сейчас нет на сайте
Господа, а кто нибудь знает конструкторы/генераторы карт на php (что бы встроить в админку)? Ну или на любом другом софте с экспортом к примеру в json?
В целом то система передвижений готова, банк готов, трназакции и тд


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Воскресенье, 14 Ноября 2021, 22:53 | Сообщение # 12 | Тема: Ищу движок под MUD на php
был не раз
Сейчас нет на сайте
JackNazaryan,
Спасибо за ответ!

Да, передвижение уже реализовано, соответственно сама карта тоже.
В целом всё довольно элементарно. 3Д пространство, координаты x/y/z - 3 столбца в таблице rooms. Движение на север это Y+1, движение на запад это X-1.

Реализованы ловушки на локациях, сделал банк - разовое открытие счета, перевод/снятие/пополнение с комиссией. Пока так, по мелочи. Начал писать в июне, закончил в июле что бы не наколбасить кривого кода. Доучился по пхп, и сейчас готов дальше проект пилить. В данный момент у меня чисто функциональный стиль - вот думаю переходить ли на ооп.

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


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Пятница, 12 Ноября 2021, 23:22 | Сообщение # 13 | Тема: Ищу движок под MUD на php
был не раз
Сейчас нет на сайте
yanki, Привет!

Очень интересно!
Спасибо за проявленый интерес :)
Гляну код, в лс телегу тоже скинул


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Четверг, 10 Июня 2021, 10:30 | Сообщение # 14 | Тема: Ищу движок под MUD на php
был не раз
Сейчас нет на сайте
Добрый день господа!

Руки дошли до проекта вот в принципе пару дней назад только. Реализовал переходы как посоветовали по координатам x/y/z, сделал контроллер (делаю на ларавеле, что бы уж сильно всё с нуля не пилить) который внутри сам, в зависимости от переданного параметра направления - плюсует или минусует вектор направления, проверяет существует ли по новой координате комната - и если существует, делает переход и записывает в юзера. Для юзера направления движения выглядят как активная ссылка для перехода которую можно клацнуть, и если перехода нет то ссылка в виде текста некликабельная.

В бд есть 2 таблицы - юзеры и комнаты. У таблицы юзера поля - login, pass, email, created_at, updated_at, current_room_id.
У таблицы rooms в принципе всё просто, поля - x, y, z, name, description.

Получается теперь так, что если у нас, к примеру 3 локации тянутся вперед, образно коридор - первая локация - x1/y1/z1, вторая x1/y2/z1, третья - x1/y3/z1 - всё логично (влево вправо это ось x, вперед назад y, вверх вниз - z). Допустим мы хотим добавить в конце коридора поворот на право и такой же коридор обратно, делаем - поворот - x2/y3/z1, далее так же идем обратно - x2/y2/z1, x2/y1/z1.
При данной структуре базы данных, на данный момент эти 6 локаций получились БЕЗ стен, то есть это не коридор буквой П, а просто большая комната из 6 локаций.

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


И из первого вопроса у меня сразу образуется второй -
По задумке, в определенных местах игрового мира будут локации, в которых к примеру 3 кубических клетки, ну получается куб с ребром в 3 клетки (всего 27 клеток в кубе). В этом кубе не будет ни одной стены (ну кроме границ самого куба). То есть можно спокойно перемещаться по всем этажам куба во всех направлениях. И теперь самое главное - локации в кубе должны рандомно перемещаться со временем. То есть, к примеру, самая южная крайняя правая верхняя комната куба перемещается прямо в центр куба, а центр куба переезжает в тот самый угол.

Получается, что в принципе координаты у комнат остаются прежние, но ID локаций просто меняются местами (и тут кстати я еще не думаю, как primary key можно переприсваивать). НО, если реализовывать логику стен, (я сначала предполагал что таблица комнат будет содержать помимо координат еще и доступные направления типа - south - allowed, west - disallowed, up - allowed, down - disallowed ну и тд) то при перемещении комнат должны так же меняться еще и стены - тут короче говоря у меня мозг начал вытекать из ушей и носа.

Кто то может подсобить советом по этим двум вопросам? =)
Заранее спасибо!


VK группа игры (Разработка 22 года): https://vk.com/browsermud
JanCarloДата: Вторник, 06 Апреля 2021, 13:41 | Сообщение # 15 | Тема: Ищу движок под MUD на php
был не раз
Сейчас нет на сайте
Fire_Phoenix,

Цитата Fire_Phoenix ()
Было бы очень хорошо, если бы Вам дали вначале полностью освоиться в PHP, а потом предлагали изучение Framework-ов, ведь у самого языка большой потенциал, и написать на чистом PHP тоже можно много чего... Да и код получается Ваш, в котором спустя даже несколько лет Вы сможете быстро разобраться, и использовать как основу для других проектов...


Да, это верно, именно так и хочу сделать =)


VK группа игры (Разработка 22 года): https://vk.com/browsermud

Сообщение отредактировал JanCarlo - Понедельник, 19 Апреля 2021, 10:30
JanCarloДата: Понедельник, 05 Апреля 2021, 12:05 | Сообщение # 16 | Тема: Ищу движок под MUD на php
был не раз
Сейчас нет на сайте
Fire_Phoenix, Добрый день!

Спасибо огромное за столь развернутый ответ! Очень приятно что так отреагировали, я не ожидал =)

Цитата Fire_Phoenix ()
JanCarlo, можно узнать, почему не хотите использовать (стандартные) 8 направлений: N, NE, E, SE, S, SW, W, NW?

На самом деле я об этом даже не думал, что бы двигаться по диагоналям, так как везде где играл - там направления были без движения по диагоналям, хотя почему бы и не реализовать такое.

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

Цитата Fire_Phoenix ()
Я не эксперт в MUD картах, но такое вроде допускается:

Интересно, попробую поискать этот конструктор, было бы интересно видеть в каком виде экспортируется карта и как её потом в бд заносить.

Запустил -

В целом выглядит довольно интересно, и судя по таблице в бд предполагается передвижение по клеткам именно по координатной оси x,y,z где каждое направление отличается на одну единицу от соседней локации, то есть при передвижении по осям мы делаем по идее x++; y--; в зависимости от направления

Сам бы я конечно такой конструктор не написал =)

Осталось реализовать регистрацию и переходы по локациям :D ну и заложить фундамент в базе на то, что на локациях могут быть и мобы, и предметы типа выбросить/поднять и соответственно другой игрок позже с этой локации может поднять выброшенный вами предмет. Неоторые локации могут к примеру телепортировать игрока куда либо за определенную плату, или сделать на локации дверь, а ключ положить в квестовую ветку. Про NPC, бои с мобами / пвп / командные бои я пока молчу, не знаю как это реализовывать пока, не буду пока голову забивать. (однозначно бои хотел бы сделать в пошаговом виде, но не в таком как у пресловутых комбатс (в который ни разу не играл :D) где удар идет в пах/голову и тд. Есть живой пример проекта как бы я хотел видеть бой аналогично)

В целом я очень хорошо представляю как именно должна в перспективе выглядеть моя игра, но так как я только учусь то хотелось бы делать с простого и по порядку =)

Цитата Fire_Phoenix ()

Это очень интересный подход: с одной стороны просчитывать нагрузку на сервер заранее конечно не плохо, но с другой стороны, Вы сразу планируете сделать 10 к локаций?

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

Цитата Fire_Phoenix ()
И да, если Вам кто-то будет писать, мол PHP плохо, возьми Python, или еще что-то, не слушайте, PHP достаточно гибок для новичка. А то я знаю случаи, когда человеку предлагали разные языки программирования, мотивируя разными преимуществами, в итоге, человек потерял интерес к проекту, так как не смог определиться, на каком ЯП писать в итоге лучше... Выбрали PHP - пишите на нем. Будет что-то не получаться, спросите


Вот за это отдельный респект и огромное спасибо за поддержку =)
Я в принципе сейчас прохожу курсы по php в данный момент нахожусь на SlimFramework, и у нас на курсе в приоритете PostgreSQL изучение. Но на SlimFramework не думаю что хорошая идея писать, так как он создан для самых простых минимальных сайтов. Через пару дней начинается большой курс по Laravel. В целом я пока только на PHP и могу что то минимальное делать, на другие языки распыляться пока точно не хочу, что бы, как говориться, штаны не порвать сидя на двух ветках :D Ну разве что кроме JS, JS в любом случае хотя бы минимально будет нужен в перспективе.

Кстати посмотрев на вашу карту - у вас точно такой же принцип получился как на ролике, что очень классно выглядит.

Многие еще советовали использовать webSocket, но я их еще не изучал. Думаю что это было бы разумно как минимум рассмотреть. Так как в перспективе на веб интерфейсе клиента будет отображаться персонаж, переходы по локациям и с описанием самой локации, в нижней части будет общий игровой чат с переключением вкладок на "торговый чат", "Приватный", "Соседние локации" и тд то есть в целом будет динамика на странице.

И самое главное, будет так же возможность в этом же интерфейсе сбоку посмотреть кто на этой локации из игроков находиться а так же путь откуда игрок пришел (возможно, вместо этого надо будет сделать под блоком краткой инфы о персонаже - миникарту текущего местоположения где сейчас игрок находиться и соседние локации к примеру с радиусом в 3-5 клеток, что бы он визуально видел куда сделал шаг и где оказался - тогда не придется делать колонку с историей куда двигался игрок и будет очень удобно ориентироваться в местности).

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

Как то так, со дня на день начну реализацию, как только продумаю как передвигаться по миру =)


VK группа игры (Разработка 22 года): https://vk.com/browsermud

Сообщение отредактировал JanCarlo - Понедельник, 19 Апреля 2021, 10:31
JanCarloДата: Воскресенье, 04 Апреля 2021, 19:06 | Сообщение # 17 | Тема: Ищу движок под MUD на php
был не раз
Сейчас нет на сайте
Добрый день господа!

Ищу движок, основу, наработки браузерной игры на PHP/MySql по типу MUD только разумеется без использования telnet и отправки команд типа go to / drop и тd

В первую очередь интересует передвижение игрока по локациям по направлениям север/запад/юг/восток/вверх/вниз и соответственно создание и хранение карты игровых локаций. Общая идея такова, что карта должна быть не в виде полигона к примеру 500 на 500 клеток, а вот в таком виде лабиринтов -

соответственно один шаг - переход на одну локацию, на каждой локации могут стоять npc/мобы/здания и тд

Переход по ссылкам:


Если кто помнит были такие игровые проекты как xin.ru tale.ru там это было реализовано.

Если есть какие то готовые конструкторы / исходники / движки подобных схем передвижений - было бы отлично. С нуля можно было бы тоже написать, но пока в голове сложно представить в каком вид хранить базу данных самой карты таким образом, что бы не делать при каждом переходе с локации на локацию запрос в базу данных и делать сверку типа а есть ли проход в ту или иную сторону. Было бы отлично если бы был еще конструктор подобных карт, которые можно было бы в последствии подключать. Видел отдельный видос такого конструктора - https://www.youtube.com/watch?v=X-1lu0zER60 тут конструктор прямо точь в точь что мне нужно, было бы круто еще реализовать переход по локациям. Разумеется надо что бы после регистрации персонажа по дефолту ставило на какую либо локацию, а после выхода из игры его локация сохранялась и при новом входе персонаж оставался на последнем месте. При этом важно, что бы была исключена возможность отправить поддельный post запрос с отправкой левой локации что бы исключить возможность телепорта игрока в любое место.

Ребят кто может подсказать по этой задаче?

Мне для начала главное реализовать хранение карты и передвижение пользователей по ней.

В какой то момент я сделал эскиз карты простенькой к примеру :


И представил хранение карты в виде такого массива -
Код
$worldMap = [
  1 => ['south' = false, 'north' = 4, 'west' = false, 'east' => 2, 'up' => false, 'down' => false, 'description' => 'Самая левая нижняя комната'],
  2 => ['south' = false, 'north' = 5, 'west' = 1, 'east' => 3, 'up' => false, 'down' => false, 'description' => 'Комната с канделябрами'],
  3 => ['south' = false, 'north' = false, 'west' = 2, 'east' => false, 'up' => false, 'down' => false, 'description' => 'Самая правая нижняя комната'],
  4 => ['south' = 1, 'north' = 6, 'west' = false, 'east' => 5, 'up' => false, 'down' => false, 'description' => 'Центраяльная левая комната'],
  5 => ['south' = 2, 'north' = 7, 'west' = 4, 'east' => false, 'up' => false, 'down' => false, 'description' => 'Центр здания'],
  6 => ['south' = 4, 'north' = false, 'west' = false, 'east' => 7, 'up' => false, 'down' => false, 'description' => 'Левая северная комната'],
  7 => ['south' = 5, 'north' = false, 'west' = 6, 'east' => 8, 'up' => false, 'down' => false, 'description' => 'Задняя часть дома с окном'],
  8 => ['south' = false, 'north' = false, 'west' = 7, 'east' => false, 'up' => false, 'down' => false, 'description' => 'Правая северная комната'],
];


Но потом представил, а что если у нас карта где будет 10к локаций, это при каждом переходе каждого игрок на соседнюю локацию - будет подгружаться этот массив на 10к строк и циклом искать тот ID локации на котором стоит игрок, что бы прочесть в какие стороны он может двигаться и куда эти стороны его приведут - (на какую именно соседнюю локацию переместиться игрок) то это будет дикая нагрузка на сервер скорее всего, скажем 100 игроков одновременно передвигаются и каждый раз целую базу такую считывать... но это если карта будет храниться чисто в массиве что неразумно. По этому надо подумать как реализовать это на базе и запрос с проверками к ней.

Заранее спасибо


VK группа игры (Разработка 22 года): https://vk.com/browsermud

Сообщение отредактировал JanCarlo - Воскресенье, 04 Апреля 2021, 19:20
Форум игроделов » Записи участника » JanCarlo [17]
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг