CSCI 4168 Assignment

minedesertΛογισμικό & κατασκευή λογ/κού

31 Οκτ 2013 (πριν από 3 χρόνια και 11 μήνες)

124 εμφανίσεις

CSCI 4168 Assignment

Objectives: To develop skills in using Unity3D; skills in coding player character and camera scripts;
and, skills solving program architecture problems in game development.

Due Date: October 15
th
, 11:59pm

Hand in: Electronic submission of Unity Project folder. Please zip up your entire project folder and
submit using the electronic submission system.

Note, before beginning your assignment, please read the policy on plagiarism. Remember that this
assignment is to be done individually!


Overview
Construct a platform game with 2D gameplay. The game should include at least two levels, some sort
of enemy to avoid or destroy, and some additional gameplay features or polish.

Your character should be 3D and you can use the provided asset package from the 3D Platformer
Tutorial. Note that this doesn’t mean that you will be copying that tutorial, just that you can use assets
(3D objects, textures, etc) from it.

An example game is shown on the course assignment
webpage:
~sbrooks/csci4168/assignments/index.html
But, again, don’t make your game exactly like this example!
Your character should be able to walk and run to the left or
right, and jump. He should be able to get onto higher and
lower platforms, either by jumping up and down through
them
Your camera should follow the character, moving up and
down appropriately. Some different possibilities exist here:
you can have the camera tied directly to the character's
position by parenting it to the character, or you can have the
camera follow the player smoothly using a script. It can be
effective to define an area of the screen that the player must
be contained within, and make the camera's height only
change when the character leaves that part of screen space.
Unity Project Layout [2]
Create a new project in unity and (optionally) import the
assets provided on the course webpage. Create a new scene.
Within the scene, create a new GameObject and name it
Abstract. This object will be a parent object to game
manager scripts and other scripts not attached to physical
entities in the scene.
Create another GameObject named World in the scene root.
This will hold the current level's geometry and scripts.
Other logically separate parts of the scene could be
organized under other empty GameObjects. This might
include the camera, GUI scripts (not for this simple game) or
other information.
You should try use the component model throughout your
project. This means making components that could
potentially be reused on objects that you did not original
conceive of them being used on when appropriate.

Figure 1: Initial Project Creation
Player Character and Enemies [7]
Create a C# script called “PlayerCharacter.cs”. This script will be a
component that controls things like your player character's health,
items and other logic unrelated to controlling the character.
Create a C# script called “PlayerControl.cs”. This script will be a
component that handles user input for the character. Use the Update
(or FixedUpdate) callbacks for your movement logic.
You may find it useful to create a prefab of the character so that you
can respawn it with a call to instantiate.
Create a C# script called EnemyAI.cs to control enemy characters in
your world. Again, the Update functions will be used to change the
enemy state and movement.
For full marks, player movement should be continuous, implement
jumping and at least one other feature. Enemies can be simple, as long
as they move and damage the player in some situations, and can be destroyed or avoided by the player.
You may find the “animation.Crossfade” useful.
Camera [2]
Create a camera to follow the player. The camera might be accomplished by simply following the
player character along a plane, by using the screen space approach outlined above, or by simply
parenting the camera to some GameObject that holds the player but does not rotate with the player
model.
Creating Levels [4]
Traditionally in Platform games, the game is split into a series of 'levels' or stages, and the player must
complete them in some order.
For this assignment, separate levels are required. Your game should include at least two levels of
arbitrary length. Levels should exist as separate Scenes within your project. You can handle moving
between levels in different ways.
For full marks, the level must involve some amount of platforming, jumping, or some other puzzle
mechanic.
Additional Features [5]
Create additional features and game mechanics to improve upon the basic game. This might include
points, effects, special moves, special art, or any other neat gameplay mechanic. Additional gameply
polish will be counted here as well.
Getting Help
This assignment will catch you off guard if you leave it to the last minute. Come to labs to make sure
you are getting enough time and learning in for the assignment. This assignment is critical for your
knowledge of Unity and basic game programming concepts.

Figure 2: Player character