Motores de juego: Torque

Escrito por aserrano. Posteado en Desarrollo, Juegos, Motores 3D, Torque

Los chicos de GarageGames han desarrollado muchos productos entre los que se encuentran el Torque Game Engine y el Torque Engine Advanced. De su página web podréis bajar una demo de ambos motores de juego totalmente funcionales durante 30 días.

El segundo es una evolución del primero y practicamente igual con la salvedad de que nos permitirá efectos visuales de última generación.

Una de las cosas que hace más diferente a Torque de otros motores de juego es su curva de aprendizaje. En muy poco tiempo podéis empezar a crear vuestros propios juegos.

Torque Demo FPS

Como yo podéis intuir este motor no es gratis pero realmente el precio de la licencia “Indie” merece la pena, más ahora que tenemos un Euro tan potente :). Quiero recordar que son unos 150$ (100€ más o menos a la fecha de este artículo).

Como indicaba por muy poco dinero tendréis un motor plenamente funcional y además una vez adquirido el producto se suministra con el código fuente en C++ que con los adecuados niveles avanzados podréis modificar a vuestra conveniencia. De todas formas el producto es totalmente funcional sin tener ni siquiera un compilador de C++, ya que viene compilado una vez adquirida la licencia.

Otra de las ventajas de este motor es que para la versión normal todo el producto es multiplataforma. Realmente es una pena que el motor avanzado haya perdido esa característica.

Torque se programa por misiones y si bien cada terreno es bastante amplio, es una de sus limitaciones el no poder crear terrenos tan grandes como queramos, siendo casi con toda probalidad, nuestro primer contacto con el editor de terrenos y creador del mundo.

El creador de terrenos nos permitirá incluir lagos, editar montañas, poner edificios, hacer cavernas, poner el punto de salida de nuestro héroe, etc.

Otra característica destacable es que todos los desarrollos creados tienen arquitectura cliente servidor incluso aunque los juegos sean para ejecutar solamente en local. Esta característica hace que cualquier juego pueda ser creado con facilidad para soportar muchos jugadores online.

Todo el producto se complementa con un editor de diálogos, exportadores para los principales programas gráficos, una gran documentación, foros de soporte, etc.

Resumiendo, torque es un producto muy recomendable si queremos empezar a desarrollar juegos con prontitud y con una curva de aprendizaje muy corta.

Si queréis ver las posibilidades reales de este motor echad un vistazo a este mmorpg minions of mirth

Garagegames

Motores 3D: Ogre3D

Escrito por aserrano. Posteado en Desarrollo, Motores 3D, Torque

Cualquier juego 3D que se precie debe tener un motor idem.

En el caso de Ogre, lo primero que deberíamos matizar es que no es un motor de juegos. Ogre sólo es un motor 3D y muy bueno por cierto. Viene además complementado con CEGUI y OIS.

Realmente estas dos librerías no forman parte del desarrollo de Ogre en sí, pero sus desarrolladores las han usado para poder complementar Ogre.

La primera es una archi-conocida ‘GUI’, es decir una interfaz gráfica de usuario que nos permitirá crear diálogos, cajas de edición de texto, cajas de lista, etc y la segunda es una librería de interfaz de usuario, es decir, nos permitirá manejar el teclado, ratón y joystick.

Destacable de este motor es su facilidad inicial de uso, aunque eso sí, se requiere un nivel medio-alto de C++. Mi recomendación por tanto al respecto es que si no tienes ese perfil, lo primero que debes hacer, es adquirir un conocimiento medio de C++ y sobre todo sentirte cómodo con herramientas de desarrollo C++ como visual C++ Express Edition.

Ogre se presenta en dos paquetes, un SDK, listo para desarrollar, muy recomendable para novatos, y otro en formato código fuente, mucho mas propio de usuarios avanzados y que nos permitirá, por ejemplo, depuración dentro del código de Ogre.

Los chicos de Ogre han realizado una tarea excelente y han querido hacer su herramienta universal y además de ser multiplataforma para Linux, Windows y Macintosh, compila bajo los compiladores C++ mas usados, Visual C++, MingW o gcc bajo linux (que me perdonen la gente de Mac porque desconozco el compilador que usan ellos 🙁 ).

Ogre se complementa además, con muchas herramientas de exportación de editores gráficos 3D como blender, 3D studio, Maya, etc. y un paquete de demos, que recomiendo bajar para que veamos las magníficas capacidades de este motor (también tenemos disponibles sus código fuentes que nos puede servir de aprendizaje).

Este engine también cuenta como caracterísitica el estar implementado a base de plugins, que lo hace ser muy versatil en ese sentido. Para la plataforma Windows tenemos dos motores de renderizado, uno para DirectX y otro para OpenGL y para Linux, logicamente, sólo contamos con soporte OpenGL.

