Red de conocimiento del abogados - Preguntas y respuestas penales - ¿Qué es la programación y cómo programar?

¿Qué es la programación y cómo programar?

Esta es una pregunta que se hace 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 sencilla. Siempre hay algunos lenguajes informáticos que son superiores a otros en algunas aplicaciones. A continuación se detallan algunos de los principales lenguajes de programación utilizados para escribir juegos y 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 la década de 1970. Es más potente y tiene una herencia más continua con ALGOL, que es el sucesor de las estructuras COBOL y FORTRAN. El lenguaje C fue diseñado para ser una versión más compleja 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 es el primer lenguaje de programación que hace 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 (llamadas), que se ejecutan de arriba a abajo, en lugar de usar GOTO como un único bloque de código integrado. controlar el flujo. Por lo tanto, los programas en C son mucho más simples que el "código hueco" integrado de FORTRAN y COBOL. De hecho, C todavía tiene la declaración GOTO, pero su función es limitada. Solo se recomienda 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 con lenguaje ensamblador. La interfaz de llamada de funciones es muy simple y las instrucciones en lenguaje ensamblador también se pueden incrustar en código C sin la necesidad de conectar módulos ensambladores independientes.

Ventajas: Propicio para escribir programas pequeños y rápidos. Es fácil de combinar con el lenguaje ensamblador. Está muy 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 es difícil de entender y puede dar lugar a abusos.

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 memoria y el procesamiento simple de archivos. Todo lo demás está relacionado con la plataforma. Por ejemplo, desarrollar programas portátiles para Windows y Mac requiere llamadas a funciones relacionadas con el sistema en la interfaz de usuario. Por lo general, esto significa que debe escribir el código de la interfaz de usuario dos veces, pero afortunadamente existen bibliotecas que pueden reducir el trabajo.

Juegos escritos en lenguaje C: muchísimos.

Materiales: El clásico del lenguaje C es el lenguaje de programación C. Después de muchas revisiones, se ha ampliado a tres veces el tamaño original, pero sigue siendo una excelente introducción a C. Un excelente tutorial es C Primer Plus de Waite Group.

2. C++

El lenguaje C++ es el sucesor del lenguaje C y tiene características orientadas a objetos. La programación orientada a objetos (POO) es el siguiente paso en la programación estructurada. Los programas OO se componen de objetos, donde los objetos son funciones y conjuntos de datos discretos. Hay muchos objetos disponibles en el inventario, lo que hace que la programación sea tan fácil como apilar 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++ siempre ha sido un tema de debate, especialmente en foros de desarrollo de juegos. Varias funciones de C++, como las funciones virtuales, añaden una capa adicional a las decisiones de llamadas a funciones, y los críticos se apresuran a señalar que los programas de C++ pueden volverse más grandes y más lentos que los programas de C con las mismas funciones. Los partidarios de C++ creen que escribir código equivalente a funciones virtuales en C también aumentará los costos. Este será un debate en curso, sin probabilidad de llegar a una conclusión rápida.

En mi opinión, el coste adicional de C++ es sólo un pequeño coste de 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 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 este es ciertamente el caso. Los defensores de los lenguajes de alto nivel argumentan que una penalización de rendimiento tan pequeña vale la pena porque los programas COBOL y FORTRAN son más fáciles de escribir y mantener.

Ventajas: Organizar programas grandes es mucho mejor que el lenguaje C. Buen soporte para mecanismos orientados a objetos. Las estructuras de datos comunes, como listas vinculadas y bibliotecas compuestas de matrices escalables, alivian la carga de lidiar con detalles de bajo nivel.

Desventajas: Muy grande y complejo. Al igual que el lenguaje C, existe el problema del 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 sufre de 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++: muchos, muchos. 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. Como tutorial, hay dos campos, uno supone que conoces C y el otro supone que no. Con diferencia, el mejor curso de C++ es "¿Quién es África en C++?". Si ya está familiarizado con el lenguaje C, intente aprender C++ usted mismo.

3. ¿Debo aprender C++ o empezar con C?

Esto no me gusta, pero es la pregunta más frecuente después de “¿qué idioma debo usar?” Lamentablemente no existe una respuesta estándar. Puedes aprender C por tu cuenta y usarlo para escribir programas, lo que puede ahorrar mucho tiempo, pero hay dos desventajas al usar este método:

Perderás el conocimiento orientado a objetos, porque puede hacerte modelado de datos en Sea más eficiente en su juego.

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). La orientación a objetos es el enfoque perfecto para burlarse. Si no aprendes OO, tienes 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 una 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 autodescripciones relevantes, esto no es lo que desea.

