frank in the hole

Czhincksx

¡Saludos! Abro este hilo para presentaros mi primer juego Android.

Lo primero es que Project Ghost no es le nombre del juego. El nombre está por decidir, por lo que he optado por poner el nombre del proyecto. Cuando lo tenga molestaré a un mod para ver si me puede cambiar el título.

El juego es un plataformas 2D de dificultad alta. Espero tenerlo listo para aproximadamente el 20 de Julio.

Llevo algo menos de un mes con él. Hasta ahora tengo hechos 18 niveles de 32, aunque el tema de animaciones, sprites y lógica del juego está prácticamente terminado. Hacer los niveles es cuestión de imaginarlos y colocar los bloque es en el escenario (de vez en cuando me toca hacer algún script).

La verdad es que el trabajo avanza muy rápido. Si tuviera que copiar un nivel, no me llevaría más de 5 ó 10 minutos, pero en lo que se me va el tiempo es en pensarlos. Por eso sólo hago 1 ó 2 al día.

Os presento al protagonista:

Un cirujano plástico de éxito mundial, que por circunstancias de la vida va vestido con una cortina de ducha y debe salvar el mundo.

No quiero profundizar más en la historia para no matar la sorpresa. Habrá 4 mundos de 8 niveles. Entre cada mundo una "cinemática" hecha a base de dibujos en la que avanzará la historia, con lo que al final serán 5 las cinemáticas principales. Además incluiré alguna extra que se desbloqueará al conseguir ciertos objetos.

Un par de gifs de la jugabilidad. Perdón por la calidad, es lo que saca el programa que me bajé...

En este primero podemos ver la animación de respawn en un nivel.

Aquí se ve como hay que hacer para escalar un muro.

No he mostrado los controles deliberadamente porque prefiero enseñarlos durante el juego con un vídeo grabando el móvil. Como ahora no tengo la cámara lista ni nada lo reservo para más adelante. Sólo decir que están específicamente diseñados para pantallas tácticles (es de lo que más orgulloso estoy :) ), y aunque no es un juego de avance automático, una vez te acostumbras a ellos es fácil controlar con precisión al presonaje.

Aquí una muestra de un nivel algo más avanzado del primer mundo (Yellow World!).

¿Qué me queda?

-Terminar los 13 niveles y medio que me faltan.
-Cambiar el diseño de los menús.
-Añadir la música (que me la va a hacer mi hermano cuando acabe los exámenes).
-Añadir la pantalla del contenido extra en el menú principal (cinemáticas + objetos desbloqueables).
-Añadir pantalla de opciones en el menú principal (audio y tutorial).
-Crear el tutorial para le primer nivel.
-Hacer los dibujos de las cinemáticas.
-Incluir varios idiomas (mínimo inglés y español).

Luego actualizo con más info. Subiré una captura de los menús, aunque sean con diseños cutres-provisionales.

5
Periwin

#1 Interesante, me mola la idea (aunque al prota no termino de verlo bien del todo, será por la segunda barriga que le sale en la espalda) :D Por lo demás tiene buena pinta, sigue informando de los avances :)

1 1 respuesta
Czhincksx

#2 Gracias jaja, quizás lo retoque. Como ves los gráficos no son lo mío.

Gif del menú principal. Está la funcionalidad pero no el diseño.

Un par de gifs con distintos tipos de materiales con los que habrá que interactuar:

1
fran86

como se graban los gifs?

1 respuesta
Czhincksx

#4 Capturo la pantalla con un programa y luego lo paso a gif.

fran86

y como se llama el programa que te lo pasa a gif?

2 respuestas
Czhincksx

#6 Free video converter creo que lo hace para Windows. En Mac me he instalado total video converter.

1 respuesta
Czhincksx

Estoy un poco preocupado. Empiezo a pensar que el aspecto es más importante de lo que creía y que es demasiado feo como para que nadie se lo baje... Quizás parezca demasiado amateur.

Os dejo un gif del nivel 2-3 que grabé ayer, donde se empieza a complicar algo:

