Mobile Tank Game (W.I.P) Screenshot 5: Flippin’ UI Canvas magic

Screenshot of the Tankmanious main menu scene version 1

Flipping UI canvas system

For the Tankmanious main menu screen I wanted to develop a UI system that uses Unity’s ‘world space’ canvas system, because I love the idea of information screens magically floating around having a position in 3D space instead of being flat and right in front of the ‘lens’. I also love the idea of a card that shows a different side every time it is being turned over, like some kind of four dimensional object.

The way that the system works is that on the exact amount of degrees of rotation around the Z-axis, where the flat side of the UI canvas points directly to the camera, it switches the front canvas to inactive and which ever back facing canvas that is needed by the button to active, like a magicians card trick!

The way that I found this to be relatively easy to set up was by using four animation clips for the four states; closed, half open, open and half closed. The clips only have two keyframes, one for the rotation, and one that sets the canvas to active or inactive. The smooth rotation is being done by the animator that transitions between the four states.

I’m very pleased with the way it works and how it looks, but I’m already working on a version two for the main menu screen because I want to create a more interesting background scene, and to be honest, I kind of stole the idea for this background composition.:)

More soon! 

Advertisements

Mobile Tank Game (W.I.P) Screenshot 4: Tank tracks system

Triangular shaped tank tracks created with the tank tracks system

To good to use

When I began working on Tankmanious I wanted the tanks in the game to have realistically moving tank tracks with individual track pieces, so I thought it would be interesting to create a tank track system. After doing some research on different kinds of approaches to realistic tank tracks I decided to go for a spline based system. For those of you who aren’t familiar with splines, think of the pen tool from Photoshop and Illustrator that you use to draw Bézier curves with. Curves can also be used in 3D space to create paths in 3D.

Curves are very useful in game-design for a lot of things. You can use them to create race tracks, enemy patrolling paths or train tracks for instance. You can also have objects follow those paths like a train follows it’s rails, which is also useful if you want a camera to follow a path trough space.

For the base of the system I used code to generate splines and to have an object move along that spline. Then I built the system on top of that.

The way that it works in Unity is that I generate a spline object and give it the shape that I want. After that I can simply add a prefab of a single track piece to the script in Unity and specify how many pieces the track should have and how much space there is between them. To have the tracks rotate forward I just set the speed to a positive value or negative to rotate backwards.

The system works great and I’m sure I can use it for a different game in the future but it was a little bit too good to use for a mobile game because, obviously, it’s a lot more expensive to have a lot of single track pieces moving around in game than having a texture offset based system or no moving tracks at all. I decided that having a lot of enemies on screen is more important for my game than a couple of detailed ones, so I went for a lot less complex models that use fantasy to float around.

It does make me a little bit sad to have to make that compromise but I also realised how much more often developers had to make those compromises one or two decades ago!

More Soon!

Mobile Tank Game (W.I.P) Screenshot 3: Total Loss

A process screenshot of the game-over screen from my mobile tank game project: Tankmanious (working title). 

The scoring system

On this screenshot you see the game over screen and the game’s scoring system. The total score of the player is based on firing accuracy, remaining health and the total kills. I later added a system for unlocking bronze, silver or a gold medal on each map based on the total score, so if the player wants to earn a gold medal he or she has to get a perfect score!

What you don’t see on the screenshot (because it’s not a video) is that each score counts up rapidly from zero to the player’s score to give that satisfying feeling that a higher score takes a longer time to process.

I also added blur and vignette filters to the camera that are enabled on game-over in order to make the background less distracting for the GUI text.

More later!

subscribe!

thanks!

bye!

Mobile Tank Game (W.I.P) Screenshot 2


One of the first ‘on stage’ process screenshots from my mobile tank game project: Tankmanious (working title). 

‘BreakOutBlocks’

In the previous post I showed a screenshot from the Unity scene view (‘behind the scenes’) of Tankmanious, so the part that the player never get’s to see. On this screenshot you see the Game view from Unity (‘on stage’), so what the player actually sees during the game.

One of the gameplay features of the game is that bullets can bounce off walls, making it possible for the player to shoot around corners. On normal walls the bullets will only bounce off one time and explode on the second collision. On the destructible ‘BreakOut’ blocks the bullets will keep bouncing around until they hit another wall, creating some nice unpredictability and chaos!

This screenshot also shows the player and enemy tanks with a working spline-based tank track system that I developed but later removed for the sake of a higher frame-rate. More on that later!

