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 - Erkosone

#1
Hola buenas, quería comentar que existe un framework basado en libGDX llamado 'jDiv' que está desarrollando un tal CODEMASTER actualmente, la verdad es que para juegos 2D funciona bastante bien, trae bastantes ejemplos de juegos en el pack.

http://jdiv.sourceforge.net/
#2
He montado unos vídeos a modo de tutorial en castellano sobre el uso del programa Schism Tracker, un programa mediante en cual nos podremos montar nuestras propias composiciones musicales para juegos, espero que os sea de ayuda ;)

Conceptos básicos sobre el programa:
http://www.youtube.com/watch?v=eSaZ8H0vdrc


Samples y mi primer módulo musical:
http://www.youtube.com/watch?v=2Ajtn5Y6544&feature=youtu.be


Instrumentos y configuraciones interesantes:
http://www.youtube.com/watch?v=JIkei0JnE6E&feature=youtu.be


Efectos: arpegio . vibrato etc..
http://www.youtube.com/watch?v=ZJBWQTMz50Q&feature=youtu.be
#3
Proyectos / Re: Mi pequeño programa para animación en juegos.
07 de Noviembre de 2012, 06:25:26 AM
Gracias por los consejos, estoy en ello  :)
#4
Proyectos / Re: Mi pequeño programa para animación en juegos.
04 de Noviembre de 2012, 11:32:05 AM
Os dejo un vídeo que grabé anoche mientras le hacia el testing al programa, la parte de construir el modelo casi la doy ya por buena, ahora me voy a poner con la parte de cargar graficos en PNG para anclar a los huesos y poder capturar sprites.

Cualquier comentario será bienvenido  ;)

http://www.youtube.com/watch?feature=player_embedded&v=Gn-RZIjlE5I
#5
Proyectos / Re: Mi pequeño programa para animación en juegos.
02 de Noviembre de 2012, 06:23:15 AM
Cita de: blau en 31 de Octubre de 2012, 12:46:14 AM
Yo echo de menos poder definir animaciones y que el método de creación de joints es un tanto hardcore... yo tal como lo tienes montado los crearía con el ratón... y añadiría algo parecido a un trackbar para la elasticidad...

Yo hice algo parecido pero sin físicas, que por cierto están genial, aunque más orientado a animaciones de sprites....

http://www.youtube.com/watch?v=0wiuhZeq1cs

Un saludo...


Gracias por el consejo de crear los joints con el mouse, finalmente lo he cambiado y ahora funciona así, ha quedado mucho mas dinámico  ;)
#6
Proyectos / Re: Mi pequeño programa para animación en juegos.
31 de Octubre de 2012, 06:38:36 AM
Gracias por el comentario, he visto tu vídeo y me ha dado buenas ideas, sobre todo la parte inferiór donde tienes la linea de tiempo y defines 2 posturas y luego las interpolas, gracias por la información, la verdad es que nunca he trabajado con programas así, yo estoy chapado a la antigua.. absolutamente todo lo hago por código yo mismo, y claro.. estas cosas se me escapan.

Gracias de nuevo!
#7
Proyectos / Mi pequeño programa para animación en juegos.
30 de Octubre de 2012, 08:59:37 PM
Hola, estoy programando una utilidad para facilitarme la vida a la hora de programar las animaciones de personajes, objetos y todo lo relevante a objetos moviles en vídeo juegos.

El programa en sí es un creador de esqueletos y huesos con cinemática inversa de infinitos grados de livertad aplicada por los teoremas de Verlet, me sirve para montar un esqueleto y luego enganchar sprites como brazos, manos, dorso, cabeza, piernas etc.. en puntos clave para capturar el sprite final compuesto por todos ellos.

Si alguien trabaja con programas de este estilo agradecería consejos sobre que puede ser interesante añadirle al programa.

Lo que quiero que tenga es un sistema de import/export de esqueletos para compartir con la comunidad de programadores que lo usen y un mecanismo que estoy estudiando ahora mismo que se encargue de guardar en una matríz dinámica la posición de los puntos y el angulo de cada hueso para aplicar a los sprites que se cargen con el programa.

Os dejo un vídeo de lo poquito que tengo terminado, se aceptan sugerencias 
Lo estoy programando en el lenguaje Gemix Studio que es el que utilizo para crear juegos para windows linux y mac y como trabaja con un formato llamado FPG para las librerías graficas pues me es de tremenda utilidad el exportar la animación directamente en este formato.

http://www.youtube.com/watch?feature=player_embedded&v=_DQOT2AEDxo
#8
Si controlas C++ puedes empezar con CDIV, es un engine basado en allegro que funciona "sin cambiar un ápice de código" en Windows, linux y MacOSX bajo C++.

