CMSC325 - Game Design and Development

Week 1 Participation Topic: Personal Experience

Please reply to this topic with your background in gaming.

Specify your first experience of gaming and the game system.

What game system do you currently own/use, including consoles, mobile devices or PC?

What is your favorite game and game type? Why do you like it most?

Lastly, please outline your future career plan in gaming industry, if any.

Specify your first experience of gaming and the game system.

My first game console I ever used was Nintendo Family Computer known as Nintendo Entertainment System (NES) in the U.S., and my first game titles were a Dragon Ball's fighting game and Renegade, which is a beat 'em up game developed by TECHNOS JAPAN.

Also my first mobile device I used was Game Boy, and what I first played on it was FINAL FANTASY LEGEND II developed by SQUARE ENIX.

What game system do you currently own/use, including consoles, mobile devices or PC?

Game systems I currently own are as follows.

Consoles: PlayStation, PlayStation 2
Mobile devices: Game Boy Light, Android Phone, iPhone 5
Mac: iBook G4, Macbook

What is your favorite game and game type? Why do you like it most?

Role-playing Games (RPGs) are the most favorite because imaginary world experiences seem like reading a novel. Also it is very exciting that the main characters become stronger by earning experience points. I was especially absorbed in Pokemon and Dragon Quest series for Game Boy, FINAL FANTASY series for Play Station and Play Station 2 when I was little.

In addition to RPGs, I also like simulation games. I often used to play Capcom's Monster Hunter and KONAMI's Live Powerful Pro Baseball, a popular baseball simulation game series in Japan, on PS and PS2.

Lastly, please outline your future career plan in gaming industry, if any.

In my future, I am interested in working for creating social games and developing their game systems as a technical director.

Week 1 Homework 1

Your task for this first homework assignment is to install your development environment (IDE) if you haven't already (NetBeans or Eclipse for Java, Visual Studio for C#), and create a basic coin-flip guessing game. The game should prompt the player to choose heads or tails, flip a virtual coin and then display the results to the player. You do not need to actually show the coin. However, you have to keep track of the coin flipping outcomes and the player’s guesses. Try the game for 100 times (use a loop), and generate a statistics on the odds of getting the right guess.

What to submit:

All of the above should be attached to your assignment as a single *.zip file.

Week 2 Participation Topic: Storytelling in Games

Pick a story-driven game that you have recently played. Share the story with us.

Describe what the game was, what captivated you about the story, and what made you think of it now.

If you cannot think of any games for your story-telling, how do you think can a game be story-driven? Consider the premises and the characters involved in the game.

One of the best story-driven games that I ever played was "Metal Gear Solid 3: Snake Eater" developed and published by Konami for Play Station 2.

The story is set in 1964 after the Cuban Missile Crisis in the middle of the Cold War. The main character is a CIA. agent and FOX operative codenamed "Naked Snake." FOX is a high-tech special covert forces unit in the game. His mission is to rescue USSR's scientist named Sokolov who is developing a nuclear-equipped weapon called Shagohod.

In addition to its splendid story, its 3D depiction makes a very realistic world view.

Week 2 Homework 2

Within 500 words, describe the social implications of gaming. Besides entertainment, think of other aspect of our society that can be affected by gaming.

As with all written assignments, please review your paper for the correct use of grammar and spelling. Don’t forget to cite the references for your paper in proper format. There is a link in the syllabus for UMUC writing guideline.

fileCMSC325_Homework2.pdf

Week 3 Project 1: Questions and Comments

I am wondering which I should choose Java or C++ as my language for my projects.

Hopefully I would like to use OpenGL with C++ because I took Computer Graphics class in the last term and I learned them. But there is a problem that my development environment for OpenGL and C++ is XCode on Mac OS X Snow Leopard (10.6).

Can I submit only header files and source codes? Or, do I have to change them to exe file? I might be able to do so by running Windows on my Mac with VMWare Fusion and installing Visual C++, but that process won't be simple.

What do you recommend?

I would recommend you to use JMonkey 3d engine, which is Java based. You can develop the project games easily with this package.

Just go over the tutorials to get started.

Week3 Project 1

