Technical Workshop

The focus of today’s lab is to finish work on your architecture specification and design specification. You will note that when we say “today”, we mean both the Tuesday section and the Thursday section. These are incredibly important documents so you have all week to work on them.

If you received comments back at the critique session, you should use those to help you. These are difficult documents, and the initial scores on them are often quite low. So make the best use of this discussion.


Architecture Specification

While you are working on this document, you should be able to answer all of the questions below. If you do not know the answer to a question, it means that part of your architecture is unclear, and you need to improve it.

CRC Tables

  • Can you identify the main controller class, the one that starts up the game?
  • Do any of the classes violate the model-view-controller pattern? Why or why not?
  • How does saved information get from the data files to the models?
  • How does information get from the models to the scene graph (or your custom render pipeline)?
  • How are you abstracting input so that it works on both desktop and mobile?
  • Are there too many classes? Too few? (This is a very hard question to answer)

Dependency Diagram

  • Is every element from the CRC tables represented in the dependency diagram
  • Is every collaborator in the CRC tables represented by a link (and vice versa)?
  • Is the graph planar? If not, can reorganize the diagram?
  • Does the diagram show how to break up tasks while minimizing meetings?

Activity Diagram

  • Do the responsibilities in the activity diagram appear in the CRC cards?
  • Is the order in the activity diagram essential, or could something be parallelized?
  • Is the resolution adequate, or do some of the responsibilities need to be expanded?

Data Representation

  • Is there enough information in the data format for you to create a sample file?
  • Is enough data being serializing, or is there some data that is overlooked?
  • Is the choice of file format (TXT, XML, JSON, etc.) adequate for this game?

Design Specification

The programmers are going to be working on the architecture specification. But that does not mean that your work is completely separate from theirs. There is one major portion of the visual design specification that will influence the software architecture. That is the file formats. So we want you to spend a good amount of time in this section on that topic, working with the programmers. Then, you can split off and think more about the other topics.

File Formats

Programmers must be able to put in your assets into the game, and they cannot do this without knowing some specific details. Make sure you can answer the following questions:

  • How should the programmers use this file in the game?
  • What is the file type and extension?
  • What are the sizes (pixel) for the most common art assets? Is there a standard size?
  • What are the layouts of spritesheets? Is each animation its own image or are they combined?
  • Do certain color channels mean anything specific in image files?
  • Are audio tracks meant to crossfade or loop? How do you differentiate?
  • How is the volume level of individual audio tracks normalized?

Once again, if there is any doubt on these questions, confer with your programmers during section.

Art Style

  • What perspective will your game use?
  • How will the color palettes distinguish different features of your game?
  • What types of brush styles will your art use?
  • Will your art style be retro pixel art? Realistic? Cartoonish?
  • What types of animations will your game include?
  • Are there any programmatic art features, like shadow or fog effects?

Concept Art

Remember that we want any early concept art for character/background/elements that have been developed at this time. Concept art does not have to be, and really should not, be used in-game. It can be very rough. But we want something to help us visualize the game.

Concept art does not need to be limited to character or environmental assets.
Understanding the user interface is equally important. The user interface should have a similar art style to the game. Please include some at least one mock-up that helps us understand your user interface.