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.


Friday, November 20, 2015

Gentle Jellyfish Games Intro

Why hello there, and welcome to another GJG blog!

Today we would like to introduce you to our topic of this wonderfull project. Our goal is to let you (the reader) enjoy the ride we are about to embark for the next two months. Enough sightseeing, lets delve deeper into the subject.

We here at GJG are going to enhance the original Zelda game, The Legend of Zelda for Nintendo Nes. We feel like the game lacked some of the joy we can see and experience in the modern games and thought to ourselves, what can we do to make LoZ just as much fun today as it was back then.

We'd like to introduce you to Soren: The Forgotten Chronicles!
With Soren: The Forgotten Chronicles we want to really explore all the good things from LoZ and implement some of the technological innovations we've experienced in the years that have passed since then.

Let's see what the old game had in store for us.
For starters the items in LoZ. there were several items in LoZ, namely: weapons, equipment, consumables and upgrades. All the names are pretty self-explanatory.
This tile-based game uses a grid of textures to build up a level. The tiles in the grid are a texture of 16 x 16 pixels. Because of this the art is very abstract, but still manages to represent the various environments and characters very well. We are going to enhance this by using 64 x 64 pixel tiles, which will allow us to make better use of the color combinations, and we are going to add shadow.
The sounds are created by none other than the legend Koji Kondo known for his work at Nintendo for games like LoZ and Mario. Most of the sounds are rather iconic and are still recognized to this day! despite all this the sounds in LoZ weren't received that well. We are going to make our own sound effects and music to (hopefully!) make a more pleasant experience while playing the game.
The AI in LoZ was pretty straightforward and made for somewhat easy gameplay. We are going to make a more advanced AI so that the game will still be fun but at the same time challenging.
And now the most anticipated part! What kind of innovative technology are we going to implement into the game. We are going to use a random floor generator. The random floor generator will connect the pre-determined floors at random. With this change we feel like it will keep the game exciting and engaging, because now each time you fire up the game it will be a complete new experience!
We are also going to introduce some new controls. Makey Makey is a concept which focusses on producing the same input ,which is normally produced by the mouse or keyboard, by touching a certain object (this can be anything!).  Makey Makey is a creative way to let the player be more engaged in the way he plays the game, with all this physical interaction the player will be more immersed in the game.

This rounds up our blogpost!


Until next time