Por cierto, tengo ciertas dudas en el tema de la publicidad. Pensaba poner un banner de AdMob sólo durante los menús del juego. Imaginemos que un usuario pasa 5 segundos en el menú antes de iniciar un nivel. ¿Es suficiente como para que cargue un anuncio y cuente la impresión? También había pensado poner un anuncio a pantalla completa cada X partidas, pero no sé cómo va eso. Estoy usando un plugin de AdMob para Unity y no parece que de la opción de cargar anuncios de ese tamaño.

http://forum.unity3d.com/threads/free-admob-plugin-simple-prefab.167731/

B

No sé si es por los frames que se pueda comer el gif o algo, pero a mi parecer el juego va como muy "lento", el efecto de gravedad es como si el personaje estuviese en la luna, no cae rápido.

Creo que siendo un platformer le vendría bien que fuera un poco más rapidillo, así el jugador tiene que reaccionar más rápido y más guay ^^

Por lo demás me encanta

1 respuesta
karlozalb

#7 Mola el juego, tampoco te comas la cabeza porque parezca demasiado amateur, mira flappy bird con lo sumamente cutre que es la que ha liado. Ya sabes el dicho, "más vale caer en gracia que ser gracioso", y si el juego engancha... al final la gente se adapta a los gráficos.

Opino como midgard, veo la física como si estuvieras manejando objetos inmensos, como muy pesados.

#6 Y sobre el tema gifs, , prueba gifcam, es gratis http://blog.bahraniapps.com/gifcam/, te ajusta automáticamente la paleta para obtener el mejor resultado, puedes elegir los FPS y demás virguerías, y es muy fácil de usar (el autor acepta donaciones :P).

1 respuesta
Czhincksx

#9 #10 Muchas gracias :)

He aumentado un poco la gravedad (de 7 a 8.5) y al mismo tiempo he aumentado la fuerza del salto, para que siga llegando a la misma altura.

Ahora lo pruebo con el móvil y luego subo un nuevo gif (hecho con gifcam XD).

¿Qué os parece el nombre "Frank in the hole"? ¿Muy complicado? Frank es el nombre del protagonista.

1
karlozalb

A mi me gusta :)

Czhincksx

Gracias :D

No he podido usar ese programa para los gifs porque está sólo para windows y reiniciando y actualizando se me hubiera ido media tarde.

Traigo un nuevo gif con otro tipo de bloques con los que se puede interactuar y la nueva gravedad. Me gusta más así. Además, como se mueve más rápido puedes reaccionar con un margen mayor para esquivar ciertos objetos. En ese aspecto ahora es más fácil, aunque también el tiempo de reacción en las caídas es menor así que queda compensada la dificultad :D

Ya de paso pongo el código del nuevo objeto, por si a alguien le interesa. Es bastante básico en realidad, pero para el que tenga curiosidad sobre cómo va Unity...

if(coll.gameObject.tag == "ReboteB" && !reboteDone){
			reboteDone = true;
			Vector2 v = -prevVelocity;
			v.x = 0f;
			rigidbody2D.AddForce(Vector2.up * reboteForce + v * 95f);
		}

Al impactar salta con una fuerza hacia arriba igual a reboteForce + otra fuerza proporcional a la velocidad de caída que llevaba. Por eso la altura del rebote aumenta poco a poco hasta un cierto límite.

reboteDone sirve para que no aplique la fuerza más de una vez al pisar varios bloques en el mismo fotograma (aunque ya no pasa porque puse un único collider).

1
E

muy bueno! buen curro te estas pegando

1 respuesta
Czhincksx

#14 Gracias :) ¡Me quedan 8 niveles para terminar la parte más complicada!

Es un quebradero de cabeza pensar los últimos niveles. Aunque reutilice ciertas cosas intento que no se parezcan mucho unos a otros y me quedo sin ideas XD

mr_badger

hay enlace de descarga o aun no?

1 respuesta
Czhincksx

#16 No está terminado aún, me faltan unas 3 semanas.

Ya estoy con los últimos 8 niveles (voy más lento de lo esperado, se complica el diseño según avanza la dificultad y utilizo las ideas que tenía).

Me faltan las cinemáticas, música, arreglar los menús y meter los extras.

