ImpactO Week 7 (holy!)

Win or lose?

Die or live?

Fall or roll?

Smash or clash?

…are all important questions that you ask yourself before entering another exciting and action-packed ImpactO match. Yesterday the team had some great fights among each other that we would like to share by showing you this video.

Also…always remember:

“It is not important to win, but to not lose.” 


Matchmaking progress

It has been quite some time since my last post about the matchmaking progress, so I guess it is time to let you know how the progress flows. What I have been working on during the last week is to calculate the match quality of any given game including two or more teams.  This was not all that easy but I had a lot of help from the Gaussian distribution library. The match quality is calculated from 0% – 100% where 100% is the best possible scenario and describes that it is almost 100% possibility that the match will end in a draw (which is the scenario that we are looking for). It has to be noted that my matchmaking library only will calculate the best possible match quality for the members that has waited in the queue the longest time.

When enough users have been put into the queue the system will select the players that have waited longest and pick a host among them.  Only players that can ping the game server on the specific game port will be chosen from; this is because users might be behind a firewall and won’t be capable of hosting a multiplayer game. Afterwards a message will be sent to the server to setup the server with the given settings who will, after successfully created the server, send a message back about the status. The matchmaking server will then inform the rest of the waiting players that it is OK to join the newly created server.

Furthermore I have been struggling with the update of the player skill points. This update depends on the overall skill of the player but also the system’s uncertainty about the player’s skill (sigma).  The skill update follows the same algorithm as can be experimented with the following calculator:


Pre alpha screening and new battery

Today was our first screening of the game for people outside the school and “friend” circuit. We were invited to Balderskolan where we set up shop and students of different ages with a variety of experience with games, got to try out an early pre alpha build of Impacto. It was a rough start when we set up the computers and a couple of technical difficulties postponed the testing an hour, but at least it worked out!

We got a lot of good feedback from the testers, and they seemed to enjoy the game very much once they got used to the controls. We had many close games that ended with only a few points seperating the teams at the end, and after the first match the players became really good, which shows the game can be played by anyone, but at the same time the ones who have played a couple of times have a greater skill than newer players. This is for me a great part of any good game. Skill progression is a vital part in games that have longevity and are played more then a couple of times.

We also had help from one of the second year CG students Fredrik Ortmon that helped finish the battery which is the “flag” in our HTF/CTF game mode. A big thanks to him! It looks really great both on it’s own and when attached to the robot.




Now theres 1 week left until MS3 and 2 weeks until the gradshow. Needless to say we are all really hoping that we can present something extraordinary for the gradshow and something good for MS3 🙂

I have the Control

Been working mostly on the controller this week, the animations is starting to look acceptable. I added a “Mouse Look” control and merged the running/turning with the strafing so it is now more of a standard third person controller and less of a car controller (which the ball is still more or less)

I still have a problem with the transform out animation. For some reason the robot looses ground contact just after the animation, which starts the fall animation for 2-3 frames and makes it look wierd.

After the transform out bug is fixed I will polish the strafing animations, since they look too different from the run and walk.

Posted in Art

Plenty of the good stuff

…but less of the important stuff.

The last 2 weeks most of my time has been devoted to the game and less so to my own project. On the bright side the client-side prediction that I’ve spent some more time refining is progress on both fronts, and the same can be said for many other things. Still, there is a lot of things that I would have liked to finished by now when it comes to syncing rigid bodies, compression and prioritization being the biggest things on my list. Hopefully I will be able to find some time to get those 2 done properly


It’s been a long time since last I posted anything and I apologize.

The main theme of the team’s blog posts the past weeks has been “killing your darlings”, and unfortunately I cannot break that theme.
Since I established that I was behind schedule in my last blog post I’ve tried to up my effort by putting in extra hours, making free time non-existent. But longer hours doesn’t always mean more progress, especially if you are cutting down on sleep and exercise. The stressful schedule made me forget to take care of myself  which resulted in me coming down with the flu.

Thanks to a Teamviewer connection between my school and home computer I’ve had a way to work from home, but I’ve mostly spent the last few days recuperating.

I got back to work today (not fully recovered yet) and I’m now refining my pressing time schedule which has now gone over to the Texturing phase. Most of my models are UV mapped at this moment and several test bakes have been done, but there is still a lot of tweaking to be done.

These unfortunate events have put more assets on the wishlist and with a little less than 2 weeks to go I’m now focusing all my remaining time on those assets that are of highest priority.


Video of the Week

Well… it has been a long time since we last posted an entry in the “video of the week” section. The reasons might be plenty, however some reasons might be very tight schedule and the fact that we wanted to have a good-looking robot controller before the next video. Anyways, here you are. Sit tight and enjoy! 🙂

The music included in the video is composed by Emil Hedemalm and is not a work created by Team ImpactO

Things Takes Time.




Estimate time is always hard, especially when it comes to cg, new problems often occur and smaller tasks are forgotten when planing. A teacher once told me a mathematical solution for planing. Take the estimated time and multiply it by pi and you will get closer to the truth. I guess that is correct, think of uv mapping for example, simple objects can turn pretty complex. Its even harder when Maya has a bug not showing the right normal direction after duplicating an object. It took a while to figure out why my baked maps looked bad. The solution was to combine and split meshes.harduvs

The GUI has taken shape, and a new logo. It can be hard to keep stuff minimalistic and clean but i think i succeeded. It makes a good contrast with the messy 3d background.  The menu will be 2.5 which will give some cool parallax.The blue glows bleeds over the surrounding buttons which is a problem for the raycast when pressing the buttons. the solution was making small invisible hit-boxes, so u don’t hit multiple buttons at the same time.icons

One map baked, i just wanted to show the render time , my computer seams to be slower then the rest, ancient dual core…rendertimes

Darlings killed…

As my teammate Peter posted earlier “killing your darlings” is sometimes a necessary evil that needs to be done to progress.

For most of the week I struggled with my procedural level generator implementing height differences in the track. I figured I’d just extend my grid to a third dimension and only allow the pathfinding to go diagonally down or up in its current travel direction. I obviously didn’t think this through enough as it lead to several problems with the pathfinding generating impossible paths for the track and I eventually found myself writing code to counteract every possible weird behaviour that could occur. This was far from optimal and I figured that simple is best so I killed my darlings and tackled the problem with a different approach.

I figured that there was actually no need for a third dimension in my grid. The third dimension only made things more complicated than they needed to be and didn’t really add anything to my system. Instead I decided to generate the track as before on a two dimensional grid and afterwards generate height differences along the path. I did this by randomly adding a slope or a hill on valid points along the track if a suitable position for a counter-slope/hill could be found further along the track and then raising or lowering every cell between these positions. This approach was both easier to implement and was faster codewise as it didn’t require as much special cases as the previous attempt.

So… as it stands now the level generator now supports both height differences and crossing over itself both on different levels and on the same. Unfortunally I am currently in the process of making new trackpieces that will both be more fun and fit better in ImpactO so I won’t be showing the new features until next update where I also hope to have support for special track pieces implemented.

Gearing the metal

Long time no post.

I have been very busy lately working hard on many things at once. I’ve been mainly occupied with things that doesnt have that much presentability value at the moment. I redid the sound system to let our sound guy Mikael Bauer freely edit sounds of his choice and instantly load them in to the game by the click of a button. No more restarting the game or sending sound files back and forth for us to test them out! This in turns makes the process alot smoother for him and us.

I’ve also been working alot on my separate project trying to create a stand alone version for others so they can use my Character Customization system for their own purposes. Needless to say this is a big undertaking and I’ve met some hardships along the way such as trying to make the system idiot proof while still keeping alot of freedom in it.

In the main project, I have managed to fully integrate the customization of weapons and a simple color wheel selector for the players that lets the player spawn over the network with their own weapons of choice. This opens up a whole lot of new possibilities when it comes to the game mechanics and we have to tweak numbers almost every game test so things don’t become overpowered.

One of the hardest things when thinking about design, has lately been to keep the incentive of players knocking into each other. With a variety of new weapons available to the players the game has started to drift abit away from the original idea of just knocking into your opponents, smashing them to pieces. This will probably get better once we start to implement some more melee weapons as opposed to only ranged ones.