Mobile Tank Game (W.I.P) Screenshot 1 and Introduction

 

Unity3D tank game behind the scenes W.I.P.
One of the first ‘behind the scenes’ process screenshots from my mobile tank game project: Tankmanious (working title). 

The blue lines and green spheres are only visible in the Scene view from Unity so not for the player. The blue lines are a visual representation of the red enemies fields of view. The green spheres represent where the enemies are moving towards and the areas that are being checked to make sure those places are empty.

More to come!

Creating a mobile tank battle game

For more than a year now I have been working on creating a mobile tank battle game with the Unity game engine. After doing different experimental ‘games’ and projects I decided it was time to start working on a serious game, for mobile platforms, to keep it a little bit simple.

The goal is to create at least 75 challenging but small maps divided into three worlds, so it can be played in short bursts.

A lot of work has been done already and the core structure of the game is basically finished, including: enemy A.I, player movement, main menu GUI, game GUI, score system, medals system, different weapons, different destructible enemies and more than a third of the maps.

Things that still need to be done are: creating more maps, tweaking particle systems(explosions!), finding the right techno background music, balancing map difficulty, balancing enemy difficulty (firing rate, patrol and chase speeds etc.) and a lot more optimisation.

 Making games is difficult, a lot of work and it often feels like playing chess blindfolded, but I find the whole process of programming, designing graphics and learning about computer science very interesting.

It takes a lot of time to learn everything that is needed but if I had to learn everything all over again I would, because it’s so satisfying to discover all the elegant mathematical systems that are involved.

I’m hoping that by showing the process ‘on stage’ as well as ‘behind the scenes’, that I can make more people feel enthusiastic about my game and game design in general.

Please subscribe if you are interested!

“My Island” Unity3D example for a workshop

Unity3D My Island Nightscene

 

Screenshot taken from a example scene that i created in Unity3D for a workshop on how to create a fantasy island level

*Update!*. Since the beginning of this year I have been developing and teaching workshops on game design with Unity3D on a high school. In these workshops I teach kids how to use the Unity editor, Unity’s terrain tools to sculpt terrain, add trees and grass, use different textures, lights, particle systems, C# programming and little bit of 3D modeling with Sculptris. All whilst building their own private island. Because who doesn’t want a private island?

It is fun.

 

 

Unity3D Prototype Experiment / SolarSystem, 2014

SolarSystem, 2014

Unity3D Experiment, programmed in C#.

A prototype / experiment for making a “solar system” videogame main menu in the videogame engine  Unity3D.
I wanted this menu to feel like a spinning-top/globe that the user can interact with by click-dragging or swiping the mouse in all directions. When the user drags the mouse up or down the spheres wil move up or down to a certain degree without tipping over. When the user releases the mouse button the spheres gently lerp (linear interpolation) back into normal rotation.
I had the vision to do this because it seemed like a good experiment and programming practice (C#). It was more difficult then I expected because in order to overcome gimbal lock I had to use a dummy object to contain the ‘planets’ so I could split the horizontal and vertical rotations. That totally worked so it feels very natural and lerps smoothly now.(see 3:26)

(Sorry for the awful framerate! I’m using a very old laptop that doesn’t like screen recording one bit)

Unity3D Simplex Noise-field Experiment “Sea of Cubes” 2014

Unity3D Simplex Noise-field Experiment
“Sea of Cubes”, Nov 2014.

About a year ago I started learning the Unity3D game engine program and the programming language C#(see sharp). With the aim of creating a video game for mobile phones. I’m going to show more about that game later on, when it’s more finished.
As part of the game i thought it would be interesting to take advantage of noise data, the same technique which is used for the game Minecraft. The nice thing about noise is that you can use it to generate for example, endless mountainous landscapes. By playing with the variables of the noise, for example with the scale, you can also get a wide variety of shapes and patterns in those mountains. Which i will show in another video later.
For this experiment, I replaced the y-axis data of all cubes for the data derived from the noise field.
By letting the script ‘look’ to a different place in the noise field every frame I was able to animate the noise, making it similar to waves/water.
I apologize for the poor quality of the video, to make this video on my old computer, I had to use a screenshot script instead of using screen-recording, which is rather cumbersome.
For those interested in using this technique, i have uploaded a very simple demo unity package that’s available for download, see the link under the video on Youtube.

Powered by WordPress.com.

Up ↑

%d bloggers like this: