miércoles, 11 de marzo de 2015

rubyquest - Day Fourteen

We have come to the end of the second week coding RubyQuest and it's been a roller coaster ride.
The first four days were lost as previously noted, other than some experience and some graphics that we carried over. 

We finally implemented the AJAX post requests to check the player's answers against our database. It took a bit of time to get it just right, but it wasn't too complicated overall. The problem we were having was that we had the function inside our update, which runs at 60 frames per second. The problem this caused was that we would end up sending over 200 post requests every minute. This would have been a problem, having many users playing the game at the same time.

Fortunately, we realized we could have the function defined in our create, and just send it once from update, and we got to only send one post request now.

We also added collisions to the world map. It took a lot of time to do the graphics, doing an RPG was always going to be a very ambitious project, but we really wanted to do more and more every day, so we really had to get to the point where we said 'okay, this is more than enough for two weeks' and put an end to our world expansion. We have three layers of tiles, and we collide against the middle one. It is not quite pixel perfect yet because of some bounding box issues, but it gets the job done.

Pitching!

We have to now record a video of our play through to have for our pitch. We want to have it playing with a nice trailer for our audience. 

We are freezing the code Sunday night and we are right on schedule.

martes, 3 de marzo de 2015

rubyquest - Day Eleven

Last wednesday we had asked if we could demo our game live at Waffle Wednesdays, a weekly morning event where people from the Miami tech scene get together to eat waffles and discuss all matters tech. Sometimes, people do presentations so Team RubyQuest thought this would be a great opportunity to get some early feedback on how we were doing.

The only problem was that while we thought we would be just showing our game and getting feedback on that aspect, the expectations were that we would be actually pitching our entire application as if it were the official Pitch Day that's happening on March 12th, 2015. 

We only found out about those expectations today, Tuesday, at 10am, so that gave us less than 24 hours to prepare a slideshow, rehearse it and have a presentation ready. That would have been enough time except for the fact that we also have class and we also have to keep working on our project, so that was much less time.  

Where to Begin?

We asked a TA to help us and we had no idea were to begin. Our first ideas were really bad and we got negative feedback, but that helped us notice that we were approaching this pitch from the wrong angle. We started brainstorming and liked some ideas, and started putting things together at around 4:00pm. 

A key question asked by almost everybody was: 'why are you making an HTML5 game while everyone else is making a Rails application?' which seemed obvious to us, but obviously was not to everybody else. We realized that we needed to really show why we are making this game and what we hope to accomplish, which is to give back to the tech community that we are now a part of and that's been great to us, by preparing the next generation of coders in a very fun and immersive way. 

Here's were the concept of gamification comes in. We want to complement the user experience by offering a very engaging environment. Getting deep into a story to us is one way to achieve this and that's why we are making RubyQuest.

In Other News

We are almost done with incorporating the Puzzle functionality which is a big part of our game. After speaking to the 'guru' of our game, we get taught a lesson on Ruby, and an input box appears on our screen. The user needs to input a response to the challenge posted, and that input gets sent to our server, which checks our database, and comes back with either a successful or erroneous response.

We have the AJAX post request working on our server side, we just need to finish implementing it on our game.

After eleven days, we have really learned a lot, and every day we keep learning more and more, we feel very confident that we will be ready to take on the next challenge as soon as Wyncode ends, and the junior developer quest begins.

lunes, 2 de marzo de 2015

rubyquest - Day Eight

After a full week and a day since having started our project, we are finally at the point where we can focus on adding content without worrying about the basics of the game such as walking, animation and dialogue.

We decided to manipulate DOM elements in game and we are using jQuery for that. For example, our menu covers the entire screen and it pops into view if we press the 'M' key on our keyboard. Pressing M toggles it on and off for now, but we'll probably just show and have to click exit to toggle it off or something, we are still deciding. 

Dialogue works when our character is within a certain distance of a non-playable character and we press the spacebar. We are planning on adding a mini-game as well, and some easter eggs that will add flavor to the game. Even though for our pitch day we can only demo a couple of minutes of the game, we want to be as thorough as we can.

AJAX

