Браузерная ММОРПГ

 Project2: Apocalypse is the Beginning

Описание:
...

Текущее состояние:

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

Текущие работы:

- наполнение начального мира;
- обучалка;
- подготовка к запуску демки.

Используемые технологии:

Кроссплатформенный сервер под Windows и Unix-системы. Использует протокол TCP. Поддержка до 10000 клиентов. В планах возможность создания мультисерверной связки.
Сервер использует БД MySQL. Для некоторых скриптов используется PHP.
Клиент написан на HTML+JavaScript. На текущий момент поддерживается совместимость с браузерами IE начиная с 6ой версии, Opera начиная c 7.5 версии, Firefox начиная со 2ой версии. В дальнейшем предполагается протестировать и оптимизировать под другие браузеры.
Сетевое взаимодействие осуществляется через Flash-сокеты. В дальнейшем предполагается ввести поддержку более совместимого, но медленного AJAX.

Прогресс:
Регистрация, создание персонажей 10 %
Локальное передвижение 72 %
Глобальное передвижение 60 %
Бой, пошаговый режим 75 %
Командная работа 0 %
Магазины 50 %
Квесты 35 %
Логика мобов 10 %
Инвентарь 80 %
Склад вещей 40 %
Сценарий, сюжет 2 %
Графика 1 %
Взаимодействие игроков 10 %
Редактор и пр. тулсет 50 %

История разработки:

2009.11.26
+ Добавил броню (на тело и голову) в базу
+ Покупка брони, одевание\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\снятие

2009.11.24
+ Невидимость за препятствиями

2009.11.23
+ Включение боевого режима только когда противники первый раз себя увидят

2009.11.20
! Обнаружение новых объектов при движении - оптимизация

2009.11.19
! исправлено: пропадание точек на карте при реконнекте
+ картинка канистры

2009.11.17
! Передача координат и движения только тем, кто видит
! Продолжение движения при появлении в видимости

2009.11.16
+ Разделение на инстансы, квестовые типы зоны (когда все в разных инстансах)
+ Появление и исчезание движущегося объекта

2009.11.13
+ Отображение таймера хода на клиенте
+ Подсветка врагов
! Тестирование боевого режима и исправление ошибок\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\недоработок

2009.11.12
+ Сплэш-окно коннекта, реконнект при отключении
+ Вычитание AP при перегрузе

2009.11.11
+ Переход хода по таймауту (60 сек)

2009.11.10
+ Доработка окна боя

2009.11.06
! Исправление перекодировки с\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\на утф-8
+ Доработка формы регистрации: добавлен выбор пола и специализации главного персонажа

2009.11.05
! Успешный запуск в интернете на виртуальном сервере под линухом

2009.10.23
+ Триггеры, срабатывание от дистанции

2009.09.22
! Отметили годовщину пивом и новыми скринами

2009.09.16
+ Квестовые предметы

2009.09.03
+ Учет количества аммо при бросании

2009.09.01
+ Учет количества аммо при перекладывании

2009.08.31
+ Хранение параметров персонажей
+ Подсчет веса инвентаря
+ Окошко выбора количества аммо при перекладывании

2009.08.28
+ Переход в больницу после смерти всех персонажей
! Исправления сетевого модуля

2009.08.26
+ Перемещение между локациями на границах

2009.08.13
+ Личные склады в локациях

2009.08.12
+ Начало работы над личными складами в локациях

2009.08.10
+ Утилита для обработки спрайтов

2009.08.07
! Мелкие доработки

2009.06.24
+ Подтверждение покупки предметов, подтверждение бросания предмета
! Успешный тест движка под Google Chrome

2009.06.23
+ Доделал всю анимацию девушки
+ Спрайт мертвого волка

2009.06.22
+ Итемы: ПМ и патроны 5x18мм к нему

2009.06.19
+ Итемы: АК74 и патроны 5.45мм к нему
! По сценарию - ядерная война произошла в 1984 году 11 августа

2009.06.15
+ Спрайты стоящего волка

2009.06.14
! Клиент не удаляется сразу при дисконнекте (только через минуту)

2009.06.11
+ Хинты и цена вещей в магазине

2009.06.10
! Хинт для аммо - название
! Рисование локации "база"

2009.06.09
! Позиционирование карты на первого персонажа при загрузке
+ Рисунок выстрела (вспышка), отображение его
! Хинт-описание оружия

2009.06.08
+ Персонаж Петр Петрович (картинки стоячего его)
! Поворот персонажей друг к другу при открытии диалога
! Переделка отображения статических объектов

2009.06.05
+ Курсор "открыть контейнер"
+ Быстрая регистрация и создание перса (пока без проверок)

2009.06.04
+ Реанимация в лазарете (на скриптах)
! Изменил вид главного окна
! Аватары (пока фиксированные, потом переделать)