Además de los plugins de renderizado, tenemos plugins de partículas o los plugins de escenario, y entre estos, los hay para interiores y exteriores (terrenos). Realmente podríamos hacer uso de cada uno de ellos en cualquier circunstancia, pero la razón de cada uno de ellos es su optimización que será mejor si se le da el uso apropiado.

Para la versión de desarrollo existe además un plugin de renderizado de portales del que haremos un artículo específico por su importancia, ya que aporta una de las características mas demandadas en un juego.

Ogre viene con una plantilla que hará un primer desarrollo inicial muy simple. No es el objeto de este artículo pero expondré la creación de una aplicación inicial en Ogre a modo de ejemplo.

[code lang=”cpp”]
#include “ExampleApplication.h”

class TutorialApplication : public ExampleApplication
{
protected:
public:
TutorialApplication()
{
}

~TutorialApplication()
{
}
protected:
void createScene(void)
{
mSceneMgr->setAmbientLight( ColourValue( 1, 1, 1 ) );

Entity *ent1 = mSceneMgr->createEntity(“Robot”, “robot.mesh” );

SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode(

“RobotNode” );

node1->attachObject( ent1 );

}
};

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include “windows.h”

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char **argv)
#endif
{
// Create application object
TutorialApplication app;

try {
app.go();
} catch( Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.getFullDescription().c_str(),

“An exception has occurred!”, MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
fprintf(stderr, “An exception has occurred: %sn”,
e.getFullDescription().c_str());
#endif
}

return 0;
}
[/code]

Este código hereda la clase ExampleApplication que monta todo el esqueleto para poder usar Ogre y se encarga de toda la inicialización de recursos y plugins de la misma.

Destacable de todo este código es la fase de creación de nuestra escena. Creamos una luz, una entidad, la vinculamos a un nodo de nueva creación, que estará en la posición vectorial (0,0,0) y finalmente el nuevo nodo es añadido a la escena.

[code lang=”cpp”]

void createScene(void)
{
mSceneMgr->setAmbientLight( ColourValue( 1, 1, 1 ) );

Entity *ent1 = mSceneMgr->createEntity(“Robot”, “robot.mesh” );

SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode(

“RobotNode” );

node1->attachObject( ent1 );

}

[/code]

A partir de aquí todo este esqueleto montará el bucle y el manejo de la interfaz de usuario y nos permitirá ver dicho “mesh” en pantalla.

He querido dar con este artículo un esbozo inicial de lo que es Ogre y una min-aplicación para que se vea su sencillez inicial de uso.

Mucho mas allá de esto, el código lo podríamos complicar todo lo que quisieramos y si queremos salir de una inicialización básica, deberemos crear nuestro propio bucle de juego y nuestra propia inicialización. Es posible que veamos algo de eso en otro artículo.

Próximo artículo Ogre 1.5.0: motor de renderizado PCZSceneManager.

Referencias:

El código fuente aquí expuesto pertenece a la wiki de Ogre y es de dominio público (salvo error u omisión eso es lo que pone al pie de su página)

Ogre3D Web oficial
Ogre3D Wiki

¿Y ahora que?

Escrito por aserrano. Posteado en Desarrollo, Juegos

La cuestión es “to game or not to game”.

Mucho tiempo ha pasado desde mi último tetris. Ni que decir tiene que a priori parece una aplicación sencilla y realmente complicada no es, pero aún con lo sencilla que es este juego incluye casi todo lo que un juego debe incluir.

Tiene su pantalla de presentación, interacción con el teclado, imágenes moviéndose, puntuaciones, etc.

Tengo que decir que uno de mis sueños siempre ha sido el desarrollo de un videojuego, algo más complicado que un tetris.

Los que no nos hemos separado mucho de ese mundo sabemos que hoy el desarrollo de un videojuego ha llegado practicamente a un estado de arte absoluto.

Donde antes un programador lo hacía todo, hoy en día se ha sustituido por tres desarrolladores, siete artistas gráficos y otros tres que pongan música.

Es la verdad practicamente el desarrollo ha pasado a un segundo plano hoy en día, y aunque sigue siendo necesario, si miramos los créditos de un juego, veremos que trabajan tanta gente como en una película, y la mayoría no son programadores. En algunos casos trabaja incluso más gente.

Este blog intentará, con la ayuda de todos, explicar un algunas técnicas y herramientas que podréis usar para desarrollar vuestro propio juego.

El resto deberéis ponerlo vosotros con tesón, paciencia y estudio…sobre todo mucho estudio.

Un saludo.

Carta abierta a Steve Ballmer

Escrito por aserrano. Posteado en Linux

Recientemente llegó a mis manos la carta escrita por François Bancilhon de Mandriva en la que se menciona como Microsoft eliminó de un plumazo la venta de 17000 ordenadores con Mandriva Linux, incorporando a los mismos Windows, que ya había sido pactada y negociada por parte de los señores de Mandriva. ¿Negocio sucio tal vez? Juzguen ustedes.

