Отправляет email-рассылки с помощью сервиса Sendsay

Как заработать в интернет

  Все выпуски  

От идеи до игры


От идеи до игры, выпуск 1

Это первый выпуск рассылки «от идеи до игры» посвященной разработке игр на Delphi, а если вам не терпится начать обучение, можете пропустить три следующих абзаца!
Уроки нацелены на начинающих программистов, но и более опытные программисты, возможно, тоже смогут узнать что-то новое. Игры мы будем писать с использованием движка Omega, на его основе можно писать как 2D так и 3D игры. Он как нельзя лучше подходит для начинающих игроделов и имеет маленький размер, всего около 500 кб. Более полную информацию и скачать движок вы можете по адресу http://onedgames.mirgames.ru/
Я долго думал с чего начать обучение и решил, что мы будем следовать следующей схеме. В первой части я выпущу несколько вводных уроков, что бы ознакомить с движком тех, кто его в глаза не видел. После вводных уроков во второй части я начну описывать принципы создания игрового интерфейса (кнопочки окошки и т.п.). В третьей части после небольшого дополнительно вводного материала мы попробуем создать небольшую игру!
В последствии, я изменю и дополню концепцию обучения, свои предложения по изменению концепции занятий вы можете отправлять по адресу rain.zero@mail.ru

Ну а теперь мы можем перейти непосредственно к обучению! Пока, что я буду рассматривать Omega 2D Engine, со временем мы доберемся и до 3D. Как я уже писал, выше в первой части будет вводный материал, но это не значит, что будет много скучного текста и все. Нет, будет много примеров кода и подробные комментарии.
Сегодня мы научимся устанавливать движок, но если бы это было все, то мой урок как мне кажется, был бы не полным, по этому я решил, что сегодня мы научимся еще этот движок инициализировать!
Итак let begin! Вы уже должны были, скачали файл omega_sdkp.zip, вот прямая ссылка http://onedgames.mirgames.ru/omega/omega_sdkp.zip. На момент написания урока версия движка 0.8 Preview RC 6. Распакуйте архив, в архиве шести папок, что в них и зачем они нужны написано в файле AboutFolder.txt находящийся в том же архиве, а я расскажу лишь про те которые нам сейчас нужны. В папке bin\rus\ находится файл OMEGA.dll этот файл нужно копировать в папку каждого вашего проекта-игры или просто скопируйте в папку WINDOWS.
Далее открываем папку headers, там мы видим две папки C++ и Delphi поскольку мы пишем на Delphi открываем соответствующую папку, там есть два нужных нам файла OMAGA.pas и OMAGA_CLASSES.pas. В этих файлах находятся ссылки на процедуры и функции, содержащиеся в файле OMAGA.dll вот почему нам так необходимо всегда иметь эту dll, а во втором файле содержится объектно-ориентированная модель этого движка. Т.к. эта рассылка нацелена на начинающих программистов, я буду рассматривать не ОО версию движка, следовательно,
файл OMEGA_CLASSES.pas нам не нужен. А более опытные программисты, если захотят сами смогут разобраться с ОО версией движка. Файл OMEGA.pas необходимо скопировать в папку с вашей игрой и подключать к проекту игры (Project\Add to project), а если вы решили использовать ООП, то вам необходимо так же скопировать и подключит к проекту файл OMEGA_CLASSES.pas.
Вот и все, движок подключен к проекту, теперь мы можем переходить ко второй части урока, инициализации и запуск движка!
Вот исходный код инициализации движка вместе с комментариями (хотя комментировать здесь особо нечего):

uses OMEGA in 'OMEGA.pas'; // Подключаем хидер к игре

var
MyTimer1 : PTimer; // Создаем таймер

// Процедура предназначена для быстрой загрузки ресурсов игры
procedure Load;
Begin
End;

// Инициализация
procedure Init;
Begin
End;

// Отрисовка экрана
procedure Draw;
Begin
End;

// Процедура выхода
procedure Quit;
Begin
End;

// Таймер
procedure Timer1;
Begin
if Key_Down( K_ESCAPE ) Then OE_Quit;
End;

begin
MyTimer1 := Timer_Create( @Timer1, 1000, 0 );
OE_RegProcedure( SYS_FASTINIT, @Load ); // Загрузка
OE_RegProcedure( SYS_INIT, @Init ); // Инициализация
OE_RegPRocedure( SYS_DRAW, @Draw ); // Отрисовка
OE_RegPRocedure( SYS_QUIT, @Quit ); // Выход
OE_SetScreenOptions( 800, 600, 32, 0, TRUE, FALSE );
OE_SetAdvancedOptions( FALSE, FALSE );
OE_ShowCursor( TRUE );
OE_Init;
end.

Вот и все, друзья! До следующей недели!

В избранное