We are:

We are:

Saturday, 23 January 2016

Update #4

Hello there!


This is the last update. Boohoo... So to make up for this terrible loss we'll mostly talk about fun stuff. (That and the serious updates mostly consist of dotting the i's and crossing the t's.)


Let’s first talk about the updates on the models and such. Apart for some promotional material and the bottom of the abyss Mario will fall into when he walks off a ledge everything is done. The models for the enemies, the blocks for the level structure, some decorative models for the background and sprites for the overlay, it’s all there, done and ready for use. Telling you what went right wouldn’t be as much fun as telling you what went wrong, so enjoy!

In the past few weeks the artists worked hard on finishing the models and animating them. The latter seemed to be the biggest pain in the butt. It took us about one and a half week to get the animations properly exported and imported into XNA. According to many forums this seemed to be a huge problem for most 3D Studio Max users but less for Blender users. For us this was the complete opposite. Max' animated models in 3D Studio eventually worked, but my (Deborah’s) models made in Blender still had a problem with the weight painting.


At some point I tried to fix this problem by giving literally every single point (vertex) a weight for every bone in the armature. This resulted in a very funny animation that made me think of the song Whip My Hair by Willow Smith. And for that reason I spent 10 minutes creating a video of that. So here it is: "Whip My Goomba". (Don’t mind the watermark please, I didn’t feel like starting up my Mac with proper video editing software…)


Anyway, the real fix of this problem is quite odd. Considering what I said earlier about the difference between Blender and 3DS, that is. Turned out that the animations (and therefor bone weighting) weren’t actually that bad. Because when Max imported my models into 3D Studio and exported them again (without changing a single thing) they suddenly worked!
Another occurring problem was the not loading of the textures, which was easily fixed in the end but it took us long enough to find that out. The not loading (or incorrectly loading, for that matter,) of the textures gave us images like these:
GoombaJoinedTheDarkSide.jpg WhatItLookedLike.jpg


The first being a full on black Goomba, he probably wants to be the next Darth Vader. The second image shows what the Koopa should have looked like, as it was in 3DS but in Visual Studio with XNA it turned out completely different. Until this point we still don’t really understand where the red came from but it’s fixed now.

Following up on that, the texture of the Koopa had more than that one problem. Something else was the scrambled up UV map. At some point it turned out like:
AoEsSzdLXj2eW8qx_eAnXsnwEVrsII765MqhVM4xRlvZ.jpg

If someone can make sense out this, as to which shape is connected to one another and where every part belongs to on the Koopa itself, congratulations!!

One last thing about the models and their animations, but not yet the last thing about the Koopa. His walking animation. 3D Studio had an option to create a walking animation. Without editing of the animation, this is what it turned into:



Now, on to the code related updates. During every process you write a few lines of code, more lines of code, and some more and then you go back to the first lines because you figured out something you wrote in the first place didn’t work out the way you wanted it to with the code you wrote later on or planned to write next. A common problem with this process that you rewrite a method under a new name, don’t delete the old one and forget to change the name within other methods so that it still uses the old one and doesn’t do what you want it to do anymore.

Another thing is that you write code that when you scroll through it manually it all makes sense and even after adding breakpoints it still seems like it should do just fine. But when you run the game it turns out that a single method keeps activating again and again.

These two things happened on the Thursday we spent a day from 10 in the morning to 9 in the evening working on the project (including eating dinner at the university). It made Joep and Thomas so desperate they almost went to talk to the conductor on the train to ask him if he may be a programmer in his “spare time” and if he knew a way to fix this.

The error that when we tried to load the models was… Big. I’ll just show you:

An0wRbbPtSaM8klukjKo9Z4bnOrzYLO_qlqiELW5_lMN.jpg

Something that happened a little before I uploaded this blog was a problem with the spawnpoint of the Koopa. (I swear, this is the last time I use the word Koopa on this blog, for like forever!) Basically the coordinates entered weren’t the coordinates it spawned at, making it look like this:

ScumbagSpawnpoint.jpg

The red circle indicates where it should have spawned. But as you can see that’s not where it ended up being. Scumbag spawnpoint…

