Soy nuevo

Started by yosoyyo224, December 31, 2016, 11:58:28 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

yosoyyo224

 :) hola, quiero hacer un videojuego rpg. He leido sobre bennu y creo que podria hacer algo jeje.

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Bienvenido al foro.
Espero que te lo pases bien y que tengas un feliz año nuevo :)

Hacer un RPG en Bennu es bastante sencillo, más incluso que un juego de plataformas. La parte complicada es equilibrar los stats y todo eso, pero por lo demás es un paseo.
Eres el primero que veo que decide no usar RPGMaker, pero eso tiene sus recompensas, porque de esta manera no tienes ningún tipo de restricciones y puedes hacer lo que te de la gana :)
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Ryo Suzuki

Bienvenido!!


Quote from: Drumpi on January 02, 2017, 12:53:40 PM
Hacer un RPG en Bennu es bastante sencillo, más incluso que un juego de plataformas. La parte complicada es equilibrar los stats y todo eso, pero por lo demás es un paseo.
Compañero, será para ti que dominas mucho!! :)

Te tomo la palabra y hacemos uno ;)

Drumpi

Jajaja, tengo muchos proyectos en marcha, pero el RPG está en mi pila desde hace tiempo (de hecho, aun se puede consultar la información recopilada en mi vieja web, de cuando los foros del Club Nintendo). Pero si quieres lo hablamos :)

Sólo necesitas un personaje que se mueva en 8 direcciones, que detecte las durezas del terreno y que al colisionar con un enemigo, lance el modo batalla, que si es por turnos es a base de menús, y la parte más difícil de eso es eliminar un menú para que aparezca otro, y poder recorrer el árbol de submenús en ambas direcciones.
Ya la base de datos para las estadísticas las puedes hacer a lo bruto (por código) o de forma elegante (SQLite) :P

Y te digo que lo del personaje andando lo hice en una pasada GameJam desde cero en menos de 12 horas (en la última corrió a cargo de DCelso, pero no era el mismo juego ^^U).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

DCelso

 :o , ahora lo de que no diera tiempo a terminarlo es culpa es mia  :'(
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

Nadie ha dicho eso.

...Y no se terminó porque los enemigos no tenían IA, no nos dio tiempo a implementar la relación entre disparos y enemigos (la muerte, vamos), el editor de rutas estaba verdísimo... Había muchas cosas sin acabar.
El otro juego que me refiero también se quedó a medio hacer, pero fue por el resto del juego, no por el movimiento del prota (que también dio problemas, dio). Búscalo, "Fatal Clon", lo subí a mi Gamejolt :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Ryo Suzuki

