Ir al contenido

publicidad

Foto

ESENTHEL Engine. ¿Lo Conocian?


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
7 respuestas en este tema

  • IsGreen

  • Neonate

  • vida restante: 100%
  • Registrado: 12 ene 2009
  • Mensajes: 73
#1

Escrito 12 enero 2009 - 18:25

Saludos Foro.

Buscando modelos3d gratuitos he encontrando este engine del que no había escuchado hablar en ningún foro, pero creo que tiene muchas posibilidades y futuro.


ESENTHEL Engine es GRATUITO para su uso NO comercial.


Página oficial: http://www.esenthel....ne/screens.html

Más imágenes:
http://es.youtube.co...re=channel_page
http://es.youtube.co...re=channel_page
http://es.youtube.co...re=channel_page
http://es.youtube.co...re=channel_page
http://es.youtube.com/user/drean37
http://es.youtube.co...re=channel_page
http://www.moddb.com...senthel-engine2
http://www.devmaster...64112#post64112


Sitio de descarga de la SDK del engine: http://www.esenthel....e/download.html



Juegos creados con el engine:

Esenthel Game: http://www.esenthel....e/download.html

Cyber FX: http://es.youtube.co...tnb.pl/news.php

Forest Valley: http://es.youtube.co...php?readmore=19



HERRAMIENTAS: World Editor, Gui Editor, Mesh Editor, calculator, converter, Functions, Icons, Image Viewer, Mouse Extend, Pak Viewer, Synchronizer.

TEXTURAS: Each texture is required to be in GFX format, however importing of BMP PNG JPG TGA DDS formats is allowed.

Tipos de 'Mesh' que soporta:

3DS - 3D Studio (mesh, no custom normals)
ASE - Ascii Scene Export (mesh)
OBJ - Wavefront OBJ (mesh)
WRL - VRML97 (mesh)
X - DirectX (mesh + skin + animation)
XML - Ogre Xml (mesh + skin + animation)

SONIDO:

WAV - wave - no compression
OGG - ogg vorbis - lossy compression

VIDEO:

THEORA - ogg, ogm, ogv



Después de instalarlo he probado "algunos" ejemplos, todavía no he podido probarlos todos, que vienen en archivos de código fuente del c++ (.cpp). Estos son:


BASICOS:

Start.cpp, Drawing.cpp, Input.cpp, Image.cpp, Cache.cpp, Gui.cpp, 3D.cpp, Mesh.cpp


AVANZADOS:

*GEOMETRIA: Camera.cpp, Matrix.cpp

*GRAFICOS: 2D Effects.cpp, Color Transformations.cpp, Colors HSB.cpp, Dynamic Image.cpp, Font Make.cpp, Import Image.cpp, VI-Vertex Index Buffer.cpp

*GUI: Bars.cpp, Buttons.cpp, Tabs.cpp, Window Menu.cpp, List.cpp, ComboBox.cpp, Game Menu.cpp, Loading Gui Objects.cpp, Extending Gui Objects.cpp, Multiple Viewports.cpp

*MISC: Calculator.cpp, Config.cpp, Cpu.cpp, Cursor.cpp, Drag&Drop.cpp, File.cpp, FileFind.cpp, FileText.cpp, IO Path.cpp, Memory.cpp, Number.cpp, Pak.cpp, Pak Create.cpp, Pathfind.cpp, Random.cpp, Sort.cpp, States.cpp, Sort.cpp, States.cpp, Threads.cpp, Threads2.cpp, Video Playback.cpp, Zip.cpp

*SONIDO: Music.cpp, Sound.cpp, Sound 3D.cpp, Volume Groups.cpp

*NET: Downdload.cpp, Socket.cpp

*ANIMACION: Animation.cpp, Skeleton Points.cpp, Blending.cpp, Manual Editing.cpp

*PHYSICS: Physics.cpp, Multi shaped actor.cpp, Joints.cpp, Joints 2.cpp, Controllers.cpp, Testing.cpp, Detecting objects under cursor.cpp, Grabbing.cpp, Physical meshes.cpp, Ragdoll.cpp, Vehicle.cpp, Cloth.cpp

*RENDERING: Rendering.cpp, Sky.cpp, Fog.cpp, Bumpmapping.cpp, Viewport.cpp, Motion Blur.cpp, Materials.cpp, Shadows.cpp, Volumetric Lights.cpp, Ambient Occlusion.cpp, Early Z.cpp, Bloom.cpp, Depth of Field.cpp, Particles.cpp, Blood.cpp, Explosion.cpp, Layered Clouds.cpp, Volumetric Clouds.cpp, Water.cpp, Markers.cpp, Mesh Outline.cpp, Laser and Electricity.cpp, Multi-Threaded Rendering.cpp

