Programaci贸n de videojuegos.
Introducciรณn general. La siguiente serie de presentaciones estรกn orientadas a conocer la programaciรณn de videojuegos y explican, ademรกs de contextualizar el tema haciendo un recorrido que pasa de una menor a mayor complejidad, la relaciรณn entre cada una de las partes que busca un mayor entendimiento de las materias anexas al desarrollo del mismo.
Los temas de cada una de las presentaciones son los siguientes: No. 1. Fundamentos de programaci贸n. No. 2. Programaci贸n orientada a objetos. No. 3. Fundamentos de la programaci贸n de videojuegos en el lenguaje de programaci贸n C#
Presentaci贸n No.1
Fundamentos de programaci贸n.
-Los Videojuegos son altamente magn茅ticos porque a diferencia de otros medios de entretenimiento como la televisi贸n o el cine permiten la interacci贸n del usuario con los elementos que los componen.
-Esa interacci贸n entre usuario y videojuego se logra con la ayuda un programa.
-Este programa utiliza una serie de instrucciones que son ejecutadas en el dispositivo que se juega (Consola, computador, telĂŠfono, etc.) como sucede con otros programas de uso comercial.
-Puede parecer obvio decirlo pero se debe recordar que los videojuegos tambiĂŠn son programas pero producidos exclusivamente para utilizarlos en entretenimiento.
-Para lograr este prop贸sito, los videojuegos gestionan recursos conceptuales, gr谩ficos y sonoros mediante el uso de lenguajes de programaci贸n.
-Programar un videojuego, que es el motivo final de esta serie de presentaciones hace necesario el uso de aquellos lenguajes.
-Antes de entrar a entender c贸mo se programa un videojuego, debemos conocer los fundamentos de programaci贸n en general y de la programaci贸n orientada a objetos en particular.
Fundamentos de programaci贸n.
Fundamentos de programación. Para entender este tema debemos estudiar los siguientes conceptos:
1.El Software 2. Lenguajes de programación 3. Resolución de problemas con computadora 4. Entorno de programación 5. Tipos de Datos 6. Variables y Constantes 7. Sentencias 8. Operadores y Expresiones 9. Estructuras Básicas de Control 10. Procedimientos y Funciones 11. Visibilidad de variables 12. Bibliotecas 13. Arrays 14. El Estilo de Programación
1. El Software Las operaciones que debe realizar el hardware son descritas o se単aladas con una lista de instrucciones, llamadas programas o software.
Existen dos grandes grupos de software
*Software del Sistema Indispensable para que la m谩quina funcione y para escribir programas de aplicaci贸n
*Software de Aplicaci贸n Realiza tareas concretas que tienen utilidad para ciertos usuarios
2. Lenguajes de programaci贸n Se trata de los lenguajes utilizados para escribir programas de computadoras que puedan ser entendidos por ellas.
Estos lenguajes se clasifican en tres grandes categorĂas: *lenguajes
de mĂĄquina instrucciones directamente entendibles por la computadora (lenguaje binario) *Lenguaje de bajo nivel Que provee un juego de instrucciones mĂĄs comprensibles por los humanos. *Lenguajes de alto nivel
Lenguajes de alto nivel *Utilizan instrucciones escritas con palabras similares a los lenguajes humanos. *Son independientes de la mรกquina en la que se ejecutan. *Necesitan ser traducidos a instrucciones en lenguaje mรกquina (Compilaciรณn).
Existen diversos tipos de lenguajes de alto nivel: *Estructurados *Orientados a Objetos *Declarativos *Funcionales
3. Resoluci贸n de problemas con la computadora El proceso de dise帽ar un programa es, esencialmente un proceso creativo.
A pesar de ser la programaci贸n un proceso creativo se deben seguir algunos pasos que hacen m谩s formal la actividad.
Los pasos que se deben seguir para diseñar un programa son los siguientes:
-Análisis del problema -Diseño del algoritmo solución -Codificación -Compilación y Ejecución -Verificación
-Depuración -Documentación
4. Entorno de programaci贸n. Tambi茅n son conocidos como IDEs y se les considera una herramienta esencial a la hora de desarrollar software
Un IDE Incluye: *Editor *Intérprete o Compilador *Depurador *Ayuda en línea
5. Tipos de datos Se trata de piezas de informaci贸n con las que un programa trabaja. En un programa cada dato tiene asociado un 煤nico tipo
El tipo de dato determina la naturaleza del conjunto de valores que un dato puede tomar.
Ejemplos: NĂşmero entero NĂşmero real Cadena de caracteres Valor lĂłgico (Verdadero o Falso)
6. Variables y constantes Existen dos grupos principales de datos:
Variables. El valor puede cambiar durante la ejecuci贸n del programa.
Constantes. Son valores que no pueden cambiar durante la ejecuci贸n del programa.
-Ambos tienen un valor y un nombre. -Permiten representar mediante un nombre, una posici贸n de memoria que contiene un valor.
7. Sentencias Describen acciones algoritmicas que pueden ser ejecutadas.
Las sentencias se clasifican en: Ejecutables/ No ejecutables. Simples/Estructuradas.
8. Operadores y expresiones -Sirven para procesar variables y constantes. -Una expresi贸n es un conjunto de datos unidos por operadores que producen un 煤nico resultado.
-En las expresiones aritmĂŠticas el resultado es un nĂşmero.
a = ((2+6) / 8) * 3
-En las expresiones l贸gicas el resultado es un valor verdadero o falso. (a < 10) y (b > 50)
-Existen diversos tipos de operadores y expresiones:
Aritm茅ticos: suma, resta, multiplicaci贸n, etc. De relaci贸n: Mayor, menor, igual, distinto, etc. L贸gicos: and, or, not, etc.
9. Estructuras b谩sicas de control. -El orden de ejecuci贸n de las sentencias de un programa determina su flujo de control. -Las estructuras de control permiten alterar el orden del flujo de control.
-Existen dos tipos b谩sicos de estructuras de control: *De Selecci贸n. *De Repetici贸n o iteracci贸n.
-Estructuras de control Selectivas. (1/1) Dirigen el flujo de ejecuci贸n seg煤n el resultado de evaluaci贸n de expresiones.
-Estructuras de control Selectivas. (1/2) IF si expresion_logica entonces hacer acci贸n A sino hacer acci贸n B fin_si
-Estructuras de control Selectivas. (1/3) Case según sea selector hacer C11,C12,…..:sentencia1 C21,C22,…..:sentencia2 ….. {sino sentencia X} fin_ según
Estructuras de control Repetitivas. (1/1) -Permiten ejecutar un conjunto de sentencias repetidamente una cierta cantidad de veces o hasta que se cumpla una determinada condici贸n.
-El conjunto de sentencias se denomina bucle Cada repetici贸n del cuerpo del bucle se denomina iteraci贸n.
-Estructuras de control Repetitivas. (1/2) WHILE mientras condiciĂłn hacer sentencia/s â&#x20AC;Ś.. fin_mientras
-Estructuras de control Repetitivas. (1/3) FOR desde variable ď&#x192;&#x; valor_inicial hasta valor_final hacer sentencia/s â&#x20AC;Ś. fin_desde
10. Procedimientos y funciones (1/8)
Descomposici贸n en subprogramas: estrategia para resolver problemas complejos
Procedimientos y funciones (2/8)
Los subprogramas se implementan a travĂŠs de procedimientos y funciones. -Compuestos por un grupo de sentencias. -Se les asigna un nombre. -Pueden invocarse entre sĂ utilizando ese nombre. -Constituyen una unidad de programa.
Procedimientos y funciones (3/8) Los procedimientos y funciones se comunican con su invocador a travĂŠs de parĂĄmetros.
Procedimientos y funciones (4/8) Los parĂĄmetros son un medio para pasar informaciĂłn y son implementados a travĂŠs de variables con valor.
Procedimientos y funciones (5/8) Tipos de parรกmetro: -De Entrada: su valor es proporcionado por el invocador antes de llamar al subprograma. De Salida: su valor es calculado dentro de un subprograma y devuelto a su invocador.
Procedimientos y funciones (6/8) Ejemplo: Definiciรณn procedimiento CalcularSuma( parรกmetro1 entero, parรกmetro2 entero) devuelve entero devolver parรกmetro1 + parรกmetro2 fin_procedimiento
Procedimientos y funciones (7/8) Invocación Desde el programa principal u otro subprograma número entero a = 2 número entero b = 3 número entero c = CalcularSuma(a,b) carácter d = CalcularSuma(a,b) ERROR
Procedimientos y funciones (8/8) Ventajas de utilizar procedimientos: -Facilita el dise帽o descendente y modular. -Promueven la reutilizaci贸n de c贸digo. -Facilita la divisi贸n de tareas. -Pueden comprobarse individualmente. -Pueden encapsularse en bibliotecas independientes.
11. Visibilidad de variables (1/1)
Variable Local: -Declarada en un subprograma. -S贸lo est谩 disponible durante el funcionamiento del subprograma. -Su valor se pierde una vez que el subprograma termina.
Visibilidad de variables (2/1) Variable Global: -Declarada en el programa principal. -Estรก disponible en el programa principal y en todos los subprogramas. -Su valor se pierde una vez que el programa principal termina.
12. Bibliotecas(1/1) -Archivo independiente que contiene un conjunto de subprogramas. -Pueden ser incluidas y referenciadas en el desarrollo de múltiples programas. -Facilitan la modularización de un programa. -Desarrollo Programa Fuente. -Compilación Programa Objeto. -Link-Edición Programa Ejecutable.
13. Arrays (Arreglos)(1/6) Son estructuras de datos en las que se almacenan un conjunto de datos finitos del mismo tipo.
Arrays (Arreglos)(2/6) -Almacenan sus elementos en posiciones de memoria contiguas. -Tienen un Ăşnico nombre de variable que representa a todos los elementos. -Permiten acceso directo o aleatorio a sus elementos individuales.
Arrays (Arreglos)(3/6) Los arrays se clasifican en unidimensionales y multidimensionales.
Arrays (Arreglos)(4/6) Arrays unidimensionales (Vectores): -Número finito de elementos. -Tamaño Fijo. -Elementos Homogéneos. -Se accede a los elementos utilizando el nombre del array y el subíndice específico.
Arrays (Arreglos)(5/6)
Ejemplo: -salarios(3) Reales Nombre del array, de 3 posiciones que contendrán número reales -salarios[1] = 23,4 Asignación de un valor al primer elemento del array
Arrays (Arreglos)(6/6)
Arrays multidimensionales -Arrays bidimensionales (Matrices o Tablas) -Tienen dos Ăndices, uno para filas y otro para columnas
14. Estilos de programación (1/2)
-Es una de las características más importantes de un buen programador. -Un buen estilo facilita la comprensión, corrección y mantenimiento de un programa.
Estilos de programación (2/2) Algunos puntos a tener en cuenta: -Comentarios. -Elección de nombres significativos. -Identificación. -Espacios y Líneas en Blanco. -Validación usando datos de prueba.