| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Malaria Game

Page history last edited by Derek Lomas 13 years, 1 month ago

Preview Existing Game Demo at:

http://playpower.org/games/malaria/

 

 

1.0 Application Brief
1.1 Description of Application
Malaria is a big problem in developing countries. By creating an interactive experience which shows not only the negatives of Malaria, but the solutions available to preventing/curing problems caused by Malaria, we can educate people on the best way to help not only themselves, but their family and their village.
1.2 Goals
* The application must run on the NES (note: we can assume that if it runs on the NES it will run on any other platform that is based on the NES, ie. Famiclone.)

* The application must serve to educate the Player on the benefits of different forms of prevention, and how to cure infected people.

1.3 Players
The application will be targeted at Players in developing countries
1.4 Precedent
* The GDC preview of the Malaria Game can be used as a reference. However, the GDC is uncommented, and will most likely remain that way. Therefore, it would be prudent to anticipate that no code exists for this game.
* The graphic and audio assets can be recycled from the GDC preview. If any new graphic or audio assets are required, the Playpower team will help supply them.

2.0 Conceptual Models
2.1 User Model
(note, this is taken from correspondence from Don to Kishan.)

There is a swatter that moves around the screen to kill mosquitoes. However, this swatter can change into other objects that the player collects. These objects appear as the player kills mosquitoes. The other objects are: first aid kit, bug spray can, screen, and shovel. The first aid kit is used to heal townspeople that have been bitten by malaria carrying mosquitos. The bug spray can is used to spray townspeople to keep them safe from malaria. The screen is used on the house, and will cover the doorway. The shovel is used to clean up trash or water on the ground.
The townspeople still wander randomly. They will start to color cycle / flash if they are bitten by a malaria carrying mosquito. There will be one health bar on the side of the screen, representing the town's health. If it reaches zero, the game is over.
The houses will be the same, but the doorways will just be black squares. After the player collects the net, he can use it on the house to cover the doorway.
The water and trash will appear in the town, and spawn/create mosquitos. The player can use the shovel to destroy the water or trash piles.
There will be two types of mosquitos. Normal looking ones, and ones that are flashing/color cycling. The flashing ones will have malaria. These are the ones that must be killed to get the other objects.
As it says above, the player will lose the game if the health reaches zero. Derek also likes the idea of a timer for each level, too. You can win the level if you: cover all the doorways with nets and destroy all the water and trash piles. A few ways to make the levels harder each time include: faster / more mosquitos and health dropping faster.

2.2 Programmers Model
2.2.1 Assets Required
* Townsmembers (Male, Female, Animals)
* Mosquitoe
* Fly Swatter (cursor)
* First Aid Kit (cursor)
* Screen (cursor)
* Bug Spray (Cursor)
* Shovel (cursor)
* Ground
* Buildings
* Water puddle
* Trash
* Health Bar
* Score (optional)
* Level indicator (optional)
* Music loops
* Sound effects (fly swat, first aid kid apply, screen apply, bug spray, shovel, etc)
* Title Screens, etc

2.2.2 Processes
2.2.2.1 Townsmemebers
Walk around randomally
Collission with Mosquitoe (flashing or solid)
Chance to be infected (based on mosquitoe type, flashing is higher chance)
Townsmember flashes if infected
Townsmember contributes to health meter, if flashing health is removed from meter.
Townsmember, if individual health reaches zero, dies.

2.2.2.2 Mosquitoe
Fly Around Randomally (slower than cursor)
Colission with Townsmember
Chance to infect (based on type, flashing or otherwise)
Spawn from Trash pile
Spawn from water pile
Colission with fly swatter -> dead
colission with spray -> dead
colission with screen (when applied to door) -> change direction, continue randomally
Chance to flash -> 25%
When flashing, chance to infect -> 100%
When flashing and killed, chance to drop item (spray, screen, shovel)

2.2.2.3 Cursor
Player character
Starts with abilitly to change from Swatter to First Aid Kit (by hitting button)
Can collect items by colission detection (items drop from flashing mosquitoes)
If cursor = swatter and cursor collides with mosquitoe, mosquitoe dies and point is incrimented by 100.
If cursor = spray and cursor collides with mosquitoe, mosquitoe dies and point is incrimented by 300.
If cursor = screne and cursor collides with door, door sprite is replaced with screen sprite.
If cursor = first aid and cursor collides with townsmember and townsmember = flashing, townsmember = cured and townsmember health + 10
If cursor = shovel and cursor collides with dirt pile or trash pile, dirt pile or trash pile is deleted

2.2.2.4 Spawing Points
Trash pile or water pile
Mosquitoes spawn from pile
if shovel is used, pile deleted and spawn point removed

2.2.2.5 Buildings
townsmembers collide with buildings, cannot enter
if screen is used on door, door deleted and replaced with screen
if screen = yes, then building = safe
if screen = no, then mosquitoes can enter building
if mosquitoes enter building, then townshealth =  -1/second

2.2.2.6 Health Bar
Healthbar represents total town health. townsmembers + buildings contribute to town health
health = 100 at start
health decreases based on effects listed above.
when healthbar = 0, game = over
when level = +1, health = 100

2.2.2.7 Score
Score is a way of making game enjoyable over longer period of time
Score also add’s replayabilitly
Score would have contributions made to it by multiple events. Killing mosquitoes, filling in holes etc should increase score.
Sick townsmembers should decrease score
Curing townsmembers should NOT increase score, but rather remove decreasing effect
Score can be saved to RAM

2.2.2.8 Level Indicator
Level Indicator represents current level.
Each level increases challenge.
A simple algorythm can be used to add difficulitly without manually coding individual levels. For example, if on level 1 an infected mosquitoe spawns at 25%, then that % can increase by 1-2 each level.

2.2.2.9 Music Loops
Music will loop constantly.
Its important music is not annoying
Music can be turned off in menu

2.2.2.10 Sound Effects

3.0 Game Processes

3.1 Power on
At Power On, NES must warm up PPU, etc etc, and display the Playpower Logo for 3-5 seconds, or until Start is pressed
After Start is pressed, brief boilerplate regarding out Open Source license, and contact details for Playpower Organization.

3.2 Title Menu
The Title Menu shows “Start”, “More Information”.
Start begins main game loop
More Information takes user to several screens regarding Malaria. This screen should be written in Simple English. This should be one or two screens full of information.

“Malaria is a really bad disease that can make people very sick, or even cause them to die. It is very important that you protect yourself and your friends and family from Malaria.”

3.3 Main Game Loop

Beginning Game Process

Draw game screen
Draw Cursor
Draw Score Display
Draw Health Display
Draw Townsmembers
Draw Buildings
Draw Level Indicator
Draw Spawn Locations
Draw Mosquitoes

Main Loop
{
Update Cursor based on Input
Update Score Display based on Score
Update Health Display based on health variables
Update Townsmembers based on randomize
Update Building Door based on SCREEN boolean
Update Level Indicator based on Current Level
Update Spawn Locations
Update Mosqitoes
Update Mosquitoe Location
}

Cursor movement Loop
{
Cursor starts at x = 100, y = 100
Scan control pad
When Right = pressed, x + 1
When Left = pressed, x - 1
When Up = Pressed, y + 1
When Down = Pressed, y - 1
}

Cursor change loop
{
When B = pressed, cursor changes to next item
If next item isnt in inventory, skip to item after next
}

Cursor Item Use
{
when A = pressed
Check active item
Perform action based on active item (MORE INFORMATION REQUIRED)
}





 

 

 

Comments (0)

You don't have permission to comment on this page.