Четверг, 28 Марта 2024, 20:04

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » 3D движки для разработки игр » уроки по Esenthel Engine
уроки по Esenthel Engine
NimphomaniakДата: Четверг, 22 Апреля 2010, 14:26 | Сообщение # 1
Квадрат
Сейчас нет на сайте
доброго времени суток всем!
в этой теме я буду выкладывать свои переводы статей и уроков для 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 Апреля 2010, 17:04
SlavyanOOsДата: Четверг, 22 Апреля 2010, 14:54 | Сообщение # 2
Problems, developer?
Сейчас нет на сайте
Nimphomaniak, неплохо! Посмотрю этот двиг. Ставлю +!
NimphomaniakДата: Суббота, 24 Апреля 2010, 16:41 | Сообщение # 3
Квадрат
Сейчас нет на сайте
Шапку обновил.
дабавил мини статью Структура папки Data




самая легкая книга по С++ тут
Glob1Дата: Суббота, 24 Апреля 2010, 16:47 | Сообщение # 4
~~Айседор~~
Сейчас нет на сайте
Неплохо, как нибудь и с этим двигом познакомлюсь
NimphomaniakДата: Суббота, 01 Мая 2010, 18:22 | Сообщение # 5
Квадрат
Сейчас нет на сайте
Шапку обновил.
Исправил некоторые ошибки.
Добавил Урок №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 Апреля 2010, 18:25
DDTAAДата: Воскресенье, 02 Мая 2010, 15:47 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Честно? :D
В принципе, полезно конечно изучающим, но я не уверен, что многие изучают этот движок ввиду ОТНОСИТЕЛЬНОЙ(не обижайся) слабости.
Вот взялся бы ты переводить скажем S2(+Крутые тени, аи, удобство, С++) ну или Торку 3д(+почти всё визуально, даже редактор интерфейсов, но минус: необходимость много чего дорогого докупать), было бы здорово. Или унити на крайняк(многим проблема C# и дорогие исходники).
Тогда бы и желающих было больше и комьюнити бы стало собираться. Но это я сейчас с позиций своих интересов пишу. А так: ты всё равно приносишь пользу. И кому-то это должно быть полезно, ведь админы ничего не переводят, пользователи тоже практически нет. А желающих игростроить, но не знающих иностранных языков ОЧЕНЬ много.


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




самая легкая книга по С++ тут
FlamebergeДата: Суббота, 08 Мая 2010, 02:30 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
продолжу труд 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 Мая 2010, 02:34
NimphomaniakДата: Суббота, 08 Мая 2010, 03:38 | Сообщение # 9
Квадрат
Сейчас нет на сайте
Flameberge,
ты открыл проект не в MS Visual C++ Express 2010 а MSVS C# 2008 smile




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




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

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



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

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



Разрабатываеться:
флеш игра для соц. Сетей (Бои друзей) - временное название!
3д игра (пока без названия)
ЮзыкДата: Суббота, 28 Мая 2016, 02:15 | Сообщение # 16
частый гость
Сейчас нет на сайте
Цитата Nimphomaniak ()
...продолжение будет, но...

г-н. Nimphomaniak, неужто и вы тоже забросили сей продукт?
И совсем-совсем никто его не пользует?
Так ведь он единственный (кроме Юнити) согласен работать на моем допотопном железе wink
А с кем я буду тереть?
TLTДата: Суббота, 28 Мая 2016, 13:41 | Сообщение # 17
Сейчас нет на сайте
Цитата Юзык ()
А с кем я буду тереть?

Так ты не молчи - начинай тереть сам, а там подтянутся... =)


Дао, выраженное словами, не есть истинное Дао.
ЮзыкДата: Суббота, 28 Мая 2016, 16:25 | Сообщение # 18
частый гость
Сейчас нет на сайте
Цитата TLT ()
Так ты не молчи - начинай тереть сам, а там подтянутся... =)

Понял, спасибо!
Оно бы конечно с обсуждением передвинуться с "уроков" куда в более подходящее место...
но первые вопросы лучше всего обтереть тут, так как касаются они именно этих уроков (№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 сработает и бут у меня более новая версия движка?
Форум игроделов » Движки для разработки игр и сложные системы разработки » 3D движки для разработки игр » уроки по Esenthel Engine
  • Страница 1 из 1
  • 1
Поиск:

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