Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - deadLock++

#31
Programación gráfica / Buscando Editor De Mapas De Tiles
30 de Diciembre de 2004, 02:58:25 PM
 El AnaConda Map Editor ha regresado en toda su gloria.

Se puede descargar desde mi sitio oficial.

La nueva versión 1.1 tiene como principal novedad:

+ La eliminación de los layers (nadie los usaba y complicaban el formato del archivo del mapa)
+ Posibilidad de exportar los mapas a un formato de texto con mapeo de bloques a caracteres.
+ Eliminación de bugs  (ole)

Tenía pensado lanzar una versión 1.2 que permita agregar dlls con exportadores para que la cosa sea más versatil. También quería agregar una clase de ayuda para cargar mapas utilizando C#. Pero esto dependerá del feedback que reciba para saber que tan necesario es.

http://www.dedalus-software.com.ar/ame.php

Saludos.
#32
Programación gráfica / Novodex
30 de Diciembre de 2004, 02:52:57 PM
 Te posteo lo que se preguntó en el foro hace un tiempo en Novodex:

QUOTE (Zak)

So it is possible or not to develop a freeware game with Novodex free licensing?

Thak you.
[/quote]

QUOTE (Bob(NX))

Zak,

Currently the answer is "no", though this may change for future versions of the SDK.

Bob
[/quote]

Bob es una de las personas que trabajan en Novodex. Este es el link al post en el foro: http://novodex.com/forum/index.php?showtopic=135 (debes estar registrado para ingresar).

El tema es que ellos dicen que es libre para uso no comercial peeeerrrroooo aparentemente lanzar un juego "freeware" no es algo considerado "no comercial", supongo porque podría ser utilizado con fines publicitarios para luego vender alguna otra cosa o no se, el tema es que se puede utilizar más que nada con fines de investigación personal.

#33
Programación gráfica / Novodex
30 de Diciembre de 2004, 02:30:46 PM
 Conozco bastante a esta librería de física. En mi sitio tengo un tutorial de la implementación de vehículos (rigid body vehicle), desgraciadamente no pude implementar vehículos tipo raycast porque sólo en la versión nueva que salió hace un par de semanas lo permite.

También tengo implementado ragdolls con la librería (si a alguien le interesa puedo pasar info al respecto).

Lo malo que tiene esta librería es que si bien se puede descargar free no se puede utilizar ni siquiera para programas freeware y el costo de la licencia es de U$S 50.000 (aún no contemplan el uso para juegos shareware y probablemente no lo hagan nunca).

Respecto al diseño mismo de la librería, tiene algunos problemas de estabilidad (no me refiero a que se cuelgue sino a que en algunas situaciones el sistema de fuerzas nunca ingresan en equilibrio). Estos problemas los reporté en el foro de Nx y me comentaron que ya estaban al tanto y que estaban en vías de solucionarlo.

#34
Jad Engine / Porque Usar C# Y No C++
24 de Diciembre de 2004, 07:59:30 PM
 
Citar
Por que no lo nombras?

Como no: "Tin Soldiers: Alexander The Great". No es en "tiempo real" como había mencionado sino basado en turnos (perdón pero no lo recordaba).

Sitio web oficial: http://www.koiosworks.com/



Citar
Nadie ha propuesto hacer juegos en java para consolas. En mi post anterior ponia Java como lenguaje ideal patra hacer aplicaciones empresariales sobre todo relacionadas con la web.

Ok, pero dentro del contexto en el que estamos hablando, en un foro de desarrolladores de juegos creo que desarrollar juegos es el aspecto mas relevante.
#35
Jad Engine / Porque Usar C# Y No C++
24 de Diciembre de 2004, 07:34:57 PM
 No creo que C# reemplace a C++ ni a Java. En mi opinión si creo que C# tendrá su lugar en ciertas áreas y que es idóneo para un montón de tareas. No veremos a Id Software realizar un Doom4 ni 5 ni 6 en C# pero comparto la opinión de muchos usuarios de aquí en cuanto a que es una opción ideal para ciertas circunstancias (grupos de desarrollos pequeños o con escasos presupuestos). De hecho, recientemente ha salido al mercado un juego AAA de estrategia en tiempo real creado en C#.