Precisamente, puedes hacer cualquier cosa que puedas en otros idiomas, pero no es tan simple; por supuesto, es como decir que puedes conducir a algún lugar o caminar hasta allí, pero es difícil. Eso es cierto, pero la nueva tecnología hace que las cosas sean más fáciles de usar.

En términos generales, el lenguaje ensamblador no se utiliza solo en los juegos. El ensamblaje del juego utiliza principalmente sus fragmentos que pueden mejorar el rendimiento. Por ejemplo, todo Devastator está escrito en C y varios programas de dibujo están escritos en 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 simple, por lo que usar ambos lenguajes al mismo tiempo no es un problema.

Nota especial: El nombre del lenguaje es "ensamblaje". La herramienta que traduce el lenguaje ensamblador a código de máquina real se llama "ensamblador". Es bastante común referirse a este lenguaje como "ensamblador", así que comience con el nombre correcto del lenguaje.

Ventajas: El lenguaje más pequeño y rápido. Assembler puede escribir programas más rápido que cualquier otro lenguaje. Serás el primero en utilizar las funciones más recientes de tu procesador porque puedes usarlas directamente.

Desventajas: Difícil de aprender, sintaxis oscura, eficiencia persistente, lo que resulta en una gran cantidad de código adicional; no es adecuado para personas débiles de corazón.

Portabilidad: Próxima a cero. Debido a que este lenguaje fue diseñado para un solo procesador, no existe ninguna portabilidad. Si utiliza las funciones extendidas de un procesador dedicado, 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 que haya sido desarrollado íntegramente en ensamblador. Sin embargo, algunos juegos utilizan el ensamblaje para realizar la mayoría de las partes en las que el tiempo es crítico.

Información: Si buscas documentación en lenguaje ensamblador, deberías buscar principalmente documentación sobre chips. Hay información en Internet sobre sus procesadores como Intel, AMD y Motorola. Para un libro, Lenguaje ensamblador: vale la pena aprenderlo paso a paso.

5. Lenguaje Pascal

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 capacitarse en programación estructurada. norma, y ​​el lenguaje de la época no se oponía a ella. Pascal fue diseñado para realizar programación estructurada. Pascal fue diseñado originalmente estrictamente para la enseñanza y, finalmente, un gran número de seguidores lo impulsaron hacia la programación comercial. Pascal tuvo su momento de gloria cuando Borland lanzó Turbo Pascal en IBM PC. El editor integrado, el compilador ultrarrápido y el bajo precio lo hacen irresistible. Pascal había sido escrito como el lenguaje elegido para escribir pequeños programas para MS-DOS.

Sin embargo, en un corto período de tiempo, los compiladores de C se volvieron más rápidos y tenían excelentes editores y depuradores integrados. Pascal llegó a su fin en 1990 cuando Windows se hizo popular. Borland abandonó a Pascal y centró su atención en escribir programas para Windows en C++. Turbo Pascal fue rápidamente olvidado.

Finalmente, en 1996, Borland lanzó su "Visual Basic black boy": Delphi. Este es un compilador Pascal rápido con una magnífica interfaz de usuario. Gracias a sus incansables esfuerzos, rápidamente ganó una gran cantidad de fanáticos.

Básicamente, Pascal es más simple que C. Aunque la sintaxis es similar, carece de muchos operadores concisos que tiene C. Esto es algo bueno y malo. Si bien es difícil escribir código "inteligente" que sea difícil de entender, también dificulta algunas operaciones de bajo nivel, como la manipulación de bits.

Ventajas: Fácil de aprender, las operaciones relacionadas con la plataforma (Dephi) son muy buenas.

Desventajas: Los sucesores orientados a objetos de Pascal (Modula, Oberon) de "World Trends" aún no han tenido éxito. Los desarrolladores de compiladores no respaldan los estándares del lenguaje. patentar.

Portabilidad: Muy pobre.

La funcionalidad del lenguaje cambia de una plataforma a otra y no existe un conjunto de herramientas portátil para manejar la funcionalidad dependiente de la plataforma.

Juegos escritos en Pascal: varios. El componente Delphi de DirectX hace que los juegos sean aún más grandes.

Información: Para encontrar información relacionada con Delphi, visite la página:Inprise Delphi.

6. Visual Basic

Ja, básico. En la Edad de Piedra de los años 80, era el primer idioma para los principiantes. La forma básica original, aunque fácil de aprender, estaba horriblemente organizada y hacía uso sin vacilar del "Código Espagueti" de Goto. Al recordar los números de línea BÁSICOS y los comandos GOSUB, pocas personas pueden detener las lágrimas que brotan de las comisuras de sus ojos.

