Ir al contenido

publicidad

Foto

Ayuda con un RPG de Texto en C++


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
31 respuestas en este tema

#16

Escrito 30 agosto 2011 - 00:35

Para hacer un juego como ese usa python o ruby, tio, que le dan 1000 vueltas al c++ y te la pela el rendimiento.


OMG, mis ojos. Me acaban de subir 2 dioptrias con ese comentario.

Lo de que Python le pega mil vueltas a C++ lo podríamos discutir, aunque únicamente llegaríamos a la conclusión de que "depende" de lo que necesites, pero la del rendimiento me ha matado.

¿Y de que sirve el rendimiento para un juego de texto por consola? ¿o para hacer ejercicios y aprender a programar? Y asi con 1001 casos.

En muchos casos el rendimiento de C++ es irrelevante.


El rendimiento SIEMPRE es importante. Ya sea un juego de texto por consola, en un ejercicio para aprender o un programa que sólo sume dos números. Con esa afirmación, se me quitan las ganas de discutir contigo este tema porque veo que no tienes las cosas muy claras.

Por tu afirmacion de

Yo llevo 3 años y medio programando como indie y hobbie y aun no he encontrado un solo caso donde haya necesitado el C/C++ para nada. Adapto el problema a lo que necesita mi proyecto y no necesitan nunca ese extra de rendimiento, ni tampoco el de Java o C# por cierto, q tb los conozco(junto a perl, bash, vb i php).

veo que no te dedicas profesionalmente a esto y por lo tanto para ti el rendimiento no es importante, cosa que si lo es.

Por cierto, de los lenguajes que afirmas conocer:
- bash no es un lenguaje de programación
- perl y php los catalogamos mejor en lenguajes de scripting. Como dice un compañero del curro: "cualquier cosa en perl que te ocupe más de 20 lineas planteare hacerlo mejor en otro lenguaje")
- vb: En serio todavía hay gente que aún usa eso? Mira que vb .net lo veo mal, pero vb lo veo como un crimen contra la humanidad

  • ZT

  • TERRESTRIS VERITAS

  • vida restante: 100%
  • Registrado: 18 may 2002
  • Mensajes: 1.686
#17

Escrito 30 agosto 2011 - 01:57

Voy a dar mi modestísima opinión del tema.

Yo empecé de niño con Basic 1.1, años después quise hacer por hobby algunos proyectos con el famoso DarkBasic. Hice algunas cosillas también gracias por los cimientos que tenía en Basic, pero bueno... Años después (muchos, es decir, hace pocos meses xDD) comencé, como el autor del hilo, a aprender C++ para juegos.

Iba a ponerme primero con estos otros mencionados como python, ruby, etc, etc... porque leía que si uno no quería dedicarse profesionalmente C++ era "demasiao pal body". Estuve a punto de caer y hacer caso a este mantra, pero, digamos que por motivación personal y reto, me apetecía conocer al "todopoderoso C++", y ver si realmente era tan "cabroncete" como algunos lo pintan. Me tomé este reto como una fuente de motivación extra que podría aprovechar para no rendirme a mitad de camino, porque sabía dónde me metía...

Pues bien, llevo ya un tiempecito aprendiendo y he de decir que me encanta. Sí, tiene sus cosas, pero bufff... nunca había tocado OOP y ha sido amor a primera vista xDD... ¿La sintaxis? La veo incluso mejor y más clara que C#... ¿Para juegos? Hay miles de librerías como Allegro (2D) o Ogre (3D) que se pueden usar en C++ a un nivel estilo DarkBasic (con Ogre se necesita un poco más de nivel xD), es decir, versatilidad y profundidad que TÚ quieras darle, sin limitaciones. Eso sí, se ha de tener una fuerte idea de manejo de memoria con punteros (algo también muy mitificado y que, si le pillas el gustito, incluso es divertido) A partir de aquí, cavar tan hondo como quieras.... Ese es el gran poder de C++, no un inconveniente como algunos intentan hacer ver.

