Mostrando las entradas con la etiqueta Nerdy Run. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Nerdy Run. Mostrar todas las entradas

viernes, 5 de agosto de 2016

Nerdy Run publicado!!! | Nerdy Run released!!!

Español |  English



Al fin! Nerdy Run ya está disponible para descargar en la tienda de Google Play. Hasta ahora tuve buenas respuestas de parte de amigos/conocidos. 

Hasta mañana no voy a tener ningún tipo de dato como cantidad de descargas o similares, también tengo que esperar hasta que Admob reconozca la aplicación en Google Play para poder vincular la cuenta.

A partir de ahora mi trabajo va a ser compartir el juego, promocionarlo y escuchar las devoluciones de los usuarios. También voy a trabajar en una actualización en donde esté integrado Tappx para utilizar el servicio de Closs-Promotion.

Eso es todo por ahora, espero que disfruten el juego.



-L




------------------------------------------------------------------------------------------------------

 English



Finally! Nerdy Run is available on the Google Play store. So far I had good responses from my friends and people I know.

Until tomorrow I won't be able to tell how many downloads the game has or that kind of information, I have to wait for Admob too to recognize the game on the Play Store so I can link the app.

From now on my job will be to share the game, promote it and listen to the users' feedback. I'll also be working on an update where I'll implement Tappx so I can use the Cross-Promotion service.

That's all for now, I hope you enjoy the game.


-L

jueves, 4 de agosto de 2016

Preparando todo para mañana | Setting up everything for tomorrow

Español | English



Nerdy Run ya esta completamente terminado. Fue probado varias veces y todo funciona. Solo queda esperar hasta  mañana para ya subirlo a la tienda de Google Play.

Al final decidí lanzarlo solo con Admob, sin Tappx ya que para implementar Tapps necesito que la App ya esté publicada, por eso, primero la publicaré y luego haré las cosas necesarias para que ambos servicios funcionen al mismo tiempo.

Un dato curioso es que salió una nueva versión del plug-in de Admob para Unity, lo que generó nuevos conflictos a la hora de implementarlo, pero afortunadamente encontré una solución. Espero que no haya nuevos conflictos entre Admob y Tappx.

Fue un lindo momento cuando me di cuenta que finalmente estaba terminado, ya todo corregido, ya no más cosas pendientes. Ahora solo queda publicar y esperar a ver la opinión de la gente.


-L


------------------------------------------------------------------------------------------------------

English



Nerdy Run is completely finished. I was tested several times and it works. I just need to wait until tomorrow to launch it on the Google Play Store.

I decided finally to launch it only with Admob, as Tappx needs the App to be already launched, so I'll launch it with Admob and then take the steps needed to implement Tappx and make sure they both work properly at the same time.

Something unexpected was that Admob released a new plug-in for Unity, which has generated many problems when people tried to use it but luckily I've found a solution. I hope there aren't new conflicts between Tappx and Admob.

It was a nice moment when I realized it was finally over, everything fixed, no more things to add. Now I have to publish it and see what people think about my game.

-L

miércoles, 3 de agosto de 2016

De idea a proyecto | From an idea to a project

Español | English



Como pueden ver en la foto de la izquierda, todo empezó con cuadrados rojos y sin fondo. De a poco se fuero agregando los detalles, corrigiendo las mecánicas y mejorando todo.

Si bien este proyecto me llevó más tiempo de lo que le tenía planeado, estoy contento con lo que se logró. Se pudo combinar de una forma divertida la base de Infinite Runner con los mini-juegos para resolver.


Esta bueno ver estas fotos y ver la diferencia entre lo que se pensó y lo que resultó ser.


La primera idea que tuve fue de hacer el juego en donde el personaje corría hacia abajo y nos desplazamos de izquierda a derecha.



También para algunos mini-juegos hubieron conceptos que después fueron descartados.


De cuadrados rojos a personajes y puntuación. El juego claramente evolucionó desde su etapa inicial, por mi lado voy a seguir trabajando para tener el juego listo para el viernes!



-L

--------------------------------------------------------------------------------------------

English


As you can see on the foto of the left, it all stated with red squares and without a background. Little by little the details were being added, the mechanics fixed and everything was improved.

