Adobe Flash (ранее известная как Macromedia Flash), или просто Flash — мультимедийная платформа, используемая для создания векторной анимации и интерактивных приложений (в том числе, игр), а также для интеграции видеороликов в веб-страницы. Adobe Flash позволяет работать с векторной, растровой и ограниченно с трёхмерной графикой, а также поддерживает двунаправленную потоковую трансляцию аудио и видео. В качестве основных средств разработки используются проприетарные пакеты Adobe Flash Professional и Adobe Flash Builder 4 (Adobe Flex Builder).
ActionScript — объектно-ориентированный язык программирования, один из диалектов ECMAScript, который добавляет интерактивность, обработку данных и многое другое в содержимое Flash-приложений. ActionScript исполняется виртуальной машиной (ActionScript Virtual Machine), которая является составной частью Flash Player. ActionScript компилируется в байткод, который включается в SWF-файл. С помощью ActionScript можно создавать интерактивные мультимедиа-приложения, игры, веб-сайты и многое другое. Flash-контент воспроизводится с помощью целого ряда программных средств, но доминирующее положение на рынке занимает официальный проприетарный Adobe Flash Player, распространяемый в качестве бесплатного плагина для большинства современных браузеров. Также SWF-файлы можно просматривать с помощью различных свободных плееров, например, Gnash или swfdec. Во втором случае возможно создание исполняемых exe-файлов (projector), когда swf-файл включается во Flash Player.
Среди всех компьютерных игра самыми распространенными и популярными являются онлайн флеш игры. А ведь ещё совсем недавно флеш игры мало кто воспринимал всерьез. Всё больше и больше людей ежедневно стают пользователями Интернета. В связи с этим, индустрия развлечений постепенно перемещается во Всемирную паутину. Среди основных направлений развития игровой интернет индустрии следует выделить флеш игры. Стремительное развитие технологии Flash позволяет делать игры ещё более интересными и совершенными. С чем же связан столь стремительный рост популярности флеш игр? Флеш игра – это не просто интересный и увлекательный сюжет, но и множество ярких красок, и великолепное озвучивание. Доказательством того, что данное направление онлайн развлечений имеет огромные перспективы, являются миллионы поклонников со всех уголков мира. В некоторых компаниях эти игры становятся настоящей проблемой, потому как сотрудники вместо работы увлекаются захватывающим игровым процессом.
В настоящее время в Интернете существует огромное число сайтов, предлагающих своим посетителям совершенно бесплатно поиграть в самые разнообразные флеш игры. Как правило, тысячи флеш игр, представленных на игровых порталах, подразделяются на жанры: стратегии, аркады, квесты, гонки и т.д. Это позволяет пользователям быстро находить игры по своим предпочтениям. Главным и неоспоримым преимуществом всех интернет флеш игр является то, что их не нужно загружать на свой компьютер, устанавливать и настраивать, тратя уйму времени. Такую игру можно запустить на любом компьютере, который подключен ко Всемирной паутине. Это означает, что вы сможете наслаждаться своей любимой игрой в любом месте и в любое время. Обновление флеш игор проходит практически каждый день, при этом значительно улучшается дизайн игры, ее звуковое сопровождение, спецэффекты, стратегия, последняя к тому же рассчитана на пользователей разного возраста.
Некоторое время на четвертом курса я работал разработчиком флеш игр в одной молодой фирме. Моей задачей было написание игр для игрового портала. В конечном варианте портал должен был представлять собой клон широко известного игрового портала на mail.ru. Сложность состояла в том, что мы начинали проект с нуля, т.е. еще не было ни готовых исходников ни принципов написания программ. Над проектом с начала работало 2 программиста и 2 художника, причем художники как бы они ни были профессионалами в своей области, но работать со средой флеш они не умели. Это перелаживало на программистов часть их работы связанную с переносом изображений в среду программирования и созданием анимации. Первой игрой, которую мы писали, был морской бой. Возможно, некоторые читатели, которые когда-либо пытались написать эту игру на любом другом языке, скажут, что нет ничего проще (ну кроме крестиков ноликов), но в случае написания этой игры на флеш для портала появился ряд трудностей.
Во-первых, игры на флеш должны изобилировать большим количеством красивой анимации от красивого динамичного меню до игровой анимации (горящие тонущие корабли, стреляющие пушки и.т.д. в случае с игрой «морской бой»).
Во-вторых, т.к это сетевая игра, то игровой процесс должен проходить через сервер. Сервера для таких порталов могут быть написаны на множестве языков: Perl, PHP, VC++, C# и.т.д. Главным критерием для выбора языка, при написании сервера, это возможность удобной и быстрой работы с базами данных. В нашем случае было решено использовать VC++ и базу данных MS SQL. Трудность состояла в том, что написанием сервера мы не занимались. Его разработка должна была начаться через несколько месяцев другой командой разработчиков. От нас требовалось придумать протокол передачи данных, по возможности универсальный, который потом использовался для всех игр портала. Также не имелось возможности полноценно протестировать сетевую часть игры. Для проверки работоспособности нам пришлось создать простейший эхо-сервер, который принимал пакеты, отсылаемые игрой.
В-третьих, при написании игр для Интернета критичным является размер исполнительного файла. На нас было наложено ограничение по размеру, которое, необходимо было соблюдать. В связи с этим, структуру проекта необходимо было тщательно продумывать, для избежания появления излишеств, в чем, несомненно, очень помогало объектно-ориентированная структура языка Actionscript 3. Еще не мог не обрадовать принцип построения исходного файла в среде флеш: все изображения, аудио и видео файлы, включенные в проект, собирались в исходный файл и дополнительно сжимались и оптимизировались, так что соотношение размера проекта к исполняемому файлу могло достигать 6:1.
Последней трудностью при создании игры морской бой было создания искусственного интеллекта для тренировочной игры. Вроде нет нечего легче т.к выбор места атаки компьютеры выбирается генератором случайных чисел, но чтобы компьютер стал выигрывать у игрока хотя бы 1 раз из 4-х необходимо приложить гораздо больше усилий.
Ну и как обычно поджимающие сроки сдачи проекта подливали масло в огонь. Но, не смотря ни на что, игра была закончена в срок. Несмотря на то, что на мой взгляд, были некоторые недочеты в дизайнерском решении, ну и возможно в программной реализации, но программа на все 100% работоспособна и конкурентоспособна. Ниже я привел несколько скриншотов бета версии игры. На рисунке 1 изображен спрайт главного меню игры, на рисунке 2 спрайт расстановки кораблей, а на рисунке 3 сам игровой процесс.
Рис. 1. Спрайт главного меню игры «Морской бой».
Рис. 2. Спрайт расстановки кораблей.
Рис. 2. Игровой процесс игры «Морской бой».