 |
|
|
 |
|
| Please
"left click" on the image to view fullscreen. |
|
Latest
Update April 2010 |
 |
|
Trapped! |
|
|
Project
Review:
Trapped is a multiplayer top down tank
shooter which I made for my "Multiplayer
Online Game Development" course. It took me
roughly about two months (during winter
semester) to complete the project.
Task and Responsibilities:
Game Design, Programming (Netwroking,
GamePlay, Shader Effect (Gaussian Blur, Blur
effect), GUI, HUD, VFX, Database, Sound, etc....), Art Design, Sprite Animation,Technical
Design Document. All the assets are made
from scratch. I haven't designed any of the
sound effects. I only selected the appropriate sound
effects that I thought go well with the game.
Game Engine and Programming:
The game uses Gadget2D Engine which has developed by my friend
Brent Cowan.
Game Demo
(Beta Version):
Please note that this Beta does not represent the final
quality or gameplay and may contain bugs.
Download
Demo
Sample Video:
Download
Demo (Coming Soon)
Special Thanks:
1- Brent Cowan (for helping me out with all
my coding questions and problems) 2-Ali
Najafizadeh
(for heliping me out with Hash (SHA-1) coding
and letting me know about using
LogMeIn
Hamachi.
Screenshots:
Followings are some of the screenshots. Please "left
click" on the image to view fullscreen.
|
|
|
|
The tank is divided to two different parts (
Turret, Body). The tank body is being
controlled by keyboard while the turret is
controlled by the mouse. The tank tread and
turret are both animated which was simply
done in Maya. All the menu, muzzle flash,
icon, splash screen, level design, etc
were done in Photoshop. |
|
|
Networking in Trapped has been implemented
using UDP (User Datagram Protocol). UDP has
less overhead leading to greater
efficiency.The client can only send messages
to the server, and by default, the server
sends messages to all connected clients.
Every message has a “type”. This number is
used to tell the receiver what the message
contains. You will need to define your own
message types. The “message” is a string
containing the data you want to send. You
build this string by serializing your
variables.
Following shows some of the features used in
Trapped:
Smoothing:
-Course correction implementation
-Rotation implementation
-Visual appearance of smoothness
-Consistency among players
Collision Detection:
-Collision detection for player-player
-Collision detection for player-object
-Collision reaction upon detection
-Consistency among players
Compression Algorithms:
char FloatToChar(float X, float min, float
max);
float CharToFloat(char X, float min, float
max);
short int FloatToShort(float X, float min,
float max);
float ShortToFloat(short int X, float min,
float max);
float DirectionFixRange(float X); |
|
|
|
The
engine allows for the creation and
maintenance of relational databases using
SQL. Gadget2D has a simplified wrapper class
encapsulating the
SQLite API. I also used
SHA-1(Secure Hash Algorithm) to prevent
users from accessing others passwords. |
|
|
|
|
|
|
|
|
|
|