Comunidad orientada al desarrollo de videojuegos

“Diagnostics” de Wave Engine

OBJETIVOS

En este tutorial aprenderemos a usar los diagnósticos de Wave Engine. Con esta característica conoceremos algunas informaciones importantes de nuestro proyecto cómo: los FPS’s, cuanto tiempo tarda en ejecutarse un trozo de código, etc.

ABRIR UN PROYECTO

Lo primero, tras abrir el proyecto es hacer click la solución de nuestro proyecto y seleccionamos la opción Propiedades. Otra forma de abrir propiedades es desde el menú del proyecto y pulsamos en “Diagnostics Properties”.

01_thumb        04_thumb

En la ventana de Propiedades, seleccionamos la pestaña “Build” y en la opción de “Conditional compilation symbols:” escribimos PROFILE y guardamos los cambios:

02_thumb

Ahora podemos utilizar los diagnósticos en nuestro proyecto.

Añadimos la siguiente línea de código  en el método CreateScene() para activar la característica de diagnósticos:

// Set to true the diagnostic value
WaveServices.ScreenLayers.SetDiagnosticsActive(true);

Necesitaremos añadir el siguiente using:

using WaveEngine.Framework.Diagnostic;

Ahora podemos ver los FPS’s de nuestro proyecto en la esquina superior izquierda de nuestra pantalla, este es el dato por defecto que se puede mostrar en la pantalla:

03_thumb

MOSTRAR TEMPORIZADOR (“TIMER”)

Con los diagnósticos de Wave Engine podemos saber cuanto tiempo tarda en ejecutarse un trozo de código. Solo tenemos que usar estas líneas de código:

Timers.BeginTimer("Cube Behavior Update");
Timers.EndTimer("Cube Behavior Update");

La primera línea se pone antes del código que queremos comprobar y la segunda después del mismo.

Un ejemplo muy simple de como hacer esto sería el siguiente:

protected override void Update(TimeSpan gameTime)
{
    Timers.BeginTimer("Cube Behavior Update");
    Transform.Position.X += 0.01f;
    Timers.EndTimer("Cube Behavior Update");
}

Este método sería un Update() de una clase Behavior, y podemos ver en pantalla cuanto tarda en ejecutarse:

05_thumb

Podemos también comprobar cuanto tiempo tarda en ejecutarse el inicio de nuestra aplicación. Solo tenemos que añadir el timer al principio del método CreateScene(), y el segundo timer al final del método Start(). Con esto estamos comprobando cuanto tiempo tarda en inicializarse la aplicación, en cargar los assets, etc.

protected override void CreateScene()
{
    RenderManager.BackgroundColor = Color.Black;
    // Set to true the diagnostic value
    WaveServices.ScreenLayers.SetDiagnosticsActive(true);
    // And set the compilation symbol PROFILE in the project     
    Timers.BeginTimer("Execute Application");
    .
    .
    .
}

protected override void Start()
{
    Timers.EndTimer("Execute Application"); 
    .
    .
    .
}

MOSTRAR ETIQUETAS (“LABELS”)

También podemos añadir etiquetas a nuestra escena, con esto podemos saber la posición, la velocidad, el ángulo… de cualquier entidad. Solo tenemos que añadir la siguiente línea de código:

Labels.Add("cube position", Transform.Position.ToString());

Añadimos esta línea en el método Update() de la clase que queremos comprobar. Por ejemplo, si queremos comprobar la posición de un cubo, necesitamos añadir la línea anterior en la clase behavior del cubo, en este caso CubeBehavior.cs.

06_thumb 

NOTAS FINALES

Recordad que estas líneas de código solo se ejecutarán si PROFILE está puesto en las propiedades del proyecto.

Si eliminamos PROFILE estas líneas no se ejecutarán, serán ignoradas.

FUENTES

Tutorial original en inglés: http://blog.waveengine.net

Para descargar Wave Engine: http://www.waveengine.net

Creación original y traducción por Carlos Sánchez López

, , , ,

Leave a Reply