Showing posts with label game. Show all posts
Showing posts with label game. Show all posts

Road Apocalypse

Road Apocalypse is a game I have developed as part of the Advanced Multimedia Scripting module on my course at the University of Worcester. The requirements for the project were to create a highly interactive multimedia application using Adobe Flash and ActionScript 3.0 and document the process throughout the planning, development and testing phases.

The criteria based on which the game was graded were as follows:
Class Design and Implementation
Class Communication and Interaction
Appropriate Use of Events / Methods / Parameters
Appropriate User Interface / User Interaction
At least 4 key gameplay features which demonstrate your own problem solving abilities (additional receives bonus)
Appropriate Implementation of Simple and Advanced Dynamics
Documentation of feature updates and application testing.

As I'm a big fan of the battle/powered-up racing I have chosen to create a game inspired by Super Spy Hunter for the Nintendo Entertainment System and Road Apocalypse is what came out. 

The graphic assets used do not completely reflect the initial concept of the game, as the grading did not take this in account, being mostly used for showcasing purposes.

The ActionScript code resides mostly in external files, aiming for Object Orientation with little to no code in the TimeLine. 
It is organized in 12 classes, most notable being the Kernel class which changes between the game screens, the Game class which does most of the collision detection and manages the sprites on the screen, the Player class, and the Enemy class which can be controlled either by the EnemyAI or BossAI classes (both inheriting from AI).

Object Orientation was important for this game as it allows for quick expansion such as adding extra levels, extra enemies/bosses, that inherit on the behaviours of their parent class.

On the software/game development concepts side of things the following can be listed:
- Game State Management using Finite State Machines
- Arrays and array functions
- Looping
- Polymorphism
- Inheritance
- Collision detection and response (one of the most complex parts of this game)
- Heads-Up Display
- Scrolling Background
- Garbage Collection
- Rotated/Angled movement (sine/cosine)
- Random enemy generation
- Programmable enemies

Here's the game as it looked when it was submitted as part of the module's assignment:
Controls: Arrow Keys to drive, X to shoot



Currently I am considering a remake as a full game targeted mostly at mobile devices, using Unity 3D.

Source files available on request.

Y'arr finished with the Kinect


Here's a team project that went a bit away from the classic mouse and keyboard/controller that I have experienced throughout my work on game development.

This was the final project for one of my university modules at the University of Worcester, which is a volley-ball game programmed in C# using a modified XNA Framework and integrating Kinect controls with the Microsoft SDK.

I can only say that I’m more than happy on how this turned out and I had a lot of fun working on it as well as enjoying to work with relatively new technology and learn something relevant to today’s game industry.

Here’s a video demonstration of how it works, put nicely together by two of my team-mates:


As by the time me and my team-mates started working on this project we already had quite extensive knowledge of what each of us knows best in terms of game programming, we managed to split the workload in parts that would fit each of us and allows us to work simultaneously, without being slowed down in case one of us would lose pace.
My part consisted mostly in dealing with collision detection and response, the ball's physics, loading and displaying the graphics as well as occasionally helping my colleagues if they got stuck.
A fun fact about how we met the project requirements and why we have chosen the pirate theme is to do tightly with collision detection. Yes, it seems that in very odd cases, collision detection can dictate a game's direction. Or at least it did in our case.
We started initially with a plain VoleyBall theme for our game but we couldn't think about anything that would give a nice flavour to it. When we got to the point of creating the net we got slightly stuck at implementing our collision detection with a classic rectangular shaped net. This was caused by the modified XNA framework we were using, which was built to work better with physics simulation and collision between circular shaped objects. Due to this we brainstormed that making the game to be Pirate Volley we could use 3 circular shaped objects on top of each other for the net (the 3 barrels) and also have a whacky theme for our game. This way we managed to easily implement collision between the ball and the barrels which turned out to make the game more interesting that plain volleyball.


If you are interested in seeing the blogs of my team-mates, here's where to find them:

 
Copyright 2013 Mihai Ungureanu