CodeBlocks + HGE
Содержание: 1. Пару слов о CodeBlocks. 2. Пару слов об HGE. 3. Ставим HGE.
4. Выведение.
Пару слов о CodeBlocks.
CodeBlocks - это кросплатформенная IDE для разработки программ на языках С/С++. Умеет работать со многими компиляторами, программа насколько проста в освоении, настолько и эффективна. Множество настроек, которые вы можете подогнать под свой вкус, от расскраски Editor-а, до userTamplate-ов, помогут вам быстро освоиться в этой среде разработки. Об установке данной программы для Windows, я достаточно подробно рассказал в заметке: CodeBlocks + SDL ( http://dimanche.ucoz.ru/publ/1-1-0-31 ). Правда там я использовал старую версию этого ИДЕ RC1, теперь я расскажу как пользоваться новой. На момент написания статьи самой новой была версия Code::Blocks 8.02. Схема написания версий несколько изменилась, теперь цифры означают дату релиза : например версия 8.02 была выпущена в феврале 2008 года. (отсюда и 8.02) А вот в установке ничего не изменилось, как была уставновка "в три щелчка" так и осталась.
Пару слов об HGE.
Движок HGE намного моложе тех движков, о которых я уже рассказал (SDL, Allegrо). Основан на концепции другого движка ( Grim 2D API http://koti.mbnet.fi/temper/grim/docs_states.html) Первая версия HGE вышла в 2004 году. Его бессменный автор, наш соотечественник Pavel Lebedev (Haaf). Он всегда открыт для общения по поводу развития и совершенствования HGE, его можно найти на оффициальном сайте движка и на самом, пожалуй большом, портале разработчиков gamedev.ru . Как и множество других движков HGE имеет как свои достоинства, так и свои недостатки. К достоинствам я могу отнести: простоту понимания принципов функционирования и использования команд, открытый исходный код, а так же много дополнительных элементов облегчающих разработку игры, таких как класс для векторов, классы для элементов ГУИ, система частиц с редактором и менеджер ресурсов. К недостаткам отнесу то, что для вывода звука используется библиотека Bass, всем она хороша, но платная. Нет работы с сетью, впрочем есть сторонние либы. К тому же движок заточен под DirectX, то есть другими словами для Windows. Но благодаря группе энтузиастов во главе с elmortem-ом уже делается порт движка под OpenGL. Как понял сейчас тестируется на MAC-е. У HGE имеется несколько ответвлений Qaf, nHge, MHA, sHA. Как я понял, самые удачные мысли и код будут введены потом и в оффициальные релизы движка. Последний релиз на момент написания статьи 1.81 от 18 марта 2008. Комьюнити есть, но к сожалению англоязычный форум более активен чем русскоязычный. Однако, хватит теории, давайте уже покрутим его в своих руках, как говорится лучше один раз увидеть ... )))
Ставим HGE.
Свежую версию движка можете скачать здесь: http://hge.relishgames.com/downloads.html весом не более 4 Мб. Я скачал 1.7. Как вы могли заметить и SDL и Allegro имеют папки с названиями include, bin, lib. Содержимое этих папок, есть основа этих движков(и других тоже). В архиве HGE помимо документации и исходников есть и эти папки (папки bin нет, но dll-ки лежат прямо в корне каталога).
Итак как вы уже поняли,что для любого движка надо указать нашей IDE, где находятся эти папки. (это замечание для любой ИДЕ, которую вы используете) Либо скопировать их содержимое в папки с такими же названиями в CodeBlocks. Я придерживаюсь первого варианта, распакуйте HGE например в диск С: C\hge_17. Теперь запускаем ИДЕ, создаем пустой проект, указываем папку, где он будет размещаться, компилятор, которым будем компилить. Ок. У нас теперь есть пустой проект без файлов. Добавим новый файл CTRL+SHIFT+N назовите его hgettest.cpp и вставьте следующий код:
[code]
#include "hge.h"
HGE *hge = 0;
bool FrameFunc() { if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true;
return false; }
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
hge = hgeCreate(HGE_VERSION);
hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);
hge->System_SetState(HGE_TITLE, "HGE Tutorial 01 - Minimal HGE application");
hge->System_SetState(HGE_WINDOWED, true);
hge->System_SetState(HGE_USESOUND, false);
if(hge->System_Initiate()) { hge->System_Start(); } else { MessageBox(NULL, hge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL); }
hge->System_Shutdown();
hge->Release();
return 0; }
[/code]
Ничего я не изобрел. Это листинг первого тутора, он находится в папке c:\hge_17\tutorials\tutorial01 как видите ничего сложного в коде нет. Всё интуитивно понятно. Для того чтобы скомпилировать наш первый проект, нам надо указать директории в которых содержатся либы и заголовочные файлы(хидеры) движка. dll-ки должны лежать в папке проекта, либо в ..\CodeBlocks\bin или в C:\windows\system32 (подробнее об этом в предыдущих частях). Итак идем в Project->Build options здесь мы можем настроить все параметры "сборки" нашего проекта, от компилятора до флагов компиляции. Идем в закладку Search Directories там видим закладки Compiler и Linker в первой из них надо указать путь до include-ов движка во второй до lib движка
Теперь идем в закладку Linker Settings и прилинковываем две либы из папки lib\gcc вы же помните- у нас компилятор minGW.
Кстати, заметьте что для Debug и Realese версий можно указывать все эти параметры отдельно. Помните об этом. Жмыхаем Ок и возвращаемся в редактор. Теперь F9. И ...
Отлично! Мы сделали это! Кстати, не забудьте, что если вы захотите использовать Sprite-ы то надо включать(#include) в проект и hgesprite.h, если партиклы то включайте hgeparticle.h и так далее, в общем в туторах все хорошо расписано. В конце приводятся ссылки на них.
Выведение.
На этом пожалуй, разрешите откланиться. Я заканчиваю серию статей по объединению IDE CodeBlocks и игровых движков. Надо сказать, что существует несметное количество таких или подобных движков и библиотек, а сколько их еще будет... Поэтому я не могу объять необъятное. Я дал вам принципы, которые работают во всех случаях. И на протяжении этих трех статей вы, должно быть, выявили некоторые закономерности. Надо признать, что я не силен в художественном оформлении слова и в литературности изложения, но прилагающиеся скриншоты помогут вам понять, то что я не смог донести словами. Надеюсь, что это было для вас познавательно и полезно. Спасибо за внимание!
Материалы по HGE:
|