¿Aprender c o c? ¿Dónde se usan cyc? Programación Esta es una pregunta que aparece 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 gran pregunta, pero nadie tiene una respuesta fácil. Siempre hay algunos lenguajes informáticos que son mejores que otros en determinadas aplicaciones. Estos son algunos de los principales lenguajes de programación utilizados para escribir juegos, junto con sus ventajas y desventajas. Esperamos que este artículo te ayude a tomar tu decisión. 1. C Si FORTRAN y COBOL son la primera generación de lenguajes compilados de alto nivel, entonces C es su descendiente. El lenguaje C fue creado por Dennis Ritchie en la década de 1970. Es más potente, mantiene una relación de herencia más continua con ALGOL y es el sucesor estructural de COBOL y FORTRAN. El lenguaje C fue diseñado para ser una versión más compacta y simple que sus predecesores, adecuada 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. C admite programación estructurada, lo que significa que los programas en C se escriben como colecciones separadas de llamadas a funciones (invocaciones) que se ejecutan de arriba hacia abajo, en lugar de bloques de código integrados independientes que utilizan declaraciones GOTO para controlar el flujo. Por tanto, los programas en C son mucho más simples que el "código de polvo hueco" que integra FORTRAN y COBOL. De hecho, el lenguaje C aún conserva 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, C es muy fácil de combinar con el lenguaje ensamblador. La interfaz de llamada a 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 separados. Ventajas: Propicio para escribir programas pequeños y rápidos. Fácil de combinar con lenguaje ensamblador. Existe un alto grado de estandarización 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 es difícil de entender y fácil de abusar. Portabilidad: El núcleo del lenguaje C y las llamadas a funciones ANSI son portátiles, pero sólo para el control de procesos, la gestión de la memoria y el manejo sencillo de archivos. Todo lo demás depende de la plataforma. Por ejemplo, al desarrollar programas portátiles para Windows y Mac, partes de la interfaz de usuario requieren llamadas a funciones dependientes del sistema. Por lo general, 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: muy, muy necesarios. Información El libro clásico sobre el lenguaje C es "El lenguaje de programación C". Este libro ha sido revisado muchas veces y triplicado su extensión, pero sigue siendo un buen libro de introducción al lenguaje C. 2. C El lenguaje C es el sucesor del lenguaje C y tiene características orientadas a objetos. Los programas OO se componen de objetos, que son colecciones discretas de datos y funciones. Hay un gran inventario de objetos disponibles, lo que hace que la programación sea tan fácil como apilar algunos "bloques de construcción" del programa (al menos en teoría). Por ejemplo, existen muchas interfaces gráficas de usuario y bibliotecas de bases de datos que se implementan como colecciones de objetos. C es siempre un tema muy debatido, especialmente en los foros de desarrollo de juegos. Algunas características de C, como las funciones virtuales, añaden un nivel adicional de toma de decisiones a las llamadas a funciones, y los críticos se apresuran a señalar que los programas en C serán más grandes y más lentos que los programas en C con la misma funcionalidad. Éste será un debate en curso y es poco probable que concluya rápidamente. Creo que el gasto adicional de C es 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 lenguaje ensamblador como lenguaje de elección. Los críticos señalan correctamente que los programas escritos en lenguajes de alto nivel son inherentemente más lentos que el lenguaje ensamblador escrito a mano. Los defensores de los lenguajes de alto nivel argumentan 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 Es mucho mejor que el lenguaje C para organizar programas grandes. Buen soporte para mecanismos orientados a objetos. Las bibliotecas compuestas por estructuras de datos comunes, como listas vinculadas y matrices ampliables, alivian la carga de lidiar con detalles de bajo nivel. Desventajas: Muy grande y complejo. La mayoría de los compiladores no implementan todo el lenguaje correctamente. Portabilidad: mucho mejor que C, pero todavía no es muy prometedor. Debido a que sufre de las mismas deficiencias que el lenguaje C, la mayoría de las bibliotecas de interfaz de usuario portátiles se implementan en objetos C. Juegos escritos en C: Muy, muy malos. La mayoría de los juegos comerciales están escritos en C o C. Información: La última edición de "El lenguaje de programación C" es muy buena. En lo que respecta a los tutoriales, hay dos campos, uno supone que conoces C y el otro supone que no. Con diferencia, el mejor tutorial de C es "¿Quién le teme a C?". Si ya está familiarizado con C, puede probar "Aprenda usted mismo C". ¿Debería aprender C o empezar con C? No me gusta esta pregunta, pero es la pregunta más frecuente después de "qué idioma debo usar". Desafortunadamente, no existe una respuesta estándar. Aprender C y escribir programas en él puede ahorrar mucho tiempo, pero este enfoque tiene dos inconvenientes: perderá conocimientos orientados a objetos que podrían hacer que su modelado de datos en el juego sea más eficiente. Muchos juegos comerciales importantes, incluidos los de disparos en primera persona, no utilizan C. Sin embargo, los autores de estos programas suelen apegarse a técnicas de programación orientada a objetos, incluso si utilizan el antiguo formato C. 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 realmente ejecutadas por el procesador de la computadora. Esto significa que trabajará con las capas inferiores del procesador, como registros y pilas. Si está buscando un idioma similar al inglés y que tenga instrucciones claras, esto no es lo que está buscando. Por el contrario, cualquier cosa que puedas hacer en otros lenguajes se puede hacer en lenguaje ensamblador, pero no es tan fácil; por supuesto, es como decir que conduces a algún lugar o caminas a algún lugar, es solo una cuestión de dificultad. Eso es genial, pero la nueva tecnología hará que todo sea más fácil de usar. En general, el lenguaje ensamblador no se utiliza solo en los juegos. El lenguaje ensamblador se utiliza en los juegos principalmente para utilizar fragmentos que pueden mejorar el rendimiento. Por ejemplo, todo Doom está escrito en C. Estas rutinas se llaman miles de veces por segundo, por lo que ser lo más conciso posible ayuda a mejorar el rendimiento del juego. Llamar a funciones escritas en lenguaje ensamblador desde C también es bastante sencillo, por lo que utilizar ambos lenguajes al mismo tiempo no es 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". El nombre incorrecto "Ensamblador" es común, así que comience con el nombre de idioma correcto. El lenguaje más rápido con las menores ventajas puede escribir programas mucho más rápido que otros lenguajes. Con acceso directo a las últimas funciones del procesador. el primero en utilizar estas características Desventajas: Difícil de aprender, sintaxis oscura, insiste en la eficiencia, genera mucho código extra - no para los débiles de corazón Portabilidad: casi nula ya que el lenguaje está diseñado para ser monolítico. no está diseñado para ser portátil en absoluto. Si usa extensiones para un procesador específico, su código ni siquiera es portátil para otros procesadores del mismo tipo (por ejemplo, las instrucciones 3DNow de AMD no son portátiles para otros procesadores de la serie Pentium) anteriores). escrito en ensamblador: No conozco ningún juego comercial que esté desarrollado completamente en ensamblador, pero algunos juegos usan ensamblador para la mayoría de sus partes críticas. Documentación: si buscas documentación en lenguaje ensamblador. chip Hay información en línea sobre sus procesadores de Intel, AMD, Motorola y otros.