*MESH: Grass.cpp, Grass 2.cpp, Separate parts rendering.cpp, Terrain.cpp, Tree.cpp

*DEMOS: Auto Depth of Field.cpp, Day Night Cycle.cpp, Facial Animation.cpp, Lights.cpp, Nature.cpp

*GAME BASICS: Character.cpp, World.cpp, World with Character.cpp, Lights.cpp, Saving and Loading.cpp, Pathfind.cpp, Doors.cpp, Custom Parameters.cpp, Extending Game Object Class.cpp, Dynamically Created Objects.cpp, Waypoints.cpp, Character Animations.cpp, Character Default Animations.cpp, Character Facial Animations.cpp, Character Ragdoll.cpp, Camera Modes.cpp, Camera Collisions.cpp, Object References.cpp, Big Overlays.cpp

*SIMPLE PROJECT (Simula el proceso de un juego convencional, pero no contiene ningún juego. Para que funcione tienes que agregar todos los archivos .cpp y .h de la carpeta): Intro.cpp, Menu.cpp, Main.cpp, Game.cpp


---------------------------------------



REQUISITOS INSTALACION:

Microsoft Visual C++ 2008 (ejecutarlo al menos una vez después de instalarlo):
http://www.microsoft...press/download/

DirectX SDK Nov08:
http://www.microsoft...&displaylang=en

PhysX System Software:
http://developer.nvi...ads.html#System

Después de haber instalado el software anterior, extraemos la carpeta 'EsenthelEngineSDK' que se encuentra en el archivo .rar del engine que hemos descargado de aquí: http://www.esenthel....e/download.html . Si utilizas windows Vista, mejor extraerlo fuera de la carpeta 'Archivos de Programa'.

Una vez hecho esto, ejecutamos VC++ 2008 y vamos al menú 'Herramientas-->Opciones'. Desde la ventana 'Opciones' seleccionamos 'Proyectos y soluciones' en la lista que aparece a la izquierda. Se abrirá mostrando nuevas opciones donde seleccionamos 'Directorios de VC++'.

Ahora, en la esquina superior derecha aparece la casilla 'Mostrar directorios para:' y la cambiamos, pinchando sobre ella, seleccionando 'Archivos de Inclusion'. Debajo de esta casilla se muestra una lista de rutas que comienzan por el signo $. Haz doble click debajo del último elemento de esa lista (utiliza la barra de desplazamiento si es necesario para ver el último elemento de la lista).

A continuación, mostrará un botón con 3 puntos seguidos '...'. Pincha sobre él y busca la carpeta 'Installation' que se encuentra dentro de la carpeta del engine que hemos instalado (es decir, dentro de la carpeta 'EsenthelEngineSDK'). Pulsa el botón 'Seleccionar Carpeta' para aceptar.

Seguimos, y cambiamos 'Mostrar directorios para:' a 'Archivos de biblioteca'. Volvemos a repetir los pasos anteriores para agregar otra vez la carpeta 'Installation' que se encuentra dentro de la carpeta del engine (otra vez, dentro de la carpeta 'EsenthelEngineSDK').

Pulsamos el botón Aceptar para cerrar la ventana Opciones.

Dentro de la carpeta del engine, para ejecutar los ejemplos vamos a la carpeta 'Tutorials'. Allí se encuentra la solución 'Tutorials.sln', pero sólo contiene el archivo 'Start.cpp' (dentro de la carpeta 'Source' de la solución). Pulsa F5. Si aparece el mensaje 'Este proyecto no está actualizado: ¿Desea Generarla?'. Pulsamos 'Sí'. Luego pulsa la telca 'Escape' para finalizar la demostración.


Para ir probando cada uno de los archivos .cpp, haz lo siguiente. Pincha con el botón derecho del ratón sobre el archivo .cpp (lista a la izquierda de la ventana), en este caso Start.cpp, y seleccionas 'Excluir del Proyecto'. Con esto lo habremos eliminado del proyecto.

Ahora para seleccionar un nuevo .cpp, ejecutamos la orden del menú 'Proyecto-->Agregar Elemento Existente' y abrimos un archivo .cpp que se encuentra en la carpeta 'Source' dentro de 'Tutorials'. Para ejecutarlo vuelve a pulsar F5.

Tienes que ir probándolos 1 a 1, de otro modo te daría errores de compilación. Dentro de la carpeta 'Source' existe la carpeta 'Advanced' donde se encuentran el resto de ejemplos.


------------------------------------------


