Me gustaría preguntar ¿cuál debería aprender primero cuando aprenda a programar?
Programación Esta es una pregunta que se encuentra en todas las preguntas frecuentes sobre programación de juegos. Esta pregunta se hace varias veces a la semana en foros de desarrollo de juegos. Es una buena pregunta, pero nadie tiene una respuesta sencilla. Siempre hay algunos lenguajes informáticos que son mejores que otros en determinadas aplicaciones. A continuación se muestran algunos de los principales lenguajes de programación utilizados para escribir juegos, junto con sus ventajas y desventajas. Espero que este artículo te ayude a tomar tu decisión. 1. Lenguaje C Si FORTRAN y COBOL son la primera generación de lenguajes compilados de alto nivel, entonces el lenguaje C es su nieto. El lenguaje C fue creado por Dennis Ritchie en los años 1970. Es más potente y mantiene una herencia más continua con ALGOL, que es el sucesor estructurado de COBOL y FORTRAN. El lenguaje C fue diseñado para ser una versión más refinada y simple que sus predecesores, y era adecuado para escribir programas a nivel de sistema, como sistemas operativos. Antes de esto, los sistemas operativos se escribían en lenguaje ensamblador y no eran portátiles. C fue el primer lenguaje de programación que hizo posible la portabilidad del código a nivel de sistema. El lenguaje C admite programación estructurada, lo que significa que los programas C se escriben como una colección de llamadas a funciones separadas que se ejecutan de arriba hacia abajo, en lugar de como un bloque de código integrado separado controlado por el proceso de declaraciones GOTO. Por lo tanto, los programas en C son mucho más simples que el "código espagueti" del código integrado FORTRAN y COBOL. De hecho, C todavía tiene la sentencia GOTO, pero su funcionalidad es limitada y sólo se recomienda su uso cuando la solución estructurada es muy compleja. Debido a sus raíces en la programación de sistemas, es bastante fácil combinar C y lenguaje ensamblador. La interfaz de llamada de funciones es muy simple y las instrucciones en lenguaje ensamblador se pueden incrustar en el código C, por lo que no es necesario conectar módulos ensambladores independientes. Ventajas: Bueno para escribir programas pequeños y rápidos. Fácilmente combinable con lenguaje ensamblador. Altamente estandarizado por lo que las versiones en otras plataformas son muy similares. Desventajas: No es fácil admitir tecnología orientada a objetos. La sintaxis a veces puede ser muy difícil de entender y susceptible de abuso. Portabilidad: el núcleo del lenguaje C y las llamadas a funciones ANSI son portátiles, pero se limitan al control de procesos, la gestión de la memoria y el procesamiento simple de archivos. Todo lo demás está relacionado con la plataforma. Por ejemplo, al desarrollar programas portátiles para Windows y Mac, la parte de la interfaz de usuario necesita utilizar llamadas a funciones relacionadas con el sistema. Generalmente, esto significa que debe escribir el código de la interfaz de usuario dos veces, pero afortunadamente existen bibliotecas que pueden aliviar la carga de trabajo. Juegos escritos en C: muchísimos. Información: El libro clásico sobre C es "El lenguaje de programación C". Ha sido revisado muchas veces y ampliado hasta tres veces su tamaño original, pero sigue siendo una excelente introducción a C. Un excelente tutorial es C Primer Plus de The Waite Group. 2. C++ El lenguaje C++ es el sucesor del lenguaje C con características orientadas a objetos. La programación orientada a objetos, u OOP, es el siguiente paso en la programación estructurada. Los programas OO se componen de objetos, donde los objetos son colecciones discretas de datos y funciones. Hay muchas bibliotecas de objetos disponibles que hacen que la programación sea tan simple como reunir algunos "materiales de construcción" del programa (al menos en teoría). Por ejemplo, existen muchas bibliotecas de bases de datos y GUI que se implementan como colecciones de objetos. C++ es siempre tema de debate, especialmente en foros de desarrollo de juegos. Varias características de C++, como las funciones virtuales, añaden una capa adicional a la toma de decisiones sobre llamadas a funciones, y los críticos se apresuran a señalar que los programas de C++ serán más grandes y más lentos que los programas de C con la misma funcionalidad. Los defensores de C++ creen que escribir código equivalente a funciones virtuales en C también aumentará los gastos. Éste será un debate en curso que es poco probable que concluya rápidamente. Creo que el coste adicional de C++ es sólo un pequeño precio a pagar por utilizar un lenguaje mejor. El mismo debate se produjo en la década de 1960, cuando los lenguajes de programación de alto nivel como COBOL y FORTRAN comenzaron a reemplazar al ensamblador como lenguaje de elección. Los críticos señalan con razón que los programas escritos en lenguajes de alto nivel son inherentemente más lentos que el lenguaje ensamblador escrito a mano, y deben serlo. Los defensores del lenguaje de alto nivel creen que esta pequeña penalización en el rendimiento vale la pena porque los programas COBOL y FORTRAN son más fáciles de escribir y mantener. Ventajas: Mucho mejor que C a la hora de organizar programas grandes.
Muy buen soporte para mecanismos orientados a objetos. Una biblioteca de estructuras de datos comunes, como listas vinculadas y matrices ampliables, alivia la carga de lidiar con detalles de bajo nivel. Desventajas: Muy grande y complejo. Al igual que el lenguaje C, existen problemas de abuso de sintaxis. Más lento que C. La mayoría de los compiladores no implementan todo el lenguaje correctamente. Portabilidad: Mucho mejor que el lenguaje C, pero aún no es muy optimista. Debido a que tiene las mismas deficiencias que el lenguaje C, la mayoría de las bibliotecas de interfaz de usuario portátiles se implementan utilizando objetos C++. Juegos escritos en C++: muchísimos. La mayoría de los juegos comerciales están escritos en C o C++. Información: La última versión del "Lenguaje de programación C++" es muy buena. A modo de tutorial, hay dos campos, uno que supone que sabes C y otro que supone que no. Con diferencia, el mejor tutorial de C++ es "¿Quién teme a C++?". Si ya está familiarizado con C, pruebe "Aprenda usted mismo C++". 3. ¿Debería aprender C++ o empezar con C? No me gusta esta afirmación, pero es la pregunta más frecuente después de "¿Qué idioma debo usar?" Desafortunadamente, no existe una respuesta estándar. Puedes ahorrar mucho tiempo si aprendes C y escribes programas usándolo, pero hay dos inconvenientes al usar este enfoque: te perderás el conocimiento orientado a objetos que puede hacer que el modelado de datos en tu juego sea algo más eficiente. Muchos de los juegos comerciales más importantes, incluidos los de disparos en primera persona, no utilizan C++. Sin embargo, aunque los autores de estos programas utilicen el antiguo formato C, normalmente se apegan a técnicas de programación orientada a objetos. Si solo quieres aprender C, al menos aprende técnicas de programación OO (orientada a objetos). OO es la manera perfecta de simular (juego), si no aprendes OO tendrás que trabajar "duro". 4. Lenguaje ensamblador Obviamente, el ensamblador es el primer lenguaje informático. El lenguaje ensamblador es en realidad una representación en forma de comando de las instrucciones que realmente ejecuta el procesador de su computadora. Esto significa que trabajará con las capas inferiores del procesador, como registros y pilas. Si está buscando un idioma similar al inglés con autodocumentación asociada, esto no es lo que desea. Literalmente, cualquier cosa que puedas hacer en otros lenguajes, el ensamblador lo puede hacer, pero no es tan fácil; por supuesto, es como decir que puedes conducir a algún lugar o caminar a algún lugar, simplemente es más difícil. Es bueno decirlo, pero la nueva tecnología hace que las cosas sean más fáciles de usar. En general, el lenguaje ensamblador no se utiliza solo en los juegos. Los juegos utilizan el ensamblaje principalmente para piezas que mejoran el rendimiento. Por ejemplo, todo Doom Slayer está escrito en C, con varios programas de dibujo que utilizan ensamblador. Estos procedimientos se llaman miles de veces por segundo, por lo que ser lo más conciso posible ayudará a mejorar el rendimiento de tu juego. Llamar a funciones escritas en ensamblador desde C es bastante sencillo, por lo que utilizar ambos lenguajes al mismo tiempo no supone un problema. Nota especial: el nombre del idioma es "ensamblaje". La herramienta que traduce el lenguaje ensamblador a código de máquina real se llama "ensamblador". Llamar al lenguaje "ensamblador" es un nombre inapropiado común, así que comience con el nombre correcto del lenguaje. Ventajas: el lenguaje más pequeño y rápido. Los maestros ensambladores pueden escribir programas que son mucho más rápidos que cualquier otro lenguaje. Serás el primero en aprovechar las últimas funciones del procesador porque puedes usarlas directamente. Desventajas: Difícil de aprender, sintaxis oscura, insistencia en la eficiencia, lo que resulta en una gran cantidad de código adicional, no apto para cardíacos. Portabilidad: cercana a cero. Debido a que el lenguaje fue diseñado para un solo procesador, no había ninguna portabilidad. Si utiliza las funciones extendidas de un procesador en particular, su código ni siquiera se puede portar a otros procesadores del mismo tipo (por ejemplo, las instrucciones 3DNow de AMD no se pueden portar a otros procesadores de la serie Pentium). Juegos escritos en ensamblador: No conozco ningún juego comercial desarrollado íntegramente en ensamblador. Sin embargo, algunos juegos utilizan el ensamblaje para la mayoría de las piezas en las que el tiempo es crítico. Documentación: si busca documentación en lenguaje ensamblador, principalmente busca documentación de chips. Hay alguna información sobre sus procesadores en Internet como Intel, AMD, Motorola, etc. En cuanto a los libros, vale la pena aprender "Lenguaje ensamblador: paso a paso".
5. Lenguaje Pascal El lenguaje Pascal fue diseñado por Nicolas Wirth a principios de la década de 1970 porque estaba decepcionado de que FORTRAN y COBOL no obligaran a los estudiantes a capacitarlos en programación estructurada. El "código espagueti" se convirtió en la norma, y en ese momento el lenguaje no estaba en contra. él. Pascal fue diseñado para hacer cumplir la programación estructurada. Pascal fue diseñado originalmente estrictamente con fines didácticos, pero finalmente, una gran cantidad de fanáticos lo ayudaron a ingresar a la programación comercial. Cuando Borland lanzó Turbo Pascal en IBM PC, Pascal tuvo un momento de gloria. El editor integrado, el compilador ultrarrápido y el bajo precio lo hicieron irresistible, y la programación Pascal se convirtió en el lenguaje elegido para escribir pequeños programas para MS-DOS. Sin embargo, pronto los compiladores de C se volvieron más rápidos y tenían excelentes editores y depuradores integrados. Pascal llegó a su fin cuando Windows se hizo popular en 1990. Borland abandonó Pascal y centró su atención en C++ para escribir programas para Windows. Turbo Pascal fue rápidamente olvidado
Esperemos que sea adoptado