Last few things: besides a few last bug fixes like the one mentioned above, the code to support a controller AND keyboard and commenting, lots of commenting and some more commenting the code is done. After that we still have some level design to do, because we don’t have enough levels to show what is all in the game yet, but that shouldn’t be too much work.

All things together the deadline on Monday won’t really be a problem for the progress we made. The game will be “done” (for as far a game is ever done) and ready to be played. We are really proud of what we've achieved so far.

Some last picture material of progress and problems:

AhyIobdg5FOR3t08MYL1uONWkfoDS05oaJQAOQs6OQ5X.jpg
This isn’t the final box art yet, but this is close to what it will eventually look like. Made by Giannina.

AtB7QZ8syKYdEkcA6dGien67l6dZNh18tyCh2L2lgVgC.jpg

Happy Bullet Bill because I accidentally drew his eyes upside-down. (Silly me.)

Before-After_Cannon.png

Uhm, yeah… Don’t even ask. All I’ll say is that I found out a simple way to make a drum. (Though it will cost you lots and lots of memory to load it.) If only I remembered which exact click I did when this happened, but in all honesty I don’t even know.

hashtaghuilen.jpg

I’m not sure if I want to talk about this one either. I spent so much time on fixing the texture but then I found out that I had been working in orthographic mode all this time. And when I switched back to perspective mode this is what happened and I wanted to delete all the progress I made, I’m not even kidding.

That’s it for this update. You just reached the end of this blog. So I’m just going to leave this here:

NINTENDO64--Super Mario 64_Nov24 5_52_10.png
See ya!

Saturday, 9 January 2016

Update #3

Hello again!

First off, we wish you all the best in this new year!

In this new update we mostly have fun stuff to talk about. The main reason: We had Christmas break and haven’t done the amount of work we should have done in those days. Shall we put the fun stuff before the serious again?

Let’s face it, Christmas break is the time to spend a lot of time with your family and friends. And that’s exactly what we did. We had planned seeing the Star Wars movie together, but we had some... Substantial hiccups concerning trains, train stations and the occasional mistake in the use of both of these caused said problems, however, we did see the movie! So let’s just stick with Thomas and I went to see it with another friend on the first Wednesday of the break and then Max, Joep, me and 3 other friends again the past Wednesday. Without giving spoilers, the film is better the less you know about the previous six films.

After the break we scheduled two meetings, one on Tuesday, one of Thursday. Tuesday was with the complete team for a change and this resulted in a socket crisis. Those rooms have only three sockets and with six laptops that’s not enough. On Thursday Christina and Giannina stayed home to work on the project there.

Max spent this week modeling the Koopa Troopa and when he was working on the foot on Thursday something happened that wasn’t supposed to in the first place. Every vertex in the object was pulled outwards and the foot looked like a big sea urchin. In case you don’t know what that looks like:

seaurchin.jpg
Koopa Troopa, a work in progress.
And I had to delete the fist of the Bullet Bill multiple times because for some reason it kept getting all messed up to the point of no return. Even CTRL+Z didn’t do the trick anymore.

But this is what that looks like right now (unfortunately still without textures):

BulletBill.jpg

And the said Goomba without textures, because those are still messed up:

Goomba.jpg

Of course we have a fireflower as well, to help our plumbing friend defeating said above foes.

Distractions were a major thing this week. Big and small. A bird hopping around on the roof of the neighbour building, text messages, hunger and funny bugs(the computer type not the insects).

Enough chit chatting, let’s give you a heads up on where we stand at the project. Giannina has finished her models and the other 3 artists are working on the last models.
With the code we’re kind of stuck until the collision works the way it has to. After the collision works properly the code can be finished and tested, because to test the level implemented we need to have the collision working. How else will we know that jumping on a Goomba actually kills it and not Mario? Or check if the Koopa shells don’t slide through the wall instead of bounce off of them.
The collision is priority number one as of now. In the meantime we are also working on creating and loading three dimensional levels through a simple text file. Mario’s opponents are given some basic brain function by adding the AI to these foes, making the game just that little harder than it would be without AI.
Giannina has finished her work as an artist and has joined Joep and Thomas as a programmer. She is currently working on the code for the player and enemies and help is much appreciated!