You will use an existing game engine and map to modify and create your own level. Your instructor will provide some possible engines to use but the student is also free to recommend a game engine they have used before that has modification features.

The level you create must be unique, realistic and playable by multiple players.

The following components and design criteria should be used:

Week 4 Participation Topic: Painting with Triangles

Since the advent of polygons to draw game objects and move gaming fully into three dimensions, there has been much debate about whether certain games would be better using sprites instead of polygons. For instances, many "2D" fighting games, games in which players only move in two dimensions, are moving from traditional hand-drawn sprites to rendered 3D models using polygons. Choose a game that uses one of these techniques (polygons or sprites), and detail why you think it would be better if it used the other. Reading the posts from the other students, reply to at least two and describe whether you agree or disagree with them.

Metal Gear Solid series are definitely suited for 3D polygons. I also think most of story-driven games such as RPGs are more thrilling and impressive in 3D by realistic models, advanced animations, and appropriate camera views. Thus, players will be more deep into the game.

I agree with the point that the positioning would be easier to get correct if this was a sprite based game.

In fighting games, it is important for users to be able to predict timing and perceive distance and direction accurately. Because of only X and Y axes, 2D is easier to do so.

I agree that Super Mario Bros. is a successful example to migrate from 2D to 3D.

I think such migration of this kind of game is quite a hard work because in Super Mario Bros, the user needs to predict timing and perceive distance and direction. I suppose Nintendo achieved a redesign of the game with keeping the core concept.

Week 4 Homework 3

The conference discussion this week will have you looking at the differences in sprites versus polygons, arguably "old" versus "new" technology. Though they have been used for many years now, there is no reason to expect that polygons will never be replaced with something newer and more advanced. In at least 500 words, describe what a "voxel" is and how it differs from both sprites and polygons. What would be some advantages and disadvantages of using voxels?

As with all written assignments, please review your paper for the use of proper grammar and spelling. Please also make sure to properly and consistently cite any sources that you use.

fileCMSC325_Homework3.pdf

Week 5 Participation Topic: Acting Out

When you think about artificial intelligence, you might imagine something like an autonomous enemy chasing the player down or an AI companion (who usually runs out of his or her way to get shot). However, artificial intelligence is used in quite a few places. For example, a game which immerses a player in a world with a rich ecosystem, might use AI to control the weather.

This week, I would like everyone to think about and describe an example of how AI could used in a "non-traditional" sense.

An example of non-traditional AI based game I ever played that comes to mind is SEGA's soccer club management and player development simulation game named Soccer Tsuku 2002: J-League Pro Soccer Club o Tsukurou! that means let's make a J-League pro soccer club!

You run your own pro soccer club by making training programs and acquiring players for the purpose of building world's most powerful team. Although you can give instructions during games, you cannot operate any players directly.

Sorry! I could find the only Japanese Web site as below.
http://www.sakatsuku.com/history/06/

Week 5 Homework 4

Especially with online multiplayer games, companies are heavily vested in protecting both their intellectual property from theft (digital rights management, "DRM") and other players from cheating (hack/bot detection). In at least 500 words, describe some of the ethical and legal issues with involved with these techniques. Is it fair to subject players to increasingly invasive protection mechanisms, or is it necessary in order to protect the experience?

As with all written assignments, please review your paper for the use of proper grammar and spelling. Please also make sure to properly and consistently cite any sources that you use.

fileCMSC325_Homework4.pdf

Week 6 Finding Your Own Path

As you should all have realized by now, designing and making a video game isn't fun all of the time. I know that most of you probably have had to turn to outside resources to find solutions to problems. This is part of the learning process (this is a 300-level course afterall) and there is really no way to encapsulate all of the knowledge necessary for every possible game in one course.

This week, I want to know what you had to go searching for and how (if) you found it. Did you have to look up specific formulas for your physics calculations? Did you have to find the right method to call for your graphics API to get something on screen? Did you have to look for something else? (these are only examples)

I created both PR1 and PR2 by using jMonkeyEngine for the first time. Actually, the most of its syntax and methods I learned are from the tutorials below.
http://jmonkeyengine.org/wiki/doku.php/jme3

