My main goal with this prototype was to lay out the graphic design of the game's main screen to include all of the interactive features. However, I couldn't resist taking some time to work on the game's "engine" -- the core programming that governs the game itself. I intentionally avoided anything having to do with the educational aspects of the game (i.e. bicycle safety), though this remained on my mind throughout the building of this prototype.
This prototype represents about 5 hours of work with about half of that spent just on "tinkering" with the game's engine.
Interface Design Issues
The game's main screen must effectively communicate all of the game's features and options, the dynamic elements of the game (the movement of the "bike" on nowhere road while the player maneuvers the bike on nowhere road while dealing with cars and dogs), and the player's game status (thirst, fatigue, etc.). This is a difficult challenge. My strategy is to use the screen as a sketch pad along with Authorware's simple graphic tools to rough out how to use the limited screen space. I prefer to use Authorware itself whenever possible, in contrast to using paper and pencil or other graphics applications, in order to get a realistic sense of the "look and feel" of the game's "play space" from the beginning. For me, it's just as easy to do this in Authorware as it would be with a real sketchpad. The main objective is to not only fit everything on this limited screen space, but also to do so in a way that effectively communicates to the player how to actually play the game and to give the player the right feedback at the right time. It's also important to balance this functionality with aesthetics. The visual layout of the "play space" needs to be appealing -- it should look fun and enticing. Unfortunately, I rate my graphic design skills as about average. But I'm not going to worry about the aesthetics of the program at this point. I feel if I can establish a meaningful play space I can always get some help from some of our department's graphically gifted individuals.
So, I just started "brain dumping" all of my game ideas as I doodled on the screen. I left the bicycle animation at the top and added graphics for shifting the bike gears on the right and a graphic to show the terrain on the left. I can see right off that depicting hills is going to be a difficult task, given the 2-dimensional and limited screen space. Ideally, I would like to be able to tilt the bicycle animation to quickly illustrate whether the player is climbing, descending, or traveling on a flat stretch. Unfortunately, I already know that Authorware does not have this feature (unlike Director). I quickly decided to embed a "hill gauge" to show whether the player was ascending, descending, or traveling on a flat road. I'm not too happy with this.
In the center of the screen I put a "graphic placeholder" for where I will show off landmarks of Nowhere Road. Yes, I know that it would be ideal for the biker to be placed in an immersive 3-D virtual world of Nowhere Road. Get real! I need to remember that I am my own production studio without access to sophisticated programming tools (even if I had the tools, I don't have the skills or time to acquire them!). Plus, this game needs to stay "lean and mean" in order to be transmitted over the web. For now, I just want to be able to have a new landmark appear in the box along with a short description as soon as the player gets to that point on the map. (I'll keep some of the 3D ideas "on the back burner" -- you never know, I might be to do something more creative with QuickTimeVR later.)
Finally, at the bottom I built a variety of graphic placeholders for some of the dynamic parts of the game. In the bottom-center, I envision have a simple interactive display that gives the player a first person view of the game (similar to lots of video games). Again, it would be ideal to have actual images from Nowhere Road placed in here, but my thinking is just to have a simple graphic of a road way displayed that moves left and right with the player's task to stay properly placed on the right side of the road. I envision this as the space where those "mean country dogs" appear to chase the player. The player would need to either avoid the dog or use the "dog repellent" to keep the dog away. I also would like to have cars appear with the player only staying safe when staying in the correct position on the road. Obviously, times when a car and dog appear would provide the greatest challenge.
I also saw the need to give the player other kinds of feedback for both physical and mental state of the biker. For example, the most obvious variable is thirst. It is important for a biker to stay sufficiently hydrated on a ride. The need for water depends, of course, on the weather conditions -- more water is needed on those hot Georgia summer afternoons than on a chilly Fall morning. Taking a drink while riding is not a simple matter when moving at a fast speed. One hand must be taken off the wheel and the biker must reposition him/herself carefully to grab the bottle and take a drink, while at the same time maintaining proper control of the bicycle. The other physical states I thought of were fatigue and hunger, though I'm not sure I'll keep the latter (after all, we're just biking to work, not to Alabama). I also included some mental states, which I termed "stress", "flow", and "thought". One of the main reasons I bike is to feel good emotionally -- I find biking to be a great "stress buster". I want, somehow, to include this side of biking in the game. I want to reward the player for getting to the point where enjoyment kicks in. There is an interesting, complex side to this. Sometimes, when I'm really into a bike ride I find myself "lost in thought". I work out tough problems or worries usually while on long bike rides. When this happens, I'm not really aware of my body or the physical exertion. Instead, I am in a certain mental state that psychologists call "flow". This is a great feeling! Unfortunately, the down side to this is that I'm afraid that I might not be as aware of the road conditions as I should be. I'll find myself surprised by a chasing dog on a stretch of road that I know well. Consequently, I am "jerked" out of flow and into a situation in which I'm not well prepared. (I find that driving long distances can also trigger this flow state for me.) So, flow and "lost in thought" has both a positive and negative meaning.
Frankly, I'm not sure how I'll incorporate all of these elements into a meaningful game, but this is the direction I'd like to take it.
The other main interface component relates to establishing the right "feel" for biking on uneven terrains, as discussed in the next section.
Programming the Game Engine
I spent a little bit of time working on the programming that controls the interactive portions of the game -- I call this the "game engine". I have my own programming approach for this sort of thing based on lots of other games that I have built over the years. The engine has standard physical variables: distance, speed, and acceleration. Acceleration is based on the pedaling action of the player along with the terrain -- while going down hill, gravity accelerates the bicycle, so no pedaling is necessary while strenuous pedaling is necessary to go uphill. My approach is not very elegant. I just use a series of "if/then" statements, such as: "if distance>50 & distance<150 then hill:=1" Translation: if the red dot is currently between positions 50 and 150 on the map, set the slope of the hill to "downhill" (-1 is uphill and 0 is flat).
As you play the game, the interface has to be just right -- the player should get the sense that the bike is speeding up, slowing down, or maintaining speed as appropriate. I spent quite a bit of time just "tweaking" the engine after I built it. Although the gear shifting options don't work yet, these will be crucial to the biking experience, just as they are in real life. It is vital to choose the right gear to match the terrain. The basic idea is to keep the rhythm of the pedaling constant -- use a lower gear to go uphill and use a higher gear to gain speed going downhill.
Finally, I'm not sure if I'll including the need for braking. If I do, I'll probably just include hot spots over the left and right handlebars so that when the player clicks and holds on either handle, the bike's brakes are applied.
Technical Problems & Solutions
Other design considerations
One last note: Search for a lost road
I was studying the game's screen map the other day and noticed a small road named "Wages Bridge Road" (on the map it runs roughly parallel to Nowhere Road to the west. I've biked all through this area and never noticed it before. Well, I went on a bike ride this morning with the explicit goal of finding this road. I searched all over using this map as my guide, but without luck. I found several interesting roads, including one named "Watson Farm Road" that seemed to be at the right spot. I thought perhaps this road had changed names, so I took it, however, it did not come out anywhere near the junction of US 441 and SR 334, as indicated on the map. The next time I take my son for a drive, I plan on hunting down this road.