Although this project took me more time than what I had planned, I'm happy with what I've achieved. The Infinite Runner base was successfully combined with the mini-games.



It is nice to look at this pictures and see the difference between what was first thought and what it become.


The first idea I had was to make the game so that the character run downwards and we move to the left or right.


There were some concepts of the mini-games that were also thrown away.


From red squares to characters and score. The game clearly evolved since its initial stage, by my side I'll continue working on the game so its ready for Friday!


-L

lunes, 1 de agosto de 2016

Fecha de lanzamiento de Nerdy Run! | Nerdy Run Release Date!


Español | English




Hola a todos, hoy les vengo a comentar una buena noticia: Nerdy Run tiene fecha de lanzamiento!

Estoy trabajando en los últimos detalles y haciendo las últimas pruebas. La fecha de lanzamiento es este viernes 5/8/16. Por lo que el juego estará disponible el día siguiente,sábado, en la tienda de Google Play.

El juego es completamente gratis. Durante la semana iré publicando más detalles sobre los programas que usé y voy a contar algunas historias y anécdotas. Así también como subir más tutoriales sobre las mecánicas que fui utilizando.

Así que sigan al tanto por más noticias!

-L

---------------------------------------------------------------------------------------------------------


English





Hello everyone, today I'm here to tell some good news: Nerdy Run has a release date!

I'm working on the last details of the game and doing the last tests. The release date is this Friday 5/8/16. So the game will be available on Google Play the next day, Saturday.

The game is completely free. During the week I'll be posting more details about the programs that I used and I'm going to tell some stories and anecdotes that happened to me. Also, I'll be uploading more tutorials about the mechanics I used for the game.

So stay tuned for more news!

-L






lunes, 25 de julio de 2016

Arreglando Bugs de Nerdy Run! | Fixing Bugs of Nerdy Run!

Español | English



Nerdy Run esta cerca de terminar! Ahora se encuentra en la etapa de probar y corregir. El último aspecto que le falta es crear la música, para la cual estoy viendo si crearla de cero o utilizar música de alguien (con licencia gratis).

Los personajes ya están hechos, los mini-juegos corregidos y funcionan. El juego esta diseñado también para que a medida que ganemos los mini-juegos, tengamos menos tiempo para correr y para resolver los próximos problemas. Por ahora no subo ninguna foto porque se están realizando los detalles para la imagen de fondo que va a tener el juego.

Decidí no incorporar Google Play Services, ya que lo utilizaba solamente para la tabla de puntuaciones y agregaba mucho peso al juego en sí, por lo que por ahora no habrá tabla de puntuaciones. Tal vez en el futuro haga una actualización y agregué esta característica.

Por lo que ahora, Nerdy les dice que esperen, ya que el juego será lanzado pronto.



-L

-------------------------------------------------------------------------------------
English




Nerdy Run is almost finished! It is now in the stage of testing-fixing. The last thing that needs to be created is the music, for which I'm asking myself if I should create it or use someone else's music (royalty-free)

The characters are made, the mini-games fixed and they work. The game is design so that when we win  the mini-games we then have less time to run and solve the next problems. I don't upload any picture now because the last details of the background image are being made.

I decided no to add Google Play Seriveces, as I would use it only for the Highscore table and it adds so much weight to the game size, so I've decided to don't add a Highscore table. In the future I may create an update for the game where I add this feature.

But for now, Nerdy tells you to wait, as the game is going to be released soon.




-L

miércoles, 6 de julio de 2016

Bienvenidos Profesores! | Welcome Professors!

Español | English


Sigo trabajando con el arte, así que hoy les traigo a los personajes secundarios que van a participar del juego. Son los personajes que aparecen cuando entramos un mini-juego. Como son 4 mini-juegos, son 4 profesores, cada uno de acorde a la "clase" (el mini-juego) que se esta jugando.


Profesor de Matemáticas


Este personaje lo había creado al principio de todo, quería que fuera cómico y que se note que es un profesor.


Profesor de Gimnasia


Para este personaje creé a un clásico estereotipo de profesor de gimnasia, vestido con ropa deportiva y con silbato.


Profesora de Química


