Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Orientar lo poco que se a video juegos

Iniciado por Yotes, 19 de Mayo de 2009, 09:46:42 PM

« anterior - próximo »

davur

Tú dices que los lenguajes que no son C++ son lentos y limitados. Yo digo que no.

¿Por qué? Pues evidentemente, porque no lo son.

Es posible que nuestras definiciones de 'lento' y 'limitado' sean diferentes. Por un lado, hablar de 'lento' o 'rápido' sin un contexto es perder el tiempo. Por otro lado, dile a alguien que sepa Python (por ejemplo) que éste es más "limitado" que C++ y observa su reacción.

davur

Se me olvidaba, los lenguajes de programación son especificaciones formales plasmadas en papel. Por lo tanto, no tiene sentido alguno decir que tal lenguaje es lento o rápido, en términos absolutos.

Vicente

Cita de: Hans en 23 de Mayo de 2009, 10:21:03 AM
Sabes muy bien que eso ya lo sé, sino no estaría ahora mismo con C# y con Java al mismo tiempo. Pero lo más requerido es C++ y lo más complicado tb es C++ y por eso mi recomendación es C++, y no por otro cosa. Para mi es más cómodo trabajar con C# por su compilador y su ide (en C++ estoy obligado  a usar Codeblocks para mantener la multiplataformidad Linux/Windows) y no sólo es lo más lento del planeta compilando, además indica malamente la mayoría de errores. Adaptarse a tan pocos recursos y a tener que buscarte la vida en google es lo que diferencia a C++, ese handicap extra que hace que los demás parezcan lenguajes simples y lo que hace que realmente se aprenda. Repito lo mismo que ya he dicho, C++ es un Ferrari, muy difícil de conducir pero cuando sabes no hay quien te alcance, los demás son Ford Fiestas, lentos y limitados pero al alcance de cualquiera por muy poco precio.

Si te lo dan casi todo hecho (caso C# con XNA) aprendes cero patatero, cosa que está muy bien si quieres "simplemente" hacer un juego, no si quieres aprender de verdad a base de pegarte contra una pared. He leído de gente que empezó con div, luego se pasó a no sé qué y luego a no sé cuánto y me parece bien pero así se tardan años en aprender, porque vas de menos a más lentamente, mientras que empezando por el más te costará ver resultados al principio pero alcanzarás la meta mucho antes. Yo empecé con Ada y POO directamente y aún siendo muy parecido a C/C++ me supuso una pérdida de tiempo brutal e innecesaria.

Tu mismo lo dices: el chico quiere aprender las bases del 3D y le recomiendas un lenguaje más complicado, con peores herramientas, donde se va a dar de cabezazos con las paredes,... Así lo mismo en vez de aprender lo deja por el camino. De nuevo: para aprender 3D no hace falta aprender C++ y eso es indiscutible.

Y luego si quiere hacerse un profesional, hay salidas fuera del C++ (y no nos engañemos, que puede aprender C++ también más adelante si realmente lo necesita, no es que por elegir ahora otra cosa se le vaya a freir el cerebro).

Un saludo!

Vicente

Hans

#48
Limitado y lento significa lo que significa. Java es un lenguaje en el que no hay ni enumerados con valor y que se ejecuta en una máquina virtual.

Yo digo aprender lo más difícil conlleva a que luego lo no tan difícil te parezca sencillo. Eso es así en todos los aspectos de la vida. Y C++ es el más difícil.

En fin, no discuto más. C++ a día de hoy es el lenguaje más solicitado y más usado en la industria del videojuego por algo y lo ha sido durante muchos años, recomendar cualquier otra cosa antes no tiene sentido. Que con Java o C# vas a tener salidas es indiscutible pero no al mismo nivel.

Otro día más.

davur

Cita de: Hans en 23 de Mayo de 2009, 11:40:10 AM
Limitado y lento significa lo que significa.

Y que sigues sin poder explicar.

Cita de: Hans en 23 de Mayo de 2009, 11:40:10 AM
Java es un lenguaje en el que no hay ni enumerados con valor.

¿¿¿Enumerados con valor??? Es la primera vez que leo ese término, y no voy a hacer el esfuerzo de intentar desencriptar tu nomenclatura propia (tú sí deberías de hacer el esfuerzo de utilizar la nomenclatura comúnmente aceptada si pretendes que se te entienda).

Cita de: Hans en 23 de Mayo de 2009, 11:40:10 AM
Yo digo aprender lo más difícil conlleva a que luego lo no tan difícil te parezca sencillo. Eso es así en todos los aspectos de la vida. Y C++ es el más difícil.

C++ es difícil. ¿El más difícil? Eso es altamente discutible (y no es importante, en cualquier caso).

Cita de: Hans en 23 de Mayo de 2009, 11:40:10 AM
C++ a día de hoy es el lenguaje más solicitado y más usado en la industria del videojuego por algo y lo ha sido durante muchos años, recomendar cualquier otra cosa antes no tiene sentido. Que con Java o C# vas a tener salidas es indiscutible pero no al mismo nivel.

Nadie ha puesto en duda en ningún momento que C++ sea el lenguaje predominante en la industria, porque es un hecho indiscutible.

Lo que varios hemos puesto en duda es que, teniendo en cuenta que, en la gran mayoría de casos (siempre hay excepciones):

- Para dedicarse profesionalmente al desarrollo de videojuegos es necesario dominar C++.

- Para dedicarse profesionalmente al desarrollo (en general) es necesario dominar más de un lenguaje.

, la decisión más inteligente (por más beneficiosa) de cara a los intereses de alguien que empieza, que no son otros que aprender, es utilizar un lenguaje adecuado para ese propósito. C++ es posiblemente una de las peores opciones en ese sentido (si no la peor). Es un sentimiento generalizado, además: haz un muestreo de universidades con departamentos de informática reconocidos y fíjate en qué lenguajes utilizan para enseñar las asignaturas de fundamentos de programación.

Si vas a tener que aprender varios lenguajes, y entre ellos C++, aplica el sentido común y empieza por un lenguaje accesible, con el que puedas centrarte en el dominio del problema y no en problemas de detalle. Es el camino que te proporcionará una base de la manera menos deprimente (aprender a caminar antes de correr, aprender a programar antes de programar un juego).

En definitiva, aprende las bases con lenguajes accesibles (se han mencionado varios en este hilo), y haz un esfuerzo por evitar caer en la actitud de no ver más allá de tus propias narices.

yorch

#50
Volviendo un poco al asunto...  :D La verdad es que no me meto en debates de lenguajes de programación, etc. Cada uno creo que debería usarse para las necesidades de la aplicación. Las cosas son como son y dependiendo de la facilidad de aprendizaje de cada uno, ganas de sufrir (esto creo que es bastante relativo), y en lo que quieras currar, pues tienes que tirar por un camino o por otro. Yo en su día tuve que aprender Lua y Python para hacer algunos scripts, y no me molestó... vamos, si quieres dedicarte al desarrollo de software pienso que es lo que hay  ^_^'

PD: edito errores, que hoy estoy bastante torpe escribiendo xD

Hans

#51
Si no entiendes lo que es un enumerado con valor no sé qué más decir, dejas claro que de C++ tienes mucha idea, desde luego, como para fiarse de tu opinión xD

Y lo de las universidades como ejemplo del que extrapolar lo que se necesita para aprender es un sinsentido cuando en la mía, sin ir más lejos, utilizábamos Ada, lenguaje que, si no me equivoco, es usado en el ámbito militar y ya. Practicidad nula. Y la demostración empírica de su nula practicidad está en que el curso que yo saqué MH aprobamos 4 aquel examen, de 100 personas que lo hicieron. Y los otros 3 no llegaron ni al 6. Para eso sirven los lenguajes poco usados, para que cueste lo mismo aprenderlos pero además no sirvan ni para limpiarse el culo con ellos.

davur

#52
Cita de: Hans en 23 de Mayo de 2009, 01:51:49 PM
Si no entiendes lo que es un enumerado con valor no sé qué más decir, dejas claro que de C++ tienes mucha idea, desde luego, como para fiarse de tu opinión xD

Sé lo que es un enum. Un 'enumerado con valor' es un concepto que te has inventado tú hoy en este hilo (o quizás antes, no lo sé). Si no es así, por favor remíteme al párrafo del estándar del lenguaje en el que se define el término.

Cita de: Hans en 23 de Mayo de 2009, 01:51:49 PM
Y lo de las universidades como ejemplo del que extrapolar lo que se necesita para aprender es un sinsentido cuando en la mía, sin ir más lejos, utilizábamos Ada, lenguaje que, si no me equivoco, es usado en el ámbito militar y ya. Practicidad nula. Y la demostración empírica de su nula practicidad está en que el curso que yo saqué MH aprobamos 4 aquel examen, de 100 personas que lo hicieron. Y los otros 3 no llegaron ni al 6. Para eso sirven los lenguajes poco usados, para que cueste lo mismo aprenderlos pero además no sirvan ni para limpiarse el culo con ellos.

Si lees de nuevo, pero esta vez lo haces correctamente, verás que no me he referido a 'la totalidad de las universidades'. Por cierto, Ada es una opción mucho más adecuada como primer lenguaje que C++ (casi cualquier lenguaje lo es). Y sí, efectivamente te equivocas cuando dices que sólo se utiliza en el ámbito militar.

Y si realmente estás afirmando que, porque en cierto examen de cierto curso en el que se utilizaba Ada aprobó un escaso porcentaje de alumnos, entonces el lenguaje tiene un valor práctico nulo (practicidad es una palabra que no existe en el diccionario de la RAE), entonces es que lo tuyo es peor de lo que pensaba.

Hans

Cita de: davur en 23 de Mayo de 2009, 02:08:10 PM
Cita de: Hans en 23 de Mayo de 2009, 01:51:49 PM
Si no entiendes lo que es un enumerado con valor no sé qué más decir, dejas claro que de C++ tienes mucha idea, desde luego, como para fiarse de tu opinión xD

Sé lo que es un enum. Una 'enumeración con valor' es un concepto que te has inventado tú hoy en este hilo (o quizás antes, no lo sé). Si no es así, por favor remíteme al párrafo del estándar del lenguaje en el que se define el término.

Cita de: Hans en 23 de Mayo de 2009, 01:51:49 PM
Y lo de las universidades como ejemplo del que extrapolar lo que se necesita para aprender es un sinsentido cuando en la mía, sin ir más lejos, utilizábamos Ada, lenguaje que, si no me equivoco, es usado en el ámbito militar y ya. Practicidad nula. Y la demostración empírica de su nula practicidad está en que el curso que yo saqué MH aprobamos 4 aquel examen, de 100 personas que lo hicieron. Y los otros 3 no llegaron ni al 6. Para eso sirven los lenguajes poco usados, para que cueste lo mismo aprenderlos pero además no sirvan ni para limpiarse el culo con ellos.

Si lees de nuevo, pero esta vez lo haces correctamente, verás que no me he referido a 'la totalidad de las universidades'. Por cierto, Ada es una opción mucho más adecuada como primer lenguaje que C++ (casi cualquier lenguaje lo es).


Aprende C++ y luego vienes a dar lecciones xD En un tipo enumerado se pueden definir enteros con un valor determinado y luego bastará con hacer un cast a int para obtener dicho valor. Es algo muy útil para listados de valores o para definiciones, definiciones (defines) que en java tampoco permiten dar un valor, por lo que en mi caso sólo me ha quedado la opción de definir constantes.

Y Ada opción mucho más adecuada como primer lenguaje quizás en tu realidad alternativa, en el mundo real Ada es un lenguaje que se usa absolutamente en nada más allá de lo que he citado. Con paridas así no sé cómo cojones pretendes que se te tome en serio.

davur

Cita de: Hans en 23 de Mayo de 2009, 02:20:19 PM
En un tipo enumerado se pueden definir enteros con un valor determinado y luego bastará con hacer un cast a int para obtener dicho valor.

Si pretendías definir lo que es un tipo enumerado (¡ahora sí, el término correcto!), te diré lo que has conseguido: basura (y además no en forma de definición).

Lee esto: http://www.parashift.com/c++-faq-lite/newbie.html#faq-29.19

Cita de: Hans en 23 de Mayo de 2009, 02:20:19 PM
Aprende C++ y luego vienes a dar lecciones xD En un tipo enumerado se pueden definir enteros con un valor determinado y luego bastará con hacer un cast a int para obtener dicho valor. Es algo muy útil para listados de valores o para definiciones, definiciones (defines) que en java tampoco permiten dar un valor, por lo que en mi caso sólo me ha quedado la opción de definir constantes.

El cacao de conceptos en esa frase es importante. Vamos a hacer como que no la has escrito.

Aprende a expresarte con propiedad y a saber de lo que hablas antes de pretender dar lecciones a nadie y pretender que se te tome en serio. Si conocieras mínimamente mi historial en este foro, sabrías que soy especialmente pedante en lo que se refiere a C++ (me fastidia leer posts que contribuyen al desconocimiento y las malas prácticas de este lenguaje, porque bastante abunda ya).

Sigo esperando el párrafo del estándar (pero sé que no me lo darás, porque no existe y porque has cambiado el término en tu último mensaje).

Cita de: Hans en 23 de Mayo de 2009, 02:20:19 PM
Y Ada opción mucho más adecuada como primer lenguaje quizás en tu realidad alternativa, en el mundo real Ada es un lenguaje que se usa absolutamente en nada más allá de lo que he citado. Con paridas así no sé cómo cojones pretendes que se te tome en serio.

¡Lo que tú digas!

Hans

Deja de dar lecciones a los demás cuando no sabías ni lo que es un puto enumerado con asignación de valores y no te ampares en que no me he expresado bien porque hasta un mono sabía de lo que estaba hablando. Deja de desviar el tema hacia cómo nos expresamos los demás buscando absurdas definiciones en la rae porque no haces más que el ridículo. Y, sobre todo, deja de liar al chaval con gilipolleces del tamaño de Ada es un lenguaje mucho más apropiado que C++ porque lo confundes con patéticas mentiras dignas del mayor de los frikazos. En definitiva, deja de quedar con el culo al aire en cada post. Por favor xD

Yotes

Hola a todos!, primero que nada, quiero agradecer todas las respuestas que me han pasado, de una manera u otras me son muy útiles.

Les comento que pienso un poco en lo que me comentan, y la verdad se me plantea una dualidad de pensamientos que me genera una guerra interna muy similar a la que se ha armado en este foro :D.

Primero que nada, soy de pensar que si se va a hacer algo, si se va a aprender algo, mas vale hacerlo bien de entrada, por lo que empezar de C++ sería una muy buena opción. Por otro lado, ya les comentaba antes, que tengo 25 años (a cumplir en un mes), estoy en una carrera universitaria (a duras penas), trabajo(casi todo el día), y ya tengo una familia formada con 2 hijos.. por lo que el tiempo, en mi caso, es mas que oro :D. entonces, me plantéo lo siguiente, necesito resultados relativamente rápidos  :P.

Bien, esto me lleva, a que quizá por mi estilo de vida, quizá me convenga, por lo que me dicen, comenzar con C# y XNA, que quizá sea un entorno mas amigable en varios sentidos. En realidad si me sirve para poder crear un juego en 3D, y aprender la lógica del manejo de las coasas, creo que por el momento será suficiente. Luego, si veo que le puedo dar un rumbo importante, quizá pueda meterme a aprender C++.

Creo que esta respuesta es la mas sensata luego de leer todas las suyas, y si bien, alguno saldrá enojado, tiene toda la razón, ya que creo que todos los puntos de vistas tienen cosas muy válidas. Supongo que a largas cuentas, si llego a poder dedicarme a esto de lleno alguna vez, quizá sienta que he perdido el tiempo por no haber empezado con c++, pero por otro lado, se que voy a haber llegado a resultados mas rápidos, y a fin de cuentas eso también es importante.. por ende, llegaré a los resultados, por diferentes caminos, mas largos o mas cortos, pero en fin, lo importante es no morir en el intento :D.

En fin, agradezco los links con tutos que me pasaron anteriormente (aunque no he tenido tiempo de mirarlos mas que un minuto), y agradeceré tmb cualquier otro que me puedan enviar de XNA y C#.

Saludos, y gracias! ^_^
Yotes!

Hans

Desde luego con C# obtendrás resultados en muy poco tiempo, eso seguro. Suerte.

davur

Excelente decisión, Yotes. Ignorar las barbaridades recomendadas por Hans es la decisión más inteligente que podías haber tomado.

Yotes

Jeje, siguen peleando  ^_^.

No, no he ignorado a nadie, por el contrario, todos los puntos de vista los considero válidos. Solo se que si fuese mas joven, y tuviese mas tiempo libre, quizá arrancaría por C++, pero dadas las circunstancias, creo que tendré que saltear esa fase de momento si quiero ver resultados rapidos, aunque quizá no sean los óptimos, pero en fin.

Bien, saludos
Yotes!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.