We're going to build a game, the main characters of which are...zombies! But no need to be scared of them, we'll have lots of fun creating and playing this game. So, how shall we go about creating our zombie game? As we discussed in previous units, the software development process includes specifying the program requirements, designing and implementing our program as well as testing and documentation, among other steps. This process can be followed in a linear form where each phase is finalized before moving to the next one. This means for instance completing all the coding you need to do before testing your program. This approach is called the Waterfall Approach, as the development flows downwards from one phase to another without ever going back, just like a waterfall. There are more approaches to software development which are more flexible than the waterfall model, allowing you to revisit, correct and enrich previous phases. In this course, we've encouraged you to follow an incremental approach where we develop a basic program version, which we keep modifying by adding more functionality and details until we reach the complete program desired. Throughout this process, we may even decide to revisit our requirements and design. After which, we'll move, once again, to the next phases of the software development process. Good. Now that we've seen what the incremental approach is, let's create our zombie game incrementally. We begin with our requirements. What is our game about and what do we want it to do? Talking with our friends and taking some inspiration from the popular game Plants vs. Zombies, we're thinking about a game that is simple to play, is fun, surprises us. Keeps the score. Has cute characters. Has different levels. Includes rewards or elements that help. Has sounds. And has clear instructions. We have an interesting list of requirements. We can create a game in which zombies try to enter our house, but we can prevent them from doing this and make them go away. If they do manage to enter our house, the game ends. As an additional element, we can have some flowers in the garden that help stop the zombies but only for a few seconds. So when a zombie touches a flower, it halts for a short time. And after that, it starts once again moving towards our house.To address the surprise requirement that we saw earlier, every now and then, the zombies come in large groups like a real invasion, and we have to hurry to make them all go. So, our game could be defined like this. The purpose of the game is to prevent as many zombies as possible from entering your house. You can do this with the use of a mouse, and a point is scored for each zombie that you make move away. If a zombie enters your house, you lose. Zombies appear one by one, or in groups. Flowers help you defend your house by making the zombies halt for a few seconds whenever they touch a flower. Keep in mind that if instead of zombies you prefer robots, scars, balls or some other character, all you need to do is change the costumes that you use. So you can create the game that you want. Good. We've decided about the main features of our game, it's now time to think about its design. Let's start with the design of the interface. We have the garden and our house is at the far left side of the screen. The zombies and the character that makes them move away can move anywhere on the screen. We can draw this character as a group, so we sweep the zombies away.