Regresar   Foro de marcianitos.org > Marcianeando > Cajón de sastre

 
 
Old 05-oct-2008, 14:25   #1
kursh_Allegory
Editor Marciano
Creando un juego desde 0.

DIV Games Studio era una herramienta de programación de videojuegos creada en el noventaypico, para nuestro añorado Ms-dos.

Una aplicación en la que además de programar los juegos, podías dibujar tus propios sprites (vamos, los gráficos incluso con animaciones), escuchar música mientras picabas código (cosa muy importante), etc..

Alguien se cansó y solo salieron dos versiones Div 1 y Div 2, así que la peña más friki creó Div C, y posteriormente avanzó a llamarse FENIX.

Fénix, furrula en Windows xp, hay compiladores para Linux, para gp32 y gp2x, mmm creo que en vista también tira.

Existen IDES (algo asi como interfaces graficos para desarrollo) paralelos creados por los usuarios, algunos mejores otros peores (yo aconsejo FLAMEBIRD MX, es muy cómodo y bastante configurable.)

Existen librerias, aplicaciones para generar explosiones y animaciones, editar tipos de fuentes, etc.. en fin muchas cosas alrededor de Fenix.

¿ Por qué os cuento esta frikada ? pues porque os molan los video juegos y me dispongo a crear uno aquí desde cero, había pensado en hacer uno tipo “beatemup” o plataformas, en el que hubiese que conseguir crear una maca recogiendo maderos ,tornillos, reuniendo un pc y un jpac, etc.., pero me pareció mu friki la cosa , tal vez algun día jajaja. (hace muchos años que no uso div, en este caso fénix, y prefiero ir recordando mientras creamos este juego)

Simplemente pondré pequeños videos en los que se verá como avanza la cosa, explicado algunas cosas para quien no tenga ni zorra de que va el tema (yo no tengo mucha pero podremos sacarlo adelante, hasta que me canse, que seguramente será pronto jajaja, estas cosas se cogen con ganas pero enseguida decae la fiesta), si alguien quiere saber en concreto algo del código, o como se hace algo pues que pregunte y si cuela se explica.

Tipo de juego: “naves” – horizontal.

Tal vez avance mucho, tal vez mañana me canse, tal vez os la sude esto de crear juegos , pero ... Vamos allá.

Avance 1: (05/10/08)

