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:

Movement
Wheels
Propeller
Jet Engine

Weapons
Saw
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

Texturing

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!
Whoooosh!

Friday, November 2, 2012

Update

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)