• Miércoles 20 de Noviembre de 2024, 14:41

Autor Tema:  La Mejor Forma Para Crear Un Juego?  (Leído 5711 veces)

<Ghost>

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
La Mejor Forma Para Crear Un Juego?
« en: Miércoles 22 de Febrero de 2006, 14:16 »
0
Soy nuevo en esto y me gustaria saber:
Cual es la mejor forma para crear un videojuego? (directX,java 3d , etc...)?
yo se: C++,VB.
Gracias antemano  :comp:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #1 en: Miércoles 22 de Febrero de 2006, 15:02 »
0
ALTERNATIVAS:

LENGUAJES:   C++, C#, DELPHI
Librerias:       DirectX, OpenGL
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

PENTEX

  • Miembro activo
  • **
  • Mensajes: 89
    • Ver Perfil
    • http://black-byte.com/
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #2 en: Jueves 23 de Febrero de 2006, 00:06 »
0
Creo que este tema se ha planteado varias veces en el foro. El como del desarrollo de un videojuego siempre es muy subjetivo y generalmente crea discusiones algo acidas. Creo que antes de responder cualquier cosa seria bueno saber ¿Que tipo de Videojuego?; ¿es para internet o es local, o ambas?. ¿tiene graficos 2d o 3d?, etc.

Camilo.
Grupo PENTEX.

Neko-sama

  • Miembro activo
  • **
  • Mensajes: 99
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #3 en: Viernes 24 de Febrero de 2006, 13:52 »
0
Cita de: "PENTEX"
Creo que este tema se ha planteado varias veces en el foro. El como del desarrollo de un videojuego siempre es muy subjetivo y generalmente crea discusiones algo acidas. Creo que antes de responder cualquier cosa seria bueno saber ¿Que tipo de Videojuego?; ¿es para internet o es local, o ambas?. ¿tiene graficos 2d o 3d?, etc.

Camilo.
Grupo PENTEX.
aun asi...
si quieres hacer un juego en serio... siempre es bueno saber c++ asi que no estaría mal decir que tiene que aprenderlo...

y con DirectX no importa si es un juego 2D o 3D


de todas maneras la pregunta es generica... y las respuestas tambien...


asi que podría depender de la plataforma... porque podemos hacer juegos para web con flash...

PENTEX

  • Miembro activo
  • **
  • Mensajes: 89
    • Ver Perfil
    • http://black-byte.com/
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #4 en: Sábado 25 de Febrero de 2006, 16:40 »
0
En cierto sentido neko-sama tiene razon, así que aqui va mas o menos las opciones.

Lenguaje base: Aqui se define la arquitectura del juego.

- c++: Posee muchas caracteristicas que otros lenguajes no poseen (es estructurado y  orientado a objetos a la vez), ademas, despues de aprender este lenguaje es facil pasar a otros. Como desventaja, el manejo de memoria dinamica es algo complicado al principio y los puentes a otras tecnologias ( COM de DX por ejemplo) son dificiles.

- c#: Creo que juank ha trabajado en este lenguaje por lo que podria decir mas de el. Por lo pronto baste decir que posee una notacion similar a la de c++ aunque es OO, manejo automatico de memoria (garbage colector), es un lenguaje interpretado (como java) y los puentes a las tecnologias de windows es mas facil (COM por ej).

- java: Creo que de los tres lenguajes es el mas sencilo, es multiplataforma, la notacion se parece a c++, pero menos que c#, El inconveniente principal es que no puede acceder a algunos servicios nativos de los sistemas operativos (directx por ejemplo).

Api Graficos: Aqui se ponen graficos 2d o 3d.

- DirectX: Sin entrar en discusiones, permite manejo 2d 3d, basado principalmente en COM (es OO) y actualizado periodicamente (a veces 2 o 3 veces por año). Como desventaja, los puentes COM a veces son duros para el principiante y no es multiplataforma.