Un juego como The Sims podría estar creado en C# y estamos hablando de uno de los juegos más exitosos de todos los tiempos.

El hecho de ser multiplataforma para el caso de juegos es muy relativo, si hago mi juego en C++ para Windows (con OpenGL si quieres) no compilará en PS2 ni en GameCube ni en XBOX porque ninguna de ellas posee OpenGL. En todo caso necesitaré de una librería tipo RenderWare.

Y si respecto a multiplataforma te refieres a otros sistemas operativos ¿Para que quisiera que mi juego corriese en Linux, Solaris, Digital Unix y Mac? Son plataformas prácticamente inexistentes en el ámbito gamers.

Por otro lado, aunque hagas tu juego en Java el mismo no podrá ejecutarse en ninguna consola, ya que no cuentan con JVMs y aunque encuentres el modo de hacerlo ¿a que velocidad piensas que lo hará? ¿porqué no intentas hacer algo similar a Haddd pero en Java para que comparemos velocidades?   O_O
#36
Jad Engine / Porque Usar C# Y No C++
24 de Diciembre de 2004, 03:11:03 PM
 
Citar
Por otra parte hay gente en este post que ha citado que C# es mas moderno que C++ y que tiene cosas que C++ no tiene, me gustaria ver ejemplos de esto, porque que yo sepa hasta hace poco no tenia ni templates.

Algunas cosillas:

En C# no te preocupas por los "include", si está dentro del mismo namespace lo utilizas. Te aseguro que en proyectos grandes el manejo de los include no es un detalle y es muy frustrante compilar un programa y que a los 30 segundos lance un error porque te olvidaste un include.

El uso/creación de librerías dinámicas es mucho mas sencillo. Simplemente agregas la referencia, especificas la dependencia (si es que el proyecto de la lib está abierto en el mismo namespace) y agregas el "using" correspondiente. Nada más. Ni siquiera debes copiar la dll al directorio de uso, esto lo hace sólo el entorno. Te aseguro que crear una clase en otra dll o en el mismo proyecto es casi el mismo esfuerzo. Esto es genial.

No existen dos archivos al estilo C++ (h y cpp) sino, como en Java, sólo uno. Esto evita tener que estar declarando y definiendo. En C++ puedes hacerlo también pero cuando defines un método dentro del cuerpo de una clase es necesariamente un método "inline" y a veces uno no desea que esto sea así.

Puede dar valor por defecto a propiedades en el mismo sitio donde la declaras. En C++ esto sólo puedes hacerlo si la propiedad es estática (ojo, esto tiene sentido pero bien el compilador se podría encargar de situar la inicialización en el contructor si la variable no fuese estática).

Boxing y unboxing es sencillamente genial. Al igual que los delegados. Estas características posee un costo, claro, en C++ habilitando RTTI y una estructura de clases con una clase base común (algo que C++ nunca tuvo) se podría obtener una funcionalidad similar, pero en C# está ahí lista para utilizar y con una sintáxis mucho mas clara.

Propiedades del tipo get y set. En C++:

obj.prop = 10;

"prop" es sin duda una variable del objeto "obj", en C# se podría estar invocando un método con parámetro 10, de modo que podríamos realizar verificación de rangos o si lo deseamos podríamos establecer que "prop" sea read-only o write-only (algo imposible en C++).

Algo más de los delegados: en C++ la manera de especificar un nuevo comportamiento en clases derivadas suele realizarse por medio de métodos virtuales o funciones callback. Los métodos virtuales poseen la contra de tener que crear la clase que los contenga (ej: comparaciones de tipos de datos especificados para, por ejemplo, mapas en la lib. STL), la opción de funciones callback es media engorrosa, ya que debemos "salir" de la clase para luego volver a "entrar". En C# se pueden especificar de manera muy sencilla un método como si fuese una función callback (algo que en C++ no se puede hacer pues la clase forma parte del prototipo de la función) y no sólo eso podríamos "colgar" más de un método a partir de dicho delegado. Un ejemplo clásico es el timer, cada n milisegundos se invoca una función. Un método de cualquiera de nuestras clases podría ser dicho método pero si lo deseamos podríamos especificar que cada n milisegundos se invoque no sólo un método sino 2 o 3 o los que queramos de modo multicast.

