Пятница, 25.05.2012, 05:29

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Страница 1 из 11
Модератор форума: Akyltist 
Форум игроделов » Движки для разработки игр и сложные системы разработки » 3D движки для разработки игр » уроки по Esenthel Engine
уроки по Esenthel Engine
NimphomaniakДата: Четверг, 22.04.2010, 14:26 | Сообщение # 1
Квадрат
Сообщений: 383
Сейчас нет на сайте
доброго времени суток всем!
в этой теме я буду выкладывать свои переводы статей и уроков для Esenthel Engine.

Добавлено (21.04.2010, 19:48)
---------------------------------------------

Урок №1

Установка Esenthel Engine ©

by Nimphomaniak

Visual Studio ©

Esenthel Engine поддерживает Microsoft Visual C++ 2008 или 2010 (на старых версиях разработка прекращена)
Вы можете скачать бесплатно Visual C++ отсюда - http://www.microsoft.com/express/download/

PhysX System Software

Этот шаг необязателен, но если вы планируете использовать физику в Esenthel Engine то вам нужно скачать последнюю версию PhysX System Software.

Esenthel Engine

Esenthel Engine SDK:
Для роботы вам понадобится Esenthel Engine SDK

Заголовочные файлы и Библиотеки:

Скопируйте папку "EsenthelEngineSDK\Installation\EsenthelEngine" в "Microsoft Visual Studio\VC\include"
Скопируйте файл "EsenthelEngineSDK\Installation\EsenthelEngine.lib" в "Microsoft Visual Studio\VC\lib"
Скопируйте файл "EsenthelEngineSDK\Installation\EsenthelEngineDX10+.lib" в "Microsoft Visual Studio\VC\lib"
Скопируйте файл "EsenthelEngineSDK\Installation\EsenthelEngine64.lib" в "Microsoft Visual Studio\VC\lib\amd64"
Скопируйте файл "EsenthelEngineSDK\Installation\usertype.dat" в "Microsoft Visual Studio\Common7\IDE"

Добавлено (22.04.2010, 14:26)
---------------------------------------------

Урок №2

Создание нового проекта

by Nimphomaniak

Копирование папок

Наиболее простой способ создать новый проект копировать папку "EsenthelEngineSDK\Tutorials" в любое место на вашем винчестере , пример - "D:\My Game"
Вы можете удалить из папки все ненужные вам файлы (оставьте только те что на скриншоте).

Удалите все уроки в папке Source оставив лишь один CPP файл в той же папке.

Папка Data

Эта папка нужна для хранения всех ваших файлов (Модели, текстуры, музыка…).
Давайте создадим пустую папку "Data" в папке "My Game" это должно выглядеть так:

Для получения информации о структуре папки "Data" посмотрите спойлер ниже

Файлы Движка

Изучая движок вы узнаете, что каждое приложение созданное на базе Esenthel Engine загружается из"engine.pak" архива.

Постройка приложения

Теперь вы готовы для того чтоб построить свое первое приложение с помощью 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-Вставляем этот код:

Code
/******************************************************************************/
#include "stdafx.h"
/******************************************************************************

          Здесь представлены самые елементарные функции росования

/******************************************************************************/
void InitPre()
{
          App.name("Drawing");
          App.flag=APP_NO_FX;
          Paks.add("../data/engine.pak");
}
/******************************************************************************/
Bool Init()
{
          return true;
}
/******************************************************************************/
void Shut()
{
}
/******************************************************************************/
Bool Update()
{
          if(Kb.bp(KB_ESC))return false;
          return true;
}
/******************************************************************************/
void Draw()
{
          D.clear(WHITE); // заливка фона белым цветом

          // рисование такста
          {          
             D.text(0,0,"Default text settings"); // Стандартная функция вывода текста

             TextDS tds; // настройки рисования текста, размер шрифта, цвет и тд..

             tds.color=BLACK; // черный цвет
             tds.scale*=1.4f; // изменяем масштаб
             D.text(tds,0,-0.2,"Bigger");
                    
             tds.scale/=1.4f;    // востановить масштаб
             tds.align.set(1,0); // настройка выравнивания текста
             D.text(tds,0,-0.4,"Right Aligned");

             tds.color=GREEN;     // зеленый цвет
             tds.align.set(-1,0); //  настройка выравнивания текста
             D.text(tds,0,-0.6,"Colored Left Aligned");

             tds.align.set(0,0);                // стандартное выравнивание
             tds.color=ColorHue(Time.time()/3); // включение рандомного цвета. 3- интервал
             D.text(tds,0,-0.8,"Multi colored");
          }

          // рисование примитивов
          {
             D.rect  (BLUE  , 0.5,0.5, 0.6,0.6);  // рисование голубого прямоурольника в заданых координатах
             D.circle(RED   , 0.1, -0.5,0.5);     // рисование красного круга. 0.1-радиус.(-0.5,0.5) - координати
             D.dot   (BLACK , 0,0.5);             // рисование черной точки по заданным координатам -(0,0.5)        
             D.line  (GREEN , -0.4,0.5, 0.4,0.6); // рисование зёленой линии
             D.tri   (YELLOW,Vec2(-0.5,-0.4),Vec2(-0.4,-0.2),Vec2(-0.4,-0.4)); // рисование жёлтого треугольника.
          }
}
/******************************************************************************/