Lo dicho. C++, en mi humilde opinión repito (tal vez de aquí unos meses más me cague en todo lo que se menea xDD), sigue siendo una GRAN base de conocimiento que todo el mundo debería aprender. Tal vez no dará arkanoids tan rápidamente como otros lenguajes, pero sí que cuando uno llegue a hacerlos en C++, éste le brindará la opción de explorar muchísimo más y de hacer un arkanoid 0% prefabricado... xD ¿Para algo sigue siendo el estándard en el mundo de los videojuegos, no?

En fin, que mis más puros ánimos al autor del hilo. C++ engancha y es muy amigable (eso sí, mírale a los ojos siempre con una sonrisa, valga la metáfora), pero sí que es cierto que tiene sus puntos (como todo en la vida) jodidos... pero también es verdad que muchos que vienen de C# lo crucifican sólo por el simple hecho de no tener que aprender OOP, es decir, cambiar de paradigma. Pero una vez conoces más a fondo el lenguaje, es una maravilla.

En fin, saludos y ánimos de nuevo, que a mí también me van muy bien!! :-D

#18

Escrito 30 agosto 2011 - 09:44

OMG, mis ojos. Me acaban de subir 2 dioptrias con ese comentario.

Lo de que Python le pega mil vueltas a C++ lo podríamos discutir, aunque únicamente llegaríamos a la conclusión de que "depende" de lo que necesites, pero la del rendimiento me ha matado.


Pues eso he dicho yo: 'para un juego como ese'.

El rendimiento SIEMPRE es importante. Ya sea un juego de texto por consola, en un ejercicio para aprender o un programa que sólo sume dos números. Con esa afirmación, se me quitan las ganas de discutir contigo este tema porque veo que no tienes las cosas muy claras.

veo que no te dedicas profesionalmente a esto y por lo tanto para ti el rendimiento no es importante, cosa que si lo es.


No estoy nada de acuerdo y eso de que no quieras discutir...xD. Como ya he dicho antes, el rendimiento se debe buscar cuando es util y necesario. Si no me equivoco por ejemplo una de las reglas de diseño de programacion es no optimizar si no es necesario y no hacerlo hasta terminar el programa. Aqui vemos una expresion similar, si un lenguaje como python o ruby o lo que sea puede hacerte el trabajo sin problemas, adelante.

Por otro lado, yo me dedico a hacer juegos, no a ser un crack programando, programar hiper mejor o ganar un minimo % de rendimiento. No. La programacion es una entre tantas y si se puede reducir lo hago. Es por eso que uso librerias o lenguajes ya existentes(tu tb, no?) y prefiero usar esos lenguajes porque son mucho mas comodos y rapidos de desarrollar, sin limitarte tampoco. De esta forma el tiempo salvado lo puedo usar en otras cosas.

Es por eso que me parece mal gastar mi tiempo en rendimiento para cosas que no lo necesitan, sean juegos o no.

Por cierto, de los lenguajes que afirmas conocer:
- bash no es un lenguaje de programación
- perl y php los catalogamos mejor en lenguajes de scripting. Como dice un compañero del curro: "cualquier cosa en perl que te ocupe más de 20 lineas planteare hacerlo mejor en otro lenguaje")
- vb: En serio todavía hay gente que aún usa eso? Mira que vb .net lo veo mal, pero vb lo veo como un crimen contra la humanidad


¿Y?

ZT
Si yo de hecho pienso aprender bien C++ en el futuro, igual que quizas toque ensamblador por la misma razon. Pero una cosa es aprender, provar y trastear y otra usarlo en proyectos en que has de estar años trabajando.

Cuando los pluses de C++ no te resultan utiles entonces veo absurdo tenerte que comer sus puntos debiles para nada.

  • Gagle

  • Navi

  • vida restante: 100%
  • Registrado: 22 mar 2008
  • Mensajes: 9.856
#19

Escrito 30 agosto 2011 - 11:13

Si sabes objetos empieza con c++ y sino empieza con C y modulariza el programa!! Y tienes que hacer un menu con las opciones de tu juego. Y que no te de miedo en hacer 15000 mil funciones, que mas vale esto que tener un codigo de mierda que ni tu te enteras xD,

A nivel profesional, C/C++ sigue siendo el lenguaje más usado,
[/quote]

