Programación Específica > Programación de Videojuegos
Programacion De Videojuegos En C/asm
Enko:
Hay que ser sadomasoquista para escribir un motor 3D 100% en asm :whistling:
Con tal de que tenga las rutinas criticas escritas en assambley alcanza y sobra. (Por cierto, estas rutinas no superan un 10% ).
:hola:
Ruben3d:
--- Cita de: "Chris Sawyer" ---What language was RollerCoaster Tycoon programmed in?
It's 99% written in x86 assembler/machine code (yes, really!), with a small amount of C code used to interface to MS Windows and DirectX.
--- Fin de la cita ---
Sacado de aqui: Frequently Asked Questions about Chris Sawyer & Game Development.
Actualmente, creo que el porcentaje de ensamblador en los juegos es de... 0 % Half-Life 2 está programado íntegramente en C++ (o no he encontrado los archivos fuente en asm). E intuyo que lo mismo pasa con Doom 3. Las partes que tradicionalmente se hacían en ensamblador eran las de rasterización (pintar) y hoy en día eso lo hace la tarjeta gráfica. Así, lo único que se programa en ensamblador son los shaders (pixel y vertex shaders según DX, y fragment y vertex programs según OGL). Aunque esto ya tiende a desaparecer, gracias a CG, HLSL y GLSL.
Según esto, mi consejo es que aprendas C++ y alguna librería gráfica, como DirectX u OpenGL.
Un saludo.
Ruben3d
Amilius:
--- Cita de: "remhunter" --- mi pregunta es, si una engine (por ej la del doom3) esta escrita en c++ y luego hay otra engine con las mismas caracteristicas exactamente, pero escrita en c/asm, la diferencia de rendimiento seria despreciable o por el contrario la 2º engine seria bastante mejor?? y si estuviese escrita totalmente en asm??? cambiaria asi mucho mas respecto a la programada en c/asm?
--- Fin de la cita ---
Existe otro "detalle" que creo que no se ha tomado en cuenta. Al momento de realizar el pesado trabajo de optimizar cualquier tipo de programa usando "trucos avanzados" estás optimizando el código para un procesador de una determinada sub-familia. Por ejemplo: para tal modelo de intel o para tal modelo de amd.
Esto lo escribo por que dependiendo del procesador los tiempos de proceso de las distintas instrucciones varían mas o menos un 5% a 20%, lo que en algunos procesadores se hace un poco más rápido en otros se hace un poco más lento... Así que mientras puedes estar optimizando el código para el modelo X de intel para ganar un 10% puedes estar perdiendo un 15% en el modelo X de amd o viceversa. Al final terminas con el lio de tener que crear y mantener dos versiones optimizadas del mismo código para distintos procesadores.
Navegación
[*] Página Anterior
Ir a la versión completa