A feature we still have to implement to our game is the puzzle challenge. Basically, we'll pop up an input box on our game and we have to type the challenge as is being described on our dialogue box. The challenge for us is going to be sending an AJAX post request to our server, to check against our database, and then get that get request back to keep going with the game. 

We are not sure how to do this yet, but I'm confident we can get it working by the end of the day.

Pair Programming

On Friday night, we implemented pair-programming for the first time, with one person driving and somebody else watching and helping out. It was a great learning experience as I had not done it personally and learned a lot from it. There are some pictures of that day that we will be posting later.

jueves, 26 de febrero de 2015

rubyquest - Day Four

So after four days of using LimeJS and the Google Closure Library to code our game, we realized that moving forward, it would bring us more problems than solutions and made a decision that should almost never be done: we switched frameworks. In our case, I believe that it actually made a lot of sense. LimeJS is very good for what we were trying to accomplish, but unfortunately, it's a framework that's not actively developed. We chose Phaser because it's the most popular JavaScript framework for games and it has a very nice and active community. 

So, after four days of coding, we decided to scratch everything and start from zero. Our biggest problem with LimeJS was doing animation and movement, and we were able to solve that with Phaser in about 4 hours. 

But No Framework Is Perfect

The problems with frameworks is that not one will cover everything that you need. While movement and animation is a lot easier with Phaser, transitioning from scene to scene is harder. Also, doing dialogue and inserting labels onto the screen can be hard. The way we are approaching that is by manipulating the DOM rather than the Canvas element of HTML only. 

We have jQuery code that toggles on/off our dialogue boxes, and also our main menu. This way, we call it from our game with the press of a button, and then it'll just show up on top of our game.
This approach might not be the tidiest but it works for what we are trying to do and it's pretty simple to implement. It'll also be good practice for when we have to implement our puzzles which will send an AJAX request to our server from an input box.

Our demo is almost done and we really need it for tomorrow as we need to present it for us to keep the project alive. 

domingo, 22 de febrero de 2015

rubyquest - Day One

After assembling the team on Friday, this past Saturday, February 21st, we finally sat down with team !Fer (pronounced 'not fair') to start coding. For our Pitch Day we are creating an Educational RPG, which may actually be the first of its kind. We decided to go very JavaScript heavy for our final project as it's not our strongest language and we really want to learn it. Also, HTML5 games are the future in gaming as it supports many different platforms. We are aiming for web and mobile support for our game.

The Framework


Our first board on what we are going to need for the game.
We chose LimeJS as the framework we'll use to run our game as it provides us with the best tools for what we are trying to accomplish. It uses the Google Closure Library, which was used to create Gmail for example. It's a very powerful library, but from what we've seen so far it can be quite tricky as it's pretty much a new language itself. 

We decided to take Friday night and Saturday morning as our 'learn the basics' day. That meant that we would watch tutorials, read documentation and look at source code to get a feeling of what we were getting into.  I can say that Mario, Travis and I went through this cycle of 'what am I doing!?!?' to 'I got this!!' and back to 'what am I doing!?!?' many times throughout the day.

The Coding


Since we need an actual website to run our game, we also decided to use Rails to power it up. We are going to need a database to store some information for our game, and we also want to have some features such as a Forum where players can interact, post questions, get help, etc. We also want to implement a Reviews section so we can get feedback on our game. Lastly, the website is going to have a Log In system that we will build from scratch instead of using Devise as it will not only be a great learning experience, but it will also let us customize it as we please.


             Second board on game functionality.


After quite a few hours of coding, we were able to accomplish quite a few things but we are having some problems using the keyboard to run our game. So far we've only been able to use the mouse which is not ideal but at least it works for now. We've reached out to different developers who have used LimeJS in the past to see if they can help us with this issue.



Going Forward



We really would like to solve the issue of using the keyboard for input, we are really going to need it for our puzzles, but so far we've created a mousepad that we can use to move our character around. We are using free art that we found online so far and we have not yet implemented animation to our walking but we will get there eventually I am sure. We'd like to have a five minute playable demo by Friday, so then we have another two weeks to really polish the game.



