Introducción a CEL

De CursosGpl

[editar] CEL

CEL (Crystal Entity Layer) es la capa de entidades de CrystalSpace.

Es un juego de plugins extra para crystalspace que nos permite definir entidades de alto nivel y asignarles propiedades de juego así como diversos objetivos e interacciones. Nos permite olvidarnos de los detalles más peliagudos de trabajar con un motor 3d y centrarnos en la lógica de la aplicación, aunque siempre podemos acceder a todos los objetos de crystalspace que hay por debajo.

En principio se puede programar en c++, perl, python y xml, pero en este tutorial nos vamos a centrar en la combinación de python y xml, ya que utilizando las posibilidades de ambos lenguajes es muy sencillo crear algo que esté funcionando y moverse siempre a un nivel lo suficientemente inmediato.

CEL nos permite asignar controles, mover a los personajes de forma lógica, asignar sensores (triggers), objetivos (quests), temporizadores, permite que las entidades posean un inventario y mucho más, y todo esto accesible desde todos los lenguajes que comentamos antes.

Además con ayuda del exportador blender2crystal y dentro de poco con CEL y CrystalSpace integrados completamente dentro de blender a través del proyecto CrystalBlend es muy sencillo crear mapas listos para utilizar con las capas superiores de cel (python y xml), y va a ser mucho más sencillo e inmediato todavía.

[editar] Entidades

Las entidades son objetos de juego que pueden reaccionar de forma inteligente. Normalmente no todos los objetos del mapa serán entidades, sino solamente aquellos que requieran de algún tipo de interacción (botones, plataformas, puertas, personajes...).

Cada entidad puede llevar asignadas una serie de clases de propiedad, que son cualidades asignables. De esta forma al ir asignando diferentes cualidades la entidad va cobrando sentidos, forma física y acciones.

Aparte de las clases de propiedad cada entidad puede llevar asignado un comportamiento. Los comportamientos pueden estar programados en c++, python o perl. El comportamiento es un código al cual va a responder la entidad en función de las clases de propiedad que se le hayan asignado, ya que estas son las que envian señales al comportamiento para actuar.

Por ejemplo, a través de pccommandinput podemos asignar teclas a funciones del comportamiento, a través de pctimer podemos asignar una función de respuesta cada cierto tiempo, a través de pctrigger podemos asignar una función de respuesta cuando una entidad entra en un área...

Las clases de propiedad (property classes), así como los comportamientos (behaviours) y los objetivos (quests) se tratarán en las siguientes secciones en mucho más detalle.

b2cs: se crea una entidad enlazada con un objeto asignando la propiedad entity a True.

[editar] Siguientes secciones

Las clases de propiedad las diferentes cualidades que podemos asignar a las entidades

Los objetivos (quests) la estructura de los quests, objetos que podemos añadir a nuestras entidades a través de la clase de propiedad pcquest para dotarlos de objetivos.

Comportamientos control de alto nivel con python, como hacer que nuestras entidades reaccionen de manera más inteligente a través de scripts de python

Creación del juego procesos implicados en la creación del juego

Herramientas personales