Tetris Proposal

advertisement
TETRIS PROJECT
SOFTWARE PROPOSAL
CLASS:
INSTRUCTOR:
TERM:
DATE:
AUTHORS:
CECS 491
DR. ALVARO MONGE
FALL 2010
SEPTEMBER 5TH, 2010
DAMON CHASTAIN
MATTHEW URTNOWSKI
Tetris Project: Software Proposal
Chastain, Urtnowski
TABLE OF CONTENTS
Project Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Interest in Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Goals of Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Scope of Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6
Assumptions of Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Challenges of Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Use of Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Comparison with Similar Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Available Research Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2
Tetris Project: Software Proposal
Chastain, Urtnowski
PROJECT ABSTRACT
The objective of the project is to build a working, three-dimensional, Tetris game
that can be played free of bugs with alterations to the classic game to make it more
user-friendly, fun, and challenging. The game is meant to be open source and will be
created under GNU General Public License v3 guidelines. The game will be playable
as a single player game and meant to act as an enhanced version of the classic.
Players will be able to enjoy various game modes allowing them to play the classic
Tetris or new modes that put a new “spin” on the classic game.
The game play
changes for the new modes may include items that help or harm the player, importable
music selection, different block shapes, a selection of skins, a marathon mode and timetrial mode.
3
Tetris Project: Software Proposal
Chastain, Urtnowski
INTEREST IN PROJECT
BY DAMON CHASTAIN
I have dedicated the summer to game programming and advancing in my career
as a game programmer. My ultimate goal out of college is to acquire a job in game
programming with a game programming company; however, it is nearly impossible as
each entry-level job requires 2 years of experience. The companies understand that this
is a Catch-22 in that you need 2 years’ experience to receive 2-years’ experience but
they stick to it regardless. The only way to get experience is to create projects on your
own spare time for resume purposes. Over the summer I went through the very lengthy
process of creating a simple board game, Sudoku. Through trial and error I have been
inspired me to take on a larger project and have decided that Tetris would be the next
step given the 15 weeks that are available.
With that said, I have 3 different game programming textbooks as well as a
mentor, Arthur Gittleman, who could guide my group during the project as it is
developed. This will be created using C# and XNA Game Studios, which enables
amateur programmers to produce quality games without the support of an entire staff of
dedicated employees. Having a fully-functioning video game of this caliber will seriously
give me an edge over the thousands of other aspiring game programmers.
4
Tetris Project: Software Proposal
Chastain, Urtnowski
GOALS OF PROJECT
The purpose of this project is to gain development experience on a large scale
project from start to finish. In addition, creating an entire game in 3D will help push the
group away from the common fear of stepping out of the comfortable 2D setting that
one would first learn to program in. This project will present us with the greatest design,
development, and testing challenges of our academic career. We will learn first-hand
the problems that can arise when creating an XNA game. At the end of the semester
we will have a completed project that can be demoed and proudly listed on our
individual resumes. This will be our attempt to step away from the dominant use of
console applications and really focus in on something that's aesthetically pleasing to
see and play.
This project is also meant to enhance the group's understanding of 3D-modeling.
We will need to learn to manually build each item in our game by plotting vector, and
point, coordinates and layering these coordinates with specific textures. If time permits,
another goal of the project is to find, or create, the best possible lighting for our “world”
that would maximize the user's gaming experience. And finally, sound will play a major
role in the production of the game. The group will need to learn to blend sounds to
match the needs of the game or level. Sound effects, blending with music, blending
with more sound effects could sound extremely cluttered if done incorrectly and the
group must learn to control such conflicts and deal with them accordingly.
5
Tetris Project: Software Proposal
Chastain, Urtnowski
Scope of Project
The program will be written in the C# programming language as a stand alone
application. C# is a language that is gain popularity and “is intended to be a simple,
modern, general-purpose, object-oriented programming language”.1 The program will
also make use of new technologies such as the Microsoft XNA Framework. XNA is a
toolset that was developed to provide an environment for game developers to focus
primarily on “high-level” game development and less on “low-level” process
development.
Requirement specifications and expectations will not be collected from a
customer and instead will come from the developers themselves.
It will be the
responsibility of the developers to make smart design, development, and game play
choices. The design and features of the game need to be finalized early and remain
consistent throughout the project to ensure the development challenges of the game
meets the expectations of the course. We will be responsible for development at the an
application and user interface levels.
A working and stable game loop will need to be developed for the Tetris game
play. This game loop will need to be modified to meet the needs of the different Tetris
modes of play. User settings and preferences will need to be preserved when the game
is opened and closed. The game will need extensive testing and debugging to ensure
the game is playable, enjoyable, and free of distractions brought on by bugs.
The interface will use both 2D and 3D aspects of the XNA framework. The
gameplay of the actually Tetris blocks as well as the “world” they exist in will be 3D.
1
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf
6
Tetris Project: Software Proposal
Chastain, Urtnowski
The user interface display, including menus, buttons, score, and other notifications will
be in 2D. The design, layout, audio, graphic textures, and flow of the interface will all
have to be developed.
If the game is completed ahead of schedule it will undergo additional
development cycles to add new features. Some of these new additions may include
more game modes, new game play features, graphical or interface improvements, or a
multiplayer mode.
7
Tetris Project: Software Proposal
Chastain, Urtnowski
Assumptions of Project
Before beginning this project we must first assume that all members of the group
are serious about the class, have some experience with C# and XNA, and can put in at
least nine hours a week on the project. We also must assume that all group members
will make a conscious effort to keep in touch with other members via email or other
means, so everyone is a where of the group’s progress.
Currently Microsoft Express Studio C# 2008 is the newest version of any
integrated development environment designed to support XNA.
Therefore we can
expect that this will be the program we use to develop our game. The current version of
XNA is 3.1, so that is what we will use. XNA version 4.0 is expected to come out before
the end of the year, but due to the dramatic expected difference it will have from XNA
3.1 we will not change development to version 4.0 when it is released. Switching to and
learning the new version 4.0 framework may present too much of a challenge given the
length of the course.
We can also assume that all of the research materials and tutorials that are
currently available on the internet will continue to be available throughout the course.
The current XNA game development community has created at board variety of tutorials
and blog entries which cover topics and problems we will likely encounter as our project
progresses. Relying on these research materials and examples as guidelines is critical
to keeping the progress of the project moving.
8
Tetris Project: Software Proposal
Chastain, Urtnowski
Challenges of Project
With any project promoting teamwork and open communication between
members is always a challenge. It would be helpful for group member to first get to
know each other outside the project, so they can assess each others strengths,
weaknesses, and the best way to create a work environment that can survive conflicting
view points. Another challenge presented is in using Google Code to house our project.
This will be our first time using a revision software and it will take time to break-in the
new method of saving our work.
This project is planned to be one of the largest and most complicated ones we
have ever worked on. Staying on schedule and quickly overcoming any roadblocks will
be critical to being successful. Spending time first doing research on similar project and
reading related XNA tutorials will pay dividends down the road during planning and
development. Learning from others mistakes, instead of “reinventing the wheel”, is the
best approach.
Most of our academic career is focused on application development and less on
graphics and interface design. Learning how to render graphics in 3D, use 2D sprite
effects, and adding audio to a program are all fairly new subject to us. These are the
topics least familiar with, so spending a little extra time researching them is important.
Lighting and sound will also, both, present the group with several new and
interesting challenges. We must research and learn which form of lighting would best
suit our needs and how to implement that lighting. Sound in the project will need to be
controlled and monitored regularly to keep the game from being too loud or too quiet.
9
Tetris Project: Software Proposal
Chastain, Urtnowski
USE OF PROJECT
Our project is supposed to be a game, so at face value it will be used for fun.
The game of Tetris was first created in 1984 and is one of the most well known games
throughout the world and is still being play and improved upon even today, giving it a
seemly ageless property. “The game (or one of its many variants) is available for nearly
every video game console and computer operating system”.
2
In 2007, IGN
Entertainment ranked the classic Tetris second in the Top 100 Games of All Time.
3
As an open source project the game’s source code will also be used by other
developers as reference material for there own projects.
We have long used and
respected other open source XNA projects and we hope our project will give back to the
development community and inspire other developers.
Other developers may also
expand on our project after we leave the project at the end of the semester for there
own purposes.
The main purpose and use of this project will be to post on our resumes. Our
future employees must enjoy the game and the time put into it to consider us for
employment. With the use of the project in mind, we aim to create the most enjoyable
Tetris we can make.
2
3
http://en.wikipedia.org/wiki/Tetris
http://top100.ign.com/2007/ign_top_game_2.html
1
0
Tetris Project: Software Proposal
Chastain, Urtnowski
COMPARISON WITH SIMILAR PROJECTS
Tetris currently holds the Guinness world records for “Most Ported Video Game”
and “Game with the Most Official and Unofficial Variants”, so there is no shortage of
other Tetris games for us to examine.4
The 1989 Nintendo Gameboy version is
perhaps what people think of when talking about classic Tetris. The comparisons will
be used heavily when considering the sounds that are to be used or reproduced. Other
Tetris games could be referenced when determining the speed of the game. Basically,
any XNA program could be referenced to see how the game loop is manipulated and to
see how memory is stored and allocated.
Other XNA games with our components may be:
-Druid
-MechCommander 2
-Other open source Tetris implementations
-etc. (countless XNA games from a group of our online peers)
4
http://gamers.guinnessworldrecords.com/records/multi_format.aspx
1
1
Tetris Project: Software Proposal
Chastain, Urtnowski
AVAILABLE RESEARCH RESOURCES
Microsoft has been encouraging developers to use the XNA Framework since its
creation and has created large libraries online of reference material and tutorials. Some
of the more prominent Microsoft research materials include the .Net Framework 1.1
Class Library 5, XNA Framework Class Library 6, XNA Game Studio 3.1 explanation 7,
and XNA tutorials for beginner topics. 8
There is also a seemingly endless supply of other reference material and
examples on individual sites all over the internet. The XNA Creators Club Online is an
amazing site for connecting with other XNA developers and demoing other project.9
Free access to the XNA Creators Club is provided by the MSDN Academic Alliance in
which our school participates.10
Also typing in any development questions into an
internet search engine usually returns favorable results which contains answers or
discussions relating to the question.
5
6
7
8
9
10
http://msdn.microsoft.com/en-us/library/d11h6832(v=VS.71).aspx
http://msdn.microsoft.com/en-us/library/bb203940.aspx
http://msdn.microsoft.com/en-us/library/bb200104(v=XNAGameStudio.31).aspx
http://msdn.microsoft.com/en-us/library/bb203897(v=XNAGameStudio.31).aspx
http://creators.xna.com/en-US/
http://msdn07.e-academy.com/elms/Storefront/Home.aspx?campus=csulb_cecs
1
2
Download