El mas usado es java clarisimamente shurmano!

http://www.tiobe.com...tpci/index.html


Imagen EnviadaImagen Enviada
Committing suicide to free the zombie!
Human knowledge belongs to the world
"640KB ought to be enough for anybody" (Bill Gates, 1981)


#20

Escrito 30 agosto 2011 - 11:45

pero también es verdad que muchos que vienen de C# lo crucifican sólo por el simple hecho de no tener que aprender OOP, es decir, cambiar de paradigma.


C# es puramente orientado a objetos, así que nadie ha criticado a C++ por eso.

No estoy nada de acuerdo y eso de que no quieras discutir...xD. Como ya he dicho antes, el rendimiento se debe buscar cuando es util y necesario. Si no me equivoco por ejemplo una de las reglas de diseño de programacion es no optimizar si no es necesario y no hacerlo hasta terminar el programa. Aqui vemos una expresion similar, si un lenguaje como python o ruby o lo que sea puede hacerte el trabajo sin problemas, adelante.

Por otro lado, yo me dedico a hacer juegos, no a ser un crack programando, programar hiper mejor o ganar un minimo % de rendimiento. No. La programacion es una entre tantas y si se puede reducir lo hago. Es por eso que uso librerias o lenguajes ya existentes(tu tb, no?) y prefiero usar esos lenguajes porque son mucho mas comodos y rapidos de desarrollar, sin limitarte tampoco. De esta forma el tiempo salvado lo puedo usar en otras cosas.

Es por eso que me parece mal gastar mi tiempo en rendimiento para cosas que no lo necesitan, sean juegos o no.


Precisamente, en los juegos es donde más se debe optimizar. A diferencia de otros programas que te puedes permitir que una función tarde lo que tenga que tardar, en los juegos tienes que conseguir que todo (IA, luces, renderizado, logica, particulas, sonido, etc...) vaya a 60fps, con lo que nos da unos.... 15 milisegundos para cada iteracion. Si no optimizas, no consigues que todo se calcule en ese poco tiempo.

Por ejemplo, tenemos una funcion que suma dos numeros. Tu con que funcion te quedas?

A:

int suma(int a, int b) {
return a+b;
}



B:
int suma(int a, int b) {
int resultado = 0;
resultado = a;
for (int i=0;i resultado++;

return resultado;
}


Por que no eliges la B? Total, suma dos numeros, que es lo que quieres. Sólo consume unos tropocientos ciclos más que A para hacer lo mismo, pero lo hace y el resultado es el mismo. Ahora supón que llamas a esa función 1.000.000 de veces por cada iteración. Tu rendimiento acaba de bajar de 60fps a 55fps sólo por esa tontería. Si tienes muchas tonterias como esa, al final te quedas con unos miseros... 10fps?, lo que hace a tu juego injugable. Por eso he dicho que no quería discutir, porque tus argumentos son inválidos.

Ahora, pregunta de trivial, a ver si alguien se la sabe: cuál es la mejor forma para multiplicar un número por 4?

  • Gagle

  • Navi

  • vida restante: 100%
  • Registrado: 22 mar 2008
  • Mensajes: 9.856
#21

Escrito 30 agosto 2011 - 12:16

Ahora, pregunta de trivial, a ver si alguien se la sabe: cuál es la mejor forma para multiplicar un número por 4?


Sshiftando 2 bits a la izquierda. Que he ganado? xD


Imagen EnviadaImagen Enviada
Committing suicide to free the zombie!
Human knowledge belongs to the world
"640KB ought to be enough for anybody" (Bill Gates, 1981)


#22

Escrito 30 agosto 2011 - 12:20

Ahora, pregunta de trivial, a ver si alguien se la sabe: cuál es la mejor forma para multiplicar un número por 4?


Sshiftando 2 bits a la izquierda. Que he ganado? xD


Bien!!!! Parece mentira, pero conozco gente que tiene la carrera y no sabe esto. Te acabas de ganar un gallifante!! Donde te lo envio? ;)

  • Gagle

  • Navi

  • vida restante: 100%
  • Registrado: 22 mar 2008
  • Mensajes: 9.856
#23

Escrito 30 agosto 2011 - 12:27