Bueno, estas son sólo algunas ventajas pero posee muchas más.

#37
Jad Engine / Porque Usar C# Y No C++
24 de Diciembre de 2004, 01:12:34 AM
 
QUOTE (ALRAZ)
habrá SDL para C#?  :D [/quote]
http://cs-sdl.sourceforge.net/


QUOTE (martino)
C# es de Microsoft.(Esto mismo por si solo ya deberia ser un inconveniente... [/quote]

El tipo que está atrás del C# en MS es el mismo que creó el mítico compilador Turbo Pascal y quien diseñó el Delphi. Quedate tranquilo que está en buenas manos.

QUOTE (martiño)
En cuanto a lo de la velocidad, no se como es en C#, pero mirando el ejemplo de Java (lenguaje en el cual C# está inspirado), los problemas de velocidad...
[/quote]

C# es mucho más veloz que Java o mejor dicho es mucho más veloz que las versiones no tan nuevas de Java (actualmente está mejorando un poco en este aspecto).

Según Tom Miller (quien estuvo a cargo de Managed DirectX en MS) la eficiencia de una aplicación C# con MDX es cercana al 95% de una aplicación C++ con DX, según lo que vi yo esta afirmación es demasiado optimista pero en muchos casos ronda el 90%.

Claro que C# no reemplazará al C++ en todo, pero si muchas de las aplicaciones que ahora usan C++ utilizarán en el futuro C#. Yo realmente estoy muy entusiasmado con este nueva solución, me encanta poder utilizar lo mejor de los dos mundos según requiera y no me extrañaría, como ya comentaron, que XBOX 2 se puedan programa en C#/MDX.
#38
General / Desarrollo Del Juego "football Stick"
23 de Junio de 2004, 02:58:05 AM
 Quería compartir con ustedes un proyecto en el cual estoy trabajando hace tiempo.

Su nombre es Football Stick y es un juego de fútbol en el cual se juega sólo con un jugador al cual se le pueden subir las características como un juego de rol (en este caso son: fuerza, destreza, precisión, resistencia y velocidad).

Los jugadores son "sticks" (muñequitos de madera como los que usan los dibujantes para sacar poses).



El estado de desarrollo actual, el motor en un 90% y el juego en un 15%. Ya se puede manejar al jugador por la cancha, pero todavía hay pocas animaciones y todavía no hay colisiones.

Un screenshot del estado de avance:



Un screen de un stick corriendo, mostrando sus bounding boxes:



El objetivo que tengo es llegar a la fase 0 para Marzo de 2005 (aunque puede que esté antes). La fase 0 consiste en una prueba al gameplay del juego, o sea doble-click y arranca el partido. Es díficil saber si el juego será divertido o no, por lo tanto me estoy concentrando en lo importante que es el testeo de jugabilidad (corazón del juego).

Me es importante para mí, sus comentarios y sugerencias, que pondrían y que no. En el sitio oficial del Football Stick ( http://www.footballstick.com.ar ) hay un diario de desarrollo y un foro en el cual puede participar.

También se puede descargar el doc. de diseño brief y una versión vieja del doc. de diseño completo (que actualmente está en revisión y modificación).

Muchas gracias a todos y espero sus comentarios.
#39
General Programadores / [c++][arrays De Tamaño Variable]
11 de Febrero de 2004, 09:17:25 PM
 Siempre en mi vida pensé que el siguiente código era erróneo:


void foo (int i)
{
   int aiNums[i];

   // ...
}


Debido a que el valor encerrado entre corchetes debería ser una expresión constante, así fue siempre y así lo enuncia la página 89 del libro "El lenguaje de programación C++ " de Bjarne Stroustrup (tercera edición).

Sin embargo el código anterior es compilable por el DevC++ (que utiliza el gcc 3.2) y funciona a la perfección.

¿Qué es lo que pasó? ¿Hubo una modificación en la especificación del lenguaje que permite ahora dicha expresión?  :blink:

Muchas gracias.
#40
 Me preguntaba si es posible realizar una colisión pixel-perfect utilizando el stencil buffer.

El procedimiento sería así:

Teniendo que verificar la colisión pixel-perfect del Sprite A y el Sprite B:

1. Limpiamos el stencil buffer con un Clear.

2. Fijamos el render state relacionado al stencil a:


m_pD3DDevice->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);
m_pD3DDevice->SetRenderState(D3DRS_ALPHAREF,  iuColorKey); // uiColorKey color transparente de los sprites.
m_pD3DDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_NOTEQUAL); // Acepta pixels distintos al valor de referencia (uiColorKey)

