| Урок по созданию браузерной игры № 7 |
| Assasin | Дата: Вторник, 03.11.2009, 12:56 | Сообщение # 1 |
web-coder
Сообщений: 1065
Сейчас нет на сайте
| В данном уроке поговорим о том как будет функционировать инвентарь. При нажатии на кнопку Инвентарь в меню, открываеться всплывающее окно в котором будет 6 ячеек, в них может быть оружие или броня. Данные, которые будут здесь отображаться, считываються с БД с таблицы которую мы создадим в следующем уроке. Вещи, которые будут надеты на игроке будут считывать данные с таблицы users, в неё мы добавим несколько столбцов, каждый столбец будет иметь id вещи, которая находиться в таблице inventar. В таблице inventar будут записаны все вещи, которые находяться в игре, также в ней будет краткое описание вещи и её свойства (повышение атаки, защиты и т.д.). Вещи, которые надеты на игроке будут отображаться в Профиле игрока, в нем будет 4 ячейки — голова, правая рука, левая рука, ноги. Все вещи, которые игрок будет получать, будут отображаться в инвентаре, а потом их можно будет перенести на ячейку в Профиле игрока, как обычно во всех играх. Думаю все, если что то забыл, то напишу в следующем уроке При копировании материала ссылка на источник обязательна!
|
| |
| | |
| Jekel | Дата: Четверг, 12.11.2009, 00:43 | Сообщение # 2 |
|
уже был
Сообщений: 2
Сейчас нет на сайте
| плз выложи уроки)
|
| |
| | |
| Vinchensoo | Дата: Четверг, 12.11.2009, 11:33 | Сообщение # 3 |
Злобный социопат с комплексом Бога
Сообщений: 7803
Сейчас нет на сайте
| Quote (Jekel) плз выложи уроки) Это и есть урок
|
| |
| | |
| Assasin | Дата: Четверг, 12.11.2009, 23:00 | Сообщение # 4 |
web-coder
Сообщений: 1065
Сейчас нет на сайте
| Наверное он имел ввиду продолжение, на днях будет.
|
| |
| | |
| 1nferno | Дата: Воскресенье, 06.06.2010, 13:48 | Сообщение # 5 |
был не раз
Сообщений: 21
Сейчас нет на сайте
| Всем привет. Помучив первую тему теперь приступим к инвентарю... =))) Данное решение инвентаря подходит только для ситуации когда у нас в инвентаре ограниченное количество слотов для вещей (может я ошибаюсь, но это не так важно, так как все равно нельзя будет реализовать ещё несколько штук см. ниже). Сначала опишем каким образом это должно быть в самой игре. Во первых мы заранее не знаем какое количество(ограничение на слоты) вещей у нас будет в инвентаре, тоесть у нас должен быть приличный запас на количество. Во вторых должна быть возможность улучшать (изменять) параметры вещей, заточка оружия например. Возможность времменных модификаторов - наприммер улучшена атака меча на сутки. Важно , чтобы эти изменения были привязаны именно к оружию, тоесть если я его выкину , а потом ктото подберёт , то эти модификаторы остались на оружии. вроде пока все... Теперь как это будет у нас реализовано в MySQL. Как все это унас будет отображаться в интерфейсе пользователя я считаю не так важно и кто как хочет может реализовывать, это не будет влиять на архитектуру хранения в MySQL. 1.Самый примитивный способ, я думаю, это все вещи зогнать в одну таблицу например item_list (я имею ввиду не види вещей а ВСЕ вещи). Тоесть будут столбцы item_id (уникальный номер вещи по всей игре) item_name, характеристики вещи(которые мы сможем потом менять - делать всякие заточки , улучшения ), другие параметры вещи и столбец - какому игроку принадлежит вещь. В этой ситуации наверно придётся раскидывать разные виды вещей по разным таблицам (мечи в одной таблице щиты в другой и т.д.) ввиду разных характеристик предмета, у меча нет параметра брони , у шлема - параметра атаки. Но представьте сколько времени будет занимать формирование инвентаря, нужно будет сделать запросы ко всем таблицам и выбрать по параметру - принадлежность предмета. А таблицы то будут огромные... Думаю этот вариант не подходит - ресурсоёмкое решение (хотя если таблици сортировать по принадлежности предметов.... ??? ). 2. У нас есть таблица Inventar, есть таблицы с видами вещей item_list (id вещи и её характеристики ). В ней храняться инвентари всех игроков, тоесть по количеству записей она будет соответствовать таблице users. Первый столбец - user_id. А потом содержимое инвентаря, ктоторое придётся хранить в текстовом виде : перечисление всех вещей и за каждой вещью её модификаторы (id_123 min_attack=+7 max_attack=+4 mf_crit=-12, id_156 def=+50 mf_crit=+15, ...... - в данном случае мы имеем в инвентаре меч id_123 у которого есть свои параметры атаки и модификаторов, кот мы берём из таблицы item_list и к этим параметрам прибавляем индивидуальные модификаторы характерные именно для этой вещи - увеличиваем минимальную аттаку на 7 , максимальную аттаку на 4 и модификатор крита уменьшаем на 12 и так делаем со всеми перечисленными вещами). Минус всего этого , в том что нам придётся каждый раз работатьс этой гигантской строчкой.... а также у нас нет уникального id вещи, с помощью которого мы могли бы просто выкинуть вещь или подобрать, нам придётся прикаждом действии с вещью передавать её параметры. Нус... жду обсуждения всего этого....
|
| |
| | |
| Lucasito | Дата: Воскресенье, 06.06.2010, 20:06 | Сообщение # 6 |
участник
Сообщений: 230
Сейчас нет на сайте
| У нас в игре реализовано так: Одна таблица - "шаблоны" вещей. Т.е. вещи с базовыми характеристиками и процент разброса этих характеристик, пока у все хстоит 100%. Т.е. например есть базовый меч с 5 атаки. Значит может получится меч с 1 атакой и с 10. 0 не получится, т.к. если у вещи один параметр, то 0 алгоритм генерации вещи не дает взять. Все характеристики в игре- это отдельные поля в таблице. Например поле def, поле luck, поле type(тип вещи, например 1- щит, 2- меч и т.д.) Вторая таблица- сами вещи. У каждой вещи стоит владелец(игрок). Так же указано из какого шаблона получилась вещь. Выборки для инвентаря по конкретному игроку проходят очень быстро, т.к. нужные поля в таблице индексированы. Этот подход дает очень большую гибкость. У каждой вещи можно поменять любые параметры, можно даже сменить аватарку, работает быстро для поиска предметов в инвентаре и то, что надето на игрока.
Скриншоты. Приглашаем бета-тестеров! Помог? Ставь "+" мне в репу :)
|
| |
| | |
| 1nferno | Дата: Воскресенье, 06.06.2010, 20:43 | Сообщение # 7 |
был не раз
Сообщений: 21
Сейчас нет на сайте
| Спасибо за ответ... а какое у тебя в игре, в этой таблице количество вещей на данный момент? Видимо так и придётся делать.... Я так понимаю индексирование по полю владелец(игрок), так как по нему будет делаться выборка?
|
| |
| | |
| Lucasito | Дата: Воскресенье, 06.06.2010, 20:45 | Сообщение # 8 |
участник
Сообщений: 230
Сейчас нет на сайте
| количество "шаблонов" 81 количество вещей в инвентаре, надетых и в лавках 13760 индексов 5 штук. по id вещи по пользователю+признак лавка/надето/инвентарь+позиция,если вещь надета по "шаблону"+позиция,если вещь надета и ещё узкоспециализированные индексы 2 штуки.
Скриншоты. Приглашаем бета-тестеров! Помог? Ставь "+" мне в репу :)
Сообщение отредактировал Lucasito - Воскресенье, 06.06.2010, 20:49 |
| |
| |
|