[code:1]
Ejemplo de Código. (Drawing.cpp)
================================

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

Here are presented the most basic drawing functions

/***************************************************/
void InitPre()
{
App.name="Drawing";
App.flag=APP_NO_FX;
PakAdd("../data/engine.pak");
}
/****************************************************/
Bool Init()
{
return true;
}
/******************************************************/
void Shut()
{
}
/******************************************************/
Bool Main()
{
if(Kb.bp(KB_ESC))return false;
return true;
}
/******************************************************/
void Draw()
{
D.clear(WHITE); // clear to white

// draw texts
{
D.text(0,0,"Default text settings"); // default text draw

TextDS tds; // text draw settings, contains information about font size, aligning, color, ..

tds.color=BLACK; // set black color
tds.scale*=1.4f; // change scale
D.text(tds,0,-0.2,"Bigger");

tds.scale/=1.4f; // reset scale
tds.align.set(1,0); // change aligning
D.text(tds,0,-0.4,"Right Aligned");

tds.color=GREEN; // change color to green
tds.align.set(-1,0); // change aligning
D.text(tds,0,-0.6,"Colored Left Aligned");

tds.align.set(0,0); // reset aligning
tds.color=ColorHue(Tm.time()/2); // assign color to Color Hue according to current time
D.text(tds,0,-0.8,"Multi colored");
}

// draw shapes
{
D.rect (BLUE , 0.5,0.5, 0.6,0.6); // draw blue rectangle at given coordinates
D.circle(RED , 0.1, -0.5,0.5); // draw red circle with 0.1 radius at (-0.5,0.5) position
D.dot (BLACK , 0,0.5); // draw black dot at (0,0.5) position
D.line (GREEN , -0.4,0.5, 0.4,0.6); // draw green line
D.tri (YELLOW,Vec2(-0.5,-0.4),Vec2(-0.4,-0.2),Vec2(-0.4,-0.4)); // draw yellow triangle from given points
}
}
/******************************************************/
[/code]

#2

Escrito 13 enero 2009 - 23:59

esta muy bien, pero yo de c++ na de na

  • IsGreen

  • Neonate

  • vida restante: 100%
  • Registrado: 12 ene 2009
  • Mensajes: 73
#3

Escrito 14 enero 2009 - 10:52

esta muy bien, pero yo de c++ na de na




A mucha gente le ocurre lo mismo. En mucho foros hablar de c++ es tabú. La gente suele responder "que difícil", "eso es muy complicado".

En los foros ingleses no ocurre lo mismo o por lo menos no es tan reacia a aprender c++, que es un lenguaje más, igual que el BASIC. Saben que la mayoría de engines gratuitos (ESENTHEL, kjAPI, Irrlicht Engine, OGRE, Darg GDK,...) utilizan c++, y la mayoría de foros sobre 'modding' o creación de juegos están en inglés.

También las últimas versiones de los juegos comerciales como FAR CRY o GRAND THEFT AUTO utilizan c++ (se instala Microsoft Visual C++ 2005 Redistributable).

Cuando compré mi primer ordenador el primer lenguaje de programación que utilicé fue el GWBasic, ese lenguaje es sencillo pero no está preparado para hacer juegos, y menos juegos 3D.

Claro que en aquellos tiempos no existia INTERNET, ni podía descarga un compilador gratuito, ni tutoriales de C++.

-------------------------------------------------------------------------------------

No soy programador, solo dedico parte de mi tiempo libre a "trastear" game engines. También utilizo como modelador 3D 'Blender', que también es gratuito.

Realizar un juego completo 3D (que incluye modelado, animación y programación) por una persona solo, es muy difícil (yo todavía no he finalizado ninguno), y ningún game engine te garantiza que sea fácil. Hay que dedicarle tiempo.

Los game engines que he trasteado son estos: Reality Factory, 3DGameStudio, Dark GDK, IrrLicht Engine.

Todos los game engines anteriores utilizan c++, aunque también es verdad que el Reality Factory (dejo de desarrollarse hace tiempo y se ha quedado en Directx7) utiliza un 'scripting language' llamado SimKin, y el 3DGameStudio utiliza otro 'scripting language' llamado Lite-C.

Los 'scripting language' son versiones simplificadas del c++, donde te ahorras alguna tarea como declarar alguna variable o simplificar alguna función del engine. Pero tiene el inconveniente que tienes que dedicarle tiempo en aprender ese 'dialecto del c++' que sólo te sirve para ese engine. En cambio el c++ es más universal.

Aparte de eso, las manos del programador/diseñador del engine influye mucho en la 'sintaxis' de programación.

