Блог пользователя creator

Арена

Начал делать реализацию боев на арене с противником человеком.
Алгоритм делаю следующим:

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

    Изменения в игровой механике - минимальные:

    Опыт

    - Погляди какой толстый монстр
    - Не-не, это просто кучка опыта

    Опыт приобретается путем истребления монстров и прочих путников в лабиринтах/аренах/подвалах.
    Чаще всего в различных играх - количество опыта необходимое для получения следующего уровня измеряется по логорифмической шкале.
    Что дает игрокам быстро получить первые уровни, и запас времени на получение высших уровней.
    А еще есть например такое, в Diablo II, за истребления монстров не своего уровня, количество опыта режется.

    Меню и мысли

    Сделал хоть какое-то меню, теперь можно управлять.
    Для каждого города, будет свои подгружаемые шаблоны для лавки/кузнеца/таверны.
    Возможное меню онлайн игры лабиринты зыби (7maze)
    Теперь думаю сделать получения опыта, и соответственно уровня, чтобы можно было выйти за ворота и/или сразиться на арене.

    Инвентарь. Заключительная часть

    В Flash передача оказалась (как и предполагалась) ерундовым делом:
    Кнопка, на кнопке onPress.
    on (press) {
    btn_apply._visible = false;
    var inv='';for(var i=0;i<_root.itemsList.length;i++) {
    var tmp = itemsList[i].id.toString(16);
    if (tmp.length<6) { var i=6-tmp.length; for(var j=0;j<i;j++) {tmp='0'+tmp;} }
    inv+=itemsList[i].place.toString(16)+tmp;
    }
    loadVariablesNum(_root.host+"/maze?action=set_inv&inv="+inv+"&sessionid="+_root.session,0);
    }

    Ну да в Flash'ку пришлось передавать host, ну думаю может и не надо.

    На стороне сервера :

    Инвентарь, продолжение

    инвентарь,7maze
    С инвентарем получилось как-то с одной стороны проще, а с другой - сложнее.
    Провозился в целом, а онлайн для подрузки описаний и параметров вещей и вовсе не потребовался.
    В Flash нарисовал картинку - силуэт человека и квадраты куда можно понавесить вещей (оригинально, правда? :).
    Создаю два массива:

    var itemsList = new Array;
    var nameList = new Array;

    Размышления

    Начал делать инвентарь ввиде отдельной фэшки, как и задумывал, вернее как-раз сейчас и делаю в данный момент.
    И вот задумался, какой диапазон выделить под каждый тип вещей.
    Поначалу думал вообще разделить скажем на 10 отрезков весь доступный (0xFFFF), а потом решил, что это многовато.
    Потом решил, по 4 тысячи на каждый, а затем пока писал решил, что и этого много.
    Да и не правильно как-то.
    Короче новая мысль(свежак!).
    Сделай определяющими битами составное число.
    ABCDEFGH - первый байт
    abcdefgh - второй байт

    И еще про дизайн

    По наброскам сделал уже рабочую версию. Решил, кстати, не закрашивать изображения, а сделать просто контурами.

    фрагмент дизайна 7maze - лабиринты зыби

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

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

    Дизайн геймплея

    Решил я занятся дизайном интерфейся. Про элементы, которые должны быть я уже писал.

    Первым делом накидал в PaintBrush'е набросок.
    набросок интерфейса 7 лабиринтов

    Затем стал прорисовывать параметры: выносливости, силы, ловкости и интеллекта.
    Есть еще косвенный параметр жизни (HP), но его изображение давно прорисовано :)

    Инвентарь

    Главная задумка - сделать эту флэшку с минимум онлайна, т.к. на самом деле все легко и просто.

    Флэшка вызывается с параметрами из которых главных два - один указывает на тип силуэта персонажа, а второй на его инвентарь.
    В Flash это парсится переменная params. Скажем приходит строка ввиде hero|aaa|inv|bbb|, где aaa - указатель на образ, а bbb - закодированные данные инвенторя.

    Про образ думаю и все так ясно - это может быть просто имя соотвествующего SWF файлика, например man или woman.
    С вещами посложнее, но тоже просто. Думаю сделать это так:

    Защита

    Как-то при планировании это у меня вылетело из головы, ничего сейчас все исправим.

    Зашита(Defence) так-же один из важных параметров существ(героя), этот параметр показывает насколько будет НЕ эффективным удар.
    Есть несколько вариантов алгоритмов уменьшения урона от показателя защиты, но по сути их два - это вычитание (Warcraft II, Starcraft) из урона показатель, и деление (например Heroes).

    RSS-материал