Para crear a esta profesora necesitaba marcar el estereotipo, para eso se me ocurrió crear la bata de laboratorio y una vestimenta casual, agregué un detalle en el pelo para remarcar que es un personaje femenino.


Profesor de electrónica


Este fue el último que creé y en donde vi mi progreso con el Pixel Art, si bien es un modelo básico, es el que más fácil pude sombrear y en el cual se puede ver más detalle (como en la parte inferior izquierda del buzo). 

Todos los Sprites son de 200x200 pixels y fueron hechos en el programa Aseprite. La falta de los detalles es también debido a que, como las pantallas de celular son relativamente chicas, los detalles no se iban a apreciar demasiado. El color de los personajes es casi el mismo para todos ya que todavía no soy muy hábil utilizando la paleta indexada de 256 colores.

Falta crear un par de Assets más para tener ya listo todo el arte. Luego de eso entraría en la fase de corregir y mejorar, faltando poco para la publicación del juego!

-L


---------------------------------------------------------------

English



I'm still working on the art, so today I bring the secondary characters that will participate on the game. The characters show up when we enter a mini-game, As there are 4 mini-games, there are 4 professors, one for each class and everyone fits its class.

Math Professor


This character was created at the beginning of the game, I wanted it to be funny and make it notice that it is a professor


Gym Professor


For this character I created the classic stereotype of a gym professor, dressed with sport clothes and a whistle


Chemistry Professor


To create this professor I needed to clearly mark the stereotype, that is why I made the lab coat and casual clothe, I added the detail on the hair to stand out the fact that this is a female character


Electronic professor


This was the last one I created and where I could see my progress with Pixel Art, although it is a basic model, it was the character in which I could create shades more easily and where I could create more detail (as you can see in the button right corner of the clothes)

All the Sprites are of 200x200 pixels and where made with the program Aseprite. The lack of detail is also for the reason that the screen of mobile devices are too small, so the details wouldn't be much appreciated. The color of the characters are almost the same for everyone as I'm not very skilled using a 256 color index palette.

There are still some Assets that need to be created and I'm done with all the art. After that, the game will move to the stage of fixing and improving, not taking too long before the game is published!

-L

domingo, 12 de junio de 2016

Falta poco! | Almost there!

Español | English


De a poco seguimos avanzando. Ya casi termino con la programación, las lógicas están hechas, los mini-juegos creados y las dificultades creadas.

Mi mayor complicación ahora, como mencioné antes, es crear el arte del juego. Lo que dejé para el final son los personajes que van a aparecer (tanto el principal como los secundarios), como el mapa mismo del juego. Lo bueno es que no necesito modificar mucho, ya que simplemente les agrego las imágenes correspondientes a los objetos que tenía antes.

Las últimas modificaciones que se hicieron fueron:
  • Solucionar problemas de colisión entre los objetos que agarramos.
  • Creé el botón de pausa.
  • Se modificó el juego para que se complique a medida que avanzamos
  • Se agregaron textos al agarrar cosas.
De el último elemento de la lista voy a dedicarme más en detalle a futuro, ya que no se podía hacer de forma directa sino que había que modificar algunas cosas. Más adelante también voy a hacer tutoriales sobre como hacer las cosas que hice.

Esto les dejo por ahora sigan al tanto que no falta mucho para que el juego este en la Play Store.

-L

---------------------------------------------------------------------

English


Little by little we keep moving forward. I'm almost done with all the programming, the logics are made, the mini-games are created and the difficulties made.

My biggest problem right now, as I mentioned before, is the art of the game. What I left for the end was the characters (both the main characters and the secondary characters), as the main map of the game. The good thing is that I don't need to modify much, as I simply add the images I create to the corresponding objects that I had before.

The last modifications I did were:

  • Solve  problems with the collision between the objects we collect.
  • I created the pause botton.
  • I modified the game so that it is harder as we move forward.
  • I added texts that show up when we grab objects.
I'll dedicate more detail in the future to the last item of the list, as it can't be done directly because some configurations need to be made. In the future I'll also make tutorials telling how I did those things.

I leave you with this by now, keep up with the blog as it won't be long before the game is on Play Store.

-L

sábado, 14 de mayo de 2016

Progresando con el arte! | Making progress with the art!

Español | English