Ahora, pregunta de trivial, a ver si alguien se la sabe: cuál es la mejor forma para multiplicar un número por 4?


Sshiftando 2 bits a la izquierda. Que he ganado? xD


Bien!!!! Parece mentira, pero conozco gente que tiene la carrera y no sabe esto. Te acabas de ganar un gallifante!! Donde te lo envio? ;)


Es que el problema es que en las universidades no te enseñan a programar bien... es un salvese quien pueda xD . En mi uni por ejemplo nunca nos han enseñado los operadores binarios hasta que los hemos tenido que usar para una practica, que sino ni eso. De todas formas solo vas a shiftar si haces algo para micros y tengas que usar ensamblador, o para algoritmos que tienen que ir super rapidos.


Imagen EnviadaImagen Enviada
Committing suicide to free the zombie!
Human knowledge belongs to the world
"640KB ought to be enough for anybody" (Bill Gates, 1981)


#24

Escrito 30 agosto 2011 - 13:01

Precisamente, en los juegos es donde más se debe optimizar. A diferencia de otros programas que te puedes permitir que una función tarde lo que tenga que tardar, en los juegos tienes que conseguir que todo (IA, luces, renderizado, logica, particulas, sonido, etc...) vaya a 60fps, con lo que nos da unos.... 15 milisegundos para cada iteracion. Si no optimizas, no consigues que todo se calcule en ese poco tiempo.

Por ejemplo, tenemos una funcion que suma dos numeros. Tu con que funcion te quedas?

A:

int suma(int a, int b) {
return a+b;
}



B:
int suma(int a, int b) {
int resultado = 0;
resultado = a;
for (int i=0;iresultado++;

return resultado;
}


Por que no eliges la B? Total, suma dos numeros, que es lo que quieres. Sólo consume unos tropocientos ciclos más que A para hacer lo mismo, pero lo hace y el resultado es el mismo. Ahora supón que llamas a esa función 1.000.000 de veces por cada iteración. Tu rendimiento acaba de bajar de 60fps a 55fps sólo por esa tontería. Si tienes muchas tonterias como esa, al final te quedas con unos miseros... 10fps?, lo que hace a tu juego injugable. Por eso he dicho que no quería discutir, porque tus argumentos son inválidos.

Ahora, pregunta de trivial, a ver si alguien se la sabe: cuál es la mejor forma para multiplicar un número por


Ehem... dime en donde de mis post dice que: el rendimiento no importa en absoluto. Joder.

Perdona pero no, mis argumentos no son invalidos y es mas, no has contra argumentado nada.

Te voy a poner un ejemplo. Entre otras cosas uso el RPG Maker XP. Programa creado hace 6 años programado mal, con una version de ruby hiperlenta, y que encima, no usa aceleracion grafica para nada! (Usa el GDI de windows!).

Pues bien este programa, con esa coleccion de 'cagadas', no me da ni un solo puto problema de rendimiento. Ni uno. Pero para hacer eso desde 0 en C++ deberia tardar años: programar todo el engine, el programa, poner ruby, lua o lo que fuera(o a pelo con c, mas tiempo aun), la base de datos, etc, ademas de hacer todos mis propios scripts y objetos default del juego y no poder usar los muchisimos scripts y addons creados por otros.

Esto para quien le guste reinventar la rueda y ame una programacion hipertecnica esta guay pero a mi me sobra.

Y todo eso por el rendimiento, que no se nota. El programa rula en un pentium 3000mhz medio giga de ram, aunque debas optimitzarlo un poco con un script adicional antilag y sin pasarte.

¿En que año se terminan las cosas asi? Cuando digo que el rendimiento debe adaptarse a lo que uno necesita es precisamanete eso. No digo que no sea importante, digo que es absurdo pasarse.

Lo que tu muestras con tu funcion es que hay que tener un cuidado del rendimiento. Pero esque eso es lo que digo yo. Ningun programa dejara de funcionar por usar .un lenguaje tipo script.
Ademas lo que tu dices de la funxciom es una obviedad, en realidad, eso son conocimienos del propio programdor novel, porque luego ruby en si mismo esa programado en C con un altisimo nivel, las librerias igual, etc, y alguien con mas practica saca un codigo decente sin necesidad de fliparse, con la herramienta que sea.

Asi que no. No me convences de usar C++ por el rendimiento porque se puede hacer cosas que rulen en el 99% de los computadores con otras herramientas.

  • ZT

  • TERRESTRIS VERITAS

  • vida restante: 100%
  • Registrado: 18 may 2002
  • Mensajes: 1.686
#25

Escrito 30 agosto 2011 - 13:52

pero también es verdad que muchos que vienen de C# lo crucifican sólo por el simple hecho de no tener que aprender OOP, es decir, cambiar de paradigma.


C# es puramente orientado a objetos, así que nadie ha criticado a C++ por eso.


Lo siento, quise decir C puro (OOP implícito en su sintaxis). :) Gracias por la corrección, jeje.