Te permite crear este tipo de juego sin ningún problema, es bastante potente en cuanto a 2D se refiere, trae una documentación excelente y muchos juegos de ejemplo.

Yo no me lo pensaría 2 veces y le daría una oportunidad.

Yo he programado algún juego parecido a estos que comentas "FF o BOF", antes de empezar tienes que tener varias cosas presentes:

Zonas, tienes que crear una estructura de zonas con todos los datos de cada zona, es decir, si la zona ha sido visitada antes, si es la primera vez que la visitas, y sobre todo en que estado está la zona y el juego global.

Los juegos tipo FF son extremadamente complejos de programar si no se enfocan correctamente desde el principio por que básicamente todo depende de todo de demás.

Mi consejo es que te centres en una aventura lineal si es la primera vez que haces algo así, osea, una simple variable como por ejemplo:

INT GAME_STATE = 0;

Entonces empieza el juego, tienes que tener una lista de objetivos bien definida que van a marcar la trayectoria de la historia, es tan simple como que cada vez que alcanzas un pequeño objetivo aumentas en 1 el GAME_STATE, así tenemos que al empezar el juego el programa espera que lo primero que hagas es hablar con un personaje que aparece justo al lado tuyo por ejemplo..  por ahora sin hablar con el el game_state vale cero..   si intentas interactuar con cualquier cosa los mensajes que recibirá el player serán del tipo "creo que primero deberíamos encontrar a alguien que nos explique que ha sucedido.." y todo estará bloqueado.. en cuanto interactues con lo que toque hacer en ese momento la variable global GAME_STATE vale 1, y ahora algunos eventos cambian, como por ejemplo:

puerta de salida al exterior:

si game_State < 1 entonces mandar evento al sistema de textos en pantalla con el string "heyy... no puedes salir todavia!"..
si game_State =>1 entonces mandar sonido al gestor de sonidos "click.wav" paralizar momentaneamente al personaje.. aniar objeto puerta hasta que se abre del todo.. desparalizar al personaje..

Otro ejemplo siguiendo con lo de las zonas que te comentaba, imagina una Struct como esta:

Struct gameZoneStatus[100];
string fileWithGraphicsScene;
int idmusicNew;
int idmusicDay;
int idmusicNIGHT;
int niebla;
int estado;
int disponible;
int nueva;
int specialItemsDiscovered[10];
int completamenteExplorada;
end

100 zonas de juego que puedes configurar como quieras y que al iniciar una nueva partida tienes que asegurarte de resetear la estructura completamente a cero "menos las rutas de archivos del escenario etc etc..".. entonces si la zona está disponible puedes acceder a ella, si es nueva puedes hacer sonar una música especial para tal ocasión, puedes tener conocimiento de cuantos items ocultos quedan por descubrir en la zona.. etc etc etc..


Lo mejor de todo es que plantees un sistema sencillo de transición entre zonas, eso es lo primero que necesitas para el juego, un sistema mediante en cual puedas descargar los archivos de la zona que dejas atrás y cargar los de la nueva zona.

También es buena idea "siguiendo con la estructura" crear unos registros al estilo startXplayer y startYplayer que serán int´s y corresponderán a la posición dentro del scroll que tendrá el player al aparecer en la zona en cuestión..


Luego ya cuando tengas esto funcionando y las transiciones entre escenarios te funcionen bien.. suenen las músicas.. el personaje aparezca donde tiene que aparecer.. pues ya te lias a meterle contenido a los escenarios en función de la historia y los eventos o linea de eventos del juego.


Yo empezaría el proyecto creando una serie de escenarios con el paint así feos.. con caminos y hierba.. y un par de cuadrados que representen la puerta de entrada y la de salida a la zona/excenario, entonces montas el programa para que gestione las transiciones entre escenarios, osea.. cuando el personaje colisiona con la puerta de salida un pequeño fadeOFF de pantalla y:
congelar el objeto player..
descarga de los recursos del escenario..
carga de los recursos del nuevo escenario..
posicionamiento del player..
hacer sonar la música..
desconjelar el objeto player..
fadeON de pantalla..

Un saludo.
#9
Proyectos / Re: Que se necesita para crear un MMORPG
23 de Octubre de 2012, 06:56:54 AM
Otro gallo cantaría si el que pregunta empieza con algo así:

Hola, he creado 5 juegos online multijugador, me encuentro en la fase de dar un paso adelante y estudiar el planteamiento de como estructurar el nucleo de un MMORPG, me pueden dar algún consejo o pasos a seguir?

El tema es tan extenso..

Es que esto es como preguntar como puedo construir mi propio cohete espacial en mi garaje? jeje.. en serio.. suena a algo parecido.. no es por ser malo.. pero el post inicial tiene toda la pinta de ser un tiro de troll para reirse un rato.
#10
Proyectos / Re: Que se necesita para crear un MMORPG
21 de Octubre de 2012, 06:46:21 PM
Yo voy a comentar algo desde un punto de vista diferente..

