сервер

PHP vs собственного сервера приложений

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

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

Ядовитый шип

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

ядовитый шип, лабиринты зыби, 7maze.ru

Задача оказалось очень большой из каждой нового решения(блока) вылезали дополнительный подзадачи.

Краткий перечень:

  1. Реализация выпадения объекта – некоторые существа с некоторой долей вероятности после смерти оставляют после себя «предметы».

Значок письма

  Решил добавить значок письма, который бы показывал есть ли новые (не прочитанные) письма или нет. Для этого нужно в структуре TUser добавить флажок - есть ли новые письма newmail, но это только 10% дела - самое главное это заполнять этот флаг.

Почта и письма

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

Письма можно удалять из входящих и исходящих (конечно нефига они не удаляются, а лишь помечаются как "не показывать для автора" и " не показывать для получателя".

Вялотекущие изменения

Изменения навыков, навык лечение корректировался.
Примерно так:

Сундуки и ключи

связка ключей, лабиринты зыби, 7maze.ruСегодня реализовали ключи и сундуки. Реализация сундуков уже была сделана, но теперь будут попадаться в лабиринтах сундуки запертые ключами.
Ключи можно купить в магазине, найти или получить в награду.

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

Модификации

За вчера/сегодня полностью переписали Flash магазина, теперь покупку/продажу можно делать массово и даже одновременно, сначала прицениваясь, а потом одной кнопкой подтверждать.

магазин, лабиринты зыби, 7maze.ru

Красоту потом дорисуют - пока костяк.
В серверной части почти никаких изменений (ну кроме того что теперь обрабатывается скопом сразу).

Дизайн & математика

Задачка:
Есть n объектов, которые нужно рандомно разбросать по карте, но - одни объекты должны появляться чаще, а другие реже. Иными словами это как сделать заданное неравномерное распределение :)

Решим что для всех n объектов есть некий коэффициент частоты:
double kk[8]={1,1,0.5,2,2,0.3,0.9};
Причем сами цифры (их абсолютная величина) - не играет роли, нам важна их относительная величина (относительно к другим).

Подсчитаем общий вес: double k_s = sum_double(kk,8);
Он равен = 7.7 :) Хорошее число между прочим получилось.

Движок

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

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

Аренда, заявки и команды

Три дня наши программисты (все трое) тестировали и внедряли новый код арены, с заявками на командные бои.
Теперь можно создавать заявки на турнирную арену с различными вариантами боев.
Таких как 2 vs 2 vs 2. Или 4 vs 4.

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

Часть мы искали три дня, что-то нашли, но думаю что-то еще осталось. Также в Flash напарники выводятся в верхнем правом углу. Есть какой-то баг с этим связанный, сейчас ищем.

RSS-материал