Esenthel Engine поддерживает Microsoft Visual C++ 2008 или 2010 (на старых версиях разработка прекращена) Вы можете скачать бесплатно Visual C++ отсюда - http://www.microsoft.com/express/download/
PhysX System Software
Этот шаг необязателен, но если вы планируете использовать физику в Esenthel Engine то вам нужно скачать последнюю версию PhysX System Software.
Наиболее простой способ создать новый проект копировать папку "EsenthelEngineSDK\Tutorials" в любое место на вашем винчестере , пример - "D:\My Game" Вы можете удалить из папки все ненужные вам файлы (оставьте только те что на скриншоте).
Удалите все уроки в папке Source оставив лишь один CPP файл в той же папке.
Папка Data
Эта папка нужна для хранения всех ваших файлов (Модели, текстуры, музыка…). Давайте создадим пустую папку "Data" в папке "My Game" это должно выглядеть так:
Для получения информации о структуре папки "Data" посмотрите спойлер ниже
Структура папки Data
by Nimphomaniak
Давайте представим что папка с нашей игрой это "D:\My Game". В этой папке создаем папку "Data" - "D:\My Game\Data", В документации и встроенных в движок программах эта папка будет называться "Game Data Folder". Эта папка очень важная так как в ней должны хранится все ресурсы вашей игры. В програмном коде все ссылки на ресурсы должны вести к папке "Data". Папка Data может архивироваться Во время разработки вашей игры, вам нужно будет сохранять ресурсы в папке “Data” . В исходном коде указывать где хранятся ресурсы можно с помощью команды IOPath (эта функция указывает размещение нужной вам папки). Когда ваша игра готова к Дистрибуции, вы можете заархивировать папку "Data" используя утилиту Converter. Для того чтоб ваша игра читала данные не с папки а с "data.pak" архива вам нужно использовать команду Paks.add. Скорость обработки ресурсов в архиве намного больше чем из простой папки к тому же вы можете зашифровать ваши файлы. Стандартная структура Это пример стандартной структуры папки "Data":
Code
Anim – Все что касается анимации должно хранится здесь Enum – Все перечисления храните здесь Mtrl – Все Текстуры храните здесь Obj – Все об'екты (Модели, Физические тела и тд…) Chr – Все что касается персонажей Static – е статические модели! Item – тут думаю все понятно ... Shader – папка для Шейдеров 2 – Shader Model 2.0 3 – Все шейдеры для Shader Model 3.0 World – Здесь все Миры
Файлы Движка
Изучая движок вы узнаете, что каждое приложение созданное на базе Esenthel Engine загружается из"engine.pak" архива.
Вам нужно скопировать этот архив в папку "Data" из "EsenthelEngineSDK\Data"
Постройка приложения
Теперь вы готовы для того чтоб построить свое первое приложение с помощью Esenthel Engine Запустите файл "D:\My Game\Tutorials.sln" и переместите "D:\My Game\Source\00 - Start.cpp" в Solution Explorer.
Теперь скомпилируйте ваш первый проект
Поздравляю вы создали свой первый проект в Esenthel Engine На следующем уроке мы разберем простую программу Hello World __________________________________________________________________________________________________________
Урок №3
Написание простой программЫ.
by Nimphomaniak
открываем тот проект что создали в уроке №2 и смотрим исходный код.
Удаляем все что есть и вставляем тот код что здесь.
Code
/******************************************************************************/ #include "stdafx.h" // Подключение заголовочного файла #include "resource.h" // Подключение ресурсов (иконка) /******************************************************************************/ void InitPre() // Настройки программы перед началом роботы { // Здесь вы можете включить/выключить нужные вам функцыи движка // Название приложения, Розрешение екрана и тд...
App.name("Start"); // Название вашего приложения App.icon=(Char*)IDI_ICON1; // Иконка Нашего приложения App.flag=APP_NO_FX; // Включение базовых функций рисования (без 3Д и прочих ефектов) Paks.add("../data/engine.pak"); // Загрузка ресурсов движка } /******************************************************************************/ Bool Init() // Главные Функцыи программы { // Здесь вы можете загрузить разные файлы для вашей игры
return true; } /******************************************************************************/ void Shut() // Функция закрытия программы {
} /******************************************************************************/ Bool Update() // Обновление { if(Kb.bp(KB_ESC))return false; // выход из программы по нажатию на ESC return true; // продолжение } /******************************************************************************/ void Draw() // Функцыя рисования { // Здесь вы говорите движку что рисовать на екране!
D.clear(TURQ); // Заливает все голубым цветом D.text (0, 0.1,"Hello World"); // рисование текста (0, 0.1)- координаті текста на екране D.text (0,-0.1,"Translate by Nimphomaniak"); D.text (0,-0.2,"other tutorials search in http://gcup.ru/forum/46-5415-1#79679"); } /******************************************************************************/
Все комментарии переведены! Разбираемся и задаем свои вопросы.
Урок №4
Рисование
by Nimphomaniak
1-Создаем новый проект 2-Создаем новый .СРР файл 3-Вставляем этот код:
4- Компилим, смотрим результат, експерементируем Все комментарии переведены! Разбираемся и задаем свои вопросы.
Урок №5
ввод
by SlavyanOOs
1-Создаем новый проект 2-Создаем новый .СРР файл 3-Вставляем этот код:
Code
/******************************************************************************/ #include "stdafx.h" /******************************************************************************/ Vec2 point; // позиция точки Char c; // символ нажат /******************************************************************************/ void InitPre() { App.name("Input"); App.flag=APP_NO_FX; Paks.add("../data/engine.pak"); } /******************************************************************************/ Bool Init() { Text_ds.color =BLACK; // здесь изменяем стандартный цвет текста Text_ds.shadow=0; // здесь отключаем тени return true; } /******************************************************************************/ void Shut() { } /******************************************************************************/ Bool Update() { if(Kb.bp(KB_ESC))return false;
if(Kb.c())c=Kb.c(); // если символ нажат, запомнить его, чтобы вывести на экран потом if(Kb.b(KB_RIGHT))point.x+=Time.d()/2; // переместить точку вправо, когда нажата 'стрелка вправо ' if(Kb.b(KB_LEFT ))point.x-=Time.d()/2; // переместить точку влево, когда нажата 'стрелка влево ' if(Kb.b(KB_DOWN ))point.y-=Time.d()/2; // переместить точку вниз, когда нажата 'стрелка вниз' if(Kb.b(KB_UP ))point.y+=Time.d()/2; // переместить точку вверх, когда нажата 'стрелка вверх '
D.dot(RED ,Ms.pos); // нарисовать красную точку в позиции курсора мыши D.dot(GREEN,point ); // нарисовать зеленую точку в позиции 'point'
if(Ms.b(0))D.dot(BLACK, -0.1,0.4, 0.1); // когда ЛКМ нажата, нарисовать большую черную точку if(Ms.b(1))D.dot(BLACK, 0.1,0.4, 0.1); // когда ПКМ нажата, нарисовать большую черную точку
D.text(0,0.9, S+"character : "+c ); // нарисовать запомненный символ D.text(0,0.7, S+"mouse : "+Ms.pos); //вывести позицию курсора D.text(0,0.6, S+"point : "+point ); // вывести позицию точки } /******************************************************************************/
4- Компилим, смотрим результат, експерементируем Все комментарии переведены! Разбираемся и задаем свои вопросы. __________________________________________________________________________________________
Урок №6
Выводим картинку на екран.
by Nimphomaniak
1-Создаем новый проект 2-Создаем новый .СРР файл 3-Вставляем этот код:
// виводим картинку на екран image.draw(-0.5,0.5, 1,1); // рисуем картинку по таких координатах:(-0.5,0.5) с размером- (1,1) } /******************************************************************************/
4- Компилим, смотрим результат, експерементируем Все комментарии переведены! Разбираемся и задаем свои вопросы. __________________________________________________________________________________________
Урок №7
GUI
by Nimphomaniak
1-Создаем новый проект 2-Создаем новый .СРР файл 3-Вставляем этот код:
Code
/******************************************************************************/ #include "stdafx.h" /******************************************************************************/ Window window; // gui Окно Text text ; // gui Текст Button button; // gui Кнопка /******************************************************************************/ void InitPre() { App.name("GUI"); App.flag=APP_NO_FX; Paks.add("../data/engine.pak"); D.mode(800,600); } /******************************************************************************/ Bool Init() { Gui +=window.create(Rect(-0.5,-0.3,0.5,0.2) ,"special for gcup.ru"); // Создаем окно window+=text .create(Vec2(0.5,-0.15f) ,"translate by Nimphomaniak" ); // Создаем текст и вставляем в окно window+=button.create(Rect(0.35f,-0.37f,0.65f,-0.3f),"LOL" ); // создаем кнопку и вставляем в окно return true; } /******************************************************************************/ void Shut() { } /******************************************************************************/ Bool Update() { if(Kb.bp(KB_ESC))return false;
DDTAA, да-да но если есть вопросы обращайся по панде есть много руских материалов но там тебе графа непонравится 100% напишы кароче что ты знаеш и умееш и потом тебе посоветуют хорошый двиг! небойся даже для тех кто в програмировании 0 всеравно что то найдут!
DDTAA, а ты скачай двиг и демки все и посмотри хорошенько!!! и увидиш что двиг на многое способен! и вообше кто судит двиг по скринах из демок?? хм... наверное такие Ну*ы как ты. кстати двиг можно купить за 200 баксов вообщем вот моя формула (скачай-посмотри-освой-а потом уже чтото говори и критикуй)
DDTAA, ты не прав! на самом деле очень мощный двиг! думаю то что за 3 года его сеществование появились 2мморпг и много синглов многое значит! уроки я счас перевожу! но там нет ничего сложного если знаеш си то за месяц можно освоить двиг в идеале! даже без инглиша!
ЗелёныйГоблин, ну тогда береш краску и обмазываеш сиди ром. выходиш на балкон и бросаеш в первые понравившыеся кусты)) Зеленая краска для того чтобы незаметили))