CHAPTER 2

THEORETICAL FOUNDATION

This chapter explains information and technologies that the author will use to make

“Kingdom of Pet”. It consists of agile software development method and game development process.

2.1 Agile Software Development

Agile software development is a group of software development methods that using iteration and increment development. It is considered as a problem fixing for heavyweight methodology because agile software development is called lightweight methodology, which is trying to minimize the plan for the project with a large scale of detail and taking over a lot time [1].

The manifesto of agile software development is published in February of 2001 by an organization named Agile Alliance. There are four concept of agile manifesto and that are following: [2]

 Individual and interactions over processes and tools

 Working software over comprehensive documentation

 Customer collaboration over contract negotiation

 Responding to change over following a plan

The meanings of the manifesto items on the left within the agile software development context are described below: [3]

 Individual and interactions – an organize among self effectively is important

5

6

 Working software – it is easier to understand working software rather than

read a lot of document to client in meeting

 Customer collaboration – what customer want might be change over time, so

it is important to involve the customer continuously

 Responding to change – there has to be preparation for changes for the plan

otherwise it can be irrelevant quickly

Figure 2.1 Software development cycle by iteration on agile software development [4]

Agile software development method splits the total of long development cycle into a lot of short development cycles which is called iteration. The iteration can take one or two weeks from one or two months. The development process of the software product is always in iteration. Firstly, from the starting of the iteration, the software developers take the requirements from their clients and after that, they planning and

7 designing the analyzed requirements. Secondly, they implement and test the software product. And lastly, the software product is delivered to the customers and getting the feedback from them so that the next iteration can be carried out. It is different with paper-based software development method because with this methodology, the customers can understand more clear and concrete by showing them the software product [5].

2.1.1 Scrum

Scrum is one of agile software development method, so that means scrum is an iterative or incremental development framework for creating a software or application. It is for small teams, especially for they who work independently so that they can work more effectively [6].

2.1.2 How Scrum Works

Basically scrum is the same as all projects at first, it has initial planning phase. At this starting point, architecture must be created inside the team. All members must act according to their role and it might be changed in the future, but they still have to develop the architecture at the first time. An Architect must be chosen as the chief architecture. Its most important job is to define all members role such as Developer and makes sure Customer is close in touch. Designing is the job for every member and because of that there is no Designer role in the architecture. Managers also acts as the supporting role and they usually not control directly to the process except in the midst of crisis. The product is controlled by Architect, while the process is controlled by Developer who Architect should have a close communication with as the “chief Developer” [7].

8

Figure 2.2 Scrum Frameworks [8]

After the initial planning, the next phase is to develop the software incrementally as many short progression of development phase which are called sprints. Usually a sprint takes one to four weeks’ time of works. At the end of iteration, the team delivers the software product to the product owner so that they can get the feedback from it. Everything can change during this meeting, the work can be added, eliminated, or reprioritized.

There is a list that called sprint backlog that is a list of all team activities. It tracks all the team tasks that must be updated and reprioritized before each sprint [9]. The member, who agrees to do the task in product backlog that listing the entire prioritized product’s features, must be sure that they can complete the task each sprint. The product backlog maybe changed as more is learned about the product and its customer [10].

Each day of sprints, the team must carry out a meeting who will be led by the Scrum master. The scrum meeting should take 15 to 30 minute, but does not allow time

9 member to brainstorm the solution. Its member must answer these following questions: [6]

1. What have you completed, relative to the backlog, since the last Scrum

meeting?

2. What obstacle got in your way of completing this work?

3. What specific things do you plan to accomplish, relative to the backlog,

between now and next Scrum meeting?

The goals of the scrum meeting are: [6]

 Focusing the developers on the backlog items

 Communicating the priorities of the backlog items to the team members

 Keeping everyone informed of the progress and obstacles

 Managing the obstacles as fast as possible

 Tracking the progress of delivering the backlog’s functionality

 Addressing and minimizing the project risk

2.2 Game Development Process

In producing games, it is important to know exactly how to create a game. Not just the developer’s side that have the goal to produce a highest quality game over limits of resources and budgets, but also the publisher’s side that want to sell the best- selling game with limited risks and low costs [11].

10

Figure 2.3Stage of Development [11]

There are several phases to develop a game according Tracy Fullerton who is studied about the evolution of some best practices to produce a game efficiently. Figure 2.3 with “V” shape shows that on early phase, changes can be made with a little economic issue. Changes on the of the game are nearly impossible on the production phase, but it can fix some features or concepts. This can change the game play but it does not cost insignificant changes to reconstruct the game or start over the existing art and animation. Later on, when the phase is beyond the production phase, it will be difficult and expensive to change or make any modification to the game design. That is why, the prototyping and play testing is on early phase so that if there are some issues it can be found on preproduction stage and before the actual code and art is being made. The goal of play testing on the Quality Assurance (QA) phase is to find small problems and focusing the changes to it. Major or even moderate changes are usually not being allowed [11].