No es lo mismo hacer un juego en Dark GDK (que utiliza los mismo nombres en los comandos que en DarkBasic, es decir, parece basic) que hacer un juego en OGRE (que es muy complicado, casi solo para programadores profesionales, pero con muchas prestaciones).

Te voy a explicar un poco en que consiste el c++. Este lenguaje tiene las siguientes 'palabras clave':

asm, auto, break, case, catch, char, class, const, continue, default, delete, do, double, else, enum, extern, float, for, friend, goto, if, inline, int, long, new, operator, private, protected, public, register, return, short, signed, sizeof, static, struct, switch, template, this, throw, try, typedef, union, unsigned, virtual, void, volatile, while.

En casi dos líneas te he resumido c++. :gafas: Ahí se encuentran tanto los comandos como los tipos de variable. Quedan más cosas como los operadores que hay de 3 tipos: aritmético, de asignación y lógicos.

Aritméticos: +, -, *, /, %
De Asignación: =, +=, -=, ++, --, *=, /=
Lógicos: && (sería como decir 'y'), || (sería como decir 'o'), ! (sería como decir 'no')

Ahora, ¿por qué dicen que es muy complicado c++? Porque c++ utiliza 'punteros' o direcciones a memoria. Pero eso es una elección del programador/diseñador del engine. Por eso digo que las manos del programador/diseñador influyen mucho, y la forma en la que se haya creado el engine facilita o dificulta luego su utilización por personas que no están especializadas en la programación (la clara diferencia entre Dark GDK y OGRE).

La sintaxis de programación del IrrLicht Engine utiliza muchas flechitas '->' y asusta un poco, porque utiliza 'punteros' o direcciones de memoria (se le añade al nombre un asterisco '*') en sus funciones. Pero es conocido porque permite hacer cosas (abrir un mapa .bsp del Quake3, animaciones 3D, ...) con pocas líneas de código.

En cambio, ESENTHEL engine, si te fijas en el ejemplo de código utiliza términos como 'D.Text'. Voy a explicar algunas cosas:

1) El término 'D.Text' NO es un palabra clave de c++. Sólo lo utiliza este engine. No encontrarás este término en otros engines.

2) C++ clasifica y ordena los datos en el siguiente orden: Programa o PRINCIPAL(llamado 'Main')---->CLASES ---->FUNCIONES---->Comandos, operadores. Lo que llaman 'Programación Modular'. Pero tú puedes crear un programa en c++ solo con funciones, o incluso, sin clases ni funciones. El inconveniente de esto es que tienes que repetir muchas líneas de código.

Esto quiere decir que el 'Programa' está compuesto por CLASES que a su vez agrupa FUNCIONES que están compuestas por 'Comandos y operadores'.

Por ejemplo, la CLASE 'MovimientoPlayer' agrupa las FUNCIONES 'Subir, 'Bajar', 'Derecha', 'Izquierda', 'HaciaDelante', 'HaciaDetras'. Dentro de esas funciones hacemos referencia al archivo donde se encuentra la animación de esa acción y las variables que modifican.

Para hacer que el 'player' (el actor que controlamos nosotros) se mueva hacia la derecha ejecutamos la orden 'MovimientoPlayer.Derecha ('Aquí pondriamos las variables de la función')'

El punto (.) es un separador que utiliza c++ para separar el nombre de la CLASE con el nombre de la FUNCIÓN (en los tutoriales a la FUNCIONes que se encuentran dentro de una clase se le hace referencia como OBJETO de esa clase. Si no va dentro de una clase se le describe como función).

Por lo tanto el término'D.Text' hace referencia a la CLASE 'D' y a su FUNCION 'Text', que lo que hace es escribir un texto en pantalla.

En otros engines a la CLASE 'D' la llaman 'Display' (es decir, 'Mostrar') pero eso son decisiones del programador/diseñador de cada engine.

--------------------------------------------------------

Aquí os dejo unos tutoriales de c++ que me han servido de mucho, gratuitos y en español:

http://www.tecnun.es...o/cppbasico.pdf
http://www.tecnun.es...ado/cppavan.pdf
http://mat21.etsii.u...nualcpp_new.pdf

----------------------------------------------------------

Antes de finalizar, decir que en el IrrLicht Engine se utiliza '->' (flecha). El punto (.) y la flecha (->) son los separadores (separa nombre de la clase del nombre de la función) que utiliza c++.

El punto se utiliza cuando se hace referencia al NOMBRE del OBJETO (es decir, referencia al nombre de una función dentro de una clase).

