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) --------------------------------------------- Всем привет я вернулся и теперь меня интересует нужно ли продолжать переводить?
Честно? :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 Мая 2010, 02:34
бугага, действительно. но трабла та-же: MSVS C# 2008 у меня снесён (sharpdevelop раньше использовал) и поставил именно MS Visual C++ Express 2010 и открыл именно его... А! хрен с ним. format C: и поставлю всё заново. не привыкать
Duskly, у вас установлен Visual C++ ? Если да - то запустите MSVS C++ и откройте проект. Если нет - то нужно скачать Visual C++ и с помощью него открыть проект, далее скомпилировать. На Visual C# данный проект не скомпилируется.
жаль, я просто думал там можно перейти как то, чтобы не качать! Разрабатываеться: флеш игра для соц. Сетей (Бои друзей) - временное название! 3д игра (пока без названия)
г-н. Nimphomaniak, неужто и вы тоже забросили сей продукт? И совсем-совсем никто его не пользует? Так ведь он единственный (кроме Юнити) согласен работать на моем допотопном железе А с кем я буду тереть?
Так ты не молчи - начинай тереть сам, а там подтянутся... =)
Понял, спасибо! Оно бы конечно с обсуждением передвинуться с "уроков" куда в более подходящее место... но первые вопросы лучше всего обтереть тут, так как касаются они именно этих уроков (№1-№4) Скачал я с офсайта версию фри для ознакомления, тоесть скачал Esenthel Installer, запустил его, инсталлер сам выкачал и установил файлы, создал кнопку запуска, прога этой кнопкой заводится и работает, создает проект, редактирует мир, сохраняет без процедур описанных в уроках №1-№4 что в начале данной темы. Что ж это получается? 1- Уроки эти слегка устарели, и теперь установка и создание проекта происходит в более простой и популярный, общепринятый способ стандартной инсталляции. 2- Или все таки процедуры с уроков (№1-№4) обязательны иначе... не будет счастья?
Esenthel меня конечно преследует, требует орпеделиться с лицензией - то ли я соглашаюсь на демоверсию, то ли лицензирую вводя ключи (которых у меня конечно же нет, знакомлюсь же). От преследования удается пока отделаться простым закрытием окна преследования и продолжать работу. Позволяет даже импортировать хаймеп террейна. Но надолго ли такая халява, через пару дней лавочку не закроют? Опасаюсь подтверждать демку так как (возможно) потеряю некоторый функционал редактора, что уже было на движке s2). Шо делать? - соглашаться ли на демку (возможности не обрежут)? - проходить ли процедуры с "уроков №1-№4 ??? Нашел где-то Esenthel_2.0_Installer (версии движка 2.0) но инсталляция постоянно в эроре каких- то файлов. Опять вспоминаются "уроки" №1-№4. Может пройдя эти процедуры Esenthel_2.0_Installer сработает и бут у меня более новая версия движка?