Posts tagged ‘Unity’
Despite the very simple hardware (compared to today’s standard), some really good games were produced during the first age of computer games (from early 70s to middle 80s). One game of that period that I like a lot is StarCastle, an arcade game by Cinematronics. It was designed by Tim Skelly (who also designed many other titles released by Cinematronics) and programmed by Scott Boden
Basically the player controls a spaceship that could move forward and rotate around its center, and had to destroy the bigger spaceship on the center of the screen by firing bullets towards it. There was a force field (FF) that the player should destroy to reach the enemy ship. This FF was a composed of three regular polygon composed of twelve edges (a dodecagon), with different radius, and the player could destroy only one edge with each bullet. The FF’s edges regenerate after some time and 3 bullets were fired to the player coming from these edges. When any edge of the inner most FF was destroyed, the enemy ship started to fire bullets towards the player. After destroying the enemy ship, the FF contracted until it explodes and, after a elapsed time, it forms again expanding until the original radius were reached. There were another. Like the majority of the arcade games, it was designed to make the player lose at some point, thus the game becomes more and more difficult, raising the speed of everything that can make the player’s life harder (like the regeneration of the FF, or the speed of the bullets).
I made a remake of this game in Unity3D. It’s not exactly the same (the bullets are not as fancy as the original bullets were, and you can destroy the small bullets but not the big one), but it’s close to the original. Except by the textures of the stars, the particle systems, and the sounds (which I bought here), everything else was made by code and using Unity’s primitive shapes. I haven’t tested it much, so it’s not bug free and I’m not sure the gameplay (the progression of the speed) is well balanced. If you find any bug or have a suggestion to improve the game, send me an email through the contact menu. Enjoy the game. You can play it here (you’ll need Unity Web Player).
Fighting games have been around since the arcade gold era during the 70s, and there’s basically two types of cameras used in these games:
- When the fighters can’t rotate around each other and move only up/down left/right. Street Fighter is a classical example of this type of camera
- The fighters can move at any direction on the horizontal plane, including rotating around each other, and they can also move up/down. Tekken is the best example of this kind of camera
The Street Fighter camera is just a particular case of the Tekken camera, so this post will deal only with the latter.
There are some “patterns”, or GUI standards, for games that are used a lot. For example, displaying a health bar right above or bellow the main character, the damage going up from the player’s head after he/she received an attack. and I’m asked many times during classes how to implement some of the “game standards” for the GUI, or HUD. Ragnarok online, or Torchlight, are good examples of these standards
Instead of just putting the content of this post to one or more questions in the UnityFaq, I’ve decided to write a post and explain a little further all the features requiered to implement these standards. I’ve made a simple scene to show these features in action (you need Unity Player to visuallize the scene). You can download the project here. I assume you know the basics of Unity3D, and the programming will be in C#. If you have any question about the same scripts in UnityScript, just send me an email.
I have an UnityFaq to help my students find quickly some of the things I’m asked all the time. But, some of the questions need a little more explanation than just the standard answer I put on the FAQ. I will start these new, more complete answers with this one, how to aim at the center of the Screen, using a first or third person shooter, all you need is the position on screen coordinates, or better, on the viewport, where you want to shoot at.