Я уже много лет горю идеей с нуля создать браузерную онлайн игру с радостью поделюсь выводами, к которым я пришёл по данному вопросу за столь длительное изучение этого вопроса... всё по пунктам:
A. ТЕОРИЯ
Время Ворда и Блакнота...
На этом этапе я советовал бы пользоваться этими двумя прожками и писать, записывать, конспектировать всё что вам приходит в голову...
1. Абсолютно любую игру надо начинать с развития Идеи.
Не просто придумать, а придумать, продумать и развить эту Идею, иначе ваша идея может со временем вам разонравиться, а развивая её, вы не только подогреете собственный интерес к ней но и увеличится ваш энтузиазм что тоже является не маловажным при создании и разработке чего либо.
На этом этапе необходимо самому себе ответить на вопрос: "в каком Мире и времени будет проходить игровое действие?" и "какого жанра будет ваш мир?":
Стандартные игровые временные:
- Каменный век
- Средние Века
- Реальность
- Кибер-панк
- Футуристическое будущее
2. Выбирается Игровой Жанр
Далее стоит выбрать в каком жанре будет ваша игра:
- Arcade, Quests, Fighting, Racing, Strategy, FPS, TPS и др.
а так же определить возможности взаимодействия с другими игроками, какой будет ваша игра:
- Одиночая Игра
- Игра несколькими игроками сразу
- MMO и др.
3. Продумывается Gameplay(Геймплей)
Это один из важнейших этапов создания игры, к которому вы будите возвращаться ещё не раз!
На этом этапе надо подумать и ответить на нижеследующие вопросы:
- какие действия будут доступны игроку?
тут я бы советовал записывать все мысли что приходят в голову (как правило в хаотичной последовательности) затем прочесть записи добавить те что пришли во время прочтения, затем убрать те что представляют собой одно и тоже (бывает что по началу мысли кажутся разными а в последствии понимаете что это один и тот же бред) затем идёте вниз по списку и добавляете больше конкретики к каждой мысли... что бы потом не спрашивать у своего мозга: "Что ты имел ввиду под этой фразой?"
Необходимо так же продумать ещё и такие вещи как:
- Взаимодействие игрока с окружающим миром.
Что он может и при каких условиях. К примеру Войти в пещеру
- Взаимодействие игрока с другими игроками.
К примеру Торговля, Нападения
- Социальную составляющую (Добавление в друзья, Публикация в соц. сетях, Реферальные программы)
Если это РПГ то надо так же продумать:
- Рассы
- Классы
- Профессии
- Способности(Магия)
- Всевозможные предметы (их типы и классификация)
- Древо развития персонажей
Если Стратегия то надо продумать :
- Строения
- Юнитов
- Древо развития Игрока
Для любой игры характерны:
- Игровые ресурсы
Они бывают виртуальные (зарабатываемые в игре) и реальные (реал, донат)
Для других жанров описывать подробно не буду, думаю логика этого пункта ясна...
О чём ещё тут можно подумать: донат ( что вы будите продавать если будите - какие услуги), аккаунты, петы, флай, Рейды, Пати, Свадьбы, Апгрейды - это ведь всё тоже часть геймплея... всё на геймплее мозг высох... иду дальше)
В Общем в этом пункте вы описываете всё то чем предстоит заниматься игрокам и всё что он может, с чем они взаимодействуют , как они взаиможействуют . Стоит отметить тот факт что вы уже выбрали жанр игры и теперь у вас есть рамки за которые вам не желательно выходить, что бы не нарушать жанр, иначе у вас будет смешивание жанров, что не есть очень хорошо т.к. это куда сложней в реализации и продумывании логики движка.
4. На этом этапе я бы очень советовал накидать приблизительный план Игровой Экономики.
По чему Приблизительный: Да потому что Экономика - это совокупность отношений, складывающихся в системе производства, распределения, обмена и потребления(Wiki). Вот так... Короче тут надо придумать каким способом будут добываться игровые ресурсы. Как часто они будут добываться? В Каком количестве? Можно ли улучшить скорость, количество добываемых ресурсов (если да то думаем как? и идём в пункт А.3. записывать) Так же подумать как будут расцениваться в игре предметы, Юниты , Сзтоения, Способности, от чего будет зависить их стоимость и что на неё будет влиять. (чуете сколько предстоит работы?)
Почему "накидать" а не сделать идеальную экономику сразу же?
Экономика на самом деле очень сложная часть игры и достигается баланс в экономике только спустя многие дни или даже месяца... В общем лучше сперва сделать то что надо сбалансировать, затем уже заниматься балансом...
Поэтому - накидать... причём в процессе "набрасывания" вы уже почувствуете какой она должна быть...
P.S. Я бы советовал задействовать в этом пункте Excel...
5. Сюжет.
Сюжет это та ниточка которая связывает Игрокам руки и ноги, заставляя распутывать себя, интригуя неожиданными поворотами и фиеричными развязками.
Какой бы классный Геймплей вы не придумали без сюжета игра потеряет к себе интерес.
B. ИНТЕРАКТИВ в картинках
Пришёл этап рисования...
Не советовал бы я сразу после Раздела - А браться за программирование т.к. Всё вышеописанное это лишь Идея, без чёткого визуального восприятия таковой... Вот что бы это исправить и нужен ещё 1 раздел.
Тут всё немного попроще... Здесь представляем что мы Игрок перед которым форма регистрации с полями:
1. Зарисовываем форму что бы понять как будут распологаться поля, кнопки, подсказки, иконти и т.п.(если у вас есть перечисленные элементы)
зарегились (в воображаемой форме) что дальше?... дальше наверное письмо с подтверждением почты но это можно пропустить пока... далее начинается самое интересное, надо представить себе Интерфейс...
т.е. Вот зарегился игрок или просто ввёл свои данные для того что бы войти в игру... и что он будет видить при входе в игру... Интерфейс это у нас расположение кнопок и окон несущих различную информацию...
так же стоит подумать о визуальном виде всяческих подсказок и оповещалок (новый квест, достижения, сообщения)
хоп... Достижения...go Раздел А пункт 3...
Далее представляем каждое окошко по очереди которыми вы хотите наградить игру, это могут быть:
- Окно Заданий
- Окно Достижений
- Окно Настроек
- Окно Экипировки
- Окно Инвентпря
- Окно Крафта
- и разные другие примочки...
Я бы советовал на самом деле в ходе визуализации, перед зарисовкой, записывать что именно вы хотите видеть и на каком этапе, т.е. Какие кнопки, как называются?, что они делают?... и другие элементы в зависимости от жанра... затем уже имея набор необходимых элементов из них делать Интерфейс... так слегка проще... Но в этом пункте вы тоже будете периодически возвращаться к истокам что бы: добавить, подправить, перенести, убрать
не бойтесь изменений... главное что бы интерфейс был удобным и понятным... иначе пользователь не разберётся в нём и покинет игру...
Советы:
- не используйте сразу супер графику и рисунки, сперва лучше сделать для тестовой версии игры графику от балды, что бы не терять время на её рисовку, а рисовать уже утверждённые вещи...
- Рассчитывайте при позиционировании элементов на то что у вас может появиться идея ещё что нибудь вставить рядом с каким нибудь элементом... либо что элементов может быть множество... к примеру квестовые оповещения вдруг у вас будет оповещение тип:
- Квест Выполнен
- Уровень Повышен
- У вас Новое Задание
- У Вас Новое задание
т.е. тут 4 оповещалки сразу... и если такого не предусмотреть, то либо вёрстка полетит к чертям либо игрок не увидит 3 других оповещения...
C. ПРАКТИКА
1. Базы Данных
Первый этап практики я бы отметил это создание Архитектуры базы данных.
тут надо правильно распределять по таблицам данные которые вы хотите сохранять на сервере.
К примеру таблица `users` с полями: id, login, passsword, email, gender, birthday, charborn, avatar
таблица `world` с полями: id, x, y, city, url, type
и таких таблиц будет не мало... Ну не менее 20 вроде, для средненькой сложности игрушки...
При этом так же надо уже учитывать какие связи будут между таблицами...
2. Серверная Часть
на этом этапе уже необходимо продумывать логику движка игры:
- какие будут события и условия;
- Определять всевозможные Типы и Структуры для элементов игры;
- анализировать насколько схожи условия;
- возможность написания универсальных функций;
описывать этот этап смысла особого я не вижу, т.к. врятли кто поймёт о чём идёт речь
это уже жёсткий кодинг...
3. Клиентская Часть
на этом этапе продумывается логика клиентской части Игры:
В принципе вы это уже сделали в разделе B
но на этом этапе оно всё реализуется...
тоже описывать не буду т.к. тот же кодинг те же действия что и с серверной частью...
D. КОММАНДА
Я реалист.
В одиночку всё вышеперечисленное сделает лишь Настоящий Гений, я имею ввиду то что:
все задумки и идеи будут реализованы;
оно будет функционировать без фатальных багов;
игра не загнётся за первый месяц;
А так глядя на мир трезвыми глазами и здравым рассудком могу сказать что длятого что бы сделать свою браузерную игру надо учиться не только:
программировать на (JS,PHP,MySQL),
верстать (HTML, CSS),
рисовать (Photoshop, CorelDraw, Flash),
тестировать,
строить архитектуры БД
но так же Вам придётся научиться управлять человеческими ресурсами которые будут в вашей команде...
А для начала необходимо эти ресурсы приобрести, точнее заполучить...
Далее назначать им задачи, а полученный от них результат компоновать в единый "продукт"...
Большенство из нас и тех кто это читает прогеры, соответственно Вам скорей всего понадобится хотя бы 1 нормальный художник т.к. браузерная игра должна сперва визуально привлечь игрока, а привлекает игра своими картинками и иллюстрациями, при наличии изображений унылого характера, вы только оттолкнёте пользователей...
Так же нужен хороший дизайнер... который из ваших зарисовок Раздела В должен будет сделать "канфетку"...
В некоторых случаях, при отвутствии знаний или опыта, могут потребоваться:
Верстальщики,
PHP-Програмисты,
JavaScript-програмисты,
SEO-шники
а в некоторых случаях Деньги и Мозги
конец
P.S. Я не стал описывать процесс создания GUI т.к. это ещё больше текста и это наверное отдельная тема...
Вот вроде в общих словах Вам описал: "что нужно что бы самому сделать и создать браузерную онлайн игру?" ( с нуля )
В общем процесс этот весьма увлекательный, но и весьма Трудоёмкий, а так же сложный...
Я уже года эдак 2 - 3 хочу сделать игру вот добрался до раздела С =Р
Всё вышеописанное является моим ИМХО... возможно я где то не прав, но как мне думается схема вполне приемлема...
Если есть ошиПки сори... я безграмотный