last day (17 days later) » 

2:41 PM
-2
A: Programación de juegos 2D de bajo nivel (C++/lua...), Que escoger?

Jose Antonio Dura OlmosQuerer hacer un juego como el snake o peor aún, el pokemon, en C++ o LUA sin utilizar un motor tiene tan poco sentido como querer programarlo en binario. Incluso en las consolas hoy en día se usa motores. Es ponerte palos en las ruedas tu mismo. Pero puedes usar un motor. Lo puedes hacer en C++....

 
Si quieres hacer un videojuego usa un motor, si quieres programar, huye de ellos, porque los motores no se programan, se scriptean, y no és lo mismo. Programar das ordenes a un hardware, scriptear das ordenes a un software. Los motores son herramientas de produccion fantasticas que permiten hacer juagos a diseñadores.
 
@ArnauCastellví, supongo entonces que los millones de "scripteadores" de java no somos programadores; porque no damos órdenes a un hardware, le damos órdenes a un software llamado máquina virtual de Java. Unity 3D se programa en C# o en un lenguaje similar a javascript (o en Boo), Unreal engine en C++. Se aprende programación igual con un motor que poniéndote dificultades artificiales. O incluso puede que aprendas más rápido al no tener que perder el tiempo programando primitivas gráficas y poder dedicarlo a programar la lógica del juego.
 
@JoseAntonioDuraOlmos Primero, sí, programar en Java es scriptear, segundo, que un "no programador" pueda scriptear no implica que un programador también pueda scriptear, así que no te preocupes, que no he dicho que los scripteadores Java no puedan ser, además, programadores. Otro tema, es que parece que entiendes scriptear como algo malo, yo no he dicho eso, solo he dicho que no es lo mismo y que es mala idea confundirse porque tienen implicaciones distintas, y creo importante ser consciente de que estás haciendo y saber elegir cuando es buena idea usar un motor, o una librería.
 
@JoseAntonioDuraOlmos Estoy de acuerdo con Arnau, e incidiendo en ello, debo decir que lo que yo quiero hacer es dar órdenes al hardware, no al software, y sí, quiero crear un juego. Por ejemplo, no quiero ponerle mp3 a un juego, como por ejemplo en CoronaSDK, o que me bloquee según ciertos formatos, lo que quiero es crear una serie de funciones que a partir del protocolo MIDI me cree una canción. La cuestión es programarlo. Podrás decir que me complico, si, pero no puedes negar que aprenderé de ello. Solo quiero que alguien experimentado me aconseje que tecnología de las expuestas debo usar.
 
@ArnauCastellví es un hecho objetivo que un "no programador" NO puede scriptear; pues todo script es un programa. Y desde luego es falso que "programar en Java es scriptear". ¿Acaso afirmas que Eclipse, Minecraft o Netbeans son scripts? Valentio: ¿Quieres una función del tipo play("cancion.mid",instrumento) o quieres implementar tu la lectura del fichero mid y el envío de órdenes a la tarjeta de sonido?
 
2:41 PM
Afirmo que cualquier código interpretado por un software es un script. Los que están aprendiendo a "programar" usando motores, aprenderán a usar motores, no a programar, luego se les pedirá una función play o implementar una física, y no tendrán ni idea porque el motor les hacia todo el trabajo. Un motor es una herramienta de producción fantástica, que permite a programadores que no tienen porque saber leer un fichero, hacer juegos, los resultados son buenos y se tarda poco, y si el motor tiene fallos no tendrás que arreglarlos tu, pero para aprender, intención de @Valentio, es nefasto.
 
@ArnauCastellví "Afirmo que cualquier código interpretado por un software es un script". Bueno, en el caso de Java y C# y lenguajes de programación similares, no se ejecuta ese código directamente, sino se ejecuta un bytecode generado a partir de ese código (el bytecode es resultado de una compilación, cosa que no sucede con los scripts). Ahora bien, estos 2 lenguajes pueden tener instrucciones para manipular hardware. Tu afirmación no es correcta.
 
@JoseAntonioDuraOlmos Lo que quiero exactamente es programar esa función play() no que me venga hecha ya. Quiero ver el trasfondo de los juegos, su base mas primitiva, quiero poder saborear mínimamente el trabajo que tuvieron que hacer en 1995 para crear pokemon rojo y azul y meter el juego entero en un cartucho de 1 MB.
 
3:22 PM
@Valentio Es un propósito legítimo y una buena experiencia educativa. Ten en cuenta que una persona no programó el pokemon rojo y azul de esa forma. Verás decenas de personas en los títulos de crédito.
Lo que ocurrió es que algunos ingenieros hicieron programación de alto nivel; estos utilizaban funciones como play("cancion.mid", instrumento) sin entrar a ver cómo estaba hecha por dentro. Otros ingenieros hiceron programación de bajo nivel; ya sea anteriormente haciendo funciones de librería que luego fueron usadas en Pokemon Azul y rojo o ya sea dentro del mismo proyecto haciendo funciones que requieren programación a bajo nivel dado que no estaban disponibles en ninguna librería.
Es por eso que te desaconsejo querer programar un juego a bajo nivel tu solo. Ni se hace ahora ni se hacía en 1995. Busca un proyecto más pequeño. O programas a alto nivel un juego. O programas a bajo nivel una rutina tipo play(); y luego cuando la termines ya te puedes plantear otro objetivo en que la uses. Ponerse como objetivo el programar un juego del tamaño de Pokemon todo a bajo nivel solo conduce al fracaso.
 
3:38 PM
Vale, teniendo en cuenta la mínima frontera entre el bajo nivel y lo subterráneo (en este caso la función play) es decir, usar librerías predefinidas para gráfica y audio, cual de las dos tecnologías que expongo me aconsejarías?
 
 
4 hours later…
7:23 PM
Ahora voy a opinar "de oídas", el código en c# no es interpretado, es "precompilado" y al ejecutarlo es recompilado onthefly para la plataforma donde corra, de manera que el código que se ejecuta es el tuyo, no la "maquina virtual" interpretando un script. De hecho "creo" que hay la opción de compilarlo "del todo".
De no ser así, si estoy equivocado y el còdigo c# es interpretado, pues lo siento, el c# es un lenguaje de scripting.
@Valentio Estioy de acuerdo en no intentar ir a "muy" bajo nivel, pero no hace falta irte a la otra esquina, con una buena librería te ahorraras pelearte con el hardware, miraté la web que te dije en el primer comentario.
 
8:20 PM
@JoseAntonioDuraOlmos he recuperado el comentario que colocaste. Lo borré por error desde el celular. Mis más sinceras disculpas.
@ArnauCastellví
25
Q: Is C# partially interpreted or really compiled?

user970696There is a lot of contradicting information about this. While some say C# is compiled (as it is compiled into IL and then to native code when run), others say its interpreted as it needs .NET. EN Wiki says: Many interpreted languages are first compiled to some form of virtual machine code, ...

@ArnauCastellví C# no es script, es código compilado y procesado
 
8:46 PM
@LuiggiMendoza Si, eso tenia entendido, gracias por buscarlo :)
 

  last day (17 days later) »