Hombre! Pues yo espero acabar pronto la visual novel así que me gustaría liarme con algo... a un RPG no le haría ascos (me inventaría un rollo patatero bueno de universo y demás=

Cual es tu vieja web? y en gamejolt no veo el Fatal Clon :8

Drumpi

Mi vieja web: http://perso.wanadoo.es/e/drumpi1_0/
Busca en proyectos "las 4 almas". Teníamos razas, un inicio de historia y poco más, pero muchas de las cosas me he dado cuenta con el paso de los años que han sido copiadas sin haberle dado una vuelta más :P

¡Me c...! Cierto, el Fatal Clon lo subí a Gamejolt, pero al de la Jam, y se borró. Tengo pendiente acabarlo y resubirlo.
Pero bueno, no te pierdes mucho, de momento ^^U
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Ryo Suzuki

Muy interesante, es retro todo ya!!

Sorry por el offtopic, yosoyyo224.

Yawin

Puedo asegurar, con mi motor RPG por turnos medio terminado, que decir que hacer un RPG es fácil es una exageración.

Hacer un juego con mecánicas RPG es sencillo. Hacer un RPG no tanto. Un RPG tiene muchas horas de juego y para poder satisfacer esa necesidad, el motor tiene que estar diseñado para ser lo suficientemente flexible como para reutilizar elementos, cambiar lógicas de comportamiento sin montar reformas faraónicas y un largo etc..

Es cierto que no es dificil. Un plataformas es más dificil. Pero no es un paseo por el campo.

Si quieres, echa un vistacete a mi motor. No está terminado, pero a lo mejor te ayuda: https://github.com/rfstudios/LittleTales
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Drumpi

Es cierto, un RPG requiere un proceso largo de desarrollo, y en cuanto se amontonan las centenas de miles de líneas de código puede ser una pesadilla.
Sin embargo no tiene que ser difícil de realizar. Tal como discutí en el otro foro, que un juego sea grande no implica que sea difícil de desarrollar. Implica que necesita de una planificación muy cuidada, y un esfuerzo por parte de todo el equipo para mantener los estandares acordados y que todo salga según lo planificado.

En un RPG, si tienes la mecánica de desplazamiento por el escenario, la mecánica de los combates, y un sistema de eventos independiente, ya tienes hecho gran parte del RPG, si no todo. Ya es crear un mapa grande, con suficientes zonas importantes, mantener un equilibrio en las estadísticas, y conseguir un buen ritmo narrativo y jugable, que es lo que considero más difícil de desarrollar.

Son tres elementos bien diferenciados, que se pueden aislar fácilmente. Y lo sé porque desarrollando el Tilemap Editor v2 he tenido que enfrentarme a tres niveles de programación (interfaz, funciones y núcleo) intentando que cada parte del programa funcione como un "plugin".

[Explicación larga]
Por ejemplo, la lista de mapas abiertos tenía:
- Por un lado, la lista de los mapas cargados:
    · La propia lista enlazada, con los mapas, el scroll tileado que lo muestra y la información de edición de cada uno de ellos.
    · Funciones para gestionar dicha lista: crear, cargar, borrar, ordenar, obtener puntero a uno de los mapas...
- Por otro lado la lista visible:
   · Nucleo: su propia lista de nombres de mapas, e información de sus propiedades de edición (si debe ser visible, si tiene transparencia...)
   · Funciones: para crear, eliminar o asociar a un mapa cargado dentro del programa, y para responder a las órdenes que se le manden desde la interfaz.
   · Interfaz, donde debe mostrar los gráficos, botones, y enviar órdenes cuando se interactúa con él.
No podía usar la lista de mapas directamente desde la aplicación, todo debe ir a través de la interfaz, por lo que pulsar un botón hacía que llamase al núcleo para preguntar por la acción a realizar, y esto llamaba a las funciones de la interfaz, que mandaba una petición a una función de la lista de mapas cargados (por ejemplo, cerrar), y al acabar mandaba otra al núcleo de la interfaz para que actualizase sus datos.
Así, podía tener el programa funcionando sin la interfaz, pero no la interfaz sin el programa, y si eliminaba la lista de mapas cargados, el resto del programa podía seguir funcionando. O sea, todos los elementos estaban separados, pero dependían unos de otros a través del núcleo del programa.
[/Explicación larga]

En un RPG, el combate da igual en qué punto del mapa te encuentres (normalmente), y un evento básicamente suele ser quitar el control al jugador, añadir unos sprites a la escena, y hacer que todo se mueva siguiendo un script, si se han cumplido unos requisitos al llegar a una zona (tener un objeto, haber hablado con alguien..., eso se explica en el capítulo de las aventuras gráficas del Manual Avanzado de DIV).

Eso es fácil programarlo. Lo malo es crear un mapa de 1000000x1000000 con rutas por explorar, hacer una historia interesante, crear 500 diálogos y scripts, desarrollar 9000 sprites, y evitar que los pokemon psíquicos sean los amos del cotarro frente al resto de tipos. Esa es la dificultad ¿Pero la programación en sí? Yo no lo veo tanto.

¿O me he perdido algo? ¿Qué ha sido lo peor de hacer un RPG, Yawin?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Yawin

Lo peor sin duda es el lag. Y eso ahí precisamente donde creo que hacer un RPG es más complicado de lo que parece a simple vista.

Imagina que haces una ciudad. Para que el jugador se sumerja en esa ciudad es necesario que haya gente en ella, con sus animaciones y bucles de comportamiento (aunque sea una pequeña ruta por la que se mueva), objetos animados tales como fuentes, estanques, y demás parafernalia que da más profundidad a la ambientación, eventos de control que supervisen qué está pasando en el juego, si metes ciclo de día y noche pues algo que lo gestione, etc...

Al final, se acumulan un sin fin de pequeños procesos, todos con sus bucles de comportamiento que, sumados, acaban afectando al rendimiento. Un programador experimentado, sabe cómo lidiar con ello; uno novato no. Y, o se conforma con hacer un jueguecito chiquitín y cuco en el que pueda controlarlo, o no puede llevar a cabo lo que quiere.

Por otro lado, cargar y guardar la partida, teniendo en cuenta que algunos elementos del juego tienen bucles muy complejos y que puede ser que guardes en mitad de uno de ellos y, por tanto, la ejecución tendrá que continuar por ahí, se puede volver complicado. Ejemplo:

Un mercader te dice que hasta que no le traigas una flor no te da una maceta, al conseguirla, tiene que darte la opción de comprarle un objeto, pero a lo mejor no tienes dinero en ese momento. Pues al guardar, el mercader tiene que acordarse si ya le has dado o no la flor y si ya te ha vendido o no un objeto. Y eso con cada elemento del juego.

A mi, que no es por echarme flores pero tengo algo de experiencia programando, no se me hace dificil; pero a un novato se le puede hacer muy cuesta arriba.

En ese sentido, aunque un plataformas puede ser más complicado en cuanto a cómo programarlo, un novato puede visualizar más fácil cómo llevarlo a cabo.

Aun así, creo que la palabra que define el desarrollo de un RPG es "laborioso" más que "dificil".
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

l1nk3rn3l





Lo que dice yawin es interesante, pensamos que con la nueva
característica de mapas de tiles tmx, se suplirá ese faltante
de mapas grandes, usando:

+ varios núcleos para dibujado de cada capa,
+ funciones de búsqueda de caminos usando multitarea también
+ funciones para consultar objetos en el mapa (en el editor de tiles puedes colocar codigos numericos
para luego consultarlos desde bennu)
+  colisiones usando el punto anterior , o usando consulta de pixels..
+ edición del mapa de tiles en tiempo real , asi puedes quitar baldosas del mapa o colocar nuevas (terraria)

entonces  se podrá hacer un rpg mas fácil en bennu....   (hay que tener en cuenta que cada plataforma, consumira
recursos dependiendo del mapa a cargar)
http://terraria.gamepedia.com/Map_size/es

asi que  tocaria recurrir al viejo truco de cargar otro mapa cuando lleguemos a determinada puerta o zona...
para que parezca que el mundo es inmenso como el de zelda..

Se puede ver en pixtudio y bennu como la libreria multiplayer usando los nucleos
del procesador tiene aproximadamente un cero lag en los juegos multiplayer..

obviamente para el programador bennu sera tarea , dibujar o activar los procesos de los
personajes que viven en el mapa, ya que dibujarlos al tiempo si afectaria el
rendimiento, asi que consultando la posicion del mapa donde esta activo el personaje
solo se activarian los procesos mas cercanos al personaje...  (digamos que un radio de nnn pixeles de distancia)

juegos complejos como terraria se podran hacer en bennu con la nueva
caracteristica de dibujado multitarea para los tiles... o eso esperamos..





Drumpi

A ver, lo del mercader es lo que hablaba de los eventos: para esa tarea tienes una variable que:
- Vale cero al inicio.
- Vale 1 cuando le has dado la flor y te ha dado la maceta.
- Vale 2 cuando le has comprado algo.
Para cada quest y sub-quest necesitas una variable de estado, que te diga en qué parte de la misma está. Luego, en el savegame sólo tienes que guardar ese valor. Si tienes la flor, esta se habrá guardado en el inventario, no necesitas que esté en los datos de la sub-quest.
Es posible que algunas sub-quest requieran de dos variables, por si tienen dos historias paralelas, o si se ramifica, pero sigue el mismo procedimiento.
Luego el mercader sólo tiene que leer dicha variable para saber qué conversación debe activarse.

Es como dices, laborioso, pero no difícil.
Te doy la razón en que algunas cosas hay que gestionar muy bien la memoria, pero estamos usando Bennu, no tenemos que crear un algoritmo de dibujado 3D super óptimo para poder gestionar un mundo gigantesco 3D que llegue hasta el horizonte. Eso sí que sería difícil de programar, pero un FF de 16 bits o un Zelda de SNES no ;)
Con tener un chivato que nos diga qué sprites colocar en cada momento o dividiendo el mapa de forma inteligente nos vale.

L1nk, yo hace años que pedí un sistema de scroll tileado, y adivina lo que hice :D :D :D
Lo de los mapas gigantes, en mi caso, lo tengo más que superado, y el motor lo tengo publicado en este mismo foro para el que quiera usarlo, así como un editor de mapas para ese motor. Lo único que me faltaría sería poder adaptarlo a los mapas del tiled, tanto para carga como guardado, pero me he mirado el formato por encima, y leer XML me da urticaria ^^U Estaba pensando usar tinyxml.dll para abrirlos, pero la compatibilidad entre plataformas se me va a la porra :P
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)