#26

Escrito 30 agosto 2011 - 20:36

Ehem... dime en donde de mis post dice que: el rendimiento no importa en absoluto. Joder.


esto.... te lo he "quoteado" un par de veces. Te lo vuelvo a "quotear" o lo buscas tu solito?

#27

Escrito 30 agosto 2011 - 22:03

Y eso es todo lo que tienes que decir a mis respuestas ¿?

  • gotenx

  • Boomer

  • vida restante: 100%
  • Registrado: 13 ene 2008
  • Mensajes: 4.257
#28

Escrito 31 agosto 2011 - 10:15

[quote name="Gagle"]Si sabes objetos empieza con c++ y sino empieza con C y modulariza el programa!! Y tienes que hacer un menu con las opciones de tu juego. Y que no te de miedo en hacer 15000 mil funciones, que mas vale esto que tener un codigo de mierda que ni tu te enteras xD,

A nivel profesional, C/C++ sigue siendo el lenguaje más usado,
[/quote]

El mas usado es java clarisimamente shurmano!

http://www.tiobe.com...tpci/index.html
[/quote]

Supongo que se referirá a nivel profesional en videojuegos, no me imagino Crysis hecho en Java la verdad... X-D

En esta discusión no me meto, creo que ya habeis desviado un poco el tema, si quereis se puede crear uno aparte; pero no me gustaria tener el tema cerrado.

Por cierto ZT, hechale un vistazo a DarkGDK, es un "port" de Darkbasic a C++.
Imagen Enviada

#29

Escrito 31 agosto 2011 - 11:54

Y eso es todo lo que tienes que decir a mis respuestas ¿?


Es que no son respuestas, son cosas que dice alguien que no tiene ni idea de nada y en lugar de escuchar y aprender, se encabezona en que tiene la razon.

En esta discusión no me meto, creo que ya habeis desviado un poco el tema, si quereis se puede crear uno aparte; pero no me gustaria tener el tema cerrado.

Pues si, la verdad es que se ha ido del tema bastante, una pena....

#30

Escrito 31 agosto 2011 - 12:07

Y eso es todo lo que tienes que decir a mis respuestas ¿?


Es que no son respuestas, son cosas que dice alguien que no tiene ni idea de nada y en lugar de escuchar y aprender, se encabezona en que tiene la razon.

En esta discusión no me meto, creo que ya habeis desviado un poco el tema, si quereis se puede crear uno aparte; pero no me gustaria tener el tema cerrado.

Pues si, la verdad es que se ha ido del tema bastante, una pena....


Lo que tu digas machote. Es cierto, para que debatir ni responder a nadie cuando puedes descalificarle sin aportar nada y usar demagogia barata en vez de argumentar...

Y encima me 'encabozono', claro, perdon, que todo lo que tu dices va a santa misa , inequivocable, todo el que te conteste o te lleve la contraria es un cabezon que no sabe escuchar...

Y como me atrevo a ponerme de nivel a tu a tu con un machote como tu, por dios, deberia estar calladito aprendiendo de ti... que generesodiad la tuya gastando tu escaso tiempo conmigo y que desconsiderado yo al contestarte!, ¿eh?

Lol mio si al final me doy cuenta de lo malito, malvado, malvadito que resulto... doy pena ,lo se ;)


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
publicidad