No puedo cuando menos decir que es lamentable que empresas como microsoft se dediquen a intentar hundir empresas de esta forma.

Copio literalmente la traducción y el original cogidos de estas dos URLs:
http://blogdrake.net/node/9488#comment-42451

— Texto en Inglés original —

Dear Steve,

Hi, this is François, from Mandriva.

I’m sure we’re way too small for you to know me. You know, we’re one of these tiny Linux company working hard for our place on the market. We produce a Linux Distro, Mandriva Linux. The last edition, Mandriva 2008 was seen as a pretty good version and we’re proud of it. You should give it a spin, I’m sure you’d like it. We also happen to be one of the Linux companies that did not sign an agreement with your company (nobody’s perfect).

We recently closed a deal with the Nigerian Government. Maybe you heard about it, Steve. They were looking for an affordable hardware+software solution for their schools. The initial batch was 17,000 machines. We had a good answer to their need: the Classmate PC from Intel, with a customized Mandriva Linux solution. We presented the solution to the local government, they liked the machine, they liked our system, they liked what we offered them, the fact that it was open, that we could customize it for their country and so on.

Then your people entered the game and the deal got more competitive. I would not say it got dirty, but someone could have said that. They fought and fought the deal, but still the customer was happy to get CMPC and Mandriva.

So we closed the deal, we got the order, we qualified the software, we got the machine shipped. In other word, we did our job. I understand the machine are being delivered right now.

And then, today, we hear from the customer a totally different story: “we shall pay for the Mandriva Software as agreed, but we shall replace it by Windows afterward.”

Wow! I’m impressed, Steve! What have you done for these guys to change their mind like this? It’s pretty clear to me, and it will be clear to everyone. How do you call what you just did Steve, in the place where you live? In my place, they give it various names, I’m sure you know them.

Hey Steve, how do you feel looking at yourself in the mirror in the morning?

Of course, I will keep fighting this one and the next one, and the next one. You have the money, the power, and maybe we have a different sense of ethics you and I, but I believe that hard work, good technology and ethics can win too.

cheers

François

PS: a message to our friends in Nigeria: it’s still time to do the right thing and make the right choice, you will get lots of support for it and excellent services!

— Texto traducido —

Querido Steve:

Hola! Soy François, de Mandriva

Estoy seguro que todavía somos algo muy pequeño para que nos conozcas. Sabes, somos una de esas pequeñas compañías de Linux trabajando duro por un lugar en el mercado. Producimos una distribución de Linux, Mandriva Linux. La última edición, Mandriva 2008, ha sido vista como una muy buena versión y estamos orgullosos de ello. Deberías darle un vistazo, seguro que te gustaría. También ha pasado que somos una de las compañías Linux que no hemos firmado un acuerdo con su compañía (nadie es perfecto).

Recientemente hemos llegado a un acuerdo con el Gobierno de Nigeria. Quizá has oído hablar algo de eso, Steve. Buscábamos una solución de hardware-software económica para sus escuelas. El encargo inicial era de 17,000 máquinas. Teníamos una buena oferta para sus necesidades: el Classmate PC de Intel, con una versión customizada de Mandriva Linux. Presentamos la solución al gobierno local, y les gustó la máquina, nuestro sistema operativo; les gustó lo que le ofrecimos. el hecho de que fuera código abierto, de que podíamos adaptarlo para su país, etc.

Entonces, su gente entró en el juego y el trato resultó más difícil. Yo no diría que más sucio, pero alguien podría haberlo dicho. Ellos lucharon y lucharon por un acuerdo pero el cliente estaba contento de conseguir CMPC y Mandriva.

Así que cerramos el trato. conseguimos el encargo, calificamos el software, facturamos las máquinas. En otras palabras, hicimos nuestro trabajo. Creo que las máquinas están siendo entregadas ahora mismo.

Y entonces, hoy, oímos del cliente una historia totalmente diferente: “Pagaremos por el Software de Mandriva como estaba estipulado, pero lo cambiaremos por Windows después.”

Guau! ¡Estoy impresionado, Steve! ¿Qué has hecho para que esos tipos cambien de parecer de esa manera? Está bastante claro para mí, y probablemente para cualquiera. ¿Cómo decís donde tú vives lo que has hecho, Steve? En mi país, le dicen varios nombres, estoy seguro que los conoces.

Eh Steve, ¿cómo te sientes por la mañana mirándote al espejo?

Por supuesto, seguiré luchando esta vez y la próxima, y la próxima también. Tienes dinero, el poder y, probablemente, tenemos un significado para la ética muy distinto del tuyo, pero creo que el trabajo duro, la buena tecnología y la ética puede ganar también.

Saludos

François

PS: Un mensaje para nuestros amigos en Nigeria: todavía hay tiempo para hacer lo correcto y elegir bien, ¡obtendréis un montón de soporte y excelentes servicios!

Nota legal

(C) Antonio Serrano 2012