-OpenGl: Es orientado a 3d (algunas pruebas me han mostrado que es bastante ineficiente en la arquitectura clasica de 2d,capas), es multiplataforma, a partir de la version 1.2 utiliza el metodo de extensiones para actualizarse. es sencillo de utilizar para el principiante(es estructurado).

Dependiendo de que tan avanzado sea el juego, puede que se necesite un lenguaje script (lua, phyton y ruby son muy buenos en esa tarea), algunas librerias auxiliares ( allegro, ODE, SDL, etc)  o un motor grafico ( OGRE, Crystal, Iritch, o con algo de dinero una comercial).

Por ultimo para las heramientas http://foros.solocodigo.com/index.php?showtopic=7089 aqui hay algunas.

Camilo.
Grupo PENTEX

lalo_soft

  • Miembro MUY activo
  • ***
  • Mensajes: 469
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #5 en: Sábado 25 de Febrero de 2006, 18:51 »
0
No seamos despectivo con C# al tratarlo como un simple codigo interpretado ya que la realidad no es tan asi.

El proceso funciona de esta forma:

Cuando se ejecuta un programa .Net, CLR activa el compilador JIT. Asi este compilador
convierte MSIL en codigo nativo segun la demanda cuando se necesita cada parte del programa.De esta forma, el programa en C# se ejecuta en realidad en codigo nativo,aunque fuera compilado inicialmente en MSIL. Esto quiere decir que el programa  se ejecuta casi tan rapido como si se hubiera compilado para codigo nativo en primer lugar, y hereda las ventajas de la portabilidad de MSIL.

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #6 en: Sábado 25 de Febrero de 2006, 21:27 »
0
Ni Java menos Csharp son interpretados. En un lenguaje interpretado puedes pedir una cadena de código al usuario en "run time" y llamar a una funcion que ejecute ese código en el acto por que al interpretador le da lo mismo trabajar con el codigo original que con el nuevo que le pasaste.

En Java y Csharp la administracion de memoria no la haces tu y dependiendo de que sigas las recomendaciones para generar codigo optimo puedes generar programas practicamente tan eficientes o incluso mas eficientes que si tu mismo hubieras hecho la administracion de memoria (Ojo, esto en caso que tus conocimientos de como administrar memoria no sean suficientes, o lo que es más común: no tengas el tiempo necesario para crear un codigo óptimo y debido a esto el resultado tenga menor eficiencia.)

De todas formas una aplicacion win32 donde puedas encajar ASM donde quieras tiene acceso más directo a los recursos de la máquina, comparado con una aplicación cuya administracion de memoria NO la haces tu y a parte esta pensada para evitar en lo posible esos accesos directos a recursos por seguridad. Asi que el truco final es utilizar una libreria de funciones que ocupan mas tiempo de cpu en codigo nativo y el grueso de la aplicacion que generalmente ocupa un tiempo de cpu menor en un lenguaje que te sea más cómodo de usar y te permita avanzar rápidamente en tu juego.

La gran ventaja de programar en C++ es tener la ventaja del control total, pero eso tiene sus costos en tiempo de programacion, ademas de tener una gran documentacion para win32, mucho mejor incluso que la de .NET.

Delphi tiene la ventaja de darte tanto comodidad al momento de hacer tu juego gracias a toda una infraestructura de objetos que te simplifican el trabajo. Pero, si lo necesitas puedes programar al estilo C++, dejando de lado la estructura de objetos que te provee el lenguaje y utilizar directamente la API y la GDI de windows de la misma forma que lo harias en C++. Tanto asi que tiene definidos tipos de datos equivalentes a los de C para tener total compatibilidad al momento de utilizar Dlls, objetos COM, o llamadas a la API y GDI de windows.

lalo_soft

  • Miembro MUY activo
  • ***
  • Mensajes: 469
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #7 en: Domingo 26 de Febrero de 2006, 00:01 »
0
Citar
De todas formas una aplicacion win32 donde puedas encajar ASM donde quieras tiene acceso más directo a los recursos de la máquina

¿En un juego basado en directX que parte seria practica hacerla en ASM?

