Red de conocimiento informático - Espacio del host - Me pregunto si tengo talento para la programación informática...

Me pregunto si tengo talento para la programación informática...

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. Estos son 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 descendiente. El lenguaje C, creado por Dennis Ritchie en la década de 1970, es más potente y tiene una relación de herencia más continua con ALGOL, el sucesor estructurado de COBOL y FORTRAN. El lenguaje C está diseñado para ser más compacto y simple que sus predecesores, lo que lo hace 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.

C admite programación estructurada, lo que significa que los programas en C se escriben como una colección de llamadas a funciones discretas (invocaciones) que se ejecutan de arriba hacia abajo, en lugar de como un único código integrado que utiliza declaraciones GOTO para controlar el flujo. pedazo. 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 el programa estructurado es muy complejo.

Precisamente por sus raíces en la programación de sistemas, C es bastante 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 es a veces muy 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. Esto a menudo significa que tienes que escribir el código de la interfaz de usuario dos veces, pero afortunadamente existen bibliotecas que pueden aliviar tu carga de trabajo.

Juegos escritos en C: muchísimos.

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 se ha ampliado hasta tres veces su extensión original, pero sigue siendo un excelente libro de introducción. al lenguaje C.

2.C

El lenguaje C hereda las características orientadas a objetos del lenguaje C. La programación orientada a objetos, u OOP, es una versión actualizada de la programación estructurada. 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 bibliotecas de bases de datos y GUI que se implementan como colecciones de objetos.

C ha sido fuente de debate, especialmente en 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. Este debate continúa y es poco probable que concluya pronto.

Creo que el gasto adicional de C es un pequeño precio a pagar por un mejor lenguaje.

El mismo debate se produjo en los años sesenta, cuando los lenguajes de programación de alto nivel como COBOL y FORTRAN comenzaron a sustituir 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. 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: Mucho mejor que 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 aún no muy prometedor. Dado que adolece 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: muy, muy malos. La mayoría de los juegos comerciales están escritos en C o C.

Libro de texto: La última versión de "El lenguaje de programación C" es muy buena. Los tutoriales se dividen en dos campos, uno supone que conoces C y el otro supone que no. Con diferencia, el mejor tutorial de C es Who's Afraid of C, y si ya estás familiarizado con C, prueba Teach Yourself C.

3. ¿Debería aprender C o empezar con C?

No me gusta esta afirmación, pero es una continuación de "¿Qué idioma debo usar? Desafortunadamente, ¿hay?" No hay una respuesta estándar. Puedes ahorrar mucho tiempo si aprendes C y escribes programas en él, pero este enfoque tiene dos desventajas:

Perderás conocimientos orientados a objetos, como puede resultar. modelado de datos Más eficiente en tus juegos

Muchos grandes juegos comerciales (incluidos los de disparos en primera persona) no utilizan C, sin embargo, los autores de estos programas a menudo se ciñen a técnicas de programación orientada a objetos, incluso si lo hacen .El antiguo formato C. Si solo quieres aprender el lenguaje C, al menos aprende la tecnología de programación OO (orientada a objetos); OO es un método perfecto para la simulación (juegos). para "trabajar duro".

4. Lenguaje ensamblador

Obviamente, el lenguaje ensamblador es el primer lenguaje de computadora que en realidad es una representación en forma de comando de las instrucciones que transmite el procesador de su computadora. en realidad se ejecuta. Tratar los aspectos de bajo nivel del procesador, como registros y pilas, no es lo que buscas en ningún otro lenguaje. El lenguaje ensamblador puede hacer todo lo que quieras, pero no es tan simple, por supuesto. es como decir que puedes conducir a algún lugar o caminar a algún lugar, es solo una cuestión de dificultad. Bueno, 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 usa principalmente para usar. partes que mejoran el rendimiento, por ejemplo, Doom está escrito completamente en C. Estos programas se llaman miles de veces por segundo, por lo que ser lo más conciso posible ayuda a mejorar el rendimiento del juego, y llamar a funciones escritas en lenguaje ensamblador es muy simple, así que úsalas. Dos idiomas no son un problema.

Nota especial: el nombre del lenguaje es "ensamblador". La herramienta que convierte el lenguaje ensamblador en código de máquina real se llama "ensamblador". Utilice el nombre del idioma correcto como punto de partida.

El lenguaje con menores ventajas y más rápido. Los maestros ensambladores pueden escribir programas mucho más rápido que otros lenguajes. Serás el primero en utilizar las últimas funciones del procesador porque puedes usarlas directamente.

Desventajas: Difícil de aprender, sintaxis oscura, insiste en la eficiencia, genera una gran cantidad de código adicional, no para los débiles de corazón.

Portabilidad: casi nula. Dado que este lenguaje fue diseñado para un solo procesador, no era portátil en absoluto. Si utiliza extensiones específicas del procesador, su código ni siquiera es portátil a otros procesadores del mismo tipo (por ejemplo, las instrucciones 3DNow de AMD no son portátiles 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 la mayor parte del tiempo para piezas críticas.

Documentación: si busca documentación en lenguaje ensamblador, principalmente busca documentación sobre el chip. Intel, AMD, Motorola y otras empresas tienen información sobre sus procesadores en sus sitios web. En cuanto a los libros, vale la pena aprender "Lenguaje ensamblador: paso a paso".

5. Lenguaje Pascal

El lenguaje Pascal fue inventado por Nicolas Wirth. En la década de 1970, porque estaba decepcionado de que FORTRAN y COBOL no obligaran a los estudiantes a capacitarse en programación estructurada, el "código de polvo hueco" se convirtió en la intención de diseño original de Pascal, lo que obligó al uso de programación estructurada. Pascal fue diseñado originalmente exclusivamente para la enseñanza. Finalmente ganó seguidores y entró en el mundo de la programación comercial. Cuando Borland lanzó Turbo Pascal en la PC de IBM, el editor integrado, el compilador ultrarrápido y el bajo precio de Pascal lo hicieron destacar. Se volvió irresistible y Pascal se convirtió en el lenguaje de. elección para escribir pequeños programas para MS-DOS

Sin embargo, a medida que los compiladores de C se volvieron más rápidos y tenían excelentes editores y depuradores integrados, el lenguaje Pascal también llegó a su fin cuando Windows se hizo popular en 1990. Borland. abandonó el lenguaje Pascal y cambió a C para la programación de Windows; Turbo Pascal fue rápidamente olvidado.

Al final, Borland lanzó su "asesino de Visual Basic": Delphi, un compilador rápido de Pascal. con una magnífica interfaz de usuario. Este es un compilador de Pascal extremadamente rápido con una excelente interfaz de usuario. Con este esfuerzo, Delphi rápidamente se ganó el favor de un gran número de entusiastas.

Básicamente, Pascal es más simple que C. pero carece de muchas características que lo hacen fácil de usar, pero carece de muchos de los operadores concisos que tiene C. Esto es algo bueno y malo, aunque dificulta la escritura de código "inteligente" que es difícil de entender.

Ventajas: las operaciones fáciles de aprender y dependientes de la plataforma (Delphi) son muy buenas.

Desventajas: la "tendencia mundial" de los sucesores de Pascal orientados a objetos (Modula, Oberon). Aún no lo ha logrado. Los desarrolladores del compilador no reconocen el estándar del lenguaje.

Portabilidad: muy pobre, las características del lenguaje cambian de una plataforma a otra y no existe un conjunto de herramientas de portabilidad para manejar los cambios específicos de la plataforma. Funciones relacionadas.

Juegos escritos en Pascal: varios componentes de Delphi para DirectX hacen que el campo de juego sea aún mayor.

Información: para obtener más información sobre Delphi, visite la página de Inprise Delphi.

6.Visual Basic

Ja, BÁSICO.

Fue el primer lenguaje para los programadores allá por la Edad de Piedra de los años 80. BASIC en su forma original, aunque fácil de aprender, estaba terriblemente desorganizado y hacía un uso irreflexivo de "código de polvo hueco" lleno de GOTO. No mucha gente puede contener las lágrimas en los ojos cuando recuerdan los números de línea BÁSICOS y los comandos GOSUB.

A principios de la década de 1990, aunque HyperCard no se había vuelto tan gigante como Apple esperaba, todavía era un entorno de programación pequeño y atractivo que no tenía rival en la plataforma Windows, y en Windows, clones de HyperCard como ToolBook. son lentos, torpes y costosos. Para competir con HyperCard, Microsoft obtuvo la licencia de un pequeño entorno de programación llamado Thunder y lo lanzó como Visual Basci 1.0, con una interfaz de usuario novedosa en ese momento. Aunque este lenguaje todavía se llama Básico (ya no con mayúsculas), la estructura es más rigurosa y se han cancelado los números de línea. De hecho, el lenguaje se parecía más a Pascal con verbos de estilo Basic que al antiguo ROM BASIC integrado en TRS-80, Apple II y Atari. Aunque la interfaz de usuario ha cambiado mucho, aún conserva la idea principal de "conectar el código con la interfaz de usuario". Esto lo convierte en un entorno excelente para la creación rápida de prototipos cuando se combina con la compilación justo a tiempo.

Ventajas: Entorno de edición sencillo. La compilación justo a tiempo, fácil de aprender, permite la creación de prototipos simples y rápidos. Toneladas de complementos disponibles. Aunque existen complementos DirectX de terceros, DirectX 7 está listo con soporte para Visual Basic.

Desventajas: el programa es enorme y requiere múltiples bibliotecas de enlaces dinámicos de tiempo de ejecución enormes para ejecutarse. Si bien los programas de tipo formulario y diálogo son fáciles de realizar, escribir buenos programas gráficos es más difícil. Los programas que llaman a la API de Windows son torpes porque las estructuras de datos de VB no se corresponden bien con el lenguaje C. Propiedad.

Portabilidad: Muy pobre. Dado que Visual Basic es un producto de Microsoft, naturalmente sólo puede utilizarlo en plataformas de Microsoft. Es decir, sólo te queda elegir: Windows, Windows o Widnows: Por supuesto, existen herramientas para convertir programas VB a Java.

Juegos escritos en Visual Basic: Hay unos cuantos. Hay muchos malditos juegos recreativos escritos en VB y algunos son juegos comerciales.

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

7. Java

Java es una "pequeña C" portátil diseñada originalmente por Sun para su uso en programas integrados. La idea de ejecutar un pequeño programa en una página web llamó la atención de muchas personas y el lenguaje rápidamente saltó a la fama. Resulta que Java no sólo es bueno para incrustar animaciones en páginas web, sino que también es un pequeño lenguaje excelente para la programación completa de software. Su mecanismo de "máquina virtual", su recolección de basura y el hecho de que no utiliza punteros facilitan la implementación de programas confiables que previenen fallas y no pierden recursos.

Aunque Java no es una secuela oficial de C, toma prestada gran parte de su sintaxis. Abandona muchas de las complejidades de C, lo que da como resultado un lenguaje compacto y fácil de aprender. A diferencia de C, Java impone la programación orientada a objetos, y escribir programas no orientados a objetos en Java es tan difícil como escribir "código en polvo hueco" en Pascal.

Ventajas: El código binario es portátil a otras plataformas. Los programas se pueden ejecutar en páginas web. La biblioteca de clases incluida es muy estándar y extremadamente poderosa. La compatibilidad automática con la recolección de basura evita fugas de recursos en los programas. Hay toneladas de rutinas de código en la web.

Desventajas: utilice una "máquina virtual" para ejecutar código de bytes portátil en lugar de código de máquina nativo, por lo que el programa se ejecutará más lento que un compilador real. Existen muchas técnicas (como los compiladores "justo a tiempo") que aumentan en gran medida la velocidad de Java, pero nunca podrán igualar la velocidad de los programas de código de máquina. Las primeras características (como AWT) no se consideraron cuidadosamente y, aunque oficialmente quedaron obsoletas, tuvieron que conservarse por motivos de compatibilidad con versiones anteriores. Cuanto más avanzada es la tecnología, más difícil es manejar funciones de máquina de bajo nivel, por lo que Sun ha tardado en agregar nuevas características "benditas" 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 nuevas funciones son inestables en algunas plataformas.

Juegos escritos en Java: Hay una gran cantidad de pequeños applets en Internet, pero sólo unos pocos están disponibles comercialmente. Hay varios juegos comerciales que utilizan Java como lenguaje de programación interno.

Información: La página oficial de Java de Sun proporciona buena información. IBM también tiene una muy buena página de Java. JavaLobby es el mejor lugar para noticias relacionadas con Java.

8. Herramientas de producción

Los lenguajes de programación anteriores cubren la mayoría de los juegos comerciales. Pero hay una excepción, un gran partido que destaca por su ausencia.

"Isla Misteriosa". Así es, el juego comercial más vendido no está escrito en ninguno de los idiomas anteriores, aunque algunos dicen que el contenido de Myst 99 se creó utilizando herramientas de modelado 3D y la lógica de programación subyacente se realizó utilizando 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 diagramas de flujo de arrastrar y soltar para simular el control de procesos. Muchas herramientas tienen lenguajes de programación interpretados integrados, pero no son tan poderosos como los lenguajes independientes mencionados anteriormente.

Ventajas: creación rápida de prototipos: si tu juego se ajusta al propósito de la herramienta, es posible que puedas ejecutarlo más rápido que con otros lenguajes. En muchos casos, puedes crear un juego simple que no requiere codificación. Utilizando complementos como Shockware e IconAuthor Player, puede publicar muchos programas generados por herramientas de creación en sus páginas web.

Contras: Propietario, estás a merced del fabricante de la herramienta y no sabes qué funciones se agregarán. Debes considerar si estas herramientas satisfarán tus necesidades de juego, ya que hay muchas cosas que estas herramientas de producción no pueden hacer. Algunas herramientas generan programas muy inflados.

Portabilidad: debido a que las herramientas de creación son propietarias, su portabilidad está ligada a la funcionalidad que brindan. Algunos sistemas (como Director) se pueden crear y ejecutar en múltiples plataformas, algunas herramientas se pueden crear en una plataforma y ejecutarse en múltiples plataformas, y algunas herramientas solo se pueden crear y ejecutar en una plataforma.

Juegos escritos utilizando herramientas de autor: "Mysterious Island" y otros juegos de aventuras similares. Todos los juegos de Shockwave están en línea.

Información: Director, HyperCard, SuperCard, IconAuthor, Authorware.

9. Idioma sencillo

★Compatibilidad total con chino, no es necesario cruzar el umbral del inglés. . Programación completamente visual, compatible con 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 especiales integrados para resolver por completo el problema de la entrada lenta de oraciones en chino. ★El código es documentación. Estandarice y fuerce automáticamente la conversión del formato del código, y se unificará 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. No se ha definido ninguna palabra clave de clase. Todas las partes de definición del programa se completan en tablas y los usuarios no necesitan recordar dichas palabras clave ni sus formatos de uso. Formato de comando unificado. El formato de llamada de todas las declaraciones del programa es el mismo. Comprobación automática del formato de sintaxis.

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 y ayuda durante todo el proceso. Al mover el mouse se muestran inmediatamente los elementos relacionados. El formato de sintaxis se solicita durante la programación y el contenido de la variable actual se solicita durante la depuración. Presione la tecla F1 en cualquier momento para obtener ayuda detallada sobre el tema actual, etc. Gestión automática de nombres. Cuando el usuario modifica la definición de cualquier nombre, todos los demás códigos de programa que contengan ese nombre se corrigen 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. Archivos de ayuda detallados, decenas de megabytes de base de conocimientos, foros en línea con decenas de miles de usuarios, libros de texto publicados...

10. Conclusión

Quizás quieras obtener una visión más formal. conclusión sobre la pregunta "¿qué idioma debo utilizar?" Quizás se esté preguntando "¿Qué lenguaje debo usar? C es totalmente compatible con la programación orientada a objetos, pero es muy complejo. Visual Basic y Delphi son fáciles de aprender, pero no son portátiles y son propietarios. Las herramientas de escritura permiten escribir programas lo más rápido posible, pero solo funciona para ciertos tipos de programas. La mejor manera es decidir primero qué tipo de juego quieres escribir y luego elegir el idioma que mejor admita tu juego. Afortunadamente, la "prueba de 30 días". "El método se ha convertido en un estándar de la industria. .