videojuegos unity programador programacion para lenguaje juegos curso crear carrera d

unity - El lenguaje de programación D para el desarrollo de juegos



programador de videojuegos (11)

Últimamente aprendí un poco de D, aunque aún queda mucho por hacer. Por lo que he aprendido hasta ahora, diría que, aunque el lenguaje es excelente para prácticamente cualquier cosa, los compiladores y las bibliotecas que existen ahora mismo no son los mejores, por lo que nunca se puede estar seguro de que el el compilador no tiene errores (no lo es). Para la programación del juego, debe estar seguro de que la recolección de elementos no utilizados está sucediendo correctamente, por ejemplo, y de que el compilador no está optimizando incorrectamente el código importante ... cosas como esta podrían querer hacer que vuelva a pensar utilizando el idioma. Sin embargo, yo mismo creo que el lenguaje en sí mismo es el mejor (esto es completamente subjetivo), y creo que la única barrera para usarlo es la falta de una implementación perfecta, en lugar del lenguaje en sí mismo.

Recientemente me molestaron porque llegué a un punto en el que C ++ (incluso 0x) se sentía muy limitado, así que comencé a buscar alternativas.

Olvide Java, C #, Python o Ruby. Todavía me gusta la naturaleza de bajo nivel de C ++ y no me gustan las máquinas virtuales. Además, soy desarrollador de motores de juegos, así que tengo que desarrollar rutinas centrales que deben ser realmente rápidas, y últimamente he tenido hambre de expresividad de código. C ++ es casi un lenguaje para mí, pero hay muchas excepciones sobre cómo usar plantillas, y GCC no está optimizando todo lo bien que esperaba.

Entonces estoy considerando comenzar a aprender D.

¿Crees que será suficiente con mis necesidades como desarrollador de juegos? Soy cauteloso porque nunca he escuchado que D sea usado para eso.

¡Gracias!


¡Bienvenido 2014!

La última versión de D es 2.067 al momento de escribir esto. D es ligeramente inestable en lo que respecta a auto , pero aparte de eso, no veo por qué no usar D. Los compiladores son lo que han mejorado mucho.

D en mi opinión es más fácil de leer que C ++, y más fácil de aprender. Contiene una interfaz para C y una interfaz parcial para C ++. Incluso permite el ensamblaje en línea que puede interactuar con sus variables. La biblioteca estándar D se llama Phobos.

Recomiendo encarecidamente que D. D esté hecho para la eficiencia. Según Adam D. Ruppe, "[C es] igualmente rápido". Y C es uno de los idiomas más rápidos que hay. Entonces, si quieres construir un juego con la velocidad de C y las capacidades de alto nivel de C ++, D se encuentra justo en el medio. Si tiene alguna pregunta, siéntase libre de unirse a irc.freenode.net #d.

Para resumir todo, D es básicamente la versión segura de C ++. Si bien el lenguaje es multi-paradigma, incluyendo OOP, se puso mucho énfasis en el paradigma de FP, utilizando funciones pure e inmutabilidad. Todos los objetos tienen una propiedad init por lo que si declara ''int foo;'', se inicializa en int.init . Sí, todavía hay punteros. Los punteros en D se llaman lvalue y los valores se llaman rvalue. Un lvalue siempre apunta a un valor r.

Para obtener más información, visite el sitio oficial de D, http://www.dlang.org/ .


Bueno, no es que si estás usando D tienes que construir todo completamente desde cero. Por ejemplo, puedes usar:

  • GLFW para entrada / salida
  • Horde3D como motor de renderizado
  • OpenAL para sonido
  • Bullet para física
  • Lua para escribir guiones
  • lzo para descompresión rápida
  • tal vez Orange para la serialización

Aunque no estoy seguro acerca de las superposiciones. Es una base bastante sólida que espero que funcione para mí :)

¡Buena suerte!


D es un gran lenguaje para videojuegos, tiene todas las características para el rápido desarrollo de un ejecutable ejecutable:

  • Se compila rápidamente en código nativo y se ejecuta rápidamente.
  • Tiene pruebas unitarias, perfiles y cobertura de códigos listos para usar.
  • La recolección de basura es la predeterminada, pero puede usar sus propios asignadores de memoria.
  • Compatible con ABI con C, no hay que pagar costos de clasificación para llamar a bibliotecas nativas.
  • Seguridad de subprocesos en el sistema de tipos: calificadores compartidos, puros e inmutables.
  • Seguridad de la memoria en el sistema de tipos: @safe, @trusted, @system.
  • Evaluación de funciones en tiempo de compilación, generación de código y más.

No necesita un lenguaje de scripting separado, no hay pasos de compilación adicionales para generar código, no está limitado al modelo de memoria de una máquina virtual cuando el rendimiento es importante para sistemas de bajo nivel, pero obtiene toda la productividad y seguridad de scripting y lenguajes administrados para su lógica de juego. Incluso puede elegir entre paradigmas de programación procedural, orientada a objetos, funcional, genérica o de metaprogramación para el problema en cuestión.


Desde otra perspectiva, D compila en los mismos archivos de objeto (aunque en formato OMF) como C / C ++. Uno supondría que la optimización de D''s del ensamblaje es comparable a C / C ++, sin importar que el ensamblaje esté siempre a mano para optimizar si así lo desea.



Estoy deseando aprender el lenguaje D algún día también :)

Pero hay una cosa para recordar: un buen lenguaje es bueno, pero usted, como desarrollador de juegos, también necesita herramientas (como bibliotecas) para hacer su oferta. Y pocas bibliotecas buenas actualmente tienen enlaces a D. Sin embargo, sé de una que muy probablemente (pero no sin duda) tiene:

Ogre : una de las bibliotecas líder, si no líder, libre en libertad para todas sus necesidades gráficas 3D portátiles.

Por supuesto que necesitas más, pero eso depende de tu juego.

No estoy al tanto de cuán fácil o difícil es realizar enlaces a D para una biblioteca C ++. Puede ser difícil, puede ser fácil y algo automatizado. Más tarde sería más o menos posible, porque, según lo entiendo, los idiomas están muy cerca el uno del otro, y los desarrolladores D probablemente tenían en mente C ++ la mayor parte del tiempo.

Espero que esto ayude.



La gente que se hace llamar "team0xf" hizo this completamente en D1.



Usé D 1.x para hacer juegos y demostraciones, algunos de ellos son de código abierto de dominio público ( A , B , C , D , E ).

D puede darte productividad inédita en C ++: aterriza si estás dispuesto a pagar el alto precio de discutir con todos por qué usas D.

Si sigue esta ruta, le aconsejo que elija D 2.x, Derelict y Visual D (sugerencia para futuros lectores: este es 2011).

En cuanto al desarrollo del juego:

  • el D GC no es un problema real. Es si asigna demasiado en un marco, pero eso es todo. Los métodos clásicos de agrupar, reutilizar, etc ... funcionan.

  • puede escribir ensamblado x86 de forma portátil en Linux, Mac y Windows. También es estático si permite funciones de ensamblado desnudo bastante divertidas.

  • la alineación a través de los límites del módulo está funcionando sin un interruptor de "optimización de tiempo de enlace"

  • Me resulta más fácil mantener la versión de depuración y versión (en comparación con C ++)

  • evitar nuevas características y elegir compiladores de forma conservadora ... al igual que en C ++