A principios de la década de 1990, y aunque no era el gigante que Apple esperaba, HyperCard seguía siendo un pequeño y atractivo entorno de programación que no se podía comparar con Windows. Los clones de HyperCard como ToolBook para Windows son lentos, engorrosos y caros. Para competir con HyperCard, Microsoft obtuvo una pequeña licencia llamada Thunderprogramming Environment y la lanzó como Visual Basci 1.0, con una interfaz de usuario muy innovadora para la época. Aunque el lenguaje también se llama Básico (no todo en mayúsculas), está más estructurado y se han eliminado los números de línea. De hecho, el lenguaje se parece más a Pascal con verbos básicos que al antiguo ROM BASIC integrado en TRS-80, Apple II y Atari.

Después de seis versiones, Visual Basic se ha vuelto muy hermoso. La interfaz de usuario ha cambiado mucho, pero el tema de "vincular el código a la interfaz de usuario" permanece. Cuando se combina con la compilación justo a tiempo, esto lo convierte en un entorno excelente para la creación rápida de prototipos.

Ventajas: Entorno de edición limpio. La compilación fácil de aprender y sobre la marcha conduce a la creación de prototipos simples y rápidos. Muchos complementos disponibles. Aunque existen complementos DirectX de terceros, DirectX 7 está listo para brindar soporte para Visual Basic.

Desventajas: el programa es muy grande y requiere varias bibliotecas de enlaces dinámicos de tiempo de ejecución enormes para ejecutarse. Aunque los programas de formularios y cuadros de diálogo son fáciles de completar, es difícil escribir buenos programas de gráficos. Llamar a programas API de Windows es muy complicado porque la estructura de datos de VB no está bien asignada a C. Hay funciones OO, pero no están completamente orientadas a objetos. patentar.

Portabilidad: Muy pobre. Debido a que Visual Basic es un producto de Microsoft, naturalmente está limitado a su plataforma para la implementación. En otras palabras, las opciones que tienes son: Windows, Windows o Widnows. Por supuesto, también existen herramientas que pueden convertir programas VB a Java.

Juegos escritos en Visual Basic: algunos. Hay muchos * * * juegos escritos en VB y algunos son comerciales.

Información: La página VB de Microsoft tiene información.

7. Java

Java es un "pequeño C++" portátil, diseñado originalmente por Sun para programas integrados. La idea de ejecutar pequeños programas en Internet realmente atrajo la atención de mucha gente y el lenguaje rápidamente saltó a la fama. Resulta que Java no sólo es adecuado para incrustar animaciones en páginas web, sino que es un pequeño lenguaje excelente para la programación completa de software. La "máquina virtual", la recolección de basura y los mecanismos sin puntero facilitan la implementación de programas confiables que no son propensos a fallar o perder recursos.

Aunque no es una secuela oficial de C++, Java toma prestada mucha sintaxis de C++. Abandona muchas de las funciones complejas de C++, lo que da como resultado un lenguaje conciso y fácil de aprender. A diferencia de C++, Java fuerza la programación orientada a objetos. Escribir programas no orientados a objetos en Java es tan difícil como escribir "código espagueti" en Pascal.

Ventajas: El código binario se puede portar a otras plataformas. El programa se puede ejecutar en una página web. Las bibliotecas de clases incluidas son muy estándar y muy sólidas. Asignación automática y recolección de basura para evitar fugas de recursos en su programa. Hay toneladas de rutinas de código en Internet.

Desventajas: al utilizar una "máquina virtual" para ejecutar código de bytes portátil en lugar de código nativo, el programa será más lento que un compilador real. Existen muchas técnicas (como los compiladores "justo a tiempo") que mejoran enormemente la velocidad de Java, pero la velocidad nunca puede ser mejor que la solución de código de máquina. Las primeras funciones, como AWT, no se consideraron cuidadosamente y, aunque oficialmente quedaron obsoletas, tuvieron que conservarse para mantener la compatibilidad con versiones anteriores. Cuanto más avanzada es la tecnología, más difícil resulta manejar las funciones subyacentes de la máquina. Es demasiado lento para Sun agregar nuevas características de "bendición" al lenguaje.

Portabilidad: Mejor, pero aún no donde debería estar. El código subyacente es muy portátil, pero muchas interfaces de usuario y funciones nuevas son inestables en algunas plataformas.

Juegos escritos en Java: Hay muchos pequeños Applets en la web, pero sólo algunos de ellos son comerciales. Algunos juegos comerciales utilizan Java como lenguaje de programación interno.

Información: La página oficial de Java de Sun proporciona información útil. IBM también tiene una muy buena página de Java. JavaLobby es el mejor lugar para conocer las novedades de Java.

8. Herramientas de creación

Los lenguajes de programación mencionados anteriormente cubren la mayoría de los juegos comerciales. Pero hay excepciones. El gran partido brilla por su ausencia.

Isla Misteriosa. Sí, los juegos comerciales más vendidos no están escritos en ninguno de los lenguajes anteriores, aunque algunos dicen que el 99% de "Mysterious Island" está hecho con herramientas de modelado 3D, y su lógica de programación básica se completa con HyperCard.

La mayoría de las herramientas de creación son un poco como Visual Basic, excepto que funcionan en un nivel superior. La mayoría de las herramientas utilizan algún diagrama de flujo de arrastrar y soltar para simular el control del proceso. Muchos lenguajes de programación tienen interpretación incorporada, pero ninguno es tan sólido como los lenguajes mencionados anteriormente.

Ventajas: creación rápida de prototipos: si tu juego cumple con el propósito de la herramienta, es posible que puedas hacer que tu juego se ejecute más rápido que con otros lenguajes. En muchos casos, puedes crear un juego sencillo sin necesidad de codificación. Muchos programas generados por herramientas creativas se pueden publicar en páginas web mediante complementos como Shockware y el reproductor IconAuthor.

Desventajas: Patente, en cuanto a las funciones que se agregarán, está a merced del fabricante de la herramienta. Debes considerar si estas herramientas pueden satisfacer las necesidades de tu juego, porque hay muchas cosas que las herramientas creativas no pueden hacer. Algunas herramientas producen programas muy inflados.

Portabilidad: debido a que las herramientas creativas son propietarias, su portabilidad está estrechamente ligada a la funcionalidad que brindan. Algunos sistemas, como Director, se pueden crear y ejecutar en varias plataformas, algunas herramientas se pueden crear y ejecutar en una determinada plataforma y algunas solo se pueden crear y ejecutar en una única plataforma.

Juegos escritos con herramientas creativas: "Mysterious Island" y otros juegos de aventuras similares. Todos los juegos de blaster están en línea.

Materiales: Director, hypercard, HyperCard, IconAuthor, Authorware.

9. Idioma sencillo

★ Soporte completo en chino, no es necesario cruzar el umbral del inglés. ★Programación totalmente visual, admite el diseño de interfaz de programa WYSIWYG y la codificación de flujo de programa. ★ Ingrese rápidamente oraciones en chino. Proporciona una variedad de métodos de entrada dedicados integrados para resolver por completo el problema de la entrada lenta de oraciones en chino. ★El código es un documento. La especificación automática fuerza la conversión del formato del código y se unifica el formato del código fuente de cualquier programa escrito por cualquier persona. ★La tecnología de guía de parámetros facilita la entrada de parámetros de declaración del programa. ★La palabra clave de clase no está definida. Todas las definiciones del programa se completan en formularios y los usuarios no necesitan recordar dichas palabras clave ni sus formatos de uso. ★Formato de comando unificado. Todos los formatos de llamada de declaraciones de programa son exactamente iguales. ★ Comprobación automática del formato gramatical. Comprueba y pregunta automáticamente si el formato gramatical de la declaración de entrada es correcto y puede agregar automáticamente varios nombres. ★Consejos completos y ayuda. Al pasar el mouse, se mostrarán inmediatamente sugerencias relevantes para el proyecto. El formato de sintaxis se solicita durante la programación y el contenido actual de las variables se solicita durante la depuración. Presione la tecla F1 en cualquier momento para obtener ayuda detallada sobre el tema actual. ★Gestión automática de nombres. Si el usuario modifica cualquier definición de nombre, todos los demás códigos de programa que contengan ese nombre se modificarán automáticamente. ★Entorno de desarrollo integrado. Integra diseño de interfaz, escritura de código, análisis de depuración, compilación y empaquetado. ★ Ricos recursos de aprendizaje. Se han publicado archivos de ayuda detallados, decenas de megabytes de base de conocimientos, foros en línea para decenas de miles de usuarios y materiales didácticos...

10, Conclusión

Para "¿debería utilice la pregunta ¿Qué idioma?", es posible que desee llegar a una conclusión más estándar. Desafortunadamente, no existe la mejor solución para todas las aplicaciones. c es adecuado para programas pequeños y rápidos y no admite programación orientada a objetos. C ++ es totalmente compatible con la orientación a objetos, pero es muy complicado. Visual Basic y Delphi son fáciles de aprender, pero no son portátiles y tienen derechos de patente. Java tiene muchas funciones concisas, pero son muy lentas. La herramienta de creación puede generar su programa lo más rápido posible, pero solo funciona con ciertos tipos de programas. El mejor enfoque es decidir qué tipo de juego quieres escribir y elegir el lenguaje que mejor se adapte a tu juego. El enfoque de "prueba de 30 días" se ha convertido en el estándar de la industria, lo cual es bueno.