We’ve had a meeting with Maarten, our tutor, today. It was a short meeting where we analyzed what promotional work needs to be done before the symposium. We will need posters, flyers, a trailer and a dvd box cover. Max had a good idea for the trailer, but you will get to see that when it’s all ready and pretty. But, to give you some sort of idea of what it’s going to be like: it will involve, and I am in fact authorized to say this, Mario. And that's all you're getting for this update, but tune in again in two weeks for more!

Friday, 18 December 2015

Update #2



Hello there!

It’s been two weeks already and it’s time for a new update. Fun stuff first before we get down to the serious business again, shall we?

For the major deadlines due this week we had scheduled a meeting in the week before. And even though not all team members can show up at every meeting we always make the best time out of it. This one in particular I want to tell you about, the attendants were: Max, Joep, Thomas and me (Deborah). On a spare screen we projected a giant lit Christmas tree on one half and on the other half was Spotify projected with a playlist of Christmas pop songs.





Continuing on that meeting, the update Thomas’ laptop requested took way longer than expected. This caused some laughs, frustrations and delays. But instead of just wasting those two hours by doing nothing interesting and just staring at the screen he went to get the four of us lunch. That’s the kind of thing we do for each other. And I have to say (and maybe I’m speaking for the whole team when I do) that I actually feel quite lucky to be part of this team.

And continuing the things we forget from the last update. What did we forget these two weeks? Well mostly setting alarms at the right time and noting wrong dates. We all have our moments sometimes. Some more than other. (I’m one of the “some”, regrettably.)

In the past weeks we haven’t done a lot of fun stuff, even though programming our game is still considered fun to do. We mostly worked seriously on the game and in the meantime worked hard on our other lectures, because we had an exam coming up. By the time this was posted we can finally enjoy our Christmas Break. This will still include quite some Super Plumber Bros? time because we have a lot of catching up to do, especially in hours of work and not necessarily amount of work.

Now, down to business. I’ll keep it light this time, don’t you worry. The engine is now near done and we’ve reached a point where we can start implementing the first level so that it’s actually going to look like a real game. Or more specifically like the very first level of Super Mario Bros. You know, the classic 1-1?




For as far as the first level implementing goes, we have one straight path for now. No stairs, no platforms, no abysses. For the demo, this worked just fine. By the time the next update of this blog will be posted we hope to have a decent level finished. It may not contain all features yet, but as long as it has platforms (with plain brick blocks and power-up blocks) and a finish (staircase and flag). But for now it looks like this:


Add to that we worked hard on the models to have some of them ready to be shown to public during the presentation past Wednesday. Max finished the brick block and the coin and I made a mushroom. Even though there’s always room for improvement (especially mine, or maybe that’s just my opinion), this is the result so far:



Max has currently finished up the flag and I’m starting on the Goomba. Giannina has finished the green pipe and star model while Christina is working on fire flower. No pictures of those yet.

Enough about the models and back to the code. It has been checked this week and we got some decent commentary of things we can fix for our final result. One of the things mentioned was that we didn’t have enough comments for every method. O well. And our classes were a little too big with multiple uses, so we probably need to split classes in smaller partial classes which will somewhat change the class structure explained in the previous update.

Getting back on the subject of libraries from the previous post, we had some talk about that last week. Since we expected to take longer for every delivery that must be done we are kind of behind in hours and in the end we are going to have quite some spare hours with “nothing to do”. So we are going to need to grab some should have’s and put them on the must have list. One of those is most likely going to be the virtual reality. And since an Oculus Rift is too expensive to get our hands on we would opt for the Google Cardboard option. Problem is, XNA (in which we write our code) does not support this.

To solve this problem we would need to make a connection with Unity to stream the game through on our phones and in order to do this we will need to use an existing pre-made library, because this is way beyond our knowledge so far. In the end we’re still students and not (yet) professionals.

Anywho, that would be it for this update and we hope to see you back for a new update on the 8th of January in the next year. But for now:



Happy holidays and have a blast in 2016!

Saturday, 5 December 2015

Update #1

 Hello!



We’re back with an update about the progress on our game, team and other related events! But before everything else I want to point out that if you still do not have any idea who we are, there’s a special page dedicated to that, go check that first.

