Cada vez se programa peor?

A ver, KFR, si yo te entiendo, la gente tiende a especializarse y no hay nada malo en ello, de hecho cada equipo de desarrollo pues tiene sus especialistas en cada campo. Ahora, de ahí a decir que la programación de bajo nivel en videojuegos o en otros temas esta obsoleta, es inútil, o no aporta nada al campo...... pues no opino lo mismo.

Tu en tu trabajo normal no lo usas, pero bueno, esta ahí, hay gente que lo usa y es muy util, pero desde que apareció la programación orientada a objetos por desgracia parece que hay una caza de brujas en contra de los lenguajes de bajo nivel. Por cierto, descuida, que nadie piensa que seas un vago ni mucho menos, y dale duro a Opengl... que tiene tela de cosillas interesantes para mirar :).

Dicho esto me vuelvo a retirar a mi agujero hasta dentro de dos o tres dias, que toca viaje.
Yo por mi parte, como ya comente, alabo el buen trabajo de cualquiera en relacion a programacion (en el ambito que sea) pero tal vez me exprese mal y es que no digo que a dia de hoy "no tenga sentido" el programar a bajo nivel para el desarrollo de videojuegos sino que se usara en cosas muy puntuales como pueda ser desarrollar un motor desde cero pero la mayoria de gente que programe no lo hara sino en lenguajes de mas alto nivel, ya sea mas bajo como c o c++ o mas alto en la total variedad de lenguajes intepretados o de script que hay...que cada uno un mundo.

Por eso digo que, en mi opinion, no es ni mucho menos esencial ni realmente necesario a dia de hoy para juegos el saber programar en ensamblador...que uno aprende y lo practica? ole! y siempre es mejor saber mas cosas ademas de llenar el cv XD pero para programar juegos por norma hacen mas falta otras cosas.

Pero tras decir todo esto...si que me gustaria en ciertos sdk's que uso el poder implementar alguna rutina en asm pero de la pruebitas que he hecho me daba mas problemas que ayudas...a ver si lo miro mejor pues en tema moviles podria ser una gran ayuda...
KFR escribió:Expongo mi opinion y no va a malas en ningun punto, aunque pueda sonar asi ;)

1 - Antes ya lo he comentado y esta mas que probado. A dia de hoy y desde ya hace años, programar en ensamblador no tiene logica pues los compiladores estan tan optimizados que el codigo resultante en ejecucion es igual o incluso mas rapido que el realizado en asm. Por lo cual si tienes un codigo igual o mas rapido y ademas mucho mas legible, facil de modificar y depurar, es muuuuuy raro el decantarse por asm salvo por fanatismo o algo extremadamente puntual...que no un programa entero o gran parte de el.


Creo que no estamos hablando de que haya que programar en ensamblador para tener un buen resultado, si no a que para ejecutar cualquier código hoy en dia se programe de forma que haga falta tener detrás quince interpretadores, máquinas virtuales, CLR, .NET, etc... ¿Realmente hace falta tener tantísimas capas entre el ordenador y tu software? Está todo demasiado sobredimensionado.

KFR escribió:Me hace gracia cuando alguien dice "asm es la repolla y no hay nada mas rapido" o "visual basic o c# son una mariconada...no se puede hacer nada con ellos"...ajam...inicialmente, que luego creo quitaron soporte pues microsoft queria potencia C#, en xna se podia programar con vb.net o c# y ya habeis visto algunos juegos del livearcade como el outrun 2, super street fighter 2 remix hd...


Dudo mucho que juegos como el SSF2HD o el Outrun 2 estén programados en .NET, la verdad. Que estén en la tienda online no implica que estén programados con XNA.

KFR escribió:El unity se usa unityscript o c# y se consigue el mismo resultando con ambos aun siendo muy diferentes y ninguno es un lenguaje de bajo nivel como C o maquina como asm, en unreal se tira de UnrealScript, en wow y algun otro motor de lua y siguen siendo lenguajes de alto nivel y no veo los juegos que usan estos motores que tiren mal...


Unreal tira de UnrealScript pero tiene detrás un motor de juego (que no gráfico, ojo, de juego que abarca desde los gráficos a la música, IA, conectividad, físicas...) de los mejores programados de la industria, robusto como una roca y programado en lenguajes de bajo nivel. Y sobre todo, enfocado a videojuegos, cosa que lenguajes como Java o .NET no están enfocados a juegos si no a un uso más general.

KFR escribió:Si mirais en foros especializados en asm sobre hacer demos en opengl (api para dibujo y procesado de 3d usada de forma standard en casi todo aparato salvo 360 y directX) tirando de asm para "to" y tras muchas pruebas todos dicen o recomiendan lo mismo, dejarse de intentar usar asm para hacer llamadas al api pues no se va a conseguir mejora alguna y solo usarlo mediante linkados o importaciones de funciones criticas.