Los extras son para motivar a coger las esferas de cada nivel.

32 niveles x3 esferas (naranja, verde, azul) -> 96 esferas.

Al coger 32 de un tipo desbloqueas una cinemática final nueva que extiende a la principal, y otra más si coges las 96 esferas. Además, según vas cogiendo cierto número desbloqueas fotos del desarrollo, imágenes de prototipos, de la mesa de trabajo y chorradas de esas XD

Czhincksx

Bueno aquí traigo el primer trailer. El trailer es bastante... horrible XD La música no es definitiva. La hace mi hermano y aún le queda, pero quería sacar el trailer ya para que me dierais vuestra opinión. Más adelante lo volveré a subir mejor hecho, para ponerlo en la web y en la página de google play.

A parte he añadido tablas de marcadores con los rankings de los mejores tiempos por cada nivel y voy a meter logros de google play service.

Por cierto ya tengo el dominio de la web: www.veryfathamster.com

Y página de facebook: www.facebook.com/veryfathamster

#19 Buff lo peor es el tema de pensar los niveles. Lo he dejado parado porque estaba ya saturado. Quiero que sean todos muy diferentes y sí que soñaba con ellos XD

4 2 respuestas
Aidanciyo

Si me sueño con los juego que yo desarrollo, no me puedo imaginar como será soñar con Frank!

1
larkkkattack

#18 felicidades por acabarloooooooooo!!!

1 respuesta
B

#18 Oye, viendo el trailer veo algo que falta muy grave, una animación para cuando esté cayendo! Que si no se queda el personaje muy en plan "meh, floto en el aire" y no mola!

Por lo demás, felicidades, me gusta el nombre tuyo comercial xDD

1 respuesta
Czhincksx

#20 Gracias, aunque no está acabado aún jaja Me faltan un par de semanas de trabajo todavía.

#21 Oki, me lo apunto en la lista de cosas pendientes. Gracias :)

Czhincksx

Se retrasa hasta finales de Agosto :( La introducción y demás secuencias me iban a llevar mucho más tiempo del esperado. Ayer me puse a hacer una y era excesivamente cutre, con lo que tendré que dedicarle más horas para que al menos se vea algo trabajado.

Aquí lo podéis ver. Quería darle efecto viñetas animadas pero quedó efecto niñodecincoaños.

Lo que el presentador de la tele diría en los subtítulos es algo así como: "Si se come la zanahoria será oficialmente el hamster más gordo del mundo".
El vídeo está puesto como oculto. Espero que sea verdad que no sale en el canal ni nada XD

Por cierto, ya tengo hecho un nivel más, me faltan sólo 5 :) Por suerte sin tantas prisas podré corregir algún bug que tengo por ahí :D

PD: Ya podéis intuir de qué va el argumento jajaja

1
mr_badger

Las malditas secuencias o intros, la mente las crea en un segundo, pero la mano tarda días.

Opinion de un colgao: El efecto niñocincoaños lo peta, como no dibujes bien y lo intentes hacer por "encima de tus posibilidades" te cansaras, te quemara y posiblemente quede menos puntazo que el estilo actual que mola mil. :D

Opinion contradictoria del mismo colgao: Yo empeze a hacer texturas handpainted sin saber casi nada y ahora gracias a esforzame y muchoas semanas de darle y darle y darle... ahora las hago decentes y en un momento, pero claro yo voy poco a poco y sin ninguna prisa.

Czhincksx

Bufff qué difícil decisión XD Bueno como tengo más tiempo probaré varios estilos a ver cuál queda mejor. Ya los iré subiendo según los haga para ver vuestra opinión. Voy a centrarme en acabar el juego, corregir bugs y meter idiomas y logros. Cuando esté eso terminado a lo mejor me tomo las escenas desde otra perspectiva.

trinee

¿Por qué no pides a alguien que te ayude con el apartado artístico (diseño y animación)?

2 respuestas
larkkkattack

#26 Porque el diseño de ese personaje es DIOS

2 1 respuesta
Czhincksx

#27 ajjajajajja