11

2.2.1 Concept/Contract

Concept phase is the start of the development process. This is where the developers deliver their game idea to the publishers in order to be funded. When developers show their idea about the game which is called a pitch, publishers will also consider three strong aspects about the developers. The strengths that publishers are looking are the team, the plan, and the idea [11].

The first thing publishers want to know is the developer’s team because they want to reduce the risk by looking an experienced team. It is important to the group that already works together in the past because team work is really critical. They also see how the developer’s team can deliver the product type that is being proposed. For example, if the team that is known to create a simulation game is proposing a first person shooter, they will wonder about the capability of the team to create the game because those two genres is completely different type of game.

The next important point is the project plan. Project plan is also includes the schedule and budget plan. It must show every element that is being considered to create the game which are the goals of the project, the deliverables that will be made, the schedule of how long does it takes to complete the project, and also the budget for the resources. This is really important because once it is signed and approved by the publisher; the developer is legally obligated to follow the contract.

The least important is the idea of the game, but it does not mean that the publisher is not interested on it. What publishers want to sell is a game that will be bought by its audiences. Publishers rely on the market data to figure the type of top-selling games; if it is not fit with it, the publisher will reconsider about the funding.

12

2.2.2 Preproduction

This is the next phase to create a game after the concept is approved by the publishers. Before they work with full team, a small team will be put on this phase because it is less expensive than funding the full team. This small group will clarify the feasibility of the game ideas by creating the first playable level or the environment of the game. After that, they will create the detail plan of the design and technology. The description must be clear so that the production of the game will be more efficient. At the end of preproduction phase, the publishers will review the prototype, the design and the technical documents, and the refined project plan to make a decision between to continue the production or kill it [11].

Figure 2.4 FPS Prototype Example [11]

Another way to prototyping is through body storming which is using physical action to create creativity. There was a study conducted by DUB Group from University of

Washington using K-Sketch which is software that makes an animation from sketches.

13

Figure 2.5 Creating Animation Using K-Sketch [12]

They studied from 15 children at three community centers at the Seattle area. Their target was children around 7-14 ages because children usually unbiased about the current creative paradigm. Each child who was participated in the study was creating a game through writing and sketching using paper, and animation with K-Sketch on a tablet-Personal Computer (PC). They found that more objective ideas were expressed with writing, scenes and interactions ideas with sketching, and action ideas with animation [13].

There is a decision rule that is used to help the developer to minimize the possible for losing a maximum effect in game theory especially for managing the game features.

This design is also known as minimax matrix. All features of the game will be prioritized according to four groups.

14

Figure 2.6 Minimax Matrix [14]

These four groups will determine the priority of all the game features that are:

 Minimin – easy to code, not so important like simple features

 Maximin – hard to code, not so important features

 Minimax – easy to code, important features and supposed to be all-

implemented

 Maximax – hard to code, important features (usually the basic or core

program of the game)

2.2.3 Production

Production phase is the next phase after preproduction. It is a stage when the programmers code the game functions, the artists design the art files and animations, the sound designers creates the sound effects and music, and the writer write all dialogue including the in-game text to realize the vision and plan that already been made in the previous phase. QA will study all the features of the game and do light testing on early builds; while producers will monitoring the resources and make sure

15 that the team is working and communicating. Because of that, it can be concluded that this phase is the longest and the most expensive phase. Changes can be made but it must be reflected on the design document. Any major modification usually will be not allowed during this phase because it will affect not just the deadline but also the budget [11].

Builds mean that there are many assembled versions of the game. They are made by the programmers with an incremental numbers so that if there are some errors or bugs they can reference back to those builds. When the is accepted by the publisher’s QA team, it means that they achieve an alpha code. Alpha code means that all features are completed and there will be no more features to be added to the game. This phase will be moved to the next phase which is QA and polishing phase.

2.2.4 QA/Polish

QA and polishing phase is the last development process of building a game. In this phase the team size will be reduced because mostly the artists like the sound designers and the writers are no longer needed. The purpose of this phase is to make the alpha build into a final product which is done by the game designers, the game programmers, and the QA engineers. The user’s experience and the level will be more completed and refined [11].

QA team do the testing according the test plan that is based on the design document.

It describes all the aspects that being tested includes all areas and features with many different conditions. If there are some results that are not according to the specification, which are called bugs. Those bugs will be put to the database with all information of the exact steps to recreate the problem. To know bugs that have been fixed, the bugs are assigned to the specific individuals who have related area with the

16 bugs. After the programmers fixed the bugs, they send it to the QA team to be retested. If it is approved, they will set it “resolved” in the database. When all features are complete and there are no more high priority bugs, it can be considered a beta. After all bugs have been fixed, this final goal is called gold code.

2.2.5 Maintenance