Para hoy les traigo todo lo que pude avanzar con respecto al arte para el videojuego, hice una calculadora, un cubo Rubik y un compás, que van a ser todos objetos que podemos agarrar. Cada Sprite es de tamaño 128x128 indexado y fueron hechos con Aseprite. Las imágenes tienen una marca de agua, en el caso de que alguien quiera utilizarlas, puede contactarse conmigo para que le envíe las versiones originales.


La calculadora en mi opinión es la imagen que mejor me salió de las 4 en total
Para el compás tarde un poco más de lo esperado ya que no me decidía entre hacer las sombras más notables o no marcarlas tanto.


El cubo fue el más fácil de todos ya que en lo que tuve que tener cuidado únicamente era en crear las líneas rectas y paralelas para que todos los cuadrados sean iguales.

No merece dedicarle demasiado detalle a cada objeto porque se va a perder, ya que como es un juego para móviles, los detalles van a ser tan pequeños que no se van a notar. Además de tener en cuenta que el juego en sí es de movimiento continuo, lo que lleva a que el jugador no pueda quedarse a admirar el detalle de los objetos. Por lo que lo importante más que nada son los grandes rasgos.

Me quedan por hacer 3 objetos que el personaje puede agarrar y lo demás son personajes, el mapa, los menúes y los mini-juegos. 

-L

-------------------------------------------------------------------------------
English


Today I bring you all the art I did for the video-game, I made a calculator, a Rubik's cube and a mathematical compass, which are all going to be objects which we can grab. Each Sprite is 128x128 indexed and where made using Aseprite. The images have a watermark, in case someone want to use any image, he/she can contact me so I can send him/her the original version.

This calculator in my opinion is the best one I made of the 4 I draw.

For the compass I spend a little bit more of time than I expected because I couldn't decide whether I want with the shadows more notable or more smooth.


The cube was the easiest one, the only thing I needed to take care of where to make the lines straight and parallel so the cubes have the same size.

It isn't worth to take care too much worry with the details as they are going to be lost, as it is a mobile game, the details will be so small they are going to be hard to see. Also, keeping in mind the game keeps the player in continuous movement, this takes away the chance for the player to be still looking the details of the objects. So that really matters are the main features of each object.

I only have left 3 objects which the player can grab, the characters, the map, the menus and the mini-games.

-L

miércoles, 11 de mayo de 2016

Volviendo después de un largo tiempo | Coming back after a long while

Español | English

He vuelto! Primero que nada perdón por dejar olvidado a este blog, por tema de exámenes de la facultad tuve que dejar el proyecto a un lado pero ahora que ya pasaron puedo volver al trabajo!

Retomando donde había dejado antes, faltaba terminar algunos aspectos de programación, en particular con los mini-juegos. Ya he arreglado eso y muchos problemas más que había, por lo que la transición entre los mini-juegos y el juego principal esta completa.

Por otro lado, creé el sistema de puntuación. Simplemente se incrementa si ganamos un mini-juego o si agarramos ciertos objetos especiales "buenos" y  en caso de agarrar objetos "malos", perdemos puntos. Al ganar un mini-juego, tenemos un bonus de 250 puntos.

Un cambio técnico importante: Cambié la forma en la que trabaja el cronómetro, la cuestión era simple de ver, el reloj funcionaba en función del tiempo. Por otra parte, al entrar a un mini-juego, este reloj se detenía y si lo ganábamos, el reloj debía empezar de nuevo, por lo que debía pedirle que empiece de nuevo, esto traía conflicto porque el reloj lo restaba la propiedad Time.time, que incrementa a medida que el juego avanza, de esta manera, tuve que buscar otra manera que me permite "resetear" el reloj cuando quiera.

Quitando otros aspectos técnicos de los cuales hablaré más adelante, puedo afirmar que faltan solo unos pocos aspectos para poder terminar con toda la programación del juego, por lo que ya empecé a realizar el arte (del cual voy a publicar mis avances). Hasta ahora pude trabajar solamente en uno de los objetos que podremos agarrar mientras corremos:

La resolución es pequeña ya que intento de ahorrar la mayor cantidad de espacio posible para que el peso final del apk no sea tan elevado. Si bien debo retocar detalles de cada dibujo que vaya haciendo, sirven para más que nada tener ya casi armado el juego en general, al cual luego se le van a pulir todos los detalles.

