Warning: strpos() expects parameter 1 to be string, array given in /home/site/wwwroot/wp-content/themes/twentynineteen-child/functions.php on line 163
Para partir en una introducción a C# es importante preguntarse: ¿Qué tiene que ver la programación con los objetos?. La programación es un campo muy amplio, en el que existen muchas formas de programar. Existe algo en programación llamada paradigmas de programación, que son estilos de programación. El paradigma secuencial consiste en que las instrucciones van de arriba hacia abajo, de manera secuencial, una después de otra. Es la manera más sencilla de aprender a programar. Pero esto no funciona en proyectos grandes. Cambiar mentalmente de un paradigma a otro es complicado.
El paradigma más utilizado es la Programación Orientada a Objetos (POO). Cada elemento que necesita el sistema (aplicación o programa) es un objeto en este paradigma y esos objetos tiene sus propios datos, características, su propia funcionalidad, y comportamiento. Los videojuegos más ambiciosos pueden tener más de un millón de líneas de código. Los estilos de programación, como la POO, ayudan a escribir un código que es más fácilmente modificable y mantenible, algo fundamental en la vida de un videojuego. ¿Cómo hace esto la programación orientada a objetos?. Organizando el código en lo que se conoce como objetos.
Clases y objetos
Las clases y los objetos son los conceptos más importantes de la Programación Orientada a Objetos y están fuertemente relacionados. Los objetos se crean a partir de las clases y estas sirven para crear objetos. Un objeto contiene información sobre sus datos o atributos y su comportamiento o funcionalidad.
- Atributos: son las características del objeto, las palabras que usaría para describirlo. Podría obtener estos atributos pensando en “es” o “tiene”. Por ejemplo: un jugador tiene un nombre, es humano o animal, tiene unos puntos de vida determinados, tiene una fuerza determinada, etc. Estos atributos describen el estado en que se encuentra el objeto.
- Métodos: son lo que el objeto puede hacer. Normalmente, se tratan de verbos. Por ejemplo, un jugador puede andar, correr, saltar, recibir daño, etc. Estos métodos describen el comportamiento que tendrá el objeto.
Una clase define el estado y comportamiento que todos los objetos, producidos a partir de ella, tendrán. Cada objeto tiene sus datos, en POO llamados atributos, y su funcionalidad, llamada métodos. La POO se centra en objetos que se definen por su estado y su comportamiento. La clase es una plantilla con la estructura básica del objeto, sus atributos y sus métodos. Lo que crea en el proceso de abstracción es la plantilla para ese objeto, la clase, que se utiliza para crear nuevos objetos mediante un proceso denominado instanciar. Instanciar es, por tanto, generar un objeto a partir de una clase. De ahí que a cada uno de esos objetos se le llame también instancia. Así, con una sola clase puede originar tantos objetos como quiera, sin tener que escribir el código de nuevo.
Entorno Visual Studio
Visual Studio es un entorno de desarrollo integrado (IDE) para Windows y macOS que puede utilizarse para editar, depurar y compilar código y, después, para publicar una aplicación. Además del editor estándar y el depurador que proporcionan la mayoría de IDE, Visual Studio incluye compiladores, herramientas de finalización de código, diseñadores gráficos y muchas características más para facilitar el proceso de desarrollo de software. La versión más reciente de Visual Studio puede descargarse desde la web de Microsoft, donde, además, se ofrece ayuda para iniciarse en el programa y personalizarlo, además de diversos tutoriales, entre ellos alguno sobre desarrollo de juegos con Unity.
Tipos de datos
Un tipo de datos es la propiedad de un valor que determina su dominio (qué valores puede tomar), qué operaciones se le pueden aplicar y cómo es representado internamente por el ordenador. Los atributos de un objeto describen el estado de este y pueden ser de cualquier tipo de datos. C# es un lenguaje fuertemente tipado, es decir, no permite violaciones de los tipos de datos, lo que significa que debe declarar el tipo de las variables que se van a declarar, lo cual indica el tipo de valores que van a almacenar. C# categoriza los tipos de datos en los siguientes tipos:
- Tipos de valor.
- Los tipos de referencia.
- Tipos puntero.
Una variable de un tipo de valor, contiene una instancia del tipo, es decir, contiene directamente datos. Una variable de tipo de referencia, almacena una referencia a una instancia del tipo. Un puntero es una variable que almacena la dirección de memoria de otro tipo.
Conversiones de tipo
Dado que C# tiene tipos estáticos en tiempo de compilación, después de declarar una variable, no se puede volver a declarar ni se le puede asignar un valor de otro tipo, a menos que ese tipo sea convertible de forma implícita al tipo de la variable. Por ejemplo, string no puede convertirse de manera implícita a int. Por tanto, si ha declarado una variable “i” de tipo int, no puede asignarle como valor “Hola”. Como se ve en el siguiente código, obtendría un error:
int i; // error CS0029: Cannot implicitly convert type ‘string’ to ‘int’ i = “Hello”
No obstante, es posible que a veces sea necesario copiar un valor en una variable, o parámetro de método, de otro tipo. Por ejemplo, se podría tener una variable de tipo int, que se necesita pasar a un método, cuyo parámetro de entrada es de tipo double. O se podría tener que asignar a una variable de clase, una variable de tipo interfaz. Estos tipos de operaciones se denominan conversiones de tipos. En C# se pueden realizar las siguientes conversiones de tipos:
- Conversiones implícitas: no requieren sintaxis especial, pues la conversión siempre es correcta y no se pierden datos. Por ejemplo, la conversión de tipo int más pequeño, a uno más grande, y la conversión de clases derivadas, a clases base.
- Conversiones explícitas: requieren una expresión Cast (una expresión de conversión) y son necesarias cuando es posible que se pierda información en la conversión o que la conversión no sea correcta por otros motivos.
- Conversiones definidas por el usuario: se ejecutan por medio de métodos especiales, que se definen para habilitar conversiones explícitas e implícitas entre tipos personalizados, sin una relación de clase base – clase derivada.
Conversiones explícitas
Cuando no se puede realizar una conversión, sin riesgo de perder información, el compilador requiere que se realice una conversión explícita. Una conversión de tipos es la manera de informar, explícitamente, al compilador que se quiere hacer la conversión, siendo consciente de que es posible perder datos o de que la conversión puede fallar en tiempo de ejecución. Para ejecutar esta conversión, se indica el tipo al que se quiere convertir entre paréntesis, delante del valor o la variable que se quiere convertir.
El lenguaje en los videojuegos
Además de resultar estéticamente muy bien estructurados, los videojuegos cuentan con todo un lenguaje supremamente complejo detrás de ello. Esto permite que el jugador viva la experiencia, ya sea piloteando un automóvil por una pista de carreras, hasta controlando las acciones que realiza un superhéroe en una ciudad. El trabajo que conlleva este resultado no es sencillo, y es por ello que el conocimiento juega un papel crucial aquí.
TECH Universidad Tecnológica se enfoca en las áreas de mayor demanda laboral, brindando amplitud de oportunidades a aquellos interesados en ampliar sus estándares. Por esta razón, dedicó por completo la Facultad de Videojuegos enteramente a este campo que se encuentra en constante crecimiento. Allí, destacan especializaciones tales como el Máster en Arte para Videojuegos y el Máster en Animación 3D y Realidad Virtual para Videojuegos. A pesar de ser excelentes opciones para aquellos que quieran incursionar en este campo, no cabe duda que si su interés se enfoca en el campo de la programación, su mejor decisión será optar por el Máster en Programación para Videojuegos.