Work in Progress: Nuestros avances en Desarrollo Indie

GreyShock

#28 #29 #30 El casco ES de motocross, así que lo doy por todo un éxito xD Se supone que la serie de imágenes es la evolución, el diseño final es el último. Nos gusta más así de sencillote para el papel que tiene que jugar.. :3

1 respuesta
Nucklear

#31 No entiendo el por que de un casco de motocross en el espacio con lo guapo que esta el del concept :qq:

1 respuesta
rageshow

Pero el del concept es un rollo mas Mad Max, creo que no buscan eso , desconozco que papel tiene ese tio pero teniendo en cuenta que el mapa es ciudad (supongo) yo lo veo bien :D

#34 Ya pues yo le dejo mis dies

1 1 respuesta
GreyShock

#32 #33 Ahí está la cosa, no estamos hablando de un mero puzzle/pantalla si no de un juego completo con diferentes niveles y trama... va aser un juegaso hesperen y beran!!!

2 2 respuestas
B

#34 De aquí dais el salto a Steam :D

Wasd

Uno de mis primeros juegos (el primero al que le he dedicado tanto tiempo, y aún así no deja de ser una chorrada xD)

W = saltar, S = Agacharse
http://www.didacdevart.com/runner/

Lo he programado y diseñado absolutamente todo desde cero (excepto la imagen de la corredora, utilicé una referencia importante xD), quise reinventar la rueda para ver como se hacen las cosas desde abajo.

He utilizado HTML5 <canvas> y Javascript.

El <nav> está de adorno por ahora, si clicais a los href no os lleva a ningún lado.

Quiero opiniones, buenas y malas. Si el juego gusta lo puliré (se puede mejorar mucho todavía).
Cualquier duda, recomendación, consejo (con fundamento), disparad.

He utilizado Sublime Text 2 para el código y Photoshop para diseños y animaciones.

#37 Si, eso es porque la corredora es un cuadrado, la esquina inferior derecha no se ve pero colisiona contra el obstáculo. Creo que lo voy a arreglar ahora mismo porque todos se han quejado de esto xD

#37 Arreglado lo de la colisión (un apaño rápido, todo es mejorable)

6 6 respuestas
r2d2rigo

#36 la colision con los objetos grandes que hay que saltar va ojete puro.

1 1 respuesta
Meleagant

#36 Lo que te comentaba por Steam, me ha gustado la animación del personaje y el fondo mucho. En general el movimiento da sensación de fluidez.

1
adr1ana_cs

#36 Un crack, como siempre.

1
B

#36 Considerando que lo has hecho todo desde cero te ha quedado muy bien, eso sí, como ya han comentado las colisiones con objetos grandes no van muy finas :3

1
BLZKZ

#36 si vas agachado todo el rato aunque te zampes los obstaculos desde abajo, no te quita vidas xD

Si saltas y en medio del salto te agachas, se pega al suelo.

Imagino que lo sabrás ya pero... xD

2 1 respuesta
Wasd

#41 Lo estoy fixeando xD

1 respuesta
autlos

#36 Es un mapa muy corto en bucle. Podrías hacerlo más aleatorio (al menos me he fijado que se me ha repetido 6 veces el mismo patrón). Por lo que hay ahora el 90% se puede completar agachado.

Pero no está nada mal.

1 2 respuestas
BLZKZ

#42 me mola el fix, has quitado los obstáculos del suelo xDDDDDDDD

Edit: pues no, algo deberías estar tocando.

#43 realmente te lo puedes pasar al 100% agachado :P

1 respuesta
Wasd

#44 No he tocado nada en remoto, así que tiene que estar igual. Estoy con lo de las colisiones al agacharse, cuando esté solucionado lo resubiré :)

En cuanto a la repetición de obstáculos. Los seis primeros se generan aleatoriamente y luego se almacenana en un array. Cuando un obstáculo desaparece de la pantalla, se elimina su posición del array y se añade en la ultima. Vamos, que se va repitiendo, pero es relativamente fácil de cambiarlo.

Ahora estoy con lo de las colisiones, que es un código que hice hace tiempo xD

B

El diseño del sprite super minimalista con un solo trazo me ha parecido cojonudo.

1 respuesta
Wasd

#46 Si te refieres a la corredora, no te mentiré, el 90% lo cogí hecho (es la referencia que menciono antes). Yo le he modificado cosas como el pelo y algunas curvas. Por mi mismo no lo habría hecho igual xD.

r2d2rigo

#43 el 100%, las colisiones cuando estas agachado no van.

1
Wasd

