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;
Добавлено (01.05.2010, 18:22) --------------------------------------------- Всем привет я вернулся и теперь меня интересует нужно ли продолжать переводить?
Дата: Воскресенье, 02.05.2010, 15:47 | Сообщение # 6
заслуженный участник
Сообщений: 606
Сейчас нет на сайте
Честно? :D В принципе, полезно конечно изучающим, но я не уверен, что многие изучают этот движок ввиду ОТНОСИТЕЛЬНОЙ(не обижайся) слабости. Вот взялся бы ты переводить скажем S2(+Крутые тени, аи, удобство, С++) ну или Торку 3д(+почти всё визуально, даже редактор интерфейсов, но минус: необходимость много чего дорогого докупать), было бы здорово. Или унити на крайняк(многим проблема C# и дорогие исходники). Тогда бы и желающих было больше и комьюнити бы стало собираться. Но это я сейчас с позиций своих интересов пишу. А так: ты всё равно приносишь пользу. И кому-то это должно быть полезно, ведь админы ничего не переводят, пользователи тоже практически нет. А желающих игростроить, но не знающих иностранных языков ОЧЕНЬ много.
Да, я новичок, поэтому вопросы у меня иногда глупые...... Да, у меня действительно такой ник....... ...А я не знаю, почему по профилю мне 28 лет и я Адольф:-)...
CamHandle(0.1,10,CAMH_ROT|CAMH_ZOOM); // простое управление камерой позволяющее зумить минимум 0.1М (10см) и максимум 10 метров, а также позволяет крутится и увеличивать
SetMatrix(MatrixIdentity); // set matrix before drawing
Box (1 ).draw(BLACK); // рисует чёрный бокс радиусом в 1 метр if(Ms.b(0))Ball(1 , Vec(-3,0,0)).draw(BLACK); // когда нулевая кнопка мышки нажимается - создаётся черный бокс радиусом в одну единицу и на позиции (-3,0,0)
if(Ms.b(1))Tube(0.3,2, Vec( 3,0,0)).draw(BLACK); // когда первая кнопка мышки нажимается - создаётся черная труба радиусом в 0.1 единиц, 2 метра длинны и на позиции (3,0,0) } /******************************************************************************/
4- Компилим, смотрим результат, експерементируем Все комментарии переведены! Разбираемся и задаем свои вопросы.
з.ы. остальные потом выдам. поздно уже
Добавлено (08.05.2010, 02:30) --------------------------------------------- проблема: сделал всё по инструкции (файлы в нужное место покидал, всё как в документации), скачал весь нужный софт... и вылезает тут такое стоит MS Visual C++ Express 2010
Сообщение отредактировал Flameberge - Суббота, 08.05.2010, 02:34
бугага, действительно. но трабла та-же: MSVS C# 2008 у меня снесён (sharpdevelop раньше использовал) и поставил именно MS Visual C++ Express 2010 и открыл именно его... А! хрен с ним. format C: и поставлю всё заново. не привыкать
Duskly, у вас установлен Visual C++ ? Если да - то запустите MSVS C++ и откройте проект. Если нет - то нужно скачать Visual C++ и с помощью него открыть проект, далее скомпилировать. На Visual C# данный проект не скомпилируется.
SourceTechnology Prod. ------------------------------ Coder: C++, C, GML, HTML. ------------------------------ Помог? Поблагодари. :)
жаль, я просто думал там можно перейти как то, чтобы не качать!
Разрабатываеться: флеш игра для соц. Сетей (Бои друзей) - временное название! 3д игра (пока без названия)