#26 Al ser mi primer juego quería hacerlo todo yo. Sacarlo y aprender el proceso. Más adelante si necesito a un artista para otro proyecto podré decir: pues mira, puedo hacer este tipo de juegos... Además quiero tomar las decisiones. No tengo dinero para contratar, por lo que tendría que ser un socio y seguro que tiene su propia opinión. Por último tendría que retrasarlo todo si me toca cambiar los gráficos, y quiero sacarlo cuanto antes porque no iba a ser un juego basado en gráficos. Quería atraer con la jugabilidad.

1 respuesta
karlozalb

#28 No te agobies con las fechas, no te duermas en los laureles, pero tampoco te autoagobies, que así solo consigues retrasarte aún más, te lo digo por experiencia :), si necesitas 1 mes más pues 1 mes más!

1
7 días después
Czhincksx

El tema de los logros me está volviendo loco.

Estoy usando este plugin:

Revealing/Unlocking an Achievement

To unlock an achievement, use the Social.ReportProgress method with a progress value of 100.0f:

[code]using GooglePlayGames;
using UnityEngine.SocialPlatforms;
...
// unlock achievement (achievement ID "Cfjewijawiu_QA")
Social.ReportProgress("Cfjewijawiu_QA", 100.0f, (bool success) => {
    // handle success or failure
});[/code]

Notice that according to the expected behavior of Social.ReportProgress, a progress of 0.0f means revealing the achievement and a progress of 100.0f means unlocking the achievement. Therefore, to reveal an achievement (that was previously hidden) without unlocking it, simply call Social.ReportProgress with a progress of 0.0f.

Incrementing an Achievement

If your achievement is incremental, the Play Games implementation of Social.ReportProgress will try to behave as closely as possible to the expected behavior according to Unity's social API, but may not be exact. For this reason, we recommend that you do not use Social.ReportProgress for incremental achievements. Instead, use the PlayGamesPlatform.IncrementAchievement method, which is a Play Games extension.

[code]using GooglePlayGames;
using UnityEngine.SocialPlatforms;
...
// increment achievement (achievement ID "Cfjewijawiu_QA") by 5 steps
((PlayGamesPlatform) Social.Active).IncrementAchievement(
    "Cfjewijawiu_QA", 5, (bool success) => {
        // handle success or failure
});[/code]

El logro es el de terminar el juego. Son 32 niveles por lo que he creado un logro incremental de 32 pasos, con lo que uso el segundo método de los que he puesto aquí.

Al terminar un nivel, si es la primera vez que lo termino ejecuto la siguiente instrucción:

((PlayGamesPlatform) Social.Active).IncrementAchievement(
		"id_del_logro", 1, (bool success) => {
			if(success){
				int lvlSincs = PlayerPrefs.GetInt("LvlSinc");
				lvlSincs++;
				PlayerPrefs.SetInt("LvlSinc", lvlSincs);
		}
	});

Incremento el logro en 1 unidad y, en caso de que haya tenido éxito, aumento en 1 el valor de "LvlSinc", que serían los niveles que he conseguido sincronizar.

En caso de que el jugador no estuviera logeado en ese momento o no tuviera internet, hay un botón de sincronizar en el menú.

int Sincs = PlayerPrefs.GetInt("LvlSinc");
		int lvlsToSinc = lvlNumber - Sincs;
		((PlayGamesPlatform) Social.Active).IncrementAchievement(
			"id_del_logro", lvlsToSinc, (bool success) => {
                        if(success)
			PlayerPrefs.SetInt("LvlSinc", lvlNumber);
		});

Le resto al nivel máximo que hemos llegado a pasarnos el número de niveles que se han sincronizado con éxito, y ese valor es en el que incremento el logro.

Eso es lo que hago, simplemente eso. El caso es que a veces funciona y otras veces no. Para empezar cuando me paso el primer nivel el logro dice que he completado el 6% (debería ser el 3%). Al pasarme el segundo dice que he completado el 12% del juego (debería ser el 6%) y al pasarme el tercero el 15%. Es decir, empieza sumando de 6 en 6 y luego pasa a sumar de 3 en 3.

No entiendo nada...

2 respuestas