-L


---------------------------------------------------------------------------------------

English


I'm back! First of all I have to say that I'm sorry for keeping this blog outdated, due to exams of the university I had to put aside the project for a while, but now I'm back on business!

Taking up from where I've left, I needed to finish a few aspects of programming, the mini-games on particular. I've fix that and many problems, so the transition between the mini-games and the main game is complete.

On the other hand, I created score system. It simply increments if we won a mini-game or if we grab certain "good" objects and in if we grab "bad" obects we lose points. When the player wins a mini-game, he/she has a bonus of 250 points.

A big technical upgrade: I've changed the way the chronometer works, the thing was easy to see, the clock worked based on time. On the other hand, when the player enters a mini-game, this clocks stops and if we win it, the clock needs to start again, for which I had to ask the clock to restart, but this caused conflict because the clock worked by the property "Time.time", which increments as the game goes forward, so I had to look for another way that could make me able to restart the clock whenever I want.

Keeping apart other technical aspects which I'll talk about them in the future, I can confirm that there are only few aspects left to finally finish with all the programming of the game, so I've started with the art (which I'll post my progress). For now I could only work on one of the objects that can be grabbed while we run:


The resolution is low because I'm trying to save as many space as I can so the final size of the apk isn't too big. Although I need to work on the details on each drawing I'll be making, they also work so I can put every piece together and then work on every detail in general.

-L

domingo, 27 de marzo de 2016

Mini-juegos terminados! | Mini-games finished!

Español | English

Luego de tanta tarea y tanto estudio pude volver a trabajar en mi juego para continuar donde había dejado antes, en los mini-juegos. El problema que tenía que resolver era sobre buscar una forma de que las opciones en los mini-juegos de preguntas y respuestas tomen lugares aleatorios cada vez que se cargaba una nueva pregunta.

Uno puede pensar que esto es sencillo ya que le debemos decir al juego que agarre cualquier elemento de la lista de opciones utilizando la herramienta Random.Range(), lo cual es casi acertado ya que hay una sutileza, si utilizamos esta herramienta en el Update() del juego, va a realizarse todo el tiempo. El efecto que crea es que, cuando se carga una pregunta, las opciones se estén cambiando constantemente.

Luego de mucho pensar sobre esto, encontré una sencilla solución que era restringir la función para que ocurra una sola vez, entonces al cargar una pregunta, la función agarra cualquier elemento de la lista de opciones y se lo asigna a un botón, una vez que ya le asignó a todos los botones, se detiene.

Pero esto trae nuevos problemas: ¿Qué pasa si justo se elige el mismo elemento para 2 botones distintos? Como la función es aleatoria, esta probabilidad era bastante grande, por lo que tuve que crear una función que analice si la opción que tiene el botón es única, si es repetida, que la opción se genere de nuevo.

Con esto ya todo solucionado pudimos terminar este inconveniente pero nos quedaba la última complicación, las preguntas se podían repetir. Al igual que con las opciones, las preguntas son elegidas aleatoriamente de una lista de preguntas. Para solucionar esto lo que hice fue crear un listado, en el cual iba a contener como elementos las preguntas que ya se hicieron, de este modo, al generar una nueva pregunta, primero debe analizar la lista para ver si la pregunta no se hizo antes, en el caso de que ya se haya hecho, se genera una nueva pregunta.

De este modo entonces se resolvieron todas las problemáticas que surgían con los mini-juegos, que eran principalmente dadas por utilizar métodos aleatorios para seleccionar los elementos. Lo único que quedaría por mejorar sería la transición de una pregunta a otra, aunque para esto se puede crear un cartel que diga "Correcto" cuando uno acierta, mientras, en el fondo, se genera la nueva pregunta. 

Ya que tengo los mini-juegos creados, una de mis próximas entradas será una guía técnica sobre como crear un tipo de mini-juego en Unity con todas las mejoras y "trucos" que conté en esta entrada.

-L

----------------------------------------------------------------------------------

English


Finally, after a lot of homework and after studying, I could came back to work on my game to continue from where I left it, the mini-games. The problem that I had to solve was about finding a way in which the options of the quiz mini-games take random places whenever a new question was loaded.

One can think that this is simple as we can tell the game to grab any element from the options list using the Random.Range() tool, which is almost true but there is one little problem, when we use this tool on the Update() function of the game, it is going to be done all the time. This creates the effect that, when a question is loaded, the options are constantly changing.

After giving it a lot of though, I found a simple solution which is restricting the function so it is done only once, so, when the question is loaded, the function will grab a random element from the options list and assign it to each button, once every button has its own option, its stops.

But this brings new problems as: What if the same element is chosen for two different buttons? As the function is random, it is very probable that this could happen, so I had to create a function that analyzes each if  each button's option is unique, if it is not, make that option to be generated again.

With all this solved, there was one last problem, the questions can be asked twice. As with the options, the questions are picked randomly from a list of questions. To solve this, what I did was to create a new list, on which, each element are the questions that were already made, this way, when generating a new question, it first needs to analyze if the question wasn't ask before, if that is the case, a new question will be generated.

By these means, all the problems that came with the mini-games are solved, which were mainly caused by using random methods to select the questions and answers. The only thing that could be done better is the transition from one question to the new one, which for this I could use a message that says "Correct" one the player when one succeeds, meanwhile, in the background, a new question is generated.

As I have all the mini-games created, one of my next entries is going to be a technical guide teaching how to create quiz mini-game in Unity with all these fixes and "tricks" I've mentioned.

-L

miércoles, 16 de marzo de 2016

Análisis de Sistema de puntuación para Nerdy Run | Nerdy Run score system analysis

Español | English



Como hoy tampoco pude dedicarme a trabajar en mi juego, me tomo el tiempo para planear las cosas que voy a hacer o analizar los hechos para aprovechar el tiempo. Un tema que puede ser un poco discutible sería sobre que sistema de puntuación usar.

Esto depende totalmente del juego, para mi anterior, lo que se me ocurrió fue utilizar la distancia en X que el jugador recorrió para medir la puntuación, que llevó a que el objetivo del juego no sea juntar mayor cantidad de puntos posibles sino recorrer la mayor distancia posible. En otros tipos de juegos podemos utilizar el tiempo o directamente crear objetos o acciones que nos den puntos y en base a cuantos objetos recolectamos, depende nuestra puntuación.

El juego va contener varios elementos de distintos tipos de juegos, tenemos el Infinite Runner, tenemos objetos que podemos agarra para acumular puntos y tenemos los mini-juegos. Aunque como hablé antes, los mini-juegos puede estar para limitar nuestro avance, haciendo que el jugador pierda si pierde un mini-juego. Pero dado todos estos distintos tipos de elementos tenemos que elegir por un sistema que nos permita puntuar al jugador de una manera lógica, tampoco queremos que el jugador por pisar una piedra gane +1000 puntos.

Lo que se podría hacer entonces es de nuevo tomar la distancia en X recorrida por el jugador pero a esta, modificarla. Podríamos hacer algo como distancia * Time.deltaTime , lo que va a reducir el valor total de la distancia a valores más pequeños de 100, que luego se pueden sumar con otros puntos que obtengamos al agarrar objetos.

También podemos tomar otra perspectiva y no hacer que el jugador gane puntos a medida que avanza sino a medida que agarra cierto objetos y/o cuando el jugador gana un mini-juegos. Lo que no me gusta mucho de este tipo de puntuación es que la puntuación es lineal, refiriéndome a que da "saltos", de la anterior manera, utilizando la distancia recorrida, la puntuación varía constantemente.

Teniendo estas dos posibilidades (hay mas posibilidades, pero estas dos son las que más me agradan para mi juego), queda por analizar haciendo pruebas, viendo si utilizando la distancia nos da valores no muy altos ya que no queremos una "inflación" de puntos, haciendo que en una partida promedio el jugador gane más de 10.000 puntos. Por lo que un par de pruebas con los dos sistemas resolverían este debate, aunque mi apuesta iría hacia utilizar la distancia recorrida ya que, como dije antes, el valor de la puntuación varía constantemente en vez de en forma lineal.

-L

-------------------------------------------------------------------------
English



As today I couldn't dedicate any time to the game, I take this time to plan the things I'm going to do in order to save time. A topic that can be a little bit arguable is which scoring system should the game use.

It always depends on the game, on my last game, what I decided to do was to use the reached distance of the player along the X axis to measure the score, which led the objective of the game from being to collect the highest amount of points available towards reach as far as you can. In other type of games we can use the time or just using objects or actions which will gave the player points and depending on how many objects we collect, we get our score.

The game will contain many elements which belong to different types of games, we have the Infinite Runner, we have objects to grab and add points and we have the mini-games. Although as I spoke before, the mini-games may be only to limit how much we are going to advance, making the player loses if he/she loses the mini-game. But for all those elements, we need to find a common system which let us give logical scores, we don't want the player to score +1000 for stepping on a rock.

What I can do is to use again the distance travelled along the X axis and modify it. We can make something like distance * Time.deltaTime, which will reduce the total value of the distance to values smaller than 100, which I can then use to add more points with the objects we grab.

We can also take another perspective and don't make the player earn points as long as he/she advances but if he/she grabs certain objects and/or when he/she wins the mini-games. What I don't like too much about this scoring system is that the score is lineal, meaning that it leaps, with the previous way, using the travelled distance, the score varies constantly.

Having these two alternatives (there are more possibilities but these were the those which I though were more suitable for the game), all that it's left is to make some tests, to see if using the travelled dinstance gives us values not too high as we don't want a score "inflation", meaning that we can't make the player earn 10.000 on an avarage game. For which some tests with each system will solve this debate, although if I would bet, I would bet on the travelled distance method because, as I said, the value of the score varies constantly rather than in a lineal way.

-L

martes, 15 de marzo de 2016

Explicando problemas de aleatoridad en Nerdy Run | Explaining problems with the random factor on Nerdy Run

Español | English

Hoy ya que no pude trabajar en el juego, dedico esta entrada para explicar con más detalle el problema que tengo y en el cual me había trabado. Se trata sobre la aleatoriedad de las preguntas en los mini-juegos de preguntas y respuestas. Estoy cerca de crear el tan prometido tutorial de como crear el mini-juego de preguntas y respuestas pero para eso primero quiero resolver esta problemática que se puede evitar fácilmente o no dependiendo el caso.

Lo que tenemos es obviamente una cantidad de preguntas, cada una con sus respuestas y la función que llama a las preguntas. Esta función debe ser aleatoria (a menos que se busque un patrón específico de preguntas) ya que en este tipo de juegos siempre vamos a querer preguntas nuevas para el jugador.

Lo peor que nos puede pasar (que es la situación en la que me encuentro yo) es que una pregunta se muestre dos veces seguidas, "regalandole" un punto extra al jugador. O también, que las respuestas estén siempre en el mismo orden, ya he hablado de como afecta esto, si las preguntas son siempre las mismas y sus respuestas están siempre en el mismo orden, el juego se convierte en un juego de memoria.

Pero como mencioné antes, esto puede no ser un inconveniente si contamos con una gran cantidad de preguntas, haciendo que la cantidad sea tan grande que la posibilidad de que se repita una pregunta sea muy poca. Hacer esto requiere tanto a pequeña como a gran escala una gran necesidad de almacenamiento en donde guardamos estas preguntas y sus respuestas. Si bien me pueden argumentar que a pequeña escala se pueden usar grandes variables de tipo Array, esto también nos genera un aumento en el peso del archivo total, además la cuestión de si la lógica del juego es muy "larga" en el sentido de que debe checkiar si la respuesta es correcta dentro de (ej) mil respuestas, se va a crear una gran dependencia de procesamiento. 

Lo que veo más conveniente a pequeña escala es el uso de algún tipo de lógica matemática que reduzca las chances de que se repita una pregunta. Aunque pueda ser difícil de pensar, para un mini-juego de aproximadamente cinco preguntas es una solución muy viable. Todo esta dificultad surge por el hecho de que no tenemos control sobre la aleatoriedad de la función cuando le decimos al juego "elegí una pregunta de entre estas 5". Tanto la rotación de las preguntas como de sus respuestas son una gran característica que disminuye la repetitividad de un juego.

-L

----------------------------------------------------------------------------------
English


As today I couldn't work on the game, I dedicate this entry to explain with more detail the problem that I'm having and where I got stuck. It's about the random factor in the quiz mini-games.n I'm close to write the much promised tutorial of how to make a quiz game, but first I need to solve this problem which can be easily avoided or not, depending the case.

What we have obviously is a set of questions, each one with it's possible answers and the function that calls the questions. This function needs to be random (unless what I'm looking for is to create a certain pattern) as for this type of game we will always want new questions for the player.

