CSC 481 Fall 11 Homework 1: Engine Foundations Overview Part 1 ...

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

31 Οκτ 2013 (πριν από 4 χρόνια και 12 μέρες)

77 εμφανίσεις

CSC 481 Fall 11 Homework 1:Engine Foundations
Part 1 Due:8/31/11 by the start of class
Part 2 Due:9/14/11 by the start of class
Overview
Your task for this assignment is to explore the basics of constructing a 2D platformer.You should become
somewhat familiar with the Unity3DGame Object Model,and then develop your Game Object Model.You
will be using the Unity3Dgame engine for the first part of the assignment,and the Processing programming
language for the second part.For both parts of the assignment,you will submit your code and writeup of
your results,including screenshots where appropriate.This is an individual assignment,you are to work
alone.
Part 1,First Steps:Unity3D
Your first task is to download and familiarize yourself with the Unity3D game engine and its interface.You
can obtain the game engine by going to http://unity3d.com/unity/download/.If you have
never used Unity3D before,it will be a good idea to look through the “learning the basics” documentation
(http://unity3d.com/support/documentation/Manual/Unity%20Basics.html).
Part 1,2D Platformer Tutorial
For this part of the assignment,you should begin working through the 2D Platformer tutorial.That tutorial
can be found here:http://unity3d.com/support/resources/tutorials/2d-gameplay-tutorial.
You will need to download the tutorial.zip file which will contain all of the necessary assets.
Follow the tutorial for the first 21 pages in order to create your 2D platform environment and have the
included character (Lerpz) walking around.Pay careful attention to the functionality that you are using to
create the environment.
Part 1,Submission
In 1–2 pages,please address the following:
• What functionality of the game engine did you use to create your platformer environment?
• What functionality of the game engine could you do without if you were creating your own platformer
in your own game engine?
• How does knowledge of the Unity3D software in general,and Game Object Model more specifically,
informthe design of your own engine software.
Part 1,What to Submit
By the start of class on 8/31/11,please upload to moodle a.zip file containing your Unity3D scene and a
pdf of your writeup.
1
Part 2,First Steps:Processing
You should begin by familiarizing yourself with Processing (http://processing.org).“Processing
is an open source programming language and environment for people who want to create images,anima-
tions,and interactions.” Processing contains an IDE and runtime execution environment.If you’re more
comfortable,you can create Java classes that extend the base Processing classes to work in your preferred
IDE.Bear in mind that we will need to compile and run your code to grade it,so make sure there are no
special requirements that might prevent us fromdoing so.Specific instructions on howto build a processing
PApplet with Eclispse can be found here:http://processing.org/learning/eclipse/.
Take some time to play around with Processing and familiarize yourself with the basics.You should
implement code for the following:
• Draw squares,rectangles,and a circle to the screen.
• Collision detection between objects.This doesn’t have to be anything fancy or efficient.Just get
something working.
• Move the circle around the screen in response to keyboard inputs:(left,right,space to “jump”).
Physics don’t have to be realistic,but you should have a “jump” that maintains left or right movement,
and doesn’t continue off the top of the screen.
Part 2,Game Objet Model
Design and implement a class hierarchy for a Game Object Model.Bear in mind the requirements that you
had defined in your writeup of Part 1.You should implement this class hierarchy sufficiently generally so as
to enable reuse.Furthermore,make sure your design enables hierarchical game objects (like the groups of
platforms you created using Unity).
Make sure to include a detailed discussion of your design decisions.What class member variables did
you include?Why?What do they enable?What methods did you define?Why?What do they enable?
Part 2,Scripting (Light)
We will implement a more fully-featured scripting system in a future homework assignment.For now,you
are to simulate scripts associated with game objects using compiled methods.Consider the scripts that you
used during the unity tutorial.At the minimum,you will need to replicate some of that functionality in your
Processing code.In particular,you will need to replicate the DeathZone Trigger script and the Character
Spawn Point script.If you are more ambitious,you will need to replicate the camera scrolling script as well.
For now,don’t worry about making a fully general script simulator,just focus on getting the proper
functionality in place.
Part 2,Objects to Implement
Using your newly defined Game Object Model,implement the following game objects and include them in
your Processing scene.
• A spawn point
• A character (this will be your movable circle fromthe previous part).
2
• Platforms of various types that you can compose into larger platforms.
• Bounding box (the boundaries of the scene beyond which your character cannot travel).Note:your
bounding box must be distinct fromthe edges of your Processing canvas!
• Death zone
After implementing these elements,you should have a scene in processing that is roughly similar to the
one that you created using the unity tutorial.
Extra Credit (20 pts.max)
Implement moving platforms and scrolling.
Moving platforms should retain all of the properties of a regular platform,but use a simulated script
to reposition themselves.Bear in mind that the player should move with the moving platform,so your
simulated script will have to support that functionality.
Scrolling should work by following the character’s position through a larger world.You will simulate
the process of the camera moving by changing the position of all of the objects in the environment,not the
actual view.
Part 2,Writeup
Now that you have design and implemented a number of engine components,write a 2–4 page paper sum-
marizing your findings.It is strongly suggested that you do not limit yourself to only answering those
questions posed in this assignment.Think creatively about what you have done.Why did you make the
design decisions you made?What did they enable for this assignment?What will they enable in the future?
The most successful writeups will contain evidence that you have thought deeply about these decisions and
implementations and what they can produce and have gone beyond what is written in the assignment.
As an appendix to your paper,please include all relevant screenshots to support your discussion.The
appendix does not count toward your 2–4 page requirement.
Part 2,What to Submit
By the start of class on 9/14/11,please upload to moodle a.zip file containing your Processing code,a
README file with compilation instructions,and a pdf of your writeup.
3