Motores De Videojuegos

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Motores De Videojuegos as PDF for free.

More details

  • Words: 1,139
  • Pages: 36
Motores de Juego Motor 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

Ubicación

José Carlos Cortizo Pérez 2

Indice

José Carlos Cortizo Pérez 3

Indice

José Carlos Cortizo Pérez 4

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 José Carlos Cortizo Pérez 5

Motor 2D

Funcionalidades Típicas 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. José Carlos Cortizo Pérez 6

Motor 2D Motor 2D vs API

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

José Carlos Cortizo Pérez 7

Motor 2D Ejemplos

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 José Carlos Cortizo Pérez 8

PTK

Introducción

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++ José Carlos Cortizo Pérez 9

PTK

Juegos desarrollados con PTK

José Carlos Cortizo Pérez 10

PTK

en Visual Studio

Para Visual Studio .Net 2003 Conseguir PTK (www.phelios.com/ptk) Instalar Ptk y descomprimirlo en un directorio fácilmente accesible Crear un proyecto de VC++ vacío

José Carlos Cortizo Pérez 11

PTK Ptk en Visual Studio en Visual Studio

José Carlos de Cortizo Pérez IV Master en Diseño y Programación Videojuegos Prof. José Carlos Cortizo Pérez12

PTK

Ptk en Visual Studio

en Visual Studio

IV Master en Diseño y Programación de Videojuegos Prof. JoséJosé CarlosCarlos CortizoCortizo Pérez Pérez 13

13

PTK

en Visual Studio

Crear un archivo fuente (p.e. main.cpp) para que el Visual Studio se de cuenta de que es un proyecto C++

José Carlos Cortizo Pérez 14

PTK

en Visual Studio 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” José Carlos Cortizo Pérez 15

PTK

Ptk en Visual Studio

en Visual Studio

José Carlos Pérez IV Master en Diseño y Programación de Cortizo Videojuegos Prof. José Carlos Cortizo Pérez 16

PTK

en Visual Studio

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”

José Carlos Cortizo Pérez 17

PTK Ptk en Visual Studio en Visual Studio

José Carlos Cortizo Pérez

IV Master en Diseño y Programación de Videojuegos

18

PTK

en Visual Studio

Seleccionamos Linker->Input Node y en Dependencias Adicionales, metemos: libptkvc.lib ksoundvcstatic.lib winmm.lib opengl32.lib dsound.lib dxguid.lib

José Carlos Cortizo Pérez 19

PTK Ptk en Visual Studio en Visual Studio

José CarlosdeCortizo Pérez IV Master en Diseño y Programación Videojuegos Prof. José Carlos Cortizo Pérez20

PTK

en Visual Studio

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 José Carlos Cortizo Pérez 21

PTK Ptk en Visual Studio en Visual Studio

José Carlos Cortizo Pérez

IV Master en Diseño y Programación de Videojuegos

22

PTK

en Visual Studio

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 José Carlos Cortizo Pérez 23

PTK Ptk en Visual Studio en Visual Studio

José Carlos Cortizo Pérez

IV Master en Diseño y Programación de Videojuegos

24

PTK

en Visual Studio

Seleccionamos modo Debug y dentro de ahí seleccionamos Multi-Threaded Debug (/MTd) Aplicamos y listo

José Carlos Cortizo Pérez 25

PTK Ptk en Visual Studio en Visual Studio

José Carlos Cortizo Pérez

IV Master en Diseño y Programación de Videojuegos

26

PTK

en Visual Studio 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 José Carlos Cortizo Pérez 27

PTK

Hola Mundo #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; }

José Carlos Cortizo Pérez 28

PTK: Ejemplo

Desarrollo de un Pacman

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 José Carlos Cortizo Pérez 29

PTK: Ejemplo

Desarrollo de un Pacman

El código se encuentra en la web de la asignatura Bajadlo, probadlo, comprendedlo y posteriormente... Los ejercicios

José Carlos Cortizo Pérez 30

PTK: Ejercicios Ejercicio 2D:1

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

José Carlos Cortizo Pérez 31

PTK: Ejercicios Ejercicio 2D:2

Modificar la Inteligencia del fantasma para que no se quede parado en algunas esquinas en determinadas situaciones

José Carlos Cortizo Pérez 32

PTK: Ejercicios Ejercicio 2D:3

Crear otro fantasma con otro tipo de inteligencia. Documente bien el algoritmo elegido y por qué se elige

José Carlos Cortizo Pérez 33

PTK: Práctica 1 Juego 2D

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.

José Carlos Cortizo Pérez 34

¿Alguna pregunta?

José Carlos Cortizo Pérez 35

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 José Carlos Cortizo Pérez 36

Related Documents

Motores De Videojuegos
November 2019 9
Videojuegos
May 2020 7
Videojuegos
April 2020 4
Motores
June 2020 31
Motores
October 2019 65