The worst thing that can happen to us (the situation where I'm currently at), is that the same question is shown twice, giving away an extra point for the player. Or also, having the answers always be shown in the same position, I've spoken about how this is bad before, if the questions are always the same and the answers are on the same position every time, the game beomes a memory game.

But as I mentioned before, this shouldn't be a problem if we rely on a big quantity of questions, making the database so big that the chance for a question to repeat itself. Doing this requires both for  big or small scale a high need of memory, where we will store the questions and their answers. Although one can argue with me and tell me that we can use huge Array type variables, which they will also make a remarkable incraese on the APK's file size. Also, if the logic that the game uses is too "long", as to make the game check the answer between a thousand possible solutions, it will create a big need of the processor.

What I think it's more suitable for small scale is to create some sort of mathematical logic which will reduce the chances of making a question repeat. Although it could be hard to think of, for a small quiz mini-game of about five questions, it's a very suitable option. All this difficulty comes from the fact that we don't have control over the game random decision as we are telling the game "choose one question between these five". Both the rotation of the questions as the rotation of the answers are a big characteristic that reduces the fact of repetitivity of a game.

-L

domingo, 13 de marzo de 2016

Día 13 de Nerdy Run - Arreglando errores de los mini-juegos | Day 13 of Nerdy Run! - Fixing bugs of the mini-games

Español | English

Día 13. Justo cuando quería comenzar a agregar cosas nuevas, decidí probar el juego y me di cuenta de que había un par de cosas que no funcionaban muy bien con los mini-juegos, específicamente con el de química y el de matemática que funcionan con la misma lógica.

El problema que tienen es sobre el contador de vidas que no funcionaba muy bien el hecho de que se puede repetir la misma pregunta seguida, cosa que no queremos. Lo primero es fácil de solucionar, lo segundo es más rebuscado ya que la función en sí es aleatoria, por lo que no puedo controlar directamente sino que tendré que buscar una manera de evitar que se pregunte la misma pregunta dos veces seguidas.

Después de eso tendré que seguir agregando los objetos que vamos a tener que agarrar o evadir. Programando como nos van a afectar al jugador o como nos pueden ayudar para los mini-juegos. Lo que si me entusiasma es que luego de esta parte y de darle forma final a todo, viene la parte de crear todos los sprites que voy a utilizar.

Por otra parte, sigo teniendo buenos resultados con Tappx aunque tengo días en los que tengo algunos clicks hacia mi publicidad (digamos por ejemplo 3) pero ninguna descarga, esto significa que la persona apretó la publicidad y no le gustó el juego suficiente en la ficha de Play Store o que algún desarrollador puede estar clickeando otras publicidades para ganar Tappx. Si lo que ocurre es la primera situación, tengo que mejorar las fotos de la ficha de Play Store.

-L


--------------------------------------------------------------------------
English

Day 13. Just when I wanted to add new things, I decided to test the game and realized that there were some parts which didn't work well on the mini-games, specifically the chemistry and the math game, which work with the same logic.

The problem was on the lives counter which didn't work well and the fact that one question could come up again twice, a feature we don't want. The first one was easy to solve, the second thing is more complicated as the function itself is random, so I can't directly control, so I want to find another way to avoid making the same question twice.

After that I'll have to keep adding objects which the player will have to grab or avoid. Programming how those objects will affect the player or how they can help us on the mini-games. What I'm most excited about after this part and shaping everything is the part of creating all the sprites of the game.

Aside from that, I keep having good results with Tappx although I do have some days on which I get clicks towards my ad (lets say fas an example 3) but 0 downloads, this means that the person who clicked the ad didn't like that game's Play Store page enough or that there may be some devs who are clicking the ads to earn Tappx. If what its happening is the first situtation, I'll need to update the Play Store images.

-L