пятница, 31 августа 2012 г.

Funny Numbers


Итак, следующая игра сделана!!! Это был мой старый проект, который я возродил. Портирование (+ полная перерисовка графики) на платформу Android заняло приблизительно 1 день. Игра называется Funny Numbers и уже доступна на Google Play ( Funny Numbers HD ) бесплатно. Поддерживается, пока что, только один язык: Английский, но там и так все интуитивно понятно. Сначала выбираем максимальный множитель (до 5, до 7 или до 10) затем выбираем количество заданий (5 или 10). Сама игра представляет собой обучающую игру, которая поможет изучить таблицу умножения детям (и взрослым).  Первая версия игры (1.0.0) не содержит рекламы. 
Вот скрины игры: 



понедельник, 27 августа 2012 г.

Интересные факты об Андроид

Знаете ли вы что:

  • Первое устройство, которое использовало ОС Android, было создано компанией HTC. Это был смартфон T-Mobile G1 (его презентация состоялась 23 сентября 2008 года).
  • Первая стабильная версия системы Андроид называлась: Android 1.0 "Apple Pie".
  • Android 4.0 Ice Cream Sandwich получила золото за лучшую платформу на 2012 User Experience Awards. 
  • Специально для платформы Android было создано семейство шрифтов Droid и Roboto. 
  • По данным на февраль 2011 года устройства с ОС Android лидировали в списке самых популярных смартфонов Великобритании, оставив позади iPhone 4 c iOS.


Топ 3 лучших игр для Андроид

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

1. Angry Birds
Замечательная игра о птичках и неоспоримый лидер среди мобильных игр (и не только). В которой нужно очистить уровень от зеленых свиней, используя суперспособности каждой птицы.
2. Minecraft
Еще одна гениально простая, которая на сегодняшний день уже заработала около 50$ миллионов на Google Play. В игре нету ни супер современной графики, ни интригующего сюжета, но все-таки в ней есть то, что крайне необходимо всем мобильным играм: захватывающий геймплей. Казалось бы что ничего кардинально нового уже придумать невозможно, но Minecraft доказывает, что это не так.

3. Ninja Chicken
Еще один яркий представитель игровой индустрии. Занятный геймплей, симпатичная графика и веселая музыка не позволят вам заскучать. А уровни которые генерируются случайным образом можно проходить по несколько раз.

Теория и практика создания игр (часть 5)

Итак мы на финишной прямой, сейчас мы рассмотрим последние этапы создания игры:


9. Запись звука и музыки.
10. Устранение багов и лагов игры.
11. Создание релизной версии продукта.

9. Запись звука и музыки.
Как ни странно, но для меня этот этап стал самым сложным. Самое сложное это найти подходящие звуки для игры, у крупных фирм конечно есть уже готовые наборы звуков (или для них их записывают коммерческие студии), а вот простому программисту (или художнику) нужно постараться, чтобы записать все в домашних условиях. Для записи звуков нужно использовать качественный микрофон, чтобы не было шумов и щелчков. Формат звуков для Андроид - WAV. Насчет других не экспериментировал. С музыкой дела обстоят проще (хотя кому как), у меня есть небольшой опыт написания не очень сложных музыкальных композиций. У кого есть возможность (таких очень мало), лучше пишите все в живую (гитара, ударные , синтезатор, бас), у кого нету - используйте редакторы (например FL Studio), которых сейчас предостаточно. Конечно если у вас есть знакомый композитор, то попросите его написать музыку, которая будет передавать атмосферу игры (вспомните такие игры: FlatOut 2, PainKiller; какая там музыка!!! и как хорошо она вписывается в игру; хотя есть много игр в которых есть легкая незаметная мелодичная музыка, которая передает много эмоций).

Теория и практика создания игр (часть 4)

Продолжим рассмотрение этапов создания игры:

6. Программирование игровой логики (бета-версия).
7. Создание и подгонка уровней для игры.
8. Оптимизация программного кода игры.


6. Программирование игровой логики (бета-версия).
Допустим у нас уже есть хотя бы один игровой уровень определенного формата (желательно формат не менять на протяжении всей разработки, а продумать его сразу). Теперь нам нужно написать само ядро игры (движок), которое будет работать обрабатывать все элементы игры: логику, прорисовку, звуки и т.д.
Сейчас я вам приведу пример структуры ядра моей игры Gravity Booster:
1) Установка параметров системы (разрешение экрана, скорость обновления игры, загрузка CPU, параметры очистки экрана, параметры связанные с качеством физики в игре).
2) Загрузка всех медиафайлов игры (картинки, музыка, звуки и возможно уровни).
Если файлов очень много, то лучше всего этот процесс автоматизировать. Вот пример кода на App Game Kit (это моя основная среда разработки):

for i=1 to 100
    mediafile$="image/objects/"+str(i)+".png"
    if GetFileExists(mediafile$)=1
        LoadImage(i,mediafile$)
    endif
next i

Этот код можно еще упростить, если убрать проверку на существования файла.
Вот собственно и сама среда разработки (AGK):

3) Создание основного цикла игры. Он будет выглядеть примерно так:
   а) проверка на прикосновение к экрану;
   б) обработка меню;
   в) загрузка и выгрузка уровней;
   г) сохранение настроек и игрового прогресса;
   д) обработка геймплея (проверка на выигрыш и проигрыш);

Желательно писать основной цикл не сплошным кодом, а разбить его на отдельные процедуры. Пример основного цикла с Gravity Booster `a:


DO
nowtime=GetSeconds()

TouchX=Round(GetPointerX())
TouchY=Round(GetPointerY())

gosub _touch    // процедура проверки прикосновений к экрану
gosub _check_menu   //  основная процедура игры которая управляет остальными процедурами

if GetRawKeyState(27)=1 then exit
if stop_game=1 then exit
 Sync()
LOOP

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


4) Тестирование кода (бета-версии) игры. Исправление явных ошибок в коде (частые вылеты с игры, зависания). Если вы писали исходный код очень аккуратно, то вам может и не понадобится исправлять ошибки, но тестировать игру нужно по любому (чем чаще - тем лучше).