The team still monitors the feedback of the user after the game is shipped. Updates will be conducted via patches that usually distributed online. These patches are fixing some feature problems, incompatibility issues, or other medium to high level of bugs that managed to pass through the testing process.

2.3 Game Development Technology

There are several similar 2D game software developments that will be used to compare its performance with 2. This comparing research is done by

Ashley Gullen who is a Developer of Construct 2 [15]. She compared between

GameMaker, GameSalad, , and Construct 2. The compare results will be shown at Chapter 3 as reasons why the author decided to choose Construct 2.

2.3.1 GameMaker

GameMaker is a 2D and 3D game creator developed and published by YoYo Games.

It was first developed by Mark Overmars. The GameMaker’s code that is written in

Delphi programming language was almost all coded by Mark except several few freeware elements which are about reading different image formats and compressing the data [16].

17

Figure 2.7 GameMaker Creating a Game [17]

GameMaker’s latest versions are GameMaker: Studio as a stable version for

Windows and version 7 on Mac OS X. It is game creator that makes the users can create a game without programming language.

Figure 2.8 Slime Online In-Game Preview [18]

GameMaker can create an online game using 39DLL technology which makes the user gains an access to windows socket network services [19]. One of the example

18 games that using this technology is “Slime Online” created by someone whose nickname is BlaXun [20].

2.3.2 GameSalad

GameSalad is a drag and drop game development software developed by

GameSalad, Inc. which was called Gendai Games before. It purposed to be used by non-programming user because there is no coding at all.

Figure 2.9 GameSalad Creating a Game [21]

GameSalad is using a visual editors and behavior-based logic system. It was developed for Mac users only, but now it is available for Windows version too [22].

Currently GameSalad does not available for multiplayer online games.

19

2.3.3 Stencyl

Stencyl is 2D Flash game development software designed that is developed by

Jonathan B. Chung for computers, mobile devices, and web. It target platforms are iOS, Android, Flash, and HTML5.

Figure 2.10 Stencyl's Scene Designer [23]

Stencyl also does not need any programming for the users. The game will be exported as Flash for PC usage or they can use Stencyl’s builder service to test it on iOS devices [24]. But, in order to make a multiplayer online game it takes a lot of code [25].

20

Figure 2.11 Electrotank Multiplayer Kit Preview [26]

There is an additional kit to make Stencyl can create a multiplayer online games. It is developed by someone whose nickname is “niccosw”. It is required a lot of coding in

Action Script 3 because Stencyl is based on Flash technology [27].

2.3.4 Scirra: Construct

Scirra is the developer of Construct (software) which is a free open- DirectX game creator. There are two Construct: Construct Classic and Construct 2. Before

Construct 2 exists, Construct Classic is the previous free open-source game creator developed by Scirra. The game that created with Construct Classic is for Windows using DirectX 9 technology. It is designed for 2D games which is still the same as

Construct 2. And also, Construct Classic is for beginners and non-programmer, because user can design their game using an event based system. It means that there is no programming or scripting to make a game using Construct Classic. The user basically just decides what action will be performed as long as the condition of its event is fulfill and applicable.

21

Figure 2.12 Construct 2 Events System [28]

Construct 2 is more modern than Construct Classic and now Scirra does not developing Construct Classic anymore so that they can focus to develop Construct 2.

The differences between Construct 2 and Construct Classic are many. Not just that

Construct 2 is HTML5 game creator and Construct Classic game is exported to

Windows EXE, but also Construct 2 renders using OpenGL. HTML5 is the fifth revision of HTML and web technology that today modern browsers are used such as

Firefox, Safari, Chrome, and IE9. It also will run on iPhone, iPad, Android,

Windows, Mac, Linux, or any other devices that using those modern browsers. It makes the games that Construct 2 made can be shared on the internet over almost any devices and operating systems. That means Construct 2 is designed to be cross platform games maker [29].

Plug-in which is making the developers can involve directly extending Construct 2 is now written entirely in JavaScript so that now they do not need Microsoft Visual

C++ anymore. This will makes Construct 2 can added more new technologies especially web socket which make Construct 2 playable for multiplayer using

22 internet, and for users they can get advantages because there will be more plug-in to choose from for their games.

Since Construct 2 is just a client side game, it will need extra technologies to make it can be played by more than one player. Web socket technology is the key that can solve this problem. It is a way to make Construct 2 game can send and receive messages to the server [30]. The messaging cannot be between Construct 2 games because Construct 2 is only a client side game and it cannot become a server so it will need an extra script as a server.

Figure 2.13 Mini Town: Player Entered [31]

There is someone who made a multiplayer demo using Construct 2. The game is called “Mini Town” and can be tried online. He created it not just Construct 2 alone, he also using several plug-in to make it run. It is a simple multiplayer demo where users enter their name and room ID to create or join a lobby room and free roaming on the map.