Identify Your Weaknesses
In this step of the process you look at the rules of your game and list all the gaming concepts, knowledge, and other skills you need in order to complete the game. This is not the place for bluffing! Identify the areas that you know you cannot complete by yourself. With this information you can then find a way to fulfill each of those requirements where your existing knowledge isn't enough. Some of the steps you'll need to take will require research; others may require asking for help.
Let's list the major things needed to create the game of 8-ball.
In Table 2.1, the first column contains a list of the requirements for creating a game of multiplayer 8-ball. The second column is where you indicate if you can meet that need. In this table, I have filled in the second column as a typical beginning game designer might. Table 2.2 contains information on how to satisfy each of these requirements.
TABLE 2.1 Knowledge and Assets Checklist
Need |
Do I meet this need? |
A copy of Macromedia Flash |
Yes |
Proficiency with ActionScript |
Yes |
The ability to calculate collision detection |
No |
The ability to code realistic billiard-ball collision reactions |
No |
Knowledge of multiuser gaming |
No |
Access to sounds needed for an 8-ball game, or the ability to create such sounds |
|
The ability to create all graphical elements needed for the game |
No |
TABLE 2.2 Filling the Knowledge Gaps
Need |
Solution/Action |
A copy of Macromedia Flash |
Install the 30-day trial version of Flash on the CD-ROM that comes with this book, or purchase Flash from www.macromedia.com. |
Proficiency with ActionScript |
Learn ActionScript. You can buy a Flash book or read the tutorials provided with Flash installation. |
The ability to calculate collision detection |
Read Chapter 5, "Collision Detection." |
The ability to code realistic billiard-ball collision reactors |
Read Chapter 6, "Collision Reactions." |
Knowledge of multiuser gaming |
Read Appendix B, "Multiuser Servers," and all of the specific game chapters in Part 3 that deal with multiplayer games. |
Access to sounds that are needed for an 8-ball game, or the ability to create the sounds |
Find someone who can create the sounds for you, or download software such as Syntrillium Software's Cool Edit (www.cooledit.com) to help you record and edit your own sounds. You can find sound effects on the Web at such sites as www.ultimatesoundarchive.com. |
The ability to create all graphical elements needed for the game |
If you are not skilled at creating graphics, it would be a good idea to find someone to help you. You can find people skilled in graphic design on the boards at Flash Kit (www.flashkit.com). |
In this step the main objective is for you to identify all elements of the game that you do not have the resources to develop. One of the best things you can do to learn more and get help (other than read this book, of course) is to ask other people for advice on the boards at popular Flash resource sites (see Appendix E).
As a new game programmer, you will probably encounter many things you do not know how to do. It's a good idea, as part of your quest to learn these things, to create several tests of each concept to make sure that you know how they all work. For instance, with the 8-ball game, you might want to start testing collision detection with just two circles. Then, when you understand this level of collision detection, try it with multiple circles. Only when you are confident that you fully understand how to use collision detection with the needed number of spheres should you move on to testing collision reactions.
Note
It's important to understand how these things really work. If you are just copying and pasting code from examples in this book or from another resource without fully understanding the concept, you're going to have trouble later when you're trying to work through any bugs that crop up.
Anything on your list that you will not be able to satisfy, or that you can't find someone to help you with, is subject to being cut from your game. The next step addresses this.