m_pD3DDevice->SetRenderState(D3DRS_STENCILENABLE, TRUE);
m_pD3DDevice->SetRenderState(D3DRS_STENCILFUNC, D3DCMP_ALWAYS);
m_pD3DDevice->SetRenderState(D3DRS_STENCILPASS, D3DSTENCILOP_INCR);


De esta manera todo lo que dibujemos debería incrementar el valor del stencil (en todos los pixels a excepción de los rechazados por el aphatest).

3. Dibujamos el Sprite A y el Sprite B.

4. Y ahora viene la parte que no sé:

¿Como haría para leer el Stencil buffer de manera eficiente para verificar si los pixels de los sprites se han superpuesto?

Me imagino que habría que obtener el puntero al buffer del stencil (por medio de un GetDepthStencilSurface) , luego realizarle un Lock (¿se puede trabar el stencil?) y luego recorrerlo en busca del valor deseado (un doble incremento), finalmente destrabarlo y retornar con el resultado de la verificación de colisión.

Claro que todo esto es válido si el alphatest se hace antes del stenciltest, pero creo que esto es así.

No encontré una implementación de este tipo en la red, imagino que los juegos 2d no están muy de moda y el uso del stencils suponen una placa de video que lo soporte, por lo que usar esta técnica en juego 2d sería requerir cierto hardware normalmente es esperable en un juego 3d.





#41
Programación gráfica / 3d+c, ¿cómo Empezar?
23 de Noviembre de 2003, 09:24:18 PM
 STL (Standar Template Library) es una librería que trae consigo estructura de datos (listas, vectores, pilas, colas, etc) y algunos algoritmos (de ordenamiento, búsqueda, etc).

Es muy práctica, algunos programadores reusan utilizarla porque prefieren codificar sus propios templates de listas.

#42
General Programadores / Matemática Aplicada
24 de Octubre de 2003, 02:24:17 PM
 Muchísimas gracias a todos.

¡El paper de colisiones no tiene desperdicios!
#43
General Programadores / Matemática Aplicada
22 de Octubre de 2003, 05:19:41 PM
 Entiendo el uso del álgebra en la programación gráfica.

Entiendo para que y cuando se utilizan los vectores (normales para iluminación y colisiónes, aplicación en subsistema de física, ...), las determinantes (intersección entre segmentos, colisiones, ...), las matrices (pipeline, matrices de mundo, vista y proyección, creación de matrices con componentes de traslación, rotación y escalamiento, ...), cuando es necesaria obtener la inversa de una matriz (picking).

El asunto es que una profesora de álgebra me pregunta específicamente en donde se utilizan las trasnformaciones lineales y el concepto de espacios/subespacios en la programación de juegos. Y no se me ocurren ejemplos concretos.

Entiendo que muchos conceptos son partes de un todo que forman parte de la base matemática requerida en esta ciencia pero esto sólo no me sirve. Si a alguien se le ocurre un ejemplo concreto o una punta para poder investigar, estaré muy agradecido.

Saludos.
#44
General Programadores / Matemática Aplicada
22 de Octubre de 2003, 02:54:36 PM
 ¿Alguien sabría decirme alguna aplicación directa en programación de juegos de los siguientes temas de Álgebra lineal?:

Transformaciones lineales
Espacios vectoriales

Muchas gracias.
#45
General Programadores / Aventura Grafico/conversacional En C++
11 de Septiembre de 2003, 02:40:40 PM
 int main()
{

   printf("¡Bienvenido a el juego!\n");     :D

   // sigue...





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.