Ale, solucionado lo de las colisiones al agacharse y los obstáculos ya no son un patrón repetitivo :)

http://www.didacdevart.com/runner/

Ahora es ligeramente más divertido que antes xD.

Gracias a todos por vuestro feedback, sigo aceptando bugs/críticas/consejos.

1 respuesta
B

#49 ahora si estás saltando y justo antes de pasar el obstáculo le das a "S", se pega al suelo y tampoco colisiona (sí, es ganas de tocar las narices xD pero es que lo estaba probando)

1 respuesta
Wasd

#50 Eso es porque el área de colisión del obstáculo es la primera tira de píxeles en el eje Y. Una vez has pasado ese tramo ya no colisionará. La corredora supera ese tramo al saltar, en el caso que dices.

Por lo tanto es algo "normal", si hiciese que todo el obstáculo fuese colisionable, la dificultad aumentaría demasiado y tendría que alargar el salto. Además, el juego tendría que hacer bastantes más cálculos en cada bucle, lo cual podría empezar a ralentizarlo en ciertos PC's.

1 3 respuestas
autlos

#51 Ya que los obstaculos son rectangulares, no usar rectángulos para colisiones en este caso es una tontería. Puedes añadir un pequeño padding a las dimensiones del rectángulo de colisiones para arreglar tu problema de "sería muy difícil"

1 respuesta
BLZKZ

#51 las colisiones en 2D se suelen tratar practicamente siempre como cajas, un ejemplo que siempre me gusta dar es este

2 2 respuestas
GreyShock

#51 nononono sin excusas. Lo único que tienes que hacer es un simple if en el que si no estás tocando el suelo no puedas agacharte!

#53 Muy guapo lo del Street Fighter, molaría poder verlo en movimiento, lo has sacado de algún video?

3 respuestas
Wasd

#52 #53 Y como harías la comprobación de colisión de forma eficiente?
A mi solo se me ocurre algo como: (pseudo-code hecho rápido y mal)
Siendo box1 el jugador y box2 el obstáculo y sabiendo que la coordenada 0 0 es la esquina superior izquierda:

if(box1.x + box1.width <= box2.x ){ //Comprobación colisión en eje X
  if(box1.y >= box2.y && box1.y + box1.height <= box2.y + box2.height){  //Comprobación colisión en eje Y
    return true;
  }
  return false;
}

Este es el estilo de colisiones que he usado en este juego. Dudo mucho que sea medianamente eficiente, aunque me he topado con librerías de colisiones que utilizaban un sistema igual o muy similar...

#54 Lo hice, y luego lo quité, porque conforme juegas algunos obstáculos se complican ya que se juntan, si tuvieses que terminar el salto a veces te comerías dos obstáculos en el aire.

4 respuestas
rageshow

#54 También llamadas hit boxes, algo muy a tener en cuenta en juegos de lucha/shooters (si te lo tomas muy enserio claro)

4 2 respuestas
BLZKZ

#54 algo vi pero no encuentro el video, es como dice #56

De hecho en el cs 1.6 habia bastante polémica con el asunto

#55 haz una función que pasados dos rectángulos calcule si están superpuestos, te ahorras tener que mirar coordenadas todo el rato

Edit:

Tenía este enlace entre mis marcadores desde hace años imagino que te servirá http://juank.black-byte.com/xna-colisiones-2d/

2 respuestas
Wasd

#57 Es que la única forma que conozco de saber si algo está superpuesto a algo es esta. Es a lo que me refiero, los típicos "player.collide(obstacle)" de jQuery por ejemplo, por lo que he visto, utilizan este mismo sistema de coordenadas.

#57 Gracias! Le echaré un ojo :)

GreyShock

#56 #57 a ver, sé lo que es una hitbox xD quería ver el video del street fighter en funcionamiento :P

#55 Yo le veo dos soluciones, o una animación extra para el descenso rápido, o un rediseño de obstáculos (comprobar que tras un salto, se deja el espacio mínimo para agacharse), depende del diseño de juego que quieras implementar, pero así tal cual parece un glitch. Eso sí, es tu juego y te lo f***** como quieres :P

Por cierto, si agacharse tuviera un tiempo limitado le daría un añadido al reto. En Jailbreaker 2 tienen la mecánica de saltar y agacharse también como base.

Meleagant

#55 La forma más sencilla es que tengas una función para comprobar colisiones, teniendo en cuenta únicamente los 4 puntos que representan las esquinas.

Dependiendo de la posición de ambas, deberás comprobar unos puntos u otros.

1
Tema cerrado