Фабричный метод

Раз тут такая пьянка пошла, то и я внесу свою лепту :)

В этой статье я кратко расскажу о таком порождающем паттерне проектирования как «фабричный метод», а также приведу пример того, где его можно использовать касательно игр.


Читать дальше →

Паттерн Singleton

А давайте расскажу интересное — про паттерн проектирования Синглтон. Кто-то знает и пользуется, а кому-то вдруг и пригодится.

forever singleton

Согласно одному из определений, паттерн проектирования — это пример наиболее удачного проектного решения в области объектно-ориентированного программирования, описание взаимодействия объектов и классов для решения стандартной задачи проектирования. Другими словами — это наиболее удачный подход к построению структуры классов и взаимосвязи между ними для решения некой стандартной задачи в проектировании программы.

Синглтон («Singleton» — одиночка) используется в случае, если на все приложение необходим только один экземпляр определенного класса, доступ к которому можно будет иметь из любого места.

Предположим, что мы имеем некий класс SoundManager, который отвечает за воспроизведение всех звуков в игре. Скажем, есть у него публичный метод playExplosionSound(). До того, как мне стало известно о синглтоне, для того, чтобы вызвать этот метод из какого-нибудь глубоко упрятанного класса, приходилось делать что-то вроде myParent.myParent.soundManager.playExplosionSound(), а то и ещё померзостней.

При помощи синглтона это всё делается проще. Мы создадим статическую переменную instance в классе SoundManager, и при инициализации класса будем, во-первых, сохранять в неё свежесозданный экземпляр класса, а если эта переменная непуста, то выдавать ошибку, т.к. кто-то явно пытается создать второй экзепляр SoundManager.

Существует стопицоттыщмильёнов реализаций синглтона и, похоже, каждый программист считает долгом придумать свою. Я опишу пару очень простых, без изысков.
Читать дальше →

Релиз ShapeFit (Flash & Android)

ShapeFit
Состоялся релиз первой головоломки ShapeFit от Scrollgroup.

Поиграть можно на Kongregate или Newgrounds.
Читать дальше →

Stage3D / AGAL с нуля. Часть 3 – Hello Triangle

Итак, вы уже начитались первой и второй частей и хотите наконец чего-то более насущного. Поехали.

Можете начать со скачивания исходников здесь.

В этой статье мы научимся рендерить треугольники при помощи чистого Stage3D. Будет немного информации об AGAL, без которой не получится отобразить что-либо на экране, но не волнуйтесь, это не так сложно, как кажется.
Мы много говорили о вершинах в последних статьях. Вершина — это точка в пространстве, которая вместе с двумя другими образует треугольник в пространстве.
Читать дальше →

Stage3D / AGAL с нуля. Часть 2 – Анатомия программы Stage3D

Добрый день, это вторая статья на тему Stage3D / AGAL, она будет тоже теоретической, как и первая. Ждите практику в следующей статье.

Анатомия программы Stage3D


Перед тем, как начать работу над нашим первым треугольником, давайте сперва взглянем на структуру программы в Stage3D. Приведенная далее информация так же будет касаться WebGL программ и низкоуровневого 3D программирования в целом.

Читать дальше →

Stage3D / AGAL с нуля. Часть 1 – Азы

Добрый день, дорогие друзья.

В сети до сих пор довольно мало туториалов Stage3D / AGAL, а тем более на русском, поэтому я решил сделать несколько переводов статей об этом замечательном инструменте. Сегодня мы взглянем на гранит, который предстоит грызть, но к процессу пока не приступим. Под катом некоторое количество вводной информации по Stage3D / AGAL.
Читать дальше →

Моё обновление отладочного симулятора для Flash CS6

Привет всем! Вот и свершилось — вышел Flash Professional CS6!
Рассказывать что и как стало в нем круче для iOS / Android разработки чем было в CS5.5 и Flash Builder я не буду. Речь пойдет совершенно о иной вещи.

Каждый, кто уже поставил пакет CS6 и попытался собрать приложение под iOS/Android был приятно удивлен — появляется окошко с девайсом, где можно не только поиграть с TouchEvents, для полной отладки без наличия девайса — можно сразу и службу геолокации попробовать, покрутить акселерометр.

Но встроенный симулятор выглядит очень убого и не «вкусно» — черный экран и серый фон. Не понятно.
встроенный симулятор в flash cs6
Читать дальше →

Честный таймер

На днях у меня возникла резко возникла необходимость в «правильном» таймере для генерации событий. Когда затестировал стандартный Timer на маленьких временных интервалах я пришел в тихий ужас, например, на величине тика 125мс я получил колоссальное расхождение между реальными шагами порядка 30 процентов или около того. И вот я стал думать, а что же мне вообще делать?
Читать дальше →

CPMStar: решение проблемы криворуких рекламщиков

Маленькая заметочка для тех, кого бесят баннеры цпмстар, ломающие флешку.
Читать дальше →

Простейший сервер на ASP.NET (C#) для Flash-игр и их связка

Привет всем мастерам отечественного игростроя и не только.

В этой небольшой статье я хочу рассказать о том, как я делал, делаю и возможно буду делать серверы для своих игр в связке Flash AS3 + Windows Server + ASP.NET (C#) + MSSQL Server. Ничего нового или уникального в этой статье нет. Это один из десятков вариантов как быстро сделать серверную часть и связку с ней для клиента. Применяю описанный метод в многопользовательских социальных играх (и приложениях). Но, осмелюсь предположить, что и в однопользовательских играх это вполне применимо, особенно когда речь идет о сохранении профиля на сервере и/или сборе всяческой статистики.

flash + .net
Читать дальше →