Monday, January 25, 2016

Storyline


ACT I
Soren goes to school every day, he has just started his sophomore year in high school. On the first day of school during lunch he spots an unusually dressed woman. “Who is that? And why is she dressed like that?” he thought. The woman approaches him, “I’m Tess, I work for Princess Leandra, I need your help” she said. “Wahaha, Who is Princess Leandra? And why does she need me!?” Soren said jokingly. Tess continues to tell her story, “Commander Khaur is threatening to overthrow Princess Leandra and take over her kingdom, Xuscua. But to break through our defenses he needs a powerful sword,  the mighty sword of Xuscua, which is hidden deep withinthe dungeons of Xuscua. Without it he’s useless, but the sword contains a power which is greater than anyone’s ever seen. The crypt is protected by countless monsters, but we have reason to believe that commander Khaur is close to obtaining the sword. We think you are the chosen one to conquer the dungeon, obtain the sword and defeat Commander Khaur once and for all!”. “What!? Me!?” Soren exclaims, “You must be making a mistake, I don’t know the first thing about fighting.” “But Soren, we need your help! You are our last hope!” Tess cried out. Soren says “I’m sorry Tess, *chuckles* but there is nothing I can do for you.”
Tess returns to Princess Leandra whom had been waiting for Tess’ return. Unfortunately Tess had to deliver the bad news to Princess Leandra. Lucky for Princess Leandra Azalea picked up on everything. As soon as she heard she decided to do something about it. So Azalea flew to Soren’s school.
“Soren, psst, under your notebook” Azalea whispers from under Soren’s notebook, “Soren, I have heard the whole story from Tess. You have to go! You have to save Xuscua! I know you can do it, I will help! With me by your side, there’s no one that can hurt us! Please Soren! Help!” “Tess’ story was real? Do you really think I can do it?” Soren whispers back “To be quite honest with you, I am a little scared to go, who knows what would happen.” After a long time of Azalea begging and Soren coming up with more and more excuses, Soren finally accepts his fate. Soren will go deep into the crypts and retrieve  the mighty sword of Xuscua, and save the people of Xuscua...

Saturday, January 23, 2016

Final Blogpost

Why hello there and welcome to our very last GJG blog!

With this last post we are headed into our final week of this semester, and with that into the presentations of our game.
Everyone is working very hard as we speak. We are finishing up the final things and are getting ready for the presentation. And I can personally say the game is looking really good. Almost all of the art is ready (just in timeJ).
Two weeks ago Martin came up with an excel sheet about our classes and bugs to get a grip on everything that had to be done and how time consuming it would be. This was very helpful as we saw that it was quite a list that had to be worked down. At the start the buglist contained around 40 bugs, and as we speak it contains 7 bugs and none of them gamebreaking. The controller is coming along nicely, the prints are done and wired up and ready to be played with. The way it works is that the player presses/touches the copper surface of the button and that sends a signal to the controller which translates the signal to designated keypress.
We now have 3 floors and special floor called the “void”. Of course this is a bug where the floor disappears and remains an empty nothingness. We are trying to fix it but it proves to be harder than anticipated. Almost all the minibosses are ready to rain death and decay down upon Soren, the art is done and we are getting in the final tweaks that will make them a little more balanced and fun to play against. Balancing the game proves harder than first anticipated, mostly cause we play with a keyboard and the game itself is supposes to be played with the controller which makes it that much harder to play with. So the enemies are a bit over powered, mostly because they move too fast towards the player and that makes kiting rather hard with the controller. The movement with the controller is also rather difficult because you can’t really get a good grip on the controller to press the buttons but since you don’t really need to press and just touch the button it is manageable.
And of course we had some more difficulties with Git, some people (Mees) seem to forget that they must check everything they are committing and that it doesn’t contain anything from the classes of someone else. Or that you must first pull and then push instead of vice versa. But after some fixing we got it up and running again.
The achievements and online high scores are done, you can now try to compete with the very best players of Trippindicular, all seven of them. And if you really want a fast run to try and get a good score you can also use certain cheat codes to make your life that much easier.
Some of the cheats that can be used are: kill, which (you guessed it) kills all the enemies in the current room. Speedup, which gives you the movement speed gained from the sugary substance but now permanent. Motherlode, which gives you a total of 99 bombs, 99 keys, 99 coins and 99 healthpotions. Of course this is only for the weak and who aren’t ready for some super challenging gameplay.
We also added our final enemy, the exploding enemy. The exploding enemy is a bomb which rolls towards the player and once it collides with the player it explodes, beware because it’s fast. The design for the last floor is also done and we now have some nice stones and mossy rocks, because trees don’t grow underground (duh). We now have puzzle rooms which involves moving boulders towards the right position in a way that you can cross the water. At first the boulder didn’t really work and flew outside of the screen once you collided with it.
We finally chose an appropriate song for our game, it’s called elevator music and we think suits our game perfectly, for the starter room we have a special selected song.
Now that we are getting finished up with this final blogpost and the project. Everyone here at Gentle Jellyfish Games would like you thank you for being with us on this trip(pindicular).
We hope to see you at the symposium coming Friday and of course vote for us.