2009.06.03
+ Помещение в лазарет, хранение инф-ии о здоровье и лазарете в базе
+ Лазарет, лечение (на скриптах)

2009.06.02
+ Функции для скриптов проверки и перехода в другую локацию
+ Переходы между локациями (через объекты-порталы)
! Теперь "разговаривать" можно и с объектами (для реализации подтверждений каких-либо действий)

2009.06.01
+ Выделение цветом активного персонажа, выделение всех персонажей
+ Перемещение нескольких выделенных персонажей
+ Отображение активных квестов
! Обход препятствий - теперь другие персонажи и объекты тоже препятствия

2009.05.29
+ обновление инфы у персонажа при его атаке (% здоровья)
+ картинки персонажей в инвентаре (пока фиксированные, потом переделать)
+ складывание предметов в контейнер

2009.05.28
+ Простой ИИ - бежать и атаковать при возможности (для тех, кто атакует руками\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\зубами)
+ Система таймеров

2009.05.27
+ Подбирание предметов из контейнера, удаление пустого мешка

2009.05.26
+ Редактор карт: редактирование карт проходимости
+ Чанк металлического пола
+ Бросание предметов в объект под ногами
+ Контейнеры, окно с предметами в контейнере

2009.05.25
+ Тулсет: программа обновления скриптов в базе
+ Бросание предмета
+ Загрузка квестов
+ Команда получения списка квестов

2009.05.22
+ Иконка входа\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\выхода в дверь-портал
+ Отображение статических и динамических объектов
+ Команда использования объектов

2009.05.19
+ Скрипты на смерть персонажа
! Исправления с определением видимости

2009.05.18
! Багфиксинг под IE

2009.05.17
+ Скрипты на локацию, добавление объектов и персонажей из скриптов

2009.05.13
+ Дальность видимости персонажей, появление\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\исчезание объектов
+ Остановка при попадании в поле зрения врага и начале битвы

2009.05.13
! Переход на новый флешевый сокет
! Доработки чата на клиентской стороне
! Сохранение параметров игрока и вещей

2009.05.12
+ Разработка нового флешевого сокета

2009.04.30
+ Квесты
+ Диалоги

2009.04.29
! Анимация бега на 90 и 135 градусов

2009.04.28
! Магазин: покупка (оружие и патроны)
! Анимация бега на 45 градусов

2009.04.27
+ Кнопка и команда "конец хода"
! Цвет AP в зав-ти от их количества, выделение своих персонажей
! Контроль и уменьшение АП при одевании\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\снятии оружия
+ Переключение основного и дополнительного оружия
+ Магазин: окно, товары

2009.04.24
+ Смерть мобов, замена моба на его объект-тело

2009.04.23
+ Команда атаки, нанесение урона, хинт урона, уменьшение АП, уменьшение патронов
+ Обновление информации о персонаже
+ Команды от сервера - повреждение и смерть персонажа

2009.04.22
+ Приделал упаковщик JS-кода
+ Начата реализация команды атаки

2009.04.21
+ Параметры оружия и урон - отображение в хинте атаки
! Переработана структура данных локации
! Небольшие изменения в сетевом протоколе для обхода глюков оперы

2009.04.20
+ Дальность действия атаки героя (учет, отображение)
+ Хинт на персонажей и мобов - отбражение имени, уровня и состояния здоровья

2009.04.17
+ Мобы, создается виртуальный игрок с персонажами-мобами
! Исправления в передвижении персонажей

2009.04.16
! Перевел сервер на 443 порт
! Исправления логики движения героев, прерывание движения новым направлением

2009.04.15
+ Скрипты к объектам
+ Команда "говорить с...", герой при неоходимости подходит к собеседнику
! Правка багов

2009.04.14
! Оптимизация JS-скриптов

2009.04.13
! Исправления скриптов на сервере
+ Новые команды взаимодействия скриптов и клиента

2009.04.12
! Команды в локации, окно "Действия в локации"
+ Подгрузка JS скриптов с сервера
+ Имя персонажа теперь показывается в инвентаре

2009.04.09
! Избавился от демона на 843 порту, теперь cross-domain-policy выдает основной сокет
+ Начал делать команды в локации (типа магазин, наем персонажей, лечение и пр...)
+ Подключил скриптовый движок к серверу, пока только на команды в локации

2009.04.08
! Пофиксил скрипты для работы с FlashPlayer 9 и 10
! Теперь сервер слушает еще и 843 порт для выдачи cross-domain-policy флешу
- Скрипты частично не работает под IE

2009.03.27
+ Игровая валюта (хранение, передача, отображение)
+ Корректный подсчет амуниции для оружия

