Bugfixing and Implementation of the last Assets before the Release

So I know that you are supose to focus on one artifact that you’ve worked on during the week, however I’ve worked on so many little small things this week that I’d never get up to the 400 word minimum if I were to select one. There for I’ve decided to group most of the things I’ve done under “Bugfixing” and “Asset Implementation”.

 

This have been the last week we have had to work on our game with the release comming up tomorow, so fixing bugs have been my top priority this week seeing that we got all our features we wanted added into the game. Exept for maybe a pause screen which we scraped due to the time limitation. I also made it possible to restart the game without acctually restaring it… What I mean by that is that you now can press start in the menu again after already played one round and not having to close the game down in order to play another round.

This ofcourse came with its own bugs, like crazy memory loss. It pretty much doubled the memory usage when restaring. Something that I manage to fix somewhat though, it’s not perfect but it’s much much better now than before. This was due to the fact that we deleted the game state and created a new one however when we deleted the old one we never cleaned up after it so basicly just creating a new game state with all the assets without actually removing the old assets. Deleting and cleaning up all the pointers in the game states destructor, aka actually using the destructor and use it the way it’s ment to be used, made a huge difference performance whise and improved our memory usage. We do still have a small leak as mentioned but it’s minimalistic.

We did have a “big” problem creating this reset function though, while the map and player resetet perfectly the spawns didnt, enemies spawns, owlets spawns, powerups, hazards, etc. The problem being that if you ever passed or defeated a certain enemy or picked up a owlet or powerup it refused to respawn when resetting even though we were creating a new spawn handler. We sat a long time trying to figure out why it didn’t work and after finaly realizing what the problem was I was not happy. The awnser to our problems was as easy as clearing a vector containing all the spawning information that for some reason was not cleared automaticly when creating the new handler.

disapointed-owl_o_97782

 

I’ve also helped with implementing the last assets that had yet to be implemented, like a few sounds that was just laying around and some images that was planned but not finished until this week. For example, a sound for a warning sign that flies by the screen before our tunnel that the player have to dodge comes along. A much needed sound since it made the sign way more noticable since the sound actually make you look for a sign like that. For your information, the sign was a regular train warning sign with a tunnel sign on top of it and the sound played was the sound that these train signs usually emitts.

An example of images I’ve implemented are the story images displayed when you first startup the game. They are a set of images that are suppose to tell the backstory of the game, what happened and why the player is flying across a train trying to collect owlets. I implemented these using a system made by Max in our group. This system was used just for the purpose of pausing the game and showing up an image, not a pause menu as I mentioned we scraped, but just a still image. We used this not only for the story images but also the tutorial and credit images. The kind of screens you usually just skip past most of the times.

 

I could probably keep going on, listing all the little bugs and assets I’ve fixed and added but that would be boring to read and not very meaningfull so I’m gonna call it quits here. I’ve had fun during this course and I hope other students and the teatchers will find our game fun and intressting tomorow!

Bye for now and I’ll see if I’m going to keep making posts during next course.

Oh, and I did a lot of cleanup on unused assets…

3d635a077e5efadd0fc1697f323dfe8c6467f038cb8a026987127334e6e9a48d

One thought on “Bugfixing and Implementation of the last Assets before the Release

  1. Hello Elis! I have now read through your blog post and I find it pretty interesting. The bold text made it easier to know when you talked about a different subject. The owl images where humorous too. Also, when you mentioned that you had to write about many small things to pass the 400 words limit, it was good news for me because then I have more to write about.

    The first thing you brought up had enough information for me to understand what you were doing. But as a programmer myself, I would like to see more descriptions of functions, and were and how you implemented them. You wrote that you had some problems with resetting the spawners and the cause for that was because you thought std::vectors clears automatically. A vector’s elements is only erased when you specifically tells it to or the vector runs out of scope (only on elements with trivial destructors). Is this vector array filled with pointers pointing somewhere on the heap memory, you have to manually de-allocate every object before clearing the vector array.

    You must have made your group’s graphic designers happy when you managed to squeeze in some more art assets in the game instead of wasting their hard work. I wish I could say the same. And the sound you implemented to signal the player about an approaching tunnel was a really good feedback because you used it where it made sense.

    I hope you’ve had a good experience during this course and I wish you good luck on the next one!

    ~Adrian Lavrell

    Liked by 1 person

Leave a comment