El problema no es utilizar OpenGL, OpenAL, Direct3D o cualquier otra librería, está bastante claro que nadie va a ponerse a hacer un motor gráfico accediendo directamente a los registros de la GPU como los juegos DOS. El problema es que desde que tu línea de código llega hasta Direct3D, no pasan 3 o 4 librerías previas, si no decenas y interpretadores por el medio...
Te estas confundiendo. Yo por ejemplo, no uso c, uso ruby, python o xna, hago juegos y aplicaciones amateur, y se c pero solo lo uso cuando quiero o lo necesito.

Que me da igual los puntos por donde pase el juego o el rendimiento hasta cierto punto, me la pela, basta y sobra al millon. Y tiene millones de beneficios programar en estos lenguajes, especialmente ruby que es el que mas me gusta y divierte programar, alomejor los programas llegan a ocupar una decima(o por ahi, dpendera tb) parte que en C, y son mas elegantes y divertidos de programar, etc.

Y si algun dia tengo que programar algo mas critico pues se usa c. Y lo siento pero siempre se ha de tener el estandard tecnico en mente y pensar en el standard tecnico de hace 20 años es no programar bien tampoco porque fallas a l elelgir la herramienta.
andoba escribió:Creo que no estamos hablando de que haya que programar en ensamblador para tener un buen resultado, si no a que para ejecutar cualquier código hoy en dia se programe de forma que haga falta tener detrás quince interpretadores, máquinas virtuales, CLR, .NET, etc... ¿Realmente hace falta tener tantísimas capas entre el ordenador y tu software? Está todo demasiado sobredimensionado.
Me encanta la exageracion haha, que entiendo por donde vas pero "no" hay "tantisimas" capas, por ejemplo si usas lua junto a opengl o sdl y en vez de usar un jit (compilado durante la ejecucion) puedo hacer un precompilado y despues solo voy a necesitar un maquina virtual/interprete, "una" capa tengo y al usarse un codigo intermedio es un lenguaje que permite facil portabilidad entre plataformas.

Todo tiene sus cosas buenas y malas. El control de memoria en C/C++ si se practica puede ser total pero tambien programar en C++ es un baile sobre pinchos y meter la gamba es bastante facil y el depurado es mucho mas dificil que en lenguajes de mas alto nivel. El poder especificar el tipo concreto de las variables y estar forzado a ello en la declaracion sirve para optimizar pero tambien cierto es que el tipado dinamico es una gloria bien usado. En relacion a la no necesidad de compilacion de ciertos lenguajes, es comodisimo para implementar la opcion de realizar mods o para motores, pues la base estara programada a bajo nivel pero los scripts y variables de entorno las modificaras cuando quieras que no cambio, compilo, pruebo, cambio, compilo... lo que ayuda a poder centrarte en el problema antes el que este mucho mejor, parece una tonteria pero el que todo sea "ya!" es importantisimo para no "perder el hilo".

Por ejemplo, de uno de los que mas conozco y el que estoy usando habitualmente desde hace cosa de un año, en Lua lo que puedo hacer con las arrays/diccionarios no se hace en c++ ni loco, literal. Que igual dando muchas vueltas puedes conseguir algo similar, seguro pues muchos caminos o todos llevan a roma pero uf... en este apartado lua es cosa fina fina. Si no se me cree, que puede ocurrir xD hacer unas pruebas y ya me direis. Que los tiempos de ejecucion aun siendo muy rapidos dentro de los lenguajes de su tipo, no se pueden comparar con C++? seguro ;) pero la claridad del codigo, las pocas lineas y el facil mantenimiento me da que no se los llevara C++...

andoba escribió:Dudo mucho que juegos como el SSF2HD o el Outrun 2 estén programados en .NET, la verdad. Que estén en la tienda online no implica que estén programados con XNA.

Mismamente Fez esta hecho en xna tirando de C# y a mi me parece una puta obra de arte y no veo tirones ni falta de rendimiento...si he escuchado de algun bug pero es otro tema [carcajad]. Que parece que hay una lucha encarnizada contra .net y la mayoria de la gente que conozco que lo ha probado a fondo, hostia! en vb.net para prototipos de aplicaciones y desarrollo rapido es dios (claro esta limitado a windows), asp .net es impresionante para desarollar paginas web o aplicaciones web y C# con xna para juegos va fino fino. Que no es multiplataforma? objective-c tampoco lo es y no veo a la gente despotricando de el a cada segundo...sera por ser de apple [+risas]

andoba escribió:Unreal tira de UnrealScript pero tiene detrás un motor de juego (que no gráfico, ojo, de juego que abarca desde los gráficos a la música, IA, conectividad, físicas...) de los mejores programados de la industria, robusto como una roca y programado en lenguajes de bajo nivel. Y sobre todo, enfocado a videojuegos, cosa que lenguajes como Java o .NET no están enfocados a juegos si no a un uso más general.
Cierto pero como ya he dicho igualmente opengl (openal aun tengo que probarlo) y directx no estan desarrolladas por mindunguis y "aunque sea una capa intermedia" es una "capaza" que te ahorra muuuucho trabajo base que a la hora de hacer un juego no te importa, que no es lo mismo hacer un juego que hacer un motor...hacer un boli usar el boli...ya que mola el ejemplo del boli xDDD

andoba escribió:El problema no es utilizar OpenGL, OpenAL, Direct3D o cualquier otra librería, está bastante claro que nadie va a ponerse a hacer un motor gráfico accediendo directamente a los registros de la GPU como los juegos DOS. El problema es que desde que tu línea de código llega hasta Direct3D, no pasan 3 o 4 librerías previas, si no decenas y interpretadores por el medio...
Y una vez mas "decenas"...ains que exagerau hijo [looco] y que problema hay en usar opengl mas alguna otra libreria para tcpip mas otra para anuncios/publicidad (por decir algo a boleo...)? el juego va estable? el programador ha conseguido lo que queria y para la plataforma que queria? objetivo cumplido! que ese juego no te va en un pentium3, lo siento...
Supongo que será cosa de gustos. Obviamente lo de decenas de capas y interpretadores es una exageración [qmparto] pero vamos el punto veo que se ha entendido. Me gusta que cada vez los lenguajes interpretados funcionen mejor y se puedan usar para cosas mas serias, pero sigo viéndolo con otros ojos... [carcajad]
Esto es una de las cosas que me encantan de la programacion...tienes mas lenguajes que chinos...exagerar mola [+risas]...y cada uno tiene sus manias. Es divertido ponerte con uno y descubrir que tiene muchas cosas parecidas o iguales de tal lenguaje, que joeee hace alguna cosa que te encanta, otras cosas juras en ebreo por no poder hacerlas como en pascual lenguaje. Tambien es curioso cuando dices "tal lenguaje es una mierda porque tal y tal y no tiene rendiemiento..." o "es muy dificil, eso no es practico" o "bla bla bla" y de repente te ves obligado a usarlo por temas laborales o estudios y aunque te joda un poco vas diciendote para tus adentros "pues...no va tan mal..." xDDDDD el programador es el ser mas cabezota que existe y mola mucho obcecarse con que el error ha de estar en tal zona, funcion, etc.. y llega otro tras x horas y te dice "no te falta un punto y coma?" o "has escrito la variable varhablar sin h"... [sati]
theelf escribió:Buenas, primero antes de todo, quiero decir algo

Como programador, entiendo la larga, y dificil tarea de programar y crear algo. No es facil, y me quito el sombrero ante todos aquellos que programan dia a dia, para hacer un juego, un emulador, un plugin...etc mis respetos


Dicho esto, no les parece que cada dia se programa peor? da la sensacion que la optimizacion es cosa del pasado, y muy pocos respetan esa sagrada tarea, antes tan obligatoria

Puede ser que los MHZ esten matando la buena programacion? creo que si, hace que los programadores se olviden de que existe gente que no tiene un C2D a 3ghz? seguro

Me gustaria señalar por ejemplo los emuladores. Aqui no tenemos que quejarnos de nada, todo lo contrario. Hay alguien que destina su PROPIO tiempo en programar un emulador de forma gratuita, para que todos disfrutemos

Pero que pasa con las optimizaciones? que pasa con el buen programar? que pasa con las opciones de core, tweaks, speedhacks... etc que antes existian??


Por ejemplo, tenemos el Kega Fusion, es increible, en el Pentium 3 M a 800mhz del portatil q tengo, corro 32x a sin frameskip, y usando el filtro simple4x+reescalado!!!!

Y luego tenemos el emulador TurboEngine, que emula la PCengine, usa los mismos plugins que el Kega Fusion... usando el filtro simple4x+reescalado, apenas llego a los 8fps.... y emulando un simple juego de PCengine como el bomberman!!!

O el snes9x, usando el filtro simple4x+reescalado, apenas llego a los 35fps, que le paso al snes9x?

O el mess!!! dios santo, me lo baje.. configure correctamente... y si logre sacarle 5fps al core de snes fue de milagro...



No se, me da que cada vez se optimiza menos, y ya ni siquiera se presta atencion en que el codigo sea limpio. que opinan?


"Little Endian HATE Wi" [beer]

En cuanto a Emus el snes9x.....prefiero el zsnes. [bye]
57 respuestas
1, 2