PENTEX

  • Miembro activo
  • **
  • Mensajes: 89
    • Ver Perfil
    • http://black-byte.com/
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #8 en: Domingo 26 de Febrero de 2006, 00:48 »
0
Para cuestiones de rendimiento entre lenguajes observar

http://www.tommti-systems.de/go.html?http:...benchmarks.html

por ejemplo.

Camilo.
Grupo PENTEX.

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #9 en: Viernes 10 de Marzo de 2006, 21:33 »
0
Cita de: "lalo_soft"
Citar
De todas formas una aplicacion win32 donde puedas encajar ASM donde quieras tiene acceso más directo a los recursos de la máquina

¿En un juego basado en directX que parte seria practica hacerla en ASM?
No todo el codigo tiene que ver con graficos 3d.   Tambien hay que programar el engine lógico del juego, incluso en algunos casos algo de I.A.   Si en esa parte de tu codigo tienes alguna funcion que consume mucho tiempo de cpu, ya sea por que es un proceso pesado o llamado millones de veces entonces tienes un buen candidato para optimizarlo en asm.   Claro, si existe el tiempo y necesidad de hacerlo en un proyecto formal o si tienes tiempo o simplemente se te antojo optimizar alguna cosa en tu proyecto personal. Pero lo primero es conocer bien las estadisticas de consumo de cpu de tu programa, sólo asi estarás seguro que no estás perdiendo tiempo optimizando algo que no influirá ni será notado por el usuario luego de ser optimizado.

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #10 en: Viernes 10 de Marzo de 2006, 21:43 »
0
Cita de: "PENTEX"
Para cuestiones de rendimiento entre lenguajes observar

http://www.tommti-systems.de/go.html?http:...benchmarks.html

por ejemplo.

Camilo.
Grupo PENTEX.
En general me quedo con las estadisticas de consumo de memoria. Pero esta y otras estadísticas de rendimiento no son mucho menos prueba de que uno u otro lenguaje sea más o menos eficiente.

De todos modos no tomen con mucho cuidado este tipo de pruebas de rendimiento ya que no es dificil amañarlas para hacer aparecer a uno u otro compilador mejor o peor. Y no hablo de que hagan trampas, basta variar el ambiente de verificación: cpu, memoria, s.o., programas instalados, versiones instaladas y los resultados pueden variar significativamente. Tampoco refleja otros aspectos ahora mucho más importantes, como cuanto tiempo llevo elaborar los distintos codigos en distintos lenguajes y compiladores hasta lograr una versión estable.

PENTEX

  • Miembro activo
  • **
  • Mensajes: 89
    • Ver Perfil
    • http://black-byte.com/
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #11 en: Viernes 10 de Marzo de 2006, 23:29 »
0
Algunos otros benchmarks "amañados":

http://shootout.alioth.debian.org/
http://www.osnews.com/story.php?news_id=5602 (este es algo viejito)
http://www.shudo.net/jit/perf/
http://www.javaworld.com/jw-02-1998/jw-02-jperf.html
(para que no digan que soy parcial)


Y en general las platicas de rendimiento y eso [/QUOTE]
Citar
, por ejemplo  http://www.javahispano.org/news.item.action?id=950857561,  cosas como esas pueden es terminar en aburridos fogueos.

Camilo
Grupo PENTEX
« última modificación: Lunes 1 de Abril de 2019, 20:26 por iron man »

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #12 en: Jueves 16 de Marzo de 2006, 21:56 »
0
La verdad es que el factor más importante para crear código eficiente sigue siendo el programador, el lenguaje y compilador por buenos que sean no pueden hacer nada si el código es tipo "ordenamiento burbuja" cuando podría ser un "quick sort".  :rolleyes:

Y también cuenta saber los trucos de optimizacion y como es recomendable utilizar el lenguaje. Saber en que circunstancias rtas estructuras de programación son más eficientes que otras, que prácticas de programación se deben evitar y en general tener idea de lo que hará el compilador con el codigo que estamos escribiendo.