2009.03.26
+ Редактор в-карт
+ Успешная компиляция и тестирование проекта под Free Pascal
! Настройки сервера вынесены в конфиг-файл
! Доработки передачи и отображения данных об инвентаре и кол-ве зарядов
! Автоконнект через 1 секунду после загрузки страницы

2009.01.26
+ Движение персонажей в пошаговом режиме, переход хода при окончании AP при движении
+ Обрезание пути до возможной длины в зав-ти от AP

2009.01.19
+ Начало боя, случайный выбор игрока, реализация на клиенте

2008.12.22
+ Вступление в бой и выход из боя при дисконнекте. Св-во зоны - боевой тип

2008.12.12
+ Начало реализации боя\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\пошагового режима - Класс битвы на сервере

2008.12.11
+ Приделал поиск пути на сервер - теперь движение с учетом препятствий

2008.12.09
+ Загрузка карты (проходимости) с сервера и отображение
! Обход глюка больших пакетов в Опере

2008.12.05
+ Карты - 100 на 100 - представление в текстовом виде (0-проход и видимость, 1-видимость, 2-проходимость, 3-ничего)
+ В-карты - 25 на 25 - чанки карты в спец-кодах
+ Загрузка в-карты с сервера и отображение
+ Генерация картинки мини-карты на PHP и отображение в клиенте

2008.12.01
+ Перекладывание объектов инвентаря, пока без проверки на АР и доступность.

2008.11.28
+ Выделение объектов инвентаря, команда перемещения.

2008.11.26
+ Запрос, передача и отображение инвентаря персонажа

2008.11.19
+ Доделана передача и отображение краткой инфы персонажа
+ Внешний вид окна инвентаря

2008.11.11
+ Начал делать краткую инфу персонажа и инвентарь

2008.11.07
! Удаление персонажей при отключении игрока

2008.10.30
! Оптимизация сокета на клиенте
+ Структура базы вещей и шаблонов вещей
+ Загрузка шаблонов вещей

2008.10.29
! Синхронизация движения персонажа на сервере и клиенте
+ Сделал прерывание движения персонажа и остановку в ближайшей точке

2008.10.25
! Переделал структуру информации о движении персонажа

2008.10.22
+ Класс на клиенте - список игроков в зоне
+ Передача информации о добавлении игроков и персонажей в зону
+ Передача информации об удалении игрока из зоны

2008.10.10
+ Передача информации о персонажах в зоне игрока
+ Перемещение героя по карте

2008.10.09
+ Команды создания пустой карты, очистки массива объектов, перерисовки карты\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\объектов на клиенте
+ Передача информации об объектах в зоне игрока
+ Создание объектов на клиенте по переданным параметрам

2008.10.08
+ Добавление пользователя в зону, отправка списка пользователей в зоне с одинаковыми Z
+ Реализован и протестирован чат
! Реализовано отключение старого клиента при коннекте юзера с таким же СИД-ом
+ Сделал на клиенте окно сообщений

2008.10.07
! Тестирование и исправление функционала коннекта\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\логина и дисконнекта на сервере.

2008.10.06
+ Команды на сервере: логин игрока, обмен сообщениями, изменения в локации

2008.10.02
! Устранил отключение анимации в FF при нажатии Esc
+ Первый коннект сервера и клиента
+ Начаты диспатчеры сообщений на клиенте и сервере
+ Сделал макет информации об персонаже

2008.10.01
+ Приделал XMLSocket
+ Сделал несколько текстур земли

2008.09.30
+ Сделал страничку логина и сам логин
+ Скачал много текстур земли с cgtextures.ru

2008.09.29
+ Взял заготовку сервера
+ Подключил к серверу БД MySQL
+ Расписал начальную карту и 5 квестов
+ Название игры: Project 2: Apocalypse is the Beginning (P2AB)

2008.09.26
+ Сделал движение по строке пути '01234567'
+ Выставление картинки анимации и картинки после движения в зависимости от направления
! мелкие исправления по отображению указателей
! Поменял размер чанка карты на 120
+ Отображение точек на карте от объектов
+ Сделал фон, закрыл картинками области прокрутки

2008.09.25
! Переделал курсоры
+ Сделал отображение пути по клеткам для пошагового режима (макс. длина настраивается параметром max_path)
! Поменял размер чанка карты на 100 - для оптимизации IE
+ Сделал хинт - подсказка при наведении на объект, при прокладке пути
+ Сделал курсор стрельбы и параметр объекта can_shoot
+ Разнес скрипты по разным модулям

2008.09.24
+ Сделал 8 картинок стоящей тетки
+ Сделал анимацию (12) бегущей тетки на 0 градусов
+ Сделал выделение объекта и выбор цели действия

2008.09.23
+ Сделал примерный вид главного окна
отображение и прокрутка карты
отображение и навигация с помощью мини-карты
отображение и прокрутка объектов

2008.09.22
! Начало создания проекта
+ Много думал