La flecha se utiliza cuando se hace referencia a la DIRECCIÓN del OBJETO (es decir, el objeto es un 'puntero' o 'dirección de memoria', señalado con un '*').

-------------------------------------------------------------

Saludos

  • Vilshofen

  • Lord Boros

  • vida restante: 100%
  • Registrado: 18 jul 2003
  • Mensajes: 3.898
#4

Escrito 14 enero 2009 - 11:30

La gran mayoría de juegos están hechos en C++, la razón es muy simple, está muy optimizado para trabajar con memoria. Y si alguien quiere dedicarse al mundo de los videojuegos les toca aprender C++ sí o sí.


Es complicado, pero realmente con dominar los punteros ya lo tienes.

#5

Escrito 14 enero 2009 - 15:17

Y que recomendarias para empezar con el c++?

  • IsGreen

  • Neonate

  • vida restante: 100%
  • Registrado: 12 ene 2009
  • Mensajes: 73
#6

Escrito 14 enero 2009 - 15:38

Y que recomendarias para empezar con el c++?


Los más sencillo que he visto en c++, ha sido Dark GDK, que no utiliza punteros y se escribe muy parecido al DarkBasic (Realmente si utiliza punteros o direcciones a memoria, pero no te das cuenta).

Incluye ejemplos (fijate en ellos) que es donde más se aprende. Incluye una colección de modelo 3D, videos y Bitmap llamada Dark Matter. Así no tendrás que buscar por internet material para comenzar.

Conseguirás hacer cosas en poco tiempo, eso te dará ánimos para seguir. Y tiene una comunidad muy activa a la que pedir ayuda en su foro (pero en inglés, utiliza el traductor de google si necesitas ayuda :-D )

Aquí tienes un enlace sobre un post que dejé hace tiempo:

http://mundovilla.fo...wtopic.php?t=58

Luego fíjate en ESENTHEL engine. Produce efectos de última generación, shaders, agua. Sencillo y con pocas líneas de programación. (35 líneas máximo tiene cada ejemplo).

Suerte.

  • IsGreen

  • Neonate

  • vida restante: 100%
  • Registrado: 12 ene 2009
  • Mensajes: 73
#7

Escrito 18 enero 2009 - 19:13

Estos archivos contienen los archivos binarios (o ejecutables) de los más de 100 ejemplos o tutoriales incluidos en la SDK del engine, sin la necesidad de tener instalado Visual C++ ni tampoco DirectX SDK



REQUISITOS:

-Solo instalar ESENTHEL Engine.
-Shader 2.0 o superior.

INSTRUCCIONES: http://perso.orange....strucciones.pdf



ARCHIVOS:

Animation: http://www.mediafire.com/?qh2mmojjumm

Basics: http://www.mediafire.com/?mmarmrnqjzo

Demos: http://www.mediafire.com/?0gyzymmdtmo

Game Basics: http://www.mediafire.com/?heycmtmtztk

Geometry: http://www.mediafire.com/?zinanazmwzr

Graphics: http://www.mediafire.com/?hztjgm2jklj

Gui: http://www.mediafire.com/?wizymnqmymw

Mesh: http://www.mediafire.com/?no01wmozew2

Misc: http://www.mediafire.com/?2nmjiz2nmvi

Physics: http://www.mediafire.com/?wjzltje4z5m

Rendering: http://www.mediafire.com/?wd0wtniywmu

Sound: http://www.mediafire.com/?2mudme3onki




El engine no dispone de una documentación que recoja y agrupe todas las funciones con sus descripciones (como sí que ocurre en Dark GDK), y la información disponible se encuentra básicamente en los códigos y comentarios incluidos en los archivos .cpp que puedes abrir con el bloc de notas (en caso de no tener instalado Visual C++), o buscando en este enlace: http://perso.orange....enthelCode.html (Todos los tutoriales .CPP en un archivo .TXT)

De todos modos, sí sólo quereis saber lo que es: Bumpmapping, Blending, Volumetric Clouds, Bloom, Motion Blur, Pathfinding, ... ya podeis hacerlo con sólo descargar el engine (28,7 MB)

Saludos.

  • elessarm

  • Tingle

  • vida restante: 100%
  • Registrado: 04 feb 2006
  • Mensajes: 682
#8

Escrito 22 febrero 2009 - 18:32

Y que recomendarias para empezar con el c++?


Empieza bajandote el devcpp, y mirate tutoriales tanto de c++ como de openGL o directX antes de meterte con un engine gráfico.
El tema es que para aprender c++, se empieza por aplicaciones de texto (en consola) y ya luego cuando domines el uso de cadenas, de punteros y de objetos ya te planteas crear algo más complejo.


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
publicidad