Sometimes, I can hardly understand of exact behavior and parameter meanings of a particular method of a jME API class. When that happens, I check jME API documentation.
http://www.jmonkeyengine.com/doc/

Because jME org offers a lot of materials, I can find out its information to develop easily. But there is very few Japanese information, so I hopefully would like the system to support Japanese in the near future.

Week 6 Project 2

Create a Java or C# application that simulates a minimum of 3 spheres moving through a frictionless environment with gravity. The environment should be a confined cube area for the spheres to collide and respond. The application does need to display the positions of the spheres in real time, but the 3D vector positions should be saved for each sphere to an output file for future plotting. Set initial velocities and positions and run the simulation for at least 100 iterations. Design your application such that collisions and their associated responses will occur during the simulation.

You should submit your completed application Java source code and required deliverables in compressed format (winzip.com) in your WebTycho portfolio by the due date listed in the syllabus.

Deliverables include:

fileBouncingBalls2TestData.pdf

Week 7 Social Anxiety

A social gaming. Like it or hate it, it is one of the major trends in gaming right now. One of the tenants of social gaming is the necessity to play with other people, either to cooperatively complete a goal, or simply to socialize. With social gaming companies like Zynga now worth billions of dollars, other traditional game companies are taking notice. Even with well established franchises, companies are incorporating more social aspects in their games, such as Facebook integration. Do you think that this trend is good or bad? Why?

From the view point of an user, I like the trend. You can share your achievements by competing and collaborating among users via the internet. Also you can play many of social games at any devices such as PCs, smart phones, and feature phones. Moreover, companies can easily receive feedbacks from users and keep improving their games in a short period of time.

From the view point of a social game provider, social games are more competitive and cost so much to develop and operate them compared to console games.

It is harder to make users lock in a specific platform because now users don't have to purchase specialized hardwares. Other than Facebook, in Japan, social game platformers such as GREE, DeNA, and Cyber Agent firmly established their positions, and many social game providers are rapidly growing and went public in recent years. Especially GREE and DeNA are the strongest for feature phones.

The business model was drastically changed. Prices of a game are cheaper than a console game. Players use the most of platforms for free, but pay for items or other options. In other words, companies need to finance initial development costs. In addition, they take care of costs for operating such as service improvement, monitoring, and infrastructure. That's why I think social game industry is a certainly growing but very tough field.

Week 8 Sequels

While networking and multiplayer aspects were not required for your games, they are still a major aspect of game design. Let's look to the future and imagine that there was a companion course which focused on networked multiplayer games: CMSC4XX (425 is already taken...) - Game Design and Development II.

What kind of game would you develop for this course? Would you extend your current design or go for something different? Would you even take the course?

Because I am interested in more infrastructure side such as networking, OS, and middleware, I would like to try it.

Since I learned 3D Java game programming using jMonkeyEngine through this class, I want to make an Android game. On the other hand, with the use of Java Script, you can create both iOS apps and Android apps easily, also a recent trend Node.js allows developers to do server side programming by JS. Also I can use WebGL, so that the language sounds like fun.

Week 8 Final Project

Students will use a popular, freely distributed game platform to design, implement and test a video game using its advanced 3D graphics and physics modeling capabilities.

Requirements:

Using the 3D graphics and associated Physics engine develop an arcade style game that allows a user to fire at various types of targets and be awarded points when the bullet or missile collides with the target. The following functionality is required:

  1. At least 4 types of targets should be displayed in the game. As targets are destroyed they should recreated at another location in the scene automatically.
  2. Each of the targets should be moving in the scene.
  3. At least one of the targets should have gravity/physics applied.
  4. Bullets or missiles should be unlimited.
  5. A Heads-up Display should be provided with a minimum of score totals for each target, total score, high score, and the number of bullets/missiles fired.
  6. High score should be stored in an ASCII file. Optionally, scores can be kept in a database with ability to have initials and scores for top 5 stored and displayed.
  7. Simple directions for running the game should be included on the screen
  8. A game timer should be embedded limiting a game session to 5 minutes or less.
  9. Coding conventions should be followed based on the programming language used.

Deliverables include:

fileCMSC325_FinalProject.pdf

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS