Friday, December 14, 2012

Weapons and Explosions

We have now finished three of three planned weapons that can be installed on a robot.

The saw does high damage in very short range / on contact, the flamethrower works as area damage, and the rocket launcher is a long range weapon. Furthermore, a "head" part that looks around with the mouse view and therefore enables mouse aiming has been added.

Some textures yet to come, and the particle effects are quite basic, but we're getting there!

Thursday, December 13, 2012

Keeping Scale

Flamethrower: Too small on first try
This post is about 3D modelling and scale in Unity.

First of all, it does make sense to stick to the standard scale for Unity projects (1 cube height = 1 meter). It really does.

Without having read the very useful manual about Unity Physics first, our 3D objects were modelled about 10 times larger than that - as a result, it would look like they are falling way too slow, with a gravity that would look believable on the moon (huge things look like they fall slowly, because they are so huge).

So after having the overall scale set, the next challenge is keeping it consistent. How big is an arm in relation to a body, how much bigger than a rocket launcher can the propeller be?

One technique that has proven quite useful is having a reference object in the 3D modeling program - e.g. a cube that is as big as the Unity cube and therefore 1 meter high, or also an already finished weapon when making another one. If the rocket launcher is in the right scale already, holding it next to the work-in-progress-flamethrower while modeling gives a good idea of proportions.

Saw, first version
Finally, size of things that influence gameplay is important and may need to be adapted: The size of our sawblade decides on how easy it is to get others in sawing range. It turned out to be too small in the original design, so changes had to me made.

...and larger version

Tuesday, December 11, 2012

Sound & Music: A Chaos Combined

Hello all, my name is Matias Lehtoranta and I'm the music composer for Combined Chaos. I will co-produce some sound effects as well.

The music of CC will be a blend of electronic and metal/rock elements. If you know the Command & Conquer and Red Alert soundtracks by the fantastic Frank Klepacki, then you have an idea of some of the elements that will be forming this soundtrack. Riffs that happen around the minor pentatonic scale, crunchy, snarly bass tones, and lush layerings of synth sounds on top of it. Contemplative, floaty and fluid tunes for building up your robot in your lab. Then some 7-string and 8-string metal riffs for those particularly savage metal-bleeding moments!

For the first version, a few tracks are planned (including at least a main theme/menu track and an in-game combat track) and I will be promoting them on this blog and on my SoundCloud page.

Monday, December 3, 2012

Balancing Physics

This is how the game currently looks like.

It turns out that balancing the game physics for flying robots will be a long journey. In this post, I will explain one example, Flight height.

First of all, there are two factors influencing how fast a robot takes off: Its weight (depending on amount of parts used) and amount of propellers attached. This allows for a huge range of possible combinations from robots that are too heavy to fly ( :P ) to very lightweight constructions that lift off immediately.

Especially for lightweight flying robots it was at first very easy to just literally skyrocket in a couple of seconds, until they were too high to see the ground - not only making it very difficult to keep control over cruise height, but also making orientation close to impossible (No ground in sight -> "Where am I?"). Hence, it was necessary to somehow limit the flight height.

So I decided I need to scale something that influences how high one can fly depending on robot height. I made up a function for a scaling factor: 1 - [(Max Height - Current Height) / Max Height]

This returns a value from 1 when the robot is grounded to 0 when it has reached the maximum height. After some experimenting, I found out the best thing to scale by this factor is the vertical speed when flying. As a result, more lightweight robots still lift off faster than more heavy ones, but none of them can get over the maximum height, since their speed will be multiplied by zero.

Graph visualized by Google
To make the whole vertical slowdown a bit more smooth, I multiplied that factor by itself, so now it approaches zero like the graph in the picture.

Friday, November 30, 2012

Completing Robot Parts

Trust me, I'm a jet engine
We are currently working on and finishing plenty of robot parts:

Jet Engine

Flame Thrower
Locket Launcher

Plus various arm and base parts. Our workflow: Parts are sketched out first, then 3D-modelled and textured. After that, programming their functionalities in Unity starts, particles and sound effects will be added later on.

I have started to realize how useful a good sketch and idea of how something will look like is when making a 3D model. Thank you, Sabi!

We're keeping an overview on our progress in a Google Spreadsheet including all steps for each part.

Tuesday, November 27, 2012


Since this blog is also kind of a learning diary I wanted to post here what I'm learning along the way. First of I started with the game menu and learned some stuff about GUI and buttons.

Right now I'm working with Blender which I've never used before. I'm learning to do some texturing and UV mapping. You can see the results in the video's posted earlier on.

Texturing of a main bodypart
Texturing of the propeller you can see in the last video

After all the parts are textured I will try to do some sound design if there is still time left. This is also totally new for me, so there's a lot to learn!

Getting High

The last week hasn't been very productive due to me spending most of it in Austria on a school trip. Anyway, we got flying robots now, as the propellers are readily scripted.

Again I realized that physics as they would work and physics that feel right when playing can be far from each other. The aircraft in the video would (and did in the first tries) actually turn over and fall down in the air, because two propellers pull up the back part faster than only one in the front does.

Quick and dirty solution would have been to always apply the force the propeller adds to the center of the vehicle. But that would have been too easy, since it doesn't allow for propellers facing sideways to turn the robot while flying - the force needs to be applied at the position of the propeller (Unity: Rigidbody.AddForceAtPosition()) So I finally spent some extra time writing a script that balances the robot to always stay horizontal, similar to a Star-Wars-hovercraft.

Wednesday, November 21, 2012

FINALLY, some weapons.

While Sabi is still popping out some nice concept sketches I'll keep posting them here on the blog. All of these weapons can be connected the the other parts of the robot. Awesome stuff.

A hammer which can be added to an extendable arm for example.

Some more serious stuff, rocketlauncher.
And my personal favorite, the flamethrower and a big saw.

Monday, November 19, 2012

Body-parts concept art

My name is Robbert Schefman and I'm mainly working on the graphics part of this project. But for now I'm learning a little 3D stuff. My blogposts are mostly going to be about what I learned during this project. But for now a post about our concept art.

Concept artist Sabi who is also working in our project made some great detailed sketches for us.
We use these sketches as inspiration for the modeling and UV mapping. Right now I'm learning the UV mapping and the texturing in Blender. Here are some of the sketches. We are also experimenting with some of the weapon physics.

Sketches of different body-parts. These body-parts have sockets where the user can add different kinds of other parts (e.g. weapons, joints, wheels etc). 

More detailed sketches of different body-parts. Also we are thinking about making some bodies heavier so they can behave different when in battle.
Sketch for the connectors that fit onto the sockets.
Detailed sketch of the sockets them selves. 
Heavy base body-part

Functional Physics: Wheels

That's how we roll! This will still require some tweaking, but the basics are there. A longer base part might be a good idea, since this one currently falls over when accelerating too fast. Acceleration speed, robot weight and length will still have to be balanced to make a nicer experience. But so far, the wheels work!

The Unity "technical details": Each wheel has its own rigidbody connected to the main robot part rigidbody with a hingeJoint component. They accelerate using the hingeJoint motor, set to a negative speed to move backwards.

Saturday, November 17, 2012

Editor GUI is here!

The graphical user interface of the robot editor, finally implemented. It has actually been finished for a about a week now, but I didn't find time to make any more blog posts due to a very time consuming learning experience I made: NEVER move Asset folders of a Unity project outside of Unity (e.g. in Windows Explorer).

Since I made that mistake, now all placeholder 3D models I made are missing in the project. Considering they were only placeholders, it is not that bad, but it still looks like quite a step back. Anyway, I decided not to use the placeholders again but from now on put the final models into the game right away. Textures and shaders are still work in progress...

Monday, November 12, 2012

Wheel: Where am I?

Great freedom brings great responsibility. Apparently. Or at least great headache on the developer's side.

The idea: Wheel movement is controlled by WASD, because it's the intuitive movement control. So when the user presses W, the wheels roll forward. To turn e.g. left, all wheels on the left side go backwards, and all on the right go forward.

The problem: Where IS forward? Given the concept of freely combinable parts, wheels can be placed pretty much anywhere on the robot in pretty much any angle. So how will a wheel know, where the "forward" direction of the robot is?

A quick and easy solution would be defining a fixed forward direction from the start: When creating the robot, let's say, the left side from editor view is always is the side that will be forward, the side the wheels will drive towards. However, this would be quite limiting.

The other, more free way: Each wheel gets its own forward direction (implied in the design, so they wouldn't be symmetrical like in the picture). The overall forward direction will be the one that most wheels are facing towards. This requires the player to have enough common sense not to place wheels in opposed directions.

At this moment, the latter alternative seems better to me, since it leaves way more freedom in building.

Thursday, November 8, 2012

Wheel Physics

A robot is nothing without wheels. That's why I have started experimenting with them already:

This test vehicle already drives over the edge very dramatically.

How it currently works, the technical side: The round rolling, actual wheel parts are separate Unity Rigidbodies, with Hinge Joint components making them act like the were attached to an actual axis. All those Hinge Joints connect to the Rigidbody of the main vehicle.

There currently is still some hassle with getting the wheels to the right position when loading them from file, mainly because they don't yet find the main vehicle Rigidbody, which has also just been loaded from file. Thus, in the actual editor, they currently still act like having a seizure. But at least this test vehicle works fine.

Saturday, November 3, 2012

Concept Art: Weapons

Possible Weapon Designs
Concept Art is on the way! After next week, we will start modelling various robot parts and implementing them into the game.

Many thanks to Sabi for the drawings!

Friday, November 2, 2012


It has been two weeks now since official project start, and things are going well:

- The robot editor can add and delete parts
- The keys that control functions of parts can be changed by the user
- Editor GUI is almost finished
- A whole robot can be saved and loaded using XML

A quick demonstration of the editor so far, UI graphics still being placeholders:

Thursday, November 1, 2012

Basic Physics Testing

This is some early testing video about finding out if and how the concept is possible to make in Unity. Result: It will work! (somehow)

Thursday, October 25, 2012

Main Menu Finished!

This is how the main menu will look like, going for a metal-rusty-concrete visual style! And, not to forget, black-yellow stripe patterns.

Starting a Game Project

The first post! Combined Chaos will be a ~3 months game project. The player controls a robot built of a predefined set of parts, which can be attached to each other. This blog will document the progress and keep everyone up to date on what's going on!

First sketching of the idea