Nuezosinio

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #13 en: Viernes 7 de Abril de 2006, 21:42 »
0
¿y que tal el ruby a la hora de crear juegos?. lo digo por la duda que planteo ACA
[size=109](\_/)
(o.o)
(><)[/size]
Conejín Coneján quiere conquistar la red ayudalo poniendolo en tu firma.

[size=109]Programar con 50 lenguajes de programación[/size]
Ruby,C\C++,C#,php,VB,VB Script,Java,Java Script,etc...
[size=109]Rest[/size]
Recuperar archivos eliminados "PARA SIEMPRE"
[size=109]“You may say I’m a Friki, but I’m not the only one”.[/size]
Nuezosinio

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #14 en: Viernes 7 de Abril de 2006, 22:03 »
0
Nunca lo habia escuchad, conoces algun juego conocido que se haya hecho con el ?
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #15 en: Viernes 7 de Abril de 2006, 23:04 »
0
Yo escuché de Ruby cuando lo tomaron como el lenguaje script para la última versión del programa RPG Maker, desconozco la funcionalidad que tenga el lenguaje pues no lo he manejado. Checando características en la página parece bastante completo, me parece una alternativa a Python.

juank: Ruby se puede usar con SDL: http://rudl.sourceforge.net/screenshots/, espero que quienes hayan tenido contacto con él comenten al respecto.

Saludos,
José Jorge (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #16 en: Sábado 8 de Abril de 2006, 02:10 »
0
Realmente Euby es la alternativa a Perl, Phyton y Lisp.
Ruby es realmente bueno con OO (segun lo que he leido es muy facil, fue adoptado de SmallTalk) y al ser basado en CLU (Ada y Perl) tiene una sintaxis realmente linda, algo como:
Código: Text
  1. do puts &#34;Hello, World!&#34; end
  2.  
Aunque en Perl:
Código: Text
  1. print &#34;Hello World!&#092;n&#34;;
  2.  
Perl (C/C++, Ada, Lisp...) es mas rapido que Ruby, pero Ruby es mas facil.
Pero persiste un dilema:
Codigo bonito o codigo rapido?
 :comp:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Nuezosinio

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #17 en: Sábado 8 de Abril de 2006, 20:38 »
0
Yo prefiero un codigo bonito,creo que el ruby no es tanto mas extenso que los demás códigos como para considerarlo largo.
 Inclusive esmas corto en algunos aspectos @=varialbe local $=varialbe global
#=comentario. Esta sintaxis esmuy simple.

 Hay que tener cuenta que un codigo "bonito",supuestamente es mas facil de interpretar. Y eso nos achica el trabajo a la hora de corregir bugs.

Introduccion al Ruby

Una Guia mas de Ruby
[size=109](\_/)
(o.o)
(><)[/size]
Conejín Coneján quiere conquistar la red ayudalo poniendolo en tu firma.

[size=109]Programar con 50 lenguajes de programación[/size]
Ruby,C\C++,C#,php,VB,VB Script,Java,Java Script,etc...
[size=109]Rest[/size]
Recuperar archivos eliminados "PARA SIEMPRE"
[size=109]“You may say I’m a Friki, but I’m not the only one”.[/size]
Nuezosinio

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: La Mejor Forma Para Crear Un Juego?
« Respuesta #18 en: Jueves 27 de Abril de 2006, 02:04 »
0
Citar
@=varialbe local $=varialbe global
#=comentario. Esta sintaxis esmuy simple.
@=array $=scalar %=hash ( en Perl es igual)
Código: Text
  1.  Yo prefiero un codigo bonito,creo que el ruby no es tanto mas extenso que los demás códigos como para considerarlo largo.
  2.  
Nop, no lo es, pero en mas lento que Perl.
Código: Text
  1.  Hay que tener cuenta que un codigo &#34;bonito&#34;,supuestamente es mas facil de interpretar. Y eso nos achica el trabajo a la hora de corregir bugs.
  2.  
Si, tienes toda la razon:
http://search.cpan.org -> sabes que es?
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.