Cuando uno es una persona analítica por naturaleza busca en los trabajos ajenos ese toque especial que los distingue de los demás y comienza a analizar el por que de que sea especial..

El primer paso para realizar un MMO es sin duda comprar por ejemplo World of Warcraft y jugarlo hasta el final, bueno.. este juego no tiene fin.. pero cuando uno llega a nivel máximo y participa en una RAID o evento de banda para 25 personas.. en ese momento en el que los demás se limitan a jugar uno saca la libreta y comienza a anotar todos esos detalles que hacen que la experiencia genere una serie de adictos mensuales que pagan dinero real para jugarlo..

Si se hace esto durante un tiempo lo suficientemente largo uno llega a una conclusión final bastante obvia..

- Son miles de detalles, cientos de pequeñas animaciones por metro cuadrado, una serie de historias interrelacionadas que persiguen la abstracción del jugador a niveles casi ilogicos..  es tantísimo el trabajo incluido en el juego, tanto en aspectos gráficos, como sonoros, y pasar por alto el foro oficial del juego donde diariamente se atienden miles de sugerencias de los jugadores.. que uno comprende rápidamente el trabajo real que hay detrás de todo esto..

Es por esto que, cuando uno se toma la molestia de comprar uno de los mejores MMO de la historia.. jugarlo 1 año diariamente y anotar detalles/conceptos que realmente destacan del producto.. uno tiene que comprender que preguntar como se hace un MMO es la pregunta mas estúpida que puede hacerse..

Mi recomendación, jugar a uno de los mejores durante 12 meses diariamente, ser completamente analítico durante el juego, participar el todos los eventos que el juego propone y analizar las reacciones del publico/usuarios.. y una vez se tiene un dosier lo suficientemente consistente como para dar el primer paso, armar un escenario lo mas limitado posible e introducir todos los conceptos anotados ya desde un principio, o por lo menos dejar la base preparada para ello..

Puntos criticos que yo creo que es lo primero que hay que plantear sobre papel.

- Sistema de comercio entre jugadores, como? nivel de seguridad máximo entre transacciones, etc..
- Sistema de gestión de cuentas.
- Prototipo de evolución del jugador, esto requiere mucho esfuerzo para estructurar una linea no demasiado agresiva y tampoco demasiado debil de progresión del nivel de complejidad de la experiencia del usuario final.
- Estructura de comunicación entre el servidor y los clientes, esto es realmente complejo, digno de un estudio previo bastante profundo.
- Enlazando con el punto anterior: Sistema de predicción/anticipación de estados por parte de los clientes.

Nota: No se puede procesar todo en real time, esto cualquiera que haya intentado hacer un juego multiplayer ya no masivo, simplemente de 40 jugadores lo sabe muy bien.. los clientes tienen.. bueno.. necesitan de manera imperativa un engine de precicción de estados para minimizar el efecto 'LAG' o los micro cortes durante el juego..


Yo no he programado nunca un MMO, es cierto que la idea me ronda la cabeza desde hace años.. pero también se que es un trabajo desmesurado para un equipo limitado de personas.

Siendo sincero, si alguien pretende meter la cabeza en algo como esto y se atreve a preguntar "Que se necesita para crear un MMORPG" claramente no está ni de lejos preparado para el proyecto, y la frase de "haz un tetris y terminalo" está completamente justificada. ;)

No quiero parecer el estúpido de turno.. pero he programado varias aplicaciones y 2 juegos multiplayer en red, y de verdad que empezar un proyecto MMO no es dar un buen primer paso, haz caso a lo que dicen, prepara un proyecto discreto, arma un grupo de gente que esté dispuesta a terminarlo, terminad el proyecto y esta experiencia será muy valiosa para dar el siguiente paso, un simple juego multiplayer por internet para 10 jugadores, terminalo, y cuando tengas estas experiencias bajo la espalda estarás por lo menos capacitado para comprender que trabajo tiene el crear un MMO..
Un saludo.
#11
Industria y mercado / Re: Distribución de software
01 de Octubre de 2012, 06:03:12 PM
Hola, comentar que las licencias GPL y todos sus derivados son tratadas de 'virales' por apple, no es una buena licencia para trabajar con la manzana..

Mírate las MIT por ejemplo, son bastante buenas para lo que quieres hacer.
#12
General Programadores / Re: Duda colisión circulo linea.
25 de Septiembre de 2012, 11:56:29 PM
Para el que venga detrás y necesite la misma información la dejo aquí ya que lo mío me ha costado encontrar algo decente y sobre todo entendible..

