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

Объять не объятное

Пытался сделать все сразу, но не получается – решил вот на выходных расписать, что именно и как нужно сделать.
Задача. Сделать на странице города вход в тестовый лабиринт – для сбора, скажем тестовых очков – и выходе из лабиринта при нахождении оного.
Что уже есть. Есть страница логина и страничка города (пока пустая). В ней поставить ссылку типа /maze?mazeid=new_test_arena&type=enter – нефиг делать. А дальше нужно:
А) сделать редирект на /maze в него передать сгенерированный mazeid, userid и сессию – для загрузки флэша

Регистрация в игре

Итак уже сделаны первые наброски, первый наш экран - экран привествия и заодно логгона, с него можно уйти на регистрацию или на вход в игру.
Первым делом перепишем код проверк пользователя (там любой новый логин безусловно регистрировался)
int checkUser(char *s,char *p)
{

for(map::iterator i=userList.begin();i!=userList.end();i++)
{
if (i->second.nick == s)
if (i->second.pass==string(p))
return i->second.id;
else
return -2;
}
return -1;
}

Пока оставим, что пароль у нас храниться в текстовом (plain text) виде.

Встраиваем Flash в Html.

Казалась бы простая и легкая вещь, вроде тэга <img>, так нет поэтому просто так
одним тэгом не обойтись, к сожалению. Дело в том что различные браузеры по разному требуют код для вставки SWF файлов, и упорно не хотят идти на взаимный компромисс, вот и приходиться вебмастерам двоить код.
В частности тэги <OBJECT> и <EMBED>. OBJECT - это для IE, а EMBED для мозилло-подобных. Откуда пошли это разночтение?

Всякие профессии важны - всякие скилы нужны

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

Интерфейс. Локация - город

Город - это мирная локация (например, стартовая).
Каждый персонаж появляется в городе с профессией - "бродяга", у него нет жилья и работы.

В городе существует:

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

    Все-таки решено интерфейс сделать ввиде симбиоза Flash&html, соотвественно авторизация
    будет на html, посредством сессии передаваемой через куки. Код будет на C++.

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

    Интерфейс

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

    Изначально есть две задумки:

  • Только Flash интерфейс
  • Симбиоз Flash с html страничкой
  • Критика. Обзор технологии существующих игр

    Оговорюсь сразу - все ИМХО
    Просмотрев несколько Flash-онлайн игр - ужаснулся.

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

    Формулы расчета характеристик персонажа

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

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

    Чат. Часть 3

    Во-первых - у меня получилось
    Во-вторых - ненавись к Flash-Action-Script и его редактору!

    Это не программирование - это скриптоложество! (C) BOR

    Из "плюсов"

  • Shift+Del - это не фига не Cut, это просто удаления, раз сто я набивал код заного или откатывал назад
  • По умолчанию - переменные приходящие loadVariablesNum текстовые, т.е. если нужно допустим _root.num+message.length - то это будет например - 20 (если num = 2, а массив пуст)
  • RSS-материал