viernes, 19 de diciembre de 2014

Dios Me Odia (Por lo Menos a Nivel Deportivo)

Estoy convencido de que Dios me odia. No sé si me odia por completo, o solo un poco, pero estoy seguro de que como sabe que soy fanático del deporte, me castiga por ese lado. Si bien lo que estoy diciendo suena blasfemo, tengo suficiente evidencia como para comprobarlo.

Sabían que desde mediados del 2010: los Celtics perdieron la final contra los Lakers cuando Kendrick Perkins se rompió la rodilla en el ante último partido, en el 2011 tuve doble operación de hernias y aductor, la cual me relegó al banco de suplentes de Libertador FC y a estar a la sombra de Darío Gigante, en el 2012 en meses consecutivos los Patriots perdieron la final contra los Giants en el último minuto, LSU perdió la final contra Alabama (archirival) y Boca perdió la final de la Libertadores contra el Corinthians, nuevamente me tuve que operar, pero esta vez el labrum, en el 2013 Boca caería tan bajo que quedó 19no en el campeonato, y en el 2014 la selección llego a la final del Mundial solo para perder contra Alemania (otro archirival!) de la manera mas dolorosa posible?

Todo eso debería ser más que suficiente para demostrar que tengo razón, pero si necesitan más evidencia: desde el 2013 estoy 0-7 en Ping Pong contra Domi Blaquier, me abrí la ceja y me tuvieron que dar puntos, sufrí por una fascitis plantar unos ocho meses, San Lorenzo ganó la Libertadores por primera vez, y a fines de noviembre perdí en arco y flecha, beer pong y flip cup contra Trini Apellaniz. Y por si fuera poco, parece que me rompí el labrum otra vez (espero los resultados del lunes para confirmar). Las únicas alegrías fueron pocas: un torneo de fútbol, salir mejor arquero de otro, y ganar una carrera en Busch Gardens con Fede Ramos (nuestro competidor más cercano de edad tenía 11).

Mi relación con dios no siempre fue así. Yo creo que hasta el 2009/2010 me quería, pero en ese entonces algo cambió. Todavía no me decido si fue cuando choqué a 140km/h en junio del 2009 y perdí el auto, o cuando en mayo del 2010 decidí no hacer un MBA en una Ivy League (Harvard/Stanford) y me salí del camino que tenía planeado para mí. Espero poder reinvindicarme algún día y que todo vuelva a la normalidad, extraño esas Libertadores y esos Super Bowls. 

Si bien un equipo puede perder o no, la manera en la que mis equipos vienen perdiendo desde ese entonces deja muchas dudas. Los Celtics perdieron porque Kendrick Perkins se rompió los cruzados caminando solo. LSU perdió contra Alabama sin meter ni siquiera un punto (21-0) y sin haber pasado de mitad de cancha. Los Patriots perdieron contra los Giants al final del partido por la lesión de Rob Gronwkowski. Le ponía todas las fichas a Boca, pero después de haber dominado el primer partido, nos embocaron al final. La vuelta arrancó de terror, se lesionó el arquero Orión (había atajado varios penales, y había estado varios partidos sin que le hicieran goles) y desde ahí todo se vino abajo. 

Con el 2013 pensé que la mala suerte se iría, pero me desgarré por primera vez justo una semana antes de jugar Copa Latina, volvió Bianchi a Boca e hizo papelones, y en el 2014 nada mejoró. Del mundial no hablo porque todavía no lo superé nunca lo voy a superar. Pensé que la semi-final contra River sería el momento que todo cambiaría, pero no, otra vez esa mala suerte, y esa manera horrible de perder. Al minuto de juego, penal para Boca y obviamente que lo erramos. Dios siempre me genera ilusión solo para después pegarme una piña en el estómago y burlarse.

Así que Dios, ya sabes, soy consciente de que en algún momento nuestra relación se rompió, y acá te estoy demostrando que quiero hacer las paces, así que si pudieras hacer que los resultados del lunes salgan bien te lo re, re, reeee agradecería. Que Boca gane la Libertadores no estaría mal tampoco.


Preguntas, dudas, comentarios:


