Friday, December 18, 2015

Blogpost Friday 18 december

Why hello there and welcome to another GJG blog!

First off, I’d want to say that as I’m writing this we all finally have our well-deserved vacation.
Second, which is that we’re all glad that we are done with the first part of Logica voor Informatica.
Third, we want to congratulate Mees another time for passing his driver’s exam!

We are happy that we were able to demo our game at the presentation past Wednesday, all went well and we got to show everything we wanted to show. Our beautiful makey-makey case, 3D printed thanks to Bram, our improvised controller thanks to Martin who worked until way past bedtime to have something to demonstrate how makey-makey works. Those coins sure did their work at the presentation. Now that we’ve got to see the other presentation we’re encouraged to really give it our all and present a nice and entertaining game at the end of the semester.

The development of the game went really well the past two weeks, our random floor generator is finished, the items are coming along nicely, the AI is getting there (apart from the A* pathfinding in which we’ll be delving starting as of today), the only thing that is still rather absent is the artwork, but we are sure that Diego will eventually provide us with magnificent art styles and leave our jaws on the floor.
We were troubled by processing lag spikes for quite a long time in the past two weeks and we couldn’t figure out what was causing it. At first it looked like it was caused by the enemies, every time we went inside the attack range (if you do the enemy will call for a method that adjusts the velocity every update method) it spiked. But what harm could a couple of vector changes do? Turns out a lot! If it is called a lot of times for enemies we couldn’t even see ourselves. Turns out the past rooms were stored inside a GameObjectList but this list was never emptied and was kept being drawn underneath our current room. So as you went in and out of rooms it kept stacking and stacking until the game was unplayable. Luckily it was detected rather quickly and dealt with just as fast.

Sometimes merges on git don’t go as planned and crashed your entire project. We all worked inside the .proj file and the merge didn’t work out and the compile couldn’t be executed, which went that we didn’t have access to our content library. But by miracles unknown Diego managed to fix it.

As for our meeting on Friday. Some of us got our beer for free (again!). Mees even provided us with a whole plate filled with 72 different kind of snacks, what a generous lad. As it turned out, the night before, Martin was feeling really generous and gave out some steam codes to those who were still in the call, sadly I had left just before that. Of course we went to the KFC as of our now set ritual. After that we decided it was time to head home and call it a day.

In the past blog we hinted that we would show you the A* algorithm or at least explain it. We’re sorry to announce that you need to contain your excitement somewhat longer as we are currently really busy discovering the wonders of this algorithm ourselves. In the weeks to come we will uncover any secrets this algorithm has and present them to you.
The other classes and libraries are coming along well. We now have an additional menu state and beautiful sound effects.
The sound effects are recorded by Bram, who wanders around in is house searching for objects that will produce just the sound that we need for our game. The sound effects we already have are really solid and really enhance the way you experience the game.

We also introduced some new enemies to our arsenal. We now have burrowing enemies who will track you while they’re underground and will pop up if they are directly beneath you, and no the game hasn’t name changed again into whack a mole. The first mini-boss is now done and ready to rumble, it still can’t really do much, it stands still and shoots a bullet now and then but it will be devastating when we return next time around.

On that note I would like to thank you for reading and as we head into our vacation I wish everyone a merry Christmas and a happy new year.

See you next year!


Friday, December 4, 2015

GJG Blogpost Friday 4 december

Why hello there, and welcome to another GJG blog!

Today we are going to write about some of the fun stuff we did past weeks and update you about the current state of Trippindicular(name change was imminent).  We decided that Soren: The Forgotten Chronicles was a bit too cheesy and went with a (what we believe to be a ) better name.

Let’s kick off with all the fun we had the last two weeks.
Our weekly meeting with the tutor started off well, three out of seven people of our group we’re on time! Of course this would never happen again. After the meeting we went onward to head-butt (at least I did) ourselves against a wall to come-up with some enemies. The next day everyone was rather busy with coding (except Diego :), what a fine piece of art this guy is). And again not everyone was present on time at our meeting (which means by the rules we’ve set: the person who’s late buys everyone a beer), so we were already looking forward to Friday. That Friday we went to test our Makey Makey controller. And it worked with the first try! After we’ve had confirmed it worked we went onward to get a couple of alcoholic beverages, which we’re free for the most of us (thanks Bram and Thomas).  We went to the bar and had some fun times. We discovered that Mees’ internet is so bad that he actually didn’t know what twitch.tv is (can you believe it?). After we’ve explained all the dank memes to Mees and said goodbye to Thomas, who went home early because he was going to celebrate the birthday of his dad with his grandma the next day, we went to the KFC. Filled up with all those sweet chicken wings we wandered around town some more before heading home after a fun day.
At our next meeting with our tutor everyone was on time (like it should be of course!), this meant no free beers sadly.  After having discussed the game-design document and reviewing the agenda we noticed that we lacked some (okay, a lot) hours on our log. So that meant we had a lot of catching up to do this week. And as I am writing this I can say that we almost caught up with our schedule.  Now that we spent almost all Tuesday coding we went to discuss it the next day. We had a fun bugs in where the enemy spammed the attack projectile which caused the game to crash if the enemy attacked for a long time, it luckily didn’t take too long to discover what caused it (the projectile only went invisible and was still stored in the memory, oops!).

Now that we’re done with the fun part we can engage in the more serious part of this blog.
Let’s begin with the class structures. Level loading is handled in a class called levelloader(surprise!), which loads the level from a text file. The text file is interpreted in a switch case where each letter/number represents a certain tile, enemy or player. The order in which the floor is divided in rooms is handled in the floorbuilder, which randomly generates a certain path between the rooms which is solvable. The way this works is that the random floor generator takes a critical path and uses this path to at least generate a solvable floor and produces other random rooms (like treasure rooms and such) around it.
The libraries we use are produced by non-other than our own Martin Anthony Boers! The library contains all sorts of useful classes. There are all kinds of classes for all kinds of GameObjects, classes for Loaders and many more.
As mentioned earlier, we tested the Makey Makey controller and feel like we can explain this concept somewhat more. The controller works in such a way that it responds to electronic signals produced by the cables that are connected to the controller. The beauty of this is that you can use almost anything to produce these signals. The way we are going to implement this is by 3D printing (thanks for the service Bram) some sort of controller which goes on to the arm, from where you can manage the player’s inventory and attacks (we’re still in debate on how to handle the way you can move inside the game).

Now that we are drawing near to the end of this post we would like to thank you for reading this and hope to see you next time round.