Let’s start with all the fun stuff. Our team went paint-balling with another team and that was worth every bruise. And last week we played Dungeons & Dragons for a few hours. And between those events we had quite a few gatherings, they were mostly serious but we also laugh with and at each other. Not only do we forget things like our PSUs from the meeting room but also some funny typos and funny slips of the tongue.





We consider the name of our team, Confused Plumber Productions, a funny topic since the way we made it up is actually quite silly. We just went to a game studio name generator and kept refreshing until we found something that caught our attention. The full name itself wasn’t that interesting, but the adjective was: confused. And since we’re recreating a Mario game we used plumbers. (If you didn’t know Mario’s a plumber: shame on you. What are you doing here?)
Mario-Plumber.jpg
Add to that ‘productions’ (we could have chosen ‘studios’ or ‘software’ or something like that, but we liked the abbreviation: CPP).

Now back to the serious stuff, because that’s probably the main reason you’re reading this. We worked already quite hard in the past two weeks between all the laughs. In a little over a week we have a deadline of a midterm report and a presentation of our progress to the other students, so we have to have something ready to show them.

At the time of writing this our main programmers, Joep and Thomas, are almost done with the basic engine to run the game, after that we can finally start writing the game itself (read: the levels, the characters and their behavior and the special objects like power-ups). From the start of the project Max has been working on the models and the first blocks are almost ready to be added to the game. Though we realized that the work it’ll cost to make all the 3D-models is much more than we first thought it would be. So after Christina, Giannina and me, Deborah, were done with general stuff documenting related and simple artwork for logos we decided to start with 3D-models too.

The logo of the game will be:



SuperPlumberBrosLogoDone.png

The class structure in the engine looks like this:


classes diagram.png

We hope this somewhat makes sense to you, but if it doesn’t here’s a brief explanation of it:
There are four static classes that check for collisions between 3D objects (Collision), control the settings of the game (SettingsManager), the graphical user interface: GUI and the class that deals with the players’ input (which is in our cases keyboard keys): InputHelper.
Then there’s the class: Main, which contains the classes that initializes the camera and the different game objects. GameObject not only contains some other classes for different kinds of game objects but is also a superclass of all the different kinds of game objects.
In our code we like to add references to our other hobbies and such. One of those is the method that is going to delete objects from the levels like the coins Mario picked up on his way, it’s called Exterminate. (You better understood that reference. To what the Daleks say in Doctor Who.)

steve-rogers-i-understood-that-reference.jpg

One of the first discussions we had relating to the structure of the game was: Should we or should we not use libraries from other developers? And we decided against this. Other discussions touched topics like: What program are we going to use to make our 3D-models? Who is going to make which models? What levels are we going to implement first? And the Must have/Should have/Could have/Would have. Max likes to work with 3DStudio for the models, but the rest will be working with Blender. At the time of writing we’re still not sure who is going to make which models. The levels is a discussion we postponed until a moment we are actually going to write the code for this and we’re not there yet. And the MoSCoW is a list that’s currently almost a whole page long. The most important information can be summarized as this: it Must have the basic elements that made the Mario a big success and it Would have a level editor but we already found out that this would cost us too much time we don’t necessarily have. Maybe in a later update we can tell you that other things made it to another part of the list higher up to make our game even more awesome than we already hope it will be.

Until the next update!



Thursday, 19 November 2015

What's this?

By now you’re probably wondering what this blog by the Confused Plumber Productions is about, so let us give you a brief explanation. We, the Confused Plumbers, are a team of students and we’re in the middle of the process of creating our own game. And this blog you’re reading is to let the world know where in this process we currently are. The game we’re creating is going to be called Super Plumber Bros? First Person. As the name suggests, it’s going to be a lot like the classic Super Mario Bros. game, but in first person.

Features like the exploration of the world instead of rushing through the levels, which was one of the features that made the original game such a success, will still be present in our game. With the first person point of view we added a third dimension to the game to make it more playable. We’re trying to keep the controls as close to the original controls, but we’ll need to add some new ones due to the addition of the third dimension. In our original plan we also wanted the game to support the Oculus Rift, but by now we’re not sure if this is within our possibilities. But we can substitute this with options to make the game support the same kind of technique on phones.