Motores de juego ptk
-
Upload
victor-contreras-ordonez -
Category
Documents
-
view
9 -
download
1
description
Transcript of Motores de juego ptk
Motores de JuegoMotor 2D: PTK
José Carlos Cortizo Pérez http://www.esp.uem.es/jccortizo [email protected]
Departamento de Sistemas Informáticos Escuela Superior Politécnica Universidad Europea de Madrid
1
José Carlos Cortizo Pérez
Ubicación
2
José Carlos Cortizo Pérez
Indice
3
José Carlos Cortizo Pérez
Indice
4
José Carlos Cortizo Pérez
Motor 2D
Permite gestionar el trabajo con gráficos 2D de la forma más simple, rápida y eficiente
Al igual que los Motores 3D, suele apoyarse en librerías gráficas (OpenGL,DirectX)
Pero aporta un mayor nivel de abstracción
5
José Carlos Cortizo Pérez
Motor 2D
Gestión de Sprites
Colocar bitmaps (varios formatos) por pantalla soportando transformaciones y canales alfa
Gestión de capas
Gestión de la entrada
Gestión del sonido
etc.
Funcionalidades Típicas
6
José Carlos Cortizo Pérez
Motor 2D
Es difícil establecer el límite
El Motor 2D es un paso más allá de abstracción que un API pero nadie establece una barrera clara
Lo único que importa del motor 2D es que nos ahorre tiempo
Motor 2D vs API
7
José Carlos Cortizo Pérez
Motor 2D
SDL: Simple DirectMedia Layer. Uno de los más importantes. Muchos motores lo utilizan como “API” de soporte
Haaf’s Game Engine
PTK 2D Game Engine
Torque Game Builder Pro
Allegro: Como SDL
Ejemplos
8
José Carlos Cortizo Pérez
PTK
PTK es más bien un SDK (Software Development Kit)
Es multiplataforma (Windows/Mac Os X)
Tiene ciertas capacidades 3D
Por debajo utiliza OpenGL o DirectX
Se programa con C++
Introducción
9
José Carlos Cortizo Pérez
PTKJuegos desarrollados con PTK
10
José Carlos Cortizo Pérez
PTK
Para Visual Studio .Net 2003Conseguir PTK (www.phelios.com/ptk)
Instalar Ptk y descomprimirlo en un directorio fácilmente accesible
Crear un proyecto de VC++ vacío
en Visual Studio
11
José Carlos Cortizo Pérez
PTKen Visual Studio
IV Master en Diseño y Programación de VideojuegosProf. José Carlos Cortizo Pérez
Ptk en Visual Studio
12
12
José Carlos Cortizo Pérez
PTKen Visual Studio
IV Master en Diseño y Programación de VideojuegosProf. José Carlos Cortizo Pérez
Ptk en Visual Studio
13 13
José Carlos Cortizo Pérez
PTK
Crear un archivo fuente (p.e. main.cpp) para que el Visual Studio se de cuenta de que es un proyecto C++
en Visual Studio
14
José Carlos Cortizo Pérez
PTK
Seleccionamos las propiedades del proyecto
Seleccionamos C/C++, y dentro de ahí el nodo General
Seleccionamos “Todas las Configuraciones” del panel de Configuraciones
En Directorios adicionales incluidos, referenciamos la carpeta libptk\pc\headers, si nuestro proyecto lo hemos creado al lado de Ptk, la podemos referenciar como “..\ptk\libptk\pc\headers”
en Visual Studio
15
José Carlos Cortizo Pérez
PTKen Visual Studio
IV Master en Diseño y Programación de VideojuegosProf. José Carlos Cortizo Pérez
Ptk en Visual Studio
17
16
José Carlos Cortizo Pérez
PTK
Seleccionamos el Nodo de Linkado, y el nodo General dentro de él
en Directorios de Librerías adicionales, referenciar libptk\pc\libmicrosoftvc, de forma similar al anterior p.e. “..\ptk\libptk\pc\libmicrosoftvc”
en Visual Studio
17
José Carlos Cortizo Pérez
PTKen Visual Studio
IV Master en Diseño y Programación de VideojuegosProf. José Carlos Cortizo Pérez
Ptk en Visual Studio
19
18
José Carlos Cortizo Pérez
PTK
Seleccionamos Linker->Input Node y en Dependencias Adicionales, metemos: libptkvc.lib ksoundvcstatic.lib winmm.lib opengl32.lib dsound.lib dxguid.lib
en Visual Studio
19
José Carlos Cortizo Pérez
PTKen Visual Studio
IV Master en Diseño y Programación de VideojuegosProf. José Carlos Cortizo Pérez
Ptk en Visual Studio
21
20
José Carlos Cortizo Pérez
PTK
Seleccionamos Debug del panel de Configuraciones, si pide guardar los cambios, le decimos que si
En la misma página, en Ignorar Librerías Específicas, ponemos “libcmt;libc”.
Seleccionamos Aplicar
en Visual Studio
21
José Carlos Cortizo Pérez
PTKen Visual Studio
IV Master en Diseño y Programación de VideojuegosProf. José Carlos Cortizo Pérez
Ptk en Visual Studio
23
22
José Carlos Cortizo Pérez
PTK
Cambiamos a configuración de Release y añadimos libc a la sección de Ignorar Librerías Específicas
Seleccionamos el nodo C++->Generación de Código
En Librerías de Ejecución (Runtime Library), seleccionamos Multi-threaded (/MT) y damos a Aplicar
en Visual Studio
23
José Carlos Cortizo Pérez
PTKen Visual Studio
IV Master en Diseño y Programación de VideojuegosProf. José Carlos Cortizo Pérez
Ptk en Visual Studio
25
24
José Carlos Cortizo Pérez
PTK
Seleccionamos modo Debug y dentro de ahí seleccionamos Multi-Threaded Debug (/MTd)
Aplicamos y listo
en Visual Studio
25
José Carlos Cortizo Pérez
PTKen Visual Studio
IV Master en Diseño y Programación de VideojuegosProf. José Carlos Cortizo Pérez
Ptk en Visual Studio
27
26
José Carlos Cortizo Pérez
PTK
Ahora falta añadir una serie de ficheros .lib al directorio recursos del proyecto
Se encuentran en dónde esté instalado el VS, \Vc7\PlatformSDK\Lib
d3dx.lib; ddraw.lib; dsound.lib; dxguid.lib
OpenGL32.lib; Shell32.lib; WinInet.lib; WinMM.lib
en Visual Studio
27
José Carlos Cortizo Pérez
PTK
#include "ptk.h"KWindow *window;int WINAPI WinMain(IN HINSTANCE hInstance,IN HINSTANCE hPrevInstance,IN LPSTR lpCmdLine,IN int nShowCmd ){ window = KPTK::createKWindow( K_OPENGL ); window->createGameWindow(640, 480, -1, true, "PTK Example"); window->setClearColor(1.0f, 0,0, 1.0f); window->setWorldView(0,0,0,1.0f, true); int saliendo=0; do { window->setClearColor( 0,0,0,0 ) ; window->setWorldView( 0 , 0 , 0 , 1 , true ); //surf_menu->blitRect( 0,0,1024,768,0,0 ) ; window->flipBackBuffer( ) ; if ( KInput::isPressed( K_VK_RIGHT ) == ISDOWN ) saliendo = 1; } while( saliendo == 0 ); return 0;}
Hola Mundo
28
José Carlos Cortizo Pérez
PTK: Ejemplo
Como primer objetivo de esta parte de la asignatura, se pretende realizar un “pseudo-pacman”
Este pacman tendrá un pacma controlable por el usuario y podrá pasearse a su antojo por un laberinto (respetando los sitios por donde puede y por donde no puede ir)
Existirá un fantasma que tratará de seguir al pacman
Desarrollo de un Pacman
29
José Carlos Cortizo Pérez
PTK: Ejemplo
El código se encuentra en la web de la asignatura
Bajadlo, probadlo, comprendedlo y posteriormente...
Los ejercicios
Desarrollo de un Pacman
30
José Carlos Cortizo Pérez
PTK: Ejercicios
Modificar el Pacman para que cuándo el fantasma pille al Pacman, se acabe la partida y se pida al usuario que pulse una tecla para continuar. Si la pulsa, se reiniciará el juego
Ejercicio 2D:1
31
José Carlos Cortizo Pérez
PTK: Ejercicios
Modificar la Inteligencia del fantasma para que no se quede parado en algunas esquinas en determinadas situaciones
Ejercicio 2D:2
32
José Carlos Cortizo Pérez
PTK: Ejercicios
Crear otro fantasma con otro tipo de inteligencia. Documente bien el algoritmo elegido y por qué se elige
Ejercicio 2D:3
33
José Carlos Cortizo Pérez
PTK: Práctica 1
Desarrollar un juego en 2D que sea significativamente distinto del visto en los ejemplos. Céntrese sobre todo en la parte gráfica y de control de los sprites. A ser posible, que el juego permita ser mejorado posteriormente mediante la adición de físicas, inteligencia artificial, control del juego, etc.
Juego 2D
34
José Carlos Cortizo Pérez
¿Alguna pregunta?
35
José Carlos Cortizo Pérez
Referencias
“Game Art: The Graphic Art of Computer Games” de Leo Hartas y Dave Morris
“Game Coding Complete” de Mike McShaffry
“Data Structures for Game Programmers” de Ron Penton
“Focus On 2D in Direct 3D” de Ernest Pazera
“Focus on SDL” de Ernest Pazera
36