4- Компилим, смотрим результат, експерементируем cool
Все комментарии переведены!
Разбираемся и задаем свои вопросы.
Урок №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; //  переместить  точку вверх, когда нажата 'стрелка вверх '        

        if(Kb.bp(KB_Z))point.x-=0.1; // когда'z' нажата , переместить точку влево
        if(Kb.br(KB_X))point.x+=0.1; // когдаx' отпущена , переместить точку вправо
        if(Kb.bd(KB_C))point.y+=0.1; // когда'c' дважды нажата , переместить точку вверх

        return true;
}
/******************************************************************************/
void Draw()
{
        D.clear(WHITE);

        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- Компилим, смотрим результат, експерементируем cool
Все комментарии переведены!
Разбираемся и задаем свои вопросы.
__________________________________________________________________________________________

Урок №6

Выводим картинку на екран.

by Nimphomaniak

1-Создаем новый проект
2-Создаем новый .СРР файл
3-Вставляем этот код:

Code
/******************************************************************************/
#include "stdafx.h"
/******************************************************************************/
Image image;
/******************************************************************************/
void InitPre()
{
     App.name("Image");
     App.flag=APP_NO_FX;
     Paks.add("../data/engine.pak");
}
/******************************************************************************/
Bool Init()
{
     image="../data/particle/star.gfx"; // Загрузка картинки из архива
     return true;
}
/******************************************************************************/
void Shut()
{
}
/******************************************************************************/
Bool Update()
{
     if(Kb.bp(KB_ESC))return false;
     return true;
}
/******************************************************************************/
void Draw()
{
     D.clear(RED);

     // виводим картинку на екран
     image.draw(-0.5,0.5, 1,1); // рисуем картинку по таких координатах:(-0.5,0.5) с размером- (1,1)
}
/******************************************************************************/

4- Компилим, смотрим результат, експерементируем cool
Все комментарии переведены!
Разбираемся и задаем свои вопросы.
__________________________________________________________________________________________
Урок №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;

    Gui.update(); // обновляем GUI

    return true;
}
/******************************************************************************/
void Draw()
{
    D  .clear(WHITE);
    Gui.draw (); // рисуем GUI
}
/******************************************************************************/

4- Компилим, смотрим результат, експерементируем cool
Все комментарии переведены!
Разбираемся и задаем свои вопросы.



самая легкая книга по С++ тут


Сообщение отредактировал Nimphomaniak - Воскресенье, 25.04.2010, 17:04
 
SlavyanOOsДата: Четверг, 22.04.2010, 14:54 | Сообщение # 2
Problems, developer?
Сообщений: 1807
Сейчас нет на сайте
Nimphomaniak, неплохо! Посмотрю этот двиг. Ставлю +!
 
NimphomaniakДата: Суббота, 24.04.2010, 16:41 | Сообщение # 3
Квадрат
Сообщений: 383
Сейчас нет на сайте
Шапку обновил.
дабавил мини статью Структура папки Data



самая легкая книга по С++ тут
 
Glob1Дата: Суббота, 24.04.2010, 16:47 | Сообщение # 4
~~Айседор~~
Сообщений: 359
Сейчас нет на сайте
Неплохо, как нибудь и с этим двигом познакомлюсь
 
NimphomaniakДата: Суббота, 01.05.2010, 18:22 | Сообщение # 5
Квадрат
Сообщений: 383
Сейчас нет на сайте
Шапку обновил.
Исправил некоторые ошибки.
Добавил Урок №4.

Добавлено (24.04.2010, 18:46)
---------------------------------------------
добавил Урок №5

Добавлено (25.04.2010, 16:26)
---------------------------------------------
Обновил шапку!
добавил Урок №6

Добавлено (25.04.2010, 17:04)
---------------------------------------------
Шапку обновил.
Исправил некоторые ошибки.
Добавил Урок №7.

Добавлено (01.05.2010, 18:22)
---------------------------------------------
Всем привет smile
я вернулся и теперь меня интересует нужно ли продолжать переводить?
wacko




самая легкая книга по С++ тут


Сообщение отредактировал Nimphomaniak - Суббота, 24.04.2010, 18:25
 
