Pull to refresh

Flash-игра «Мафия» в условиях «В контакте»

Reading time 3 min
Views 7K
Цель этой статьи — описание процесса создания приложения, на примере моей игры «Мафия» под «В контакте».
Тем, кто не знает (хотя лично я что-то очень сомневаюсь, что найдутся такие) что это за игра, рекомендую почитать ее описание на Википедии.

Если вы знаете, что такое As3, Flex, Java, многопоточность, постоянное сокетное соединение или вам просто интересно как пишутся flash-игры, то думаю пост для вас!
Под катом также найдется немного статистики.


Я – фанат «Мафии»


Именно так я называю себя с тех пор, как впервые в нее поиграл. Фанатами были все мои сокурсники, и это тоже неудивительно – в «мафию» играли все»! Когда же я стал профессионально заниматься разработкой Flash-игр, то задумался о написании собственной версии игры. Но все время чего-то не хватало. Однако эта мысль всегда служила фоном всему, что бы я ни делал.

Помог «Крокодил»


Поскольку была идея, то я постоянно мониторил в интернете ее реализацию. Но какой бы вариант мне не попадался – все время что-то не устраивало. Один недостаток объединял практически все версии – они были достаточно сложными. А мне хотелось создать такую игру, чтобы юзер просто, не задумываясь ни о чем, зашел и сразу же начал играть. И в этом мне помог «Крокодил» ‒ простая реализация сногсшибательной идеи! «Подвиснув» на несколько дней на зеленом хвостике контактовского «Гены», я нашел недостающее звено и принялся за написание собственной Flash-версии «Мафии». Но был еще один вспомогательный момент: так сложилось, что незадолго до начала работы, меня попросили помочь в реализации игры по написанному литературному сюжету. Однако там все оказалось гораздо сложнее, чем представлялось (он-лайн РПГ с большим количеством монстров на карте), и возможностей флеша не хватило. Проект сошел на «нет», но разработки остались. Именно эти разработки и пригодились мне при написании «Мафии» под «В Контакте». Соединив свою разработку с принципом игры «Крокодил», я получил то, что есть сейчас.

Дизайн


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

Какие инструменты я использовал для реализации идеи?


  1. Ресурсы, графика ‒ как я уже сказал, Adobe Flash 4.
  2. Код клиента – Action Script 3. Разработку вел в среде Flex.
  3. Сервер ‒ писал на Java. Здесь хочу сказать, почему выбрал именно Java. – Все просто. Посмотрел в интернете тесты на производительность Java и C++. Они мало чем отличались друг от друга, но Java очень похож на Action Script 3, что и послужило главным критерием выбора. Однако впоследствии этот выбор обернулся плюсами лично для меня:
    1. Скорость разработки возросла, потому что время переключения между языками сводилось к минимуму.
    2. В Java автоматизирована система работы с памятью, а мне, как не любителю лишних заморочек, это на руку.
    3. Сократилось общее время разработки, поскольку Java имеет много специализированных классов, предоставляемых разработчиками языка. Зачем изобретать велосипед, если его уже изобрели до меня?
    4. Многопоточный сервер, написанный на С++ ‒ довольно трудоемкая вещь по сравнению с такой же штукой на Java.
    5. Java запрещает не обрабатывать исключительные ситуации (конструкция try/catch).
  4. Связь клиента и сервера – осуществляется посредством постоянного сокетного соединения, а не на http-запросах, как это принято в большинстве случаев.
  5. Музыка ‒ написана профессиональным композитором-аранжировщиком в рамках спонсорской помощи.


Структура проекта


Игра построена по принципу горизонтального масштабирования, по крайней мере, я старался этого принципа придерживаться, потому что приложение писалось под «В Контакте», где аудитория потенциальных пользователей очень велика. Неделя после запуска игры показала, что аудитория растет лавинообразно, а это значит, что я был прав: меньше, чем за неделю, в игру поиграло более 15000 человек (без рекламы и продвижения – только по друзьям!), при одновременном минимальном количестве игроков 200 человек; максимальное количество игроков, одновременно он-лайн за это время было 600 человек. Для обслуживания всей этой аудитории сейчас хватает двух, работающих независимо друг от друга, «демонов» (экземпляров сервера). При возрастании нагрузки я планирую увеличивать количество «демонов», а их, в свою очередь, разносить по серверам.

Сроки написания игры


Игра была написана за 2 недели (при учете того, что я использовал предварительные разработки – о чем писал выше).

Пробная версия


В заключение хочу сказать, что с технической точки зрения игра запущена в варианте бета-версии: идет отладка всех процессов в условиях увеличения нагрузки; параллельно улучшается гейм-плей; уравновешиваются силы команд. Хочется добиться того, чтобы всем было приятно играть.

Ресурсы (статистика)


Игра запущена на выделенном сервере (спонсорская помощь друга).
Характеристики сервера:
  1. Intel Xeon X3440 2.53GHz
  2. 8 GB RAM
  3. мать Intel S3420GP

Один «демон» потребляет при минимальной нагрузке 0,3% процессора и 2% оперативной памяти. При повышении нагрузки увеличивается загрузка оперативной памяти. Загрузка процессора колеблется в пределах десятых долей процента (до 0,5). При этом сервер не обременен нагрузкой со стороны других проектов.

Ссылка на игру
Tags:
Hubs:
+5
Comments 36
Comments Comments 36

Articles