Programación Kismet 2

Seguimos con una serie de programación en kismet, con este podemos programar como en cualquier lenguaje de programación, podemos realizar bucles de condición como el while o el Repeat que asta que no se cumpla una condición en particular, no finalizará.

Pero con estos bucles, los cuales veremos en el vídeo de una forma sencilla, utilizaremos la funcion teleport para hacer cambiar de lugar de forma instantánea un objeto insertado en el nivel, en este caso un tigger.

Los tigger como hemos podido observar funcionan de detectores de objetos o jugador, cuando este toca o colisiona con el ejecuta un aviso o mejor dicho activa una secuencia.

La función teleport, sirve también para generar por ejemplo una secuencia aleatoria de salida de enemigos o un tele-transporte para el jugador y hacer que este aparezca en otro nivel u otra habitación.

En el vídeo el ejemplo está realizado con los tigger para atender también una duda, para poder generar un movimiento de los mencionados tigger por el nivel cada vez que este toca uno de ellos. En vez de realizar el proceso tal cual, muestro como incrementar con una función de comparación, para ver como  realizar operaciones matemáticas simples y comparar los resultados. Al realizar un reinicio de la variable numérica, forzamos a que el bucle sea indefinido y este no cese nunca.


Programación Kismet

Con kismet se pueden programar muchas cosas, es un editor gráfico repleto de funciones prediseñadas para poder generar una programación tal cual se escribe.

Con está se puede generar muchísimas programaciones del juego ahorrándonos escribir los códigos y facilitando mucho la programación de ciertos elementos de un vídeo juego. Solo con kismet y el unreal se pueden generar mini-juegos completamente funcionales, un juego de naves, un árcade  la imaginación pone los limites efectivamente y el conocer las funciones y como utilizarlas, es lo que ara que podamos generar lo que deseemos.

Con ejemplos prácticos podemos aprender estas funciones y como operar con estas para generar eventos en el juego sin necesidad de acudir a la programación.

En este ejemplo vemos como generar un bucle indefinido de enemigos en una sala por la cual se moverán aleatoria-mente atacando al jugador. Tenemos que tener en cuenta que en el ini del defaultgame donde se almacena la información del juego hay un número máximo de muertes y cuando el jugador llega a eliminar a 25 enemigos el juego te declara el vencedor, por lo que tenemos que tener en cuenta este punto:

DefaultGame.ini

[UTGame.UTGame]
BotRatio=+1.0
GoalScore=25 <-- tener en cuenta este dato si pensáis que el jugador llegue a matar más

Podemos ampliarlo perfectamente y declarar el número más idóneo.
No recomiendo borrar la entrada pues esta afecta principalmente al juego ut y puede provocar fallos o problemas en su programación aun que no se aprecien.


Importar hightmaps

En una consulta, he podido ver que al importar un mapa de alturas a udk este no aparece, realmente si aparece no con las especificaciones que nos agradarían y mucho menos en la posición que deseamos que este se inserte. En el vídeo podemos ver como solventar el problema.

Sabías que se pueden generar mapas de alturas desde Photoshop, si efectivamente es factible aun que hay que tener un buen dominio para generar un buen mapa de alturas solo viendo tonos grisaceos. 

Para generar un mapa de alturas desde Photoshop, debemos de generar una imagen del tamaño que admite el editor de terrenos de udk, 128x128, 256x256, sucesivamente y con valores inferiores. Seleccionar modo escala de grises a 16 bits, también puede ser a 8bits. Guardar en formato RAW.

Con este generamos un mapa de alturas listo para ser importado a UDK. También admite formatos t3d con el cual podemos importarlos desde un editor externo a udk.

En el video veremos como importarlo, solventar este problema que surge por algún motivo y solventarlo, a demás de generar un material muy simple para el terreno el cual mejoraremos más adelante.


Kismet y matinee

Kismet y matinee son elementos fundamentales para la edición de nuestro juego pues con ellos crearemos la mayor parte de ínter-actividad de nuestro juego, salvo seamos programadores avanzados y sepamos programar todo por supuesto.

Kismet es la herramienta de programación visual de la que dispone udk, con ella se pueden programar juegos enteros sin ser demasiado exigentes pero es totalmente factible y su utilización se hace muy amena y similar permitiendo ser muy intuitivo a la hora de programar ciertas cosas.

Matinee es el editor de cinemáticas de la que disponemos para generar animaciones o como no cinemáticas en nuestros niveles.

Una forma de aprender como funcionan ambos es trabajando con ellos y que mejor forma que generando puertas? si puertas, ¿ por que puertas? precisamente por que son unos de los elementos más cotidianos en los juegos y que precisan de ambos para funcionar, sin la programación no sabremos si precisa de ser abierta y sin la cinemática no podrá moverse y hacer la abertura o cierre de esta ¿verdad?

Veamos diferentes tipos de puerta que podemos generar con udk, eso no quiere decir que sean los únicos.



Niveles y subniveles


¿El gran talón de aquiles de UDK? ¿generar tremendos escenarios? por supuesto que se puede, solo basta conocer como agilizar las cargas para evitar el colapso, parece que un gran motor pueda crear grandes construcciones y ciudades megalíticas, pero en todo tiene que haber un orden y una organización.

En udk existen los niveles y al igual que los objetos que introducimos en el nivel se pueden configurar para agilizar sus cargas, ocurre lo mismo con los niveles.

¿Por que es importante este apartado?

Veamos lo del siguiente modo, vamos caminando por un pasadizo, en cada lado hay puertas, dentro de estas habitaciones con mas de 100 mallas estáticas, si todo está en el mismo nivel ¿que crees que ocurrirá? pues que o colapsamos la computadora o simplemente derrocharemos una cantidad de recursos innecesaria provocando un lag en el juego innecesario. Es más lógico que si el jugador va a entrar ha una habitación esta se cargue entonces y ahorramos el resto de habitaciones que sinceramente en ese momento ni va a ver.

Ocurre lo mismo con los grandes escenarios, ciudades, bosques, continentes? si también. No hay ninguna razón por la que debamos de generar un terreno de dimensiones impensables, cuando podemos es generar 100 terrenos y cargar solo los 5 que el jugador realmente va a ver. Simulando un nivel interminable para la visual pero fragmentado para ahorrar recursos.

En este vídeo vemos como fusiono dos niveles en uno y genero las cargas de estos de forma exagerada para ver como se carga y descarga los niveles conforme el jugador pasa por ellos.