- Los gráficos simplemente son de prueba. Aqui habrá que currar (o confiar en la mano de alguien que sepa jajaa)
- El juego está a 640x480 a 16 bits de profundidad.
- Existe un bucle principal que crea el “scroll” de la pantalla, arrastra la imagen (que tiene unos 4600 pixeles de ancho.
- Existe un proceso que crea la nave, en la que detectamos las teclas pulsadas y vamos actualizando la posición de ésta.

Y esto es lo que obtenemos (VIDEO 1):


Vale, se ve como el culo, al próximo me lo monto mejor.
Está puesto a 30 frames/segundo, esos tirones que mete se los ha metido camtasia. (pensaba que este programa era mejor XDD)



Próximo avance..

- Invencible durante unos pocos segundos. [X]
- Detectar colisión de la nave con el terreno. [X]
- Añadir disparos. [X]
- Meter fondo en scroll al fondo para dar sensación de profundidad. [X]



Avance 2: (05/10/08)

- Hemos añadido una imagen de fondo de estrellas que se desplaza mas despacio que la principal de las rocas, con lo que conseguimos un efecto de profundidad, y de mas o menos sensación de velocidad general.

- Las “píldoras” esas, hacen que cuando las toques con la nave, pases de tener el disparo de tipo 1, al tipo 2, y del tipo 2 al tipo 3, al final todos los disparos se crean a partir del tipo 1.

Me explico: El disparo tipo 1, saca 1 bala con un ángulo 0 (osea horizontal y bien rectita), el disparo 2, crea dos disparos del tipo 1, con un ángulo que hace que se vayan abriendo.. y el disparo 3 crea 2 disparos con ángulo que abren y uno normal recto. (En definitiva solo hay un proceso o función creando disparos, el resto la llaman pasándole la posición inicial de la bala y el ángulo).

- Como detectamos los choques con el terreno?

Dibujamos nuestra pantalla principal:



Y luego la misma pero rellenando de color rojo chillon ( en rgb es el 255,0,0) las zonas que queremos con las que impacte la nave, el suelo en general. A esta imagen se le conoce como MAPA DE DUREZAS, porque en ella se representan las zonas duras con las que puede interactuar la nave.



Las dos imagenes anteriores tienen las mismas medidas y son exactamente iguales, al subirlas a imageshak una ha cambiado el tamaño, pero nos vale para entenderlo..

Comprobacion de si me he escornado:

En la pantalla principal tenemos a la nave en la posición por ejemplo:
X = 1000 , y = 200

Lo que hacemos es ver el color del píxel de la posición 1000, 200 pero en la imagen del mapa de durezas y si en esa posición hay ROJO quiere decir que nos hemos piñao.

Como queda el asunto (VIDEO 2):


Todo va a saltos y no se aprecia nada bien en general. Lo que hago es estrellarme varias veces, comenzando de nuevo la nave a la izquierda y parpadeando durante unos segundos, durante los cuales es invulnerable. Los disparos en directo son mas fluidos, nuevamente la culpa la tiene camtasia, subiré algun ejecutable por si alguno lo quiere probar.


Interludio (Como se dice en el mundillo de la música): (10/10/2008)

Estoy haciendo unas pruebas con unos enemigos y tal (que pretendo poder subir este finde)... y tratando de hacer un fondo ya definitivo o al menos mas interesante que el de los videos anteriores de prueba.. pero mientras voy a poner aquí como pienso hacer la musiqueta que pueda tener el juego.

Usaré MIDIS, por que? porque ocupan menos y el sonido es mucho mas arcade .. a parte de que puedo componer todo yo, sin tener instrumentos ni aparatos raros XDD

Voy a usar Guitar pro. En principio está pensado para los guitarristas como su nombre indica; lo he usado en varias ocasiones (bastante, aunque últimamente lo he tocado poco) y me gusta lo "sencillo" que es y como funciona, así como la cantidad de sonidos que trae..

Básicamente el funcionamiento es el siguiente (casi todo se ve en el video, aunque lo mismo no se aprecia bien por la gran cantidad de botones y pequeño tamaño en general):
Las seis cuerdas que aparecen son las seis que representan el mástil de la guitarra, siendo la 6ª la de abajo y la 1ª la de arriba (como si coges la guitarra normalmente para tocarla y la pones bocaarriba).

Es ir poniendo números en las cuerdas que representan el traste, aquí el que sepa de música un poco lo tiene mas fácil.. En fin, puedes cambiar el tiempo de la canción, la duración de las notas (blancas, negras, corcheas, etc..) hacer ligados, etcetc… repetir compases un número determinado de veces… casi todo.

Puedes añadir mas instrumentos e indicar si son de cuerda y cuantas ( 4 para el típico bajo y 6 para la típica guitarra) o si se trata de percusión. Para la percusión las cuerdas no son nada, simplemente vas poniendo los números y cada número es un sonido diferente.

Pues bien puse a grabar el camtasia y me puse a improvisar y esto es lo que salió… (Está algo saturado el sonido, no me di cuenta hasta oírlo después, y por cierto a mitad del video (si alguien llega ahí es que tiene mucha paciencia) me petó y tuve que reiniciar el programa ….).

(VIDEO 3).

PINCHA AQUI PARA VER EL VIDEO EN VIMEO

Aqui las dos muestras en midi, con diferentes sonidos (hay muchas combinaciones, es elegir la que mas os guste):
Trozo "compuesto". Combinación de sonidos 1
Trozo "compuesto". Combinación de sonidos 2



Próximos avances..

- Poner un fondo decente y mas largo, reducir velocidad para que dure mas..
- Añadir enemigos y tratar de que no sean muy tontos, tienen que disparar.


(13/10/2008)
Bueno en breve subiré otro video de como va el asunto..
De momento salen enemigos de dos tipos, en plan solitarios y a lo kamikaze (rectos y rapido), y en plan peloton (de 4 a 7 unidades creo recordar que he puesto) con un movimiento un tanto raro... pero cumplen su funcion, y tambien disparan (cosa que tengo que revisar porque disparan de forma un tanto extraña, a veces poco a veces mucho)..


Avance 3: (14/10/08)

Lo primero comentar que he mmmm replanteado el tema del fondo, hacerlo con rocas implica una movida.
Averiguar cuando la nave se estrella es facil.
Hacer que los enemigos solo vuelen por zonas sin rocas es hiper jodido (al menos no voy a calentarme el tarro por el momento siendo que estoy probando y probando).

Así que tipico fondo al aire libre y a volar..

Como curiosidad comentaros que el fondo que tan garrulamente se ve en el video de abajo.. está hecho con un magnifico programa llamado MOJOWORLD.. un pasote de programa para generar todo tipo de terrenos.. trabajas en 3d y luego renderizas, tras varias pruebas me ha gustado el fondo que tengo ahora, lo he tocado luego en photoshop para darle otro toque, los colores que se quedaron no me gustaban, y añadir una tonteria en una de las montañas ( que se ve justo al final del video).

Uno de los fondos tardó el pc unas 16 horas en renderizar y luego era feo de cojones... XDDD

Pondré la imagen del fondo actual a calidad por si alguno tiene curiosidad de ver lo que se puede hacer con ese programa, de momento vamos al grano:

edito: Aqui está la imagen.




Añadido:
-Nave despega desde abajo, aumentando su tamaño.
-Disparos mejorados, aumentan también su tamaño un poco.
-Dos tipos de enemigos, simples y de “gusano” (Esto es una movida que me he montado, son grupos de enemigos que mas o menos atacan en conjunto.. (Ver video 4 abajo))

Bien, ¿como añadir enemigos? En fénix existe lo que llaman PUNTOS DE CONTROL, esto simplemente son una serie de puntos que tu marcas en tu imagen (en este caso en la imagen del fondo) que quedan registrados como coordenadas x e y, algo así como..

Punto 1 = (100,200)
Punto 2 = (1400,140)
Punto 3 = (2800,250)

Con el nuevo fondo que le he metido la imagen tiene 8000 píxeles de ancho, de ahí que el tercer punto tenga la coordenada x tan “grande”..

Bien según va avanzando la nave por el fondo, estos puntos van “apareciendo” en el área de juego, vamos, que están en la pantalla cerca de la nave, podemos en ese caso decir que se creen enemigos en ese punto determinado que acaba de entrar en el “area de juego” (Previamente ya hemos creado unas funciones que generan enemigos de un tipo u otro, con un movimiento u otro, con mas mala leche disparando o menos…)

Otra opción es simplemente que aleatoriamente genere enemigos en una posición determinada.

Cuando se detecte una colisión entre un disparo que venga de una nave enemiga y nuestra nave:
1. Nuestra nave desaparece
2. En la posición donde ésta se encontraba, aparece una animación de una explosión.
3. Lo suyo sería reiniciar la nave y toda la escena con un “fade_in” (ir de fondo negro al fondo original progresivamente, esto lo tengo que mirar, alguna tontería me está dando problemas).

Así a la cosa (VIDEO 4):


DESCARGA "PRUEBA"
TECLAS:
DIRECCION CON FLECHAS (pa variar)
DISPARO = "V"



Avance 4: (16/10/08)
- Bien, he compuesto una cutrecancion que me ha quedao rara de narices... no es 4x4 es algo raro, y estresa.... suena rara pero me mola jajaja
- Nuevo enemigo que cuesta mas de matar, es mas grande y desprende puntos.
- Nuevos enemigos tipo barco, que lanzan unas minas en paracaidas (las minas no se pueden matar ... )
- Con el boton "B" podemos eliminar todos los disparos enemigos de la pantalla (de momento este boton es infinito para las pruebas va muy bien jeje)
- Mejorados los disparos de nuestra nave, empieza siendo mas corto (ya no atraviesa toda la pantalla) y segun vas mejorandolo, coge más fuerza y llega mas lejos...

Esta vez no pongo video, es mucho mas rapido subirlo para quien quiera catarlo..

DESCARGA "PRUEBA 2"
TECLAS:
DIRECCION CON FLECHAS (pa variar)
DISPARO = "V"
'BOMBA'="B"


Saludos.


Avance 5: (18/10/08)
Pa celebrar mi cumple con ustede (esta noche vendrá lo gordo ) sus pongo unos avances:

- He bajao dificultad y modificado algunos detallicos de la jugabilidad.
- Hay un bicho final, bastante jodido creo yo...


DESCARGA "PRUEBA 3"

Avance 6: (26/10/08)
Pequeños avances:

- Enemigos rebientan tirando chatarra y con sonido de explosión.
- Las balas enemigas tambien rebientan con una mini explosión.
- Cambiado el color de las balas enemigas para que se distingan bien.

DESCARGA "PRUEBA 4"


saludos

Editado por kursh_Allegory en 26-oct-2008 a las 13:24.
   
Old 05-oct-2008, 15:25   #2
Radaxian
Marciano
 
Avatar de Radaxian
Me parece una idea cojonudísima tio!,yo tengo el antiguo DIV2 con su tocho manual (que recuerdos ) lo corria en el 98 SE,lo único que llegue a hacer fue una especie de Space Invaders pero las rutinas de movimiento iban de pena,nunca lo termine se fue dejando dejando y hasta hoy,como te explican lo ideal para empezar es hacer un juego de naves sencillito (y abusar de los bucles que te dan a muerte ),cuando se conoce como va todo más o menos ya se puede ir investigando un género más complejo como un buen plataformas o lucha tipo versus,a mi me encantaría que hicieras un Beat'em up,sería la leche colega además te podemos hechar una manilla otra opción mucho más fácil es usar Mugen o Bor lo malo es que estos programas limitan mucho la creatividad porque normalmente te tienes que ceñir a las normas y los gráficos que usan otros juegos,bueno ánimo y mucha suerte con tu proyecto que merece la pena,que no decaiga la fiesta

Un saludo

PD:Ta quedao muy bien para ser una prueba
   
Old 05-oct-2008, 15:33   #3
kursh_Allegory
Editor Marciano
En div games hice una especie de superpang, bastante real, pero con graficos infernalmente malos (eso es el problema de tener que hacer todo uno, siempre flaquea algun aspecto).

Esos que comentas los he oido, pero como soy como los burros que cuando conozco algo que me gusta no cambio.. pues eso que yo con fenix p'alante!

Tambien empezé una aventura grafica, eso si que llevaba faena y lo dejé.

Pretengo hacer un juego entretenido, nada nuevo, pero oye, me apetece hacerlo XDDDDDD

En los de lucha callejera siempre que hice pruebas me encontré con los problemas de que o le zurrabas muy facilmente, o te ponian las pilas sin poder defenderte, hace años que no lo toco, tal vez mis neuronas maduras jaja ahora puedan mejorar eso.. ya se andará.

Ara mismo estoy con un problema con el scroll, se detiene automaticamente en un punto determinado y no se porque. Es el tipico problema que seguro es una tonteria pero no hay manera de ver que falla... En breve subo el la nave ya disparando y con colisiones.
   
Old 05-oct-2008, 16:07   #4
calculum
Marciano
 
Avatar de calculum
Otia... que recuerdos....
Yo también hice mis pinitos con el DIV (el 1)....
Me plantee un juego de navecitas pero de scroll vertical, podias escoger entre 4 naves diferentes cada una con 4 tipos distintos de disparo y con cualidades diferentes....
La verdad es que la idea me gustaba un montón y llegue ha hacer el primer nivel, pero con unos gráficos horribles (lo mio no es el paint )....
Al final como todos (que poco constantes somos ) lo dejé y ya se ha perdido....
Pero siempre te podemos echar una mano .
Animo con el proyecto
   
Old 05-oct-2008, 20:53   #5
Macarro
Administrador
 
Avatar de Macarro
Muchas gracias por este hilo, intentaré seguirlo que estas cosas me molan mucho.

En cuanto a los programas-paquetes-lenguajes preparados para programar juegos, yo he usado blitz (plus, 3d y un pelín de max). La ventaja que le vi en su momento es que me parecía sencillo y la última versión (max) es multiplataforma linux-mac-windows.ç

Un saludo.
   
Old 05-oct-2008, 22:09   #6
Cormano
Marciano
 
Avatar de Cormano
Ostras, yo empecé a hacer junto a mi hermano un juego de naves llamado TWINSEL, aunque al final sólo hicimos una fase. Toda la parte de programación la hizo mi hermano mientras que yo solamente hice los gráficos con el paint (me quedaron bastante cutres, la verdad sea dicha). Lo hizimos con el DIV 1 y a pesar de lo cutre, nos lo pasamos pipa haciendolo. Mucha suerte kursh, y mantennos informados sobre este proyecto ¿eh?

P.D.A ver si algún día subo la fase que hicimos mi hermano y yo para que os echeis unas risas al menos
   
Old 05-oct-2008, 23:34   #7
Bubu
Editor Marciano
Muy muy interesante. Sobre todo me gustaría saber si podría hacer juegos facilones en MSDOS puro para los niños (de 4 ó 5 años), del estilo de mover un sprite de un punto a otro y que detecte alguna colisión, o cosas por el estilo...
   
Old 05-oct-2008, 23:50   #8
kursh_Allegory
Editor Marciano
Bubu, podrías.

Div Games Studio 2, con un windows 98, y a hacer jueguecitos facilmente a tu gusto que podrás ejecutar en msdos.

Al resto, en un rato subo otro avance y gracias por el interés (a ver cuanto tardo en cansarme) XDDDD

ea ya esta el avance 2, ara en cuanto youtube procese pongo el video..

Editado por kursh_Allegory en 06-oct-2008 a las 00:27.
   
Old 06-oct-2008, 12:08   #9
Maxtor
Marciano
 
Avatar de Maxtor
Con DIV2 realicé grandes juegos, incluido el inicio de un juego de estrategia(y sin tener ni la más remota idea de IA, como un señor!)

Lo fui dejando, pero ahora el amigo de los niños, Guillermito Puertas, ha creado XNA y la verdad que estoy super enganchado... aunque hasta que le coja el truco, es un terrible infierno.

A Fenix le heché el ojo, pero es muy "amateur" y yo pretendo dedicarme profesionalmente (y hacer una mata de jamones y un arbusto que de euros, ya puestos!)


Kursh que tiene muy buena pinta, animo y que no caiga en el pozo de los proyectos perdidos!!!

Bubu, si me dices que es lo que quieres y como lo quieres, te lo intento hacer (necesito coger experiencia!) Si prefieres MSDos o Windows modernos, con sonido, sin sonido...

Editado por Maxtor en 06-oct-2008 a las 12:11.
   
Old 10-oct-2008, 00:42   #10
kursh_Allegory
Editor Marciano
Eiiiii aun no me he cansado jeje.

Hoy es fiesta en valencia, y está callendo el diluvio universal.. pensaba haber hecho mas .. pero me he pasado el dia de desmontador de muebles..

en fin tengo cosas para mostrar, es cuestion de escribirlo, hacer una videocaptura y subirla. En concreto lo referente a la musica (que comento al final del primer post) lo tengo hace unos dias pero lo subí a yutube y no sabia que el tope eran 10 minutos... me dura 16 aasi que tendre que hacer un corte...

que infierno esto de editar y subir videos...

ahi seguimos!