DDTAAДата: Воскресенье, 02.05.2010, 15:47 | Сообщение # 6
заслуженный участник
Сообщений: 606
Сейчас нет на сайте
Честно? :D
В принципе, полезно конечно изучающим, но я не уверен, что многие изучают этот движок ввиду ОТНОСИТЕЛЬНОЙ(не обижайся) слабости.
Вот взялся бы ты переводить скажем S2(+Крутые тени, аи, удобство, С++) ну или Торку 3д(+почти всё визуально, даже редактор интерфейсов, но минус: необходимость много чего дорогого докупать), было бы здорово. Или унити на крайняк(многим проблема C# и дорогие исходники).
Тогда бы и желающих было больше и комьюнити бы стало собираться. Но это я сейчас с позиций своих интересов пишу. А так: ты всё равно приносишь пользу. И кому-то это должно быть полезно, ведь админы ничего не переводят, пользователи тоже практически нет. А желающих игростроить, но не знающих иностранных языков ОЧЕНЬ много.

Да, я новичок, поэтому вопросы у меня иногда глупые......
Да, у меня действительно такой ник.......
...А я не знаю, почему по профилю мне 28 лет и я Адольф:-)...
 
NimphomaniakДата: Воскресенье, 02.05.2010, 16:03 | Сообщение # 7
Квадрат
Сообщений: 383
Сейчас нет на сайте
DDTAA,
спасибо за советы smile
я подумаю!



самая легкая книга по С++ тут
 
FlamebergeДата: Суббота, 08.05.2010, 02:30 | Сообщение # 8
заслуженный участник
Сообщений: 502
Сейчас нет на сайте
продолжу труд Nimphomaniak'а

Урок №8

3D

by Flameberge

1-Создаем новый проект
2-Создаем новый .СРР файл
3-Вставляем этот код:

Code
/******************************************************************************/
#include "stdafx.h"
/******************************************************************************/
void InitPre()
{
     App.name("3D");
     App.flag=APP_NO_FX|APP_MS_EXCLUSIVE; // это прячет мышку
     Paks.add("../data/engine.pak");
}
/******************************************************************************/
Bool Init()
{
     Cam.dist=5; // установить начальную дистанцию в 5 метров
     return true;
}
/******************************************************************************/
void Shut()
{
}
/******************************************************************************/
Bool Update()
{
     if(Kb.bp(KB_ESC))return false;

     CamHandle(0.1,10,CAMH_ROT|CAMH_ZOOM); // простое управление камерой позволяющее зумить минимум 0.1М (10см) и максимум 10 метров, а также позволяет крутится и увеличивать

     return true;
}
/******************************************************************************/
void Draw()
{
     D.clear(WHITE);

     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
 
NimphomaniakДата: Суббота, 08.05.2010, 03:38 | Сообщение # 9
Квадрат
Сообщений: 383
Сейчас нет на сайте
Flameberge,
ты открыл проект не в MS Visual C++ Express 2010 а MSVS C# 2008 smile



самая легкая книга по С++ тут
 
FlamebergeДата: Суббота, 08.05.2010, 13:57 | Сообщение # 10
заслуженный участник
Сообщений: 502
Сейчас нет на сайте
бугага, действительно.
но трабла та-же: MSVS C# 2008 у меня снесён (sharpdevelop раньше использовал) и поставил именно MS Visual C++ Express 2010 и открыл именно его...
А! хрен с ним. format C: и поставлю всё заново. не привыкать
 
DarCryДата: Понедельник, 16.08.2010, 17:47 | Сообщение # 11
был не раз
Сообщений: 7
Сейчас нет на сайте
А будет продолжение?)
 
NimphomaniakДата: Понедельник, 16.08.2010, 19:17 | Сообщение # 12
Квадрат
Сообщений: 383
Сейчас нет на сайте
DarCry
будет, но не раньше 01,09,2010 smile



самая легкая книга по С++ тут
 
DusklyДата: Пятница, 18.11.2011, 19:39 | Сообщение # 13
Rush Games
Сообщений: 418
Сейчас нет на сайте
Quote (Nimphomaniak)
ты открыл проект не в MS Visual C++ Express 2010 а MSVS C# 2008

а у меня тоже С#, а как открыть в C++??


Разрабатываеться:
флеш игра для соц. Сетей (Бои друзей) - временное название!
3д игра (пока без названия)
 
Ex3mDMДата: Пятница, 18.11.2011, 20:42 | Сообщение # 14
участник
Сообщений: 137
Сейчас нет на сайте
Duskly, у вас установлен Visual C++ ? Если да - то запустите MSVS C++ и откройте проект. Если нет - то нужно скачать Visual C++ и с помощью него открыть проект, далее скомпилировать. На Visual C# данный проект не скомпилируется.

SourceTechnology Prod.
------------------------------
Coder: C++, C, GML, HTML.
------------------------------
Помог? Поблагодари. :)
 
DusklyДата: Пятница, 18.11.2011, 23:32 | Сообщение # 15
Rush Games
Сообщений: 418
Сейчас нет на сайте
Quote (Ex3mDM)
На Visual C# данный проект не скомпилируется.

жаль, я просто думал там можно перейти как то, чтобы не качать!


Разрабатываеться:
флеш игра для соц. Сетей (Бои друзей) - временное название!
3д игра (пока без названия)
 
Форум игроделов » Движки для разработки игр и сложные системы разработки » 3D движки для разработки игр » уроки по Esenthel Engine
Страница 1 из 11
Поиск:

Все права сохранены. GcUp.ru © 2008-2012 Рейтинг