aca abajo en el blog,
ferchiincarranza@gmail.com, 
@efecarranza

lunes, 1 de diciembre de 2014

Thanksgiving


Como seres humanos tenemos esa maldita costumbre de quejarnos mas de la cuenta, de siempre querer mas y no valorar lo que si tenemos. Nunca le doy mucha bola a Thanksgiving (Dia de Accion de Gracias), para mi es un dia mas en el que la mayoria en Estados Unidos come pavo a la noche. Como necesito un tema nuevo para el blog y estoy probando esto de valorar mas las cosas, voy a dedicarle 2,000 palabras a darle las gracias a esas cosas que doy por hecho y que si no estuvieran realmente lo sufriria.

Familia

Todas las familias tienen sus problemas, y si bien con algunos miembros de la mia suelo chocar (hola papá!), doy las gracias por tener una buena familia con la que realmente paso cosas muy lindas. Tengo un hermano con el que puedo hablar de todo, un padre que es super compañero y cariñoso, mamá que me banca en todo y siempre está ahí para lo que yo pueda necesitar. Tengo mis primas que son mis mejores amigas. Primos mas chicos que son un amor y me re quieren, y disfruto muchisimo de verlos crecer. Tengo tios con los que puedo hablar de todo y me re ayudan. Doy las gracias por tener a la mayoria de mis abuelos vivos a pesar de que estan grandes y tienen algun que otro problema, pero siguen aca y los puedo ver.
Soy super familiero, me encanta compartir eventos familiares y ver como todos vamos creciendo y hacienda nuestra vida y soy un agradecido de poder vivirlo.

Amigos

Me dicen que soy la persona con mas amigos del mundo, y me causa gracia porque por ahí no me doy cuenta, pero tengo la suerte de realmente tener mucha gente en mi vida que puedo considerar un amigo (o amiga). Están los de siempre, y están los mas nuevos que a veces parecen de toda la vida. Si bien estando lejos a veces uno no habla tanto, o hasta cuando viajo por ahí no puedo verlos, esa amistad se conserva y se hace sentir cuando sí hablo, o cuando sí me puedo juntar.

Trabajo

A uno nunca le va a gustar un trabajo en su totalidad, si no no seria un trabajo. Hasta los que hacen lo que realmente les gusta, muchas veces deben pensar ‘uy, como me quedaría en casa hoy.’ Pero al ver la cantidad de personas que no pueden conseguir un trabajo, que no pueden conseguir un trabajo para estar bien económicamente sin tener que estresarse por llegar bien a fin de mes, me doy cuenta lo privilegiado que soy. Tengo la suerte de tener dos jefes excelentes y compañeros de trabajo que hacen que el ambiente sea muy positivo y que el dia a dia sea llevadero. Agradezco la flexibilidad que me dan para escaparme a Argentina cuando sufro de extrañitis extrema, o para hacer viajes como ir al mundial.

Salud

Tengo un par de amigos que por ahí estan pasando por unas etapas mas delicadas de salud y realmente aprecio que a pesar de un par de operaciones y cosas menores, tengo la posiblidad de estar bien y todavía poder jugar al fútbol que es lo que realmente amo en esta vida. Después de haber tenido varios problemas de estrés en el 2012 (buena idea para escribir en algún momento, como por ahí a veces pasamos muy malos momentos…pero eso, pasan!), hoy puedo decir que me siento re bien. No tengo nada más grave que algún que otro resfrío un par de veces por año.

Todo Lo Demas

Por último, le agradezco a Evan Spiegel por haber creado Snapchat y hacer que mis días laborales sean más llevaderos, por hacer posible que no queden registros de lo mal que canto en el auto, y por darme una aplicación para fasear a todos mis amigos seis veces por dia.
Hablando en serio, me considero un privilegiado y realmente agradezco todo lo que tengo, sobre todo esos pequeños detalles (se me acaba de ocurrir nuevo tema para el blog) que hacen que mi vida sea feliz.



Preguntas, dudas, comentarios:

@efecarranza en Twitter
ferchiincarranza@gmail.com

Y en los comentarios del blog.