Thank you again and we hope to see you soon, GJG out.

Saturday, January 9, 2016

Blogpost Saturday (Friday) 9 January

Why hello there and welcome to another GJG blog!

I’d like to wish everyone the best of wishes for the coming year! Let’s make it a good one.

Everyone had a great vacation and Thomas even went to Portugal to enjoy Christmas with his family. Everyone still got his fingers attached to their hands and can still see right.
 Now that our vacation is over we are back on track on finishing up the game. The game is shaping up nicely with the cleanest of codes to ever be written.. that’s something we are going to focus on now, cleaning up our code so that it is readable for everyone and not just the person that wrote it. And what also helps with clean code is bug detection, and boy do we have some bugs. For example when the enemies collide with a wall or tree it is supposed to turn around and head in the opposite direction or a random direction based on how many turns it already made. But for some reason when it collides the sprite goes beyond the object and keeps turning around resulting in the enemies slowly dancing his way outside of the screen, weird. Another example of sloppy code what resulted in huge CPU usage was that someone (Mees) made a Console.Writeline statement inside the Update method without a condition, which resulted in, you guessed it, a LOT of strings contain “here” and “monsterroom”.
We would also like to mention how well git works when you don’t have much experience with it. It really is an awesome feature to have which screws over your code when someone else accidentally pushes something you are working on, or when you both work in the cs.proj file that the merge doesn’t work out and that you are to discard your own cs.proj edit and later add it again. Great stuff J.
We are progressing nicely and as the game enters its final stage I’d like to introduce some of the changes we made in the past couple of weeks. Enemies now wander around and based on a turn counter choose to wander sometimes facing a different direction, with this change it looks somewhat better as opposed to the mindless turning around. We now have different doors that unlock based on special conditions. For example we have the monster door that only opens up when the whole floor is cleared of enemies. Or treasure rooms that only open up if you have the key, keys are dropped by enemies or treasure chests. We now have some really cool sprites for the enemies, shopkeeper and the skunk! The animations are neat and fit really nicely in the game.
The coming weeks we are going to add the last parts of our game, finishing the last floor and adding the last enemies to the game, a couple of more items and the strong and scary final boss Khaur. Most of the time we are going to optimize the game, because on some of the less expensive laptops the game doesn’t run as smoothly as we would like and a game like this shouldn’t really be causing lag at this stage.
The coming weeks some of us also need to really pay attention to Mehdi, some of us didn’t pass the test for logica and need to step up their game for the coming weeks to pass the subject, to those I bid you good luck! The others of course congratulations on passing the test and not filling out all of the multiple choice questions.
And the group that plays Magic The Gathering continues to grow larger and larger, they finally had an even number of players, for reasons unknown that was especially important, then Mees decided he was also going to play the trading card game. I’m constantly getting pressured to also waste all of my money to buy the cards, unlike Diego who rather spends it on aesthetics than his actual deck. But upon seeing it getting played out it, looks really fun and the art work is something almost as good as Diego’s. The only problem I have is the cost of getting a decent deck.

Now that we are drawing to a close with this blogpost and heading into the final couple of weeks of this project I’d like to thank you all for reading and hope to see you next time around as we are going to give an update on all of the bugs that we have fixed. Until next time  

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