|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.10.2015, 13:36 | #1 |
Регистрация: 01.10.2011
Сообщений: 5
|
Бой похожий на бойцовский клуб
Доброго времени уважаемые форумчане.
Не так давно меня забила ностальгия по играм в стиле БК, территории онлайн и Смутных времён. Стал с друзьями вспоминать и понял, что меня заинтересовала реализация подобных игр. Начал я как и другие проекты с листа бумаги и ручки и неожидано для себя понял, что я понятия не имею как строится бой. Меня по большому счёту интересует как организовать структуру таблицы в БД. У меня была следующая идея: создать таблицу battle_room (название условное) с полями room_id, player_id, team, current_hp, block, hit. Идея была в следующем когда игрок создаёт заявку на бой генерируется room_id, который присваивается всем игрокам принявшим его заявку, при каждом ходе данные игроков прописываются в БД и во тут я задумался что такая структура подойдёт для поединков 1 на 1, так как в поле block и hit будет записываться положение куда я наношу удар и где блокирую, а в массовых замесах таких положений должно быть множество, так как для каждого противника нужно записать отдельно положение блока и удара. Вот я и думаю как это реализовать, если кто знает подскажите пожалуйста. |
28.10.2015, 07:48 | #2 |
Регистрация: 01.10.2011
Сообщений: 5
|
ясно, судя по всему тут ни кто советом помочь не сможет. Ну или не хочет...
|
28.10.2015, 11:13 | #3 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 151
|
Как вариант:
Бой состоит из последовательных шагов. Теоретически, за 1 шаг персонаж может нанести или словить несколько ударов и поставить несколько блокировок. По итогам шага пересчитываются Health Points и заносятся в отдельную таблицу Таблица ударов (hits) дата_время ид_поединка ид_хода ид_атакующего ид_атакуемого куда_атакует что_блокирует сила_атаки сила_контратаки (если есть необходимость) Таблица результатов хода ид_хода ид_персонажа (не путать с игроком) очки_HP_на_начало_хода очки_HP_на_конец хода Тут не учтены тонкости, типа блокировок против всех сразу и т.п., только общий подход (собрать удары и пересчитать ход) |
28.10.2015, 21:21 | #4 |
Регистрация: 01.10.2011
Сообщений: 5
|
2 Greek9000. Была у меня уже похожая идея, но я просто прикинул что для боя 10х10 в такой таблице будет 100 записей если сделать такую же таблицу для блоков то то и в ней будет примерно такое же количество записей. Отказался от данной идеи потому что решил что такое количество обращений вызовет большую нагрузку на сервер.
Если я не прав поправьте меня. |
29.10.2015, 11:19 | #5 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 151
|
На самом деле для боя 10х10 в этой таблице будет 100 х [кол-во ходов] записей. Но это не критично. Теоретически, можно все записи одного хода поместить в таблицу за 1 обращение, и при этом за весь бой вообще ни разу не обратиться к базе с целью извлечения данных.
Но даже если всю логику игры оформить в виде SQL-запросов, то и тогда это не будет проблемой для проекта с нагузкой меньше 100-200 игроков онлайн. |
29.10.2015, 15:46 | #6 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
vaultboy2010
а) можно не создавать для каждого удара отдельную строку в таблице. Можно записывать весь бой в одно поле таблицы массивом(ну то есть массивом, приведенным к строке). А при необходимости брать это поле и парсить в адекватные данные б) а можно просто задуматься, так ли необходимо записывать бои в БД с такими подробностями. Я не помню уже, как в БК было, но если сама игра не предполагает того, что кому-то из игроков надо выдавать полный отчет боя "кто кого когда и на сколько ударил", то бой можно просто проводить на сервере в оперативке.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Фитнес клуб | Cremator186 | Фриланс | 4 | 15.01.2015 20:06 |
Помогите найти похожий слайдер!!! | Abay19941308 | WordPress и другие CMS | 0 | 05.10.2014 10:11 |
Нужен похожий шаблон | sea_dream | WordPress и другие CMS | 2 | 02.02.2013 07:09 |
Demiart и Клуб программистов | Vol666 | Свободное общение | 6 | 07.10.2009 00:45 |