Программирование в играх

Рейтинг: 1Ответов: 1Опубликовано: 21.05.2011

Добрый вечер, уважаемые господа! Пост первый, но прошу не счесть за тролля. Данный вопрос действительно очень важен для меня и я буду признателен Вашим ответам. Суть в том что я человек выросший на компьютерных играх. Начинал с ZX-Spectrum, потом была хт86 от Хундай (да,да такой вот лол из детства) где Принц за час бежал спасти принцессу. Много времени прошло, сотни игр были пройдены... потом что называется остепенился, завел свой бизнес и все бы хорошо - но осталась мечта детства делать игры самому. Но вот незадача, не совсем понимаю, как говорится "с какого конца браться". Из itшных навыков html, css, seo, ppc, smm и умение матерясь варить оптику на крыше в метель в декабре :D Сначала на * сайте рассказали про дизайн-доки, более-менее въехал, написал 3 штуки. Хорошие, в мелочах - от сценарки до математики. Геймерская душа подсказывает, что может выйти неплохо. Но на этом процесс встал. Собственно вопрос - какие технологии и языки применяются при написании хотя бы приложения для ВК или Facebook? Понимаю что должен быть флеш, action-script, само api соц сети... но понимаю все это так смутно, что чую - не туда рою. Соответственно такой же вопрос по браузерным.

Если в двух словах не ответить, то был бы счастлив пообщаться с кем то сведущем войсом, например в Скайпе. Или в личку, если тут есть. Возможно вообще сделать это как тренинг или консалтинг. Конечная цель моя, не стать гуру во всех возможных языках - но твердо понимать необходимые технологии и процессы для постановки конкретных задач специалистам.

На этом все, с уважением ко всем Дёша

Добавлено.

Спасибо большое за Ваши ответы, но меня больше интересуют не готовые редакторы, по типу WYSYWIG, а легкий экскурс в саму технологию. Например как то так - для приложения ВК требуется флеш, mysql или еще то то и то. Это подразумевает 2 вакансии на флеш графику, 1 на mysql или еще какие то. Так же крайне интересна серверная сторона приложения, на чем она строится?

Понимаю, что вопрос объемный, поэтому буду рад если Вы осветите любой из аспектов. Как говорится с миру по нитке.

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

Спасибо.

Ответы

▲ 4Принят

Браузерная игра хоть для соц сети хоть сама по себе состоит из 2 частей:

  1. клиент - то что загружается в браузер, и с чем взаимодействует юзер.

  2. сервер - программные компоненты общей логики игры, база данных и т.д., которые работают на удаленной машине-сервере (или серверах).

Клиент делается на Flash с применением ActionScript. Соотв. нужен программист на экшн скрипт и дизайнер-флешер. Ну и спец по звуку, раз уж игра. Альтернативой может быть клиент в виде апплета Java, но тут есть свои сложности, и я лично не особо представляю возможна ли интеграция джава-приложения в соц. сети. Вторая альтернатива - использование возможностей HTML5. Но это уже дело будущего, а пока для реальных проектов не актуально. Тем более, что новый Flash Player должен поддерживать аппаратное ускорение графики.

Сервер. В идеале сервер надо бы писать на Java и использовать БД PostgreSQL. В прочем, выбор БД - дело вкуса, лично я пока не видел ни одного вменяемого аргумента за MySQL, хотя тут могут быть варианты, связанные с быстродействием. Альтернативой Java могут быть любые серверные языки : PHP, Python, Ruby.

Преимущества Java - быстродействие, причем в десятки раз, по самым скромным подсчетам, в некоторых случаях более чем в 100. Альтернативные варианты - это скриптовые языки, а значит выполняются интерпретатором, посему и сильно медленнее.

Почему многие проекты пишутся на PHP - потому что на нем проще всего набрать команду. Язык очень простой, быстро осваивается, умельцев навалом. Если речь о действительно хороших спецах, то тут разницы никакой, их мало на любой платформе. Вторая причина почему - хостинг. PHP хостинг предоставляет любой провайдер, остальные же варианты более специфичные. Хотя если сервера и поддержка свои - это не проблема. Можно, вполне, писать на PHP, если основная логика игры закодирована в клиенте и сервер только регистрирует ключевые события геймплея. Если же логика игры отрабатывается сервером и быстродействие критично - то только Java. Как показывает моя геймерская практика, даже сервер на Java после 1000-1500 юзеров начинает тормозить. Особенно если это многопользовательская игра

В любом случае, вам понадобится опытный программист как системный архитектор (он же глава группы разработчиков), и команда програмеров попроще.

Python, Ruby - более здоровая альтернатива PHP, с точки зрения разработчика, но набрать команду под эти языки сильно сложнее чем на PHP. С хостингом тоже сложнее.

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

Второй момент - архитектура клиента. Тут основное - возможность малой кровью вносить изменения и дополнения. Обычно это реализуется модульной архитектурой и достаточно высоким уровнем абстракции между частями приложения. Серверной части это, несомненно, тоже касается.

Надеюсь, немного прояснил вопрос :)