Primero un magnifico vídeo donde un profesor explica muy detalladamente el proceso aritmético para trabajar con sistemas de ecuaciones no lineales por el método de substitución para encontrar el punto o los puntos de intersección entre un circulo y una linea en un plano 2d.
De verdad que el vídeo es estupendo, muy recomendable darle un vistazo amigos.
http://www.youtube.com/watch?v=a-aJgGYjWOw

Y un ejemplo de código aplicado en lenguaje VB.NET que puede ser portado a otros lenguajes con muy poco esfuerzo:

--------------------------------------------------------------------------
The FindLineCircleIntersections function calculates the points of intersection between a line and a circle. It takes as parameters a circle's center point and radius, and two points on the line. It uses ByRef parameters to return the coordinates of the points of intersection. The function returns the number of points of intersection (0, 1, or 2).
To fund the points of intersection, the code considers the line as generated by the equations:

    X(t) = x1 + (x2 - x1) * t
    Y(t) = y1 + (y2 - y1) * t
Where t ranges from 0 to 1 to draw the line segment.

The code plugs these equations into the equation for a circle:

    (X - Cx)^2 + (Y - Cy)^2 = radius^2
It then solves for t by using the quadratic formula. The result is 0, 1, or 2 values for t. It plugs those values back into the equations for the line to get the points of intersection.


Private Function FindLineCircleIntersections(ByVal cx As _
    Single, ByVal cy As Single, ByVal radius As Single, _
    ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As _
    Single, ByVal y2 As Single, ByRef ix1 As Single, ByRef _
    iy1 As Single, ByRef ix2 As Single, ByRef iy2 As _
    Single) As Integer
    Dim dx As Single
    Dim dy As Single
    Dim A As Single
    Dim B As Single
    Dim C As Single
    Dim det As Single
    Dim t As Single

    dx = x2 - x1
    dy = y2 - y1

    A = dx * dx + dy * dy
    B = 2 * (dx * (x1 - cx) + dy * (y1 - cy))
    C = (x1 - cx) * (x1 - cx) + (y1 - cy) * (y1 - cy) - _
        radius * radius

    det = B * B - 4 * A * C
    If (A <= 0.0000001) Or (det < 0) Then
        ' No real solutions.
        Return 0
    ElseIf det = 0 Then
        ' One solution.
        t = -B / (2 * A)
        ix1 = x1 + t * dx
        iy1 = y1 + t * dy
        Return 1
    Else
        ' Two solutions.
        t = (-B + Sqrt(det)) / (2 * A)
        ix1 = x1 + t * dx
        iy1 = y1 + t * dy
        t = (-B - Sqrt(det)) / (2 * A)
        ix2 = x1 + t * dx
        iy2 = y1 + t * dy
        Return 2
    End If
End Function

If you need to know, a point of intersection lies on the line segment if 0 <= t <= 1 and on an extension of the segment otherwise.
#13
General Programadores / Re: Duda colisión circulo linea.
25 de Septiembre de 2012, 05:03:25 PM
Gracias por tu respuesta Gallo, el concepto es sencillo y el desarrollo del mismo también pero mi problema es de base, no se realmente el por que de estos cálculos y es ahí donde llegado el momento de aplicarlo en otro ámbito comienzo a tener lagunas, por ejemplo si lo tuviera completamente claro en 2d a la hora de aplicarlo en 3d me costaría mucho menos.

Lo dicho, gracias por el link, voy a leer mas sobre el tema haber si consigo entender el proceso.
#14
General Programadores / Duda colisión circulo linea.
24 de Septiembre de 2012, 11:27:36 PM
Hola, estoy montando un rudimentario sistema de colisiones para un pequeño motor de renderizado 3d, el caso es que estoy planteando el tema de la forma mas sencilla posible, todos los objetos a una misma altura y el suelo plano, así tengo una percepción un poco mas tirando a las 2d.

Mi pregunta es, alguien sería tan amable de explicar de una forma sencilla 'dentro de lo que cabe' sobre como determinar si existe intersección entre una linea con coordenadas 'x0,y0,z0' <-> 'x1,y1,z1'   y una esfera de radio 'r' ?

Encuentro varios ejemplos por la red pero pocas explicaciones claras sobre el procedimiento explicado para torpes, digo que no son claras "desde mi propia ignorancia" claro está.

Un saludo y gracias de antemano por si alguien se tomase la molestia de explicar el desarrollo de este calculo.
#15
Proyectos / Re: Biblioteca C++ para manejar música
31 de Agosto de 2012, 09:16:31 AM
Hola EX3, intenta trabajar con Apple y verás la LGPL que bien la reciben.. para ellos todo lo que contenga las siglas 'GPL' es completamente viral y malintencionado, y no es broma.. es un abuso de apple contra este tipo de licencias.





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.