Sie sind auf Seite 1von 12

SMART CONTRUCTION BUILDER

A MDA APPROACH TO GENERATE CONSTRUCTION SIMULATION GAMES SANCHEZ VERA, KEVIN DAVID
kd.sanchez21@uniandes.edu.co

Abstract Because of the increasing expansion of different kinds of mobile devices, the videogames industry is passing through the problem of implementing a specific videogame application for every single mobile platform, making difficult to reduce the time to market for all the devices. Thus, it is necessary to create a way in which a videogame can be produced for multiple platforms in a short time. In this paper we propose a Model Driven Software Product Line (MD-SPL) for videogames applications, specifically, construction-simulation games such as CityVille, FarmVille or Empires and Allies. The MD-SPL takes advantage from the similarities of that kind of videogames, and tries to deal with the platform variability, making possible to create games for android and html5.To attain the goal, we use platform independent models to abstract common game business concepts and interaction concepts, using the use case model specific for that kind of video games through patterns. Finally, we validate that approach with a case study for School construction game.

INTRODUCTION Technological advances in recent years have allowed an easy access to mobile devices for more people in the world, making possible that sometimes one person have more than one device. This large number of users of mobile devices make these platforms points of interest for application developers, because mobiles have a big part of the world's software market. This variety of mobile devices includes the existence of a variety of different platforms like Android, iOS, Symbian, BlackBerry, Windows Mobile and others. The platform variability makes that developers must learn to use each of the technologies, it is because they have to implement applications for multiple platforms in order to achieve the whole market. The videogame industry has faced this problem of variability of platforms, not only from the boom of mobile phones, but since the arrival of gaming consoles in which the success of a game on a specific console, demanded the implementation of the game for other consoles. The big difference is that the problem today is stronger, not only focused on different consoles, but in the variety of platforms and technologies on mobile devices.

There are many research focused on model driven video game development, the works of Montero & Cars [1] proposed platform independent models for videogame gameplay specifications, offering to game designers a precise model to describe, analyze and communicate gameplay from early stages of development. The work is composed by a model that is called the social context diagram, that defines how many players and teams interact with the game, an structure diagram, that defines the game elements, attributes and events that compose the game system, and the rule set that defines the game system behavior, implicitly specifying gameplay through precisely defined declarative rules. In another work, Montero & Cars [2] propose to apply Model Driven Development (MDD) methodology to game development, raising the level of abstraction towards game conceptual modeling, they use an structure, behavior and control diagrams for that objective, and present a game design prototype tool to prototype 2D platform games for PC, with automatic code generation from UML models. In the Tang & Hanneghan[5] works they proposed a model driven serious games development framework that consists of nine parts namely: (1) User Interfaces (UI), (2) Models, (3) MDE Tools, (4) Components Library, (5) Code Templates, (6) Artefacts, (7) Technology Platform, (8) Operating Platform and (9) Software. Another works are focused in specific types of videogames, the work of Altunbay, Cetinkaya & Metin [4] is concentrated in a model specification for Board games like chees, they create a board game metamodel in which they specify de board game through an specific language modeled in BNF. Through model to model transformations, and model to text transformation they generate the game code. This paper presents a software product line for creating construction-simulation games. Using the model-driven development we abstract concepts of construction- simulation games on a PIM model (platform independent model) and through model transformation chains we pass to PSM models (Platform Specific Models), which can be easily converted, through a model to text transformation, in the game code for that type of videogames. The advantages of the line are given in terms of the time it takes for a developer to create a game in the traditional way versus the time taken using the product line. We can say that the line takes into account the functional variability of this type of games and the variability of platforms, initially allowing the generation of code for android and html5. In order to validate our work, we present an example called University Ville, in which we use our software product line to create a simulation construction videogame for make an university. The present paper is organized as follows: in chapter 1 we are going to explain the problems faced in traditional software development and how model software architecture can solve those issues, in chapter 2 we are going to talk about the state of the art for our work, in chapter 3 we talk about the domain analysis taken into account in this work, in chapter 4 we present our independent models, in chapter 5 our domain specific language for simulation construction games, in chapter 6 the complete model transformation chain, and finally future work and conclusions.

TRADITIONAL SOFTWARE DEVELOPMENT VS MODEL DRIVEN DEVELOPMENT The traditional software development is driven by design and coding, including many phases in iterative processes. In a normal project, people have to pass through many phases like conceptualization, analysis, design, implementation, testing, and deployment, making the process long and lowering productivity. The low-level design and coding generates a portability problem, because a software implementation is tied to a programming language and trying to create the same software for another platform requires to re-create the software. Another problem related to traditional software development is the problem of interoperability in which a developed system has to communicate with other systems making the software tied with specific technologies for communication. Finally, we have a maintenance and documentation problem, because sometimes the documentation is not of very good quality, making difficult to understand the code for maintenance. With model driven development we give a solution to the problems encountered in traditional software development, everything because of the development life cycle, we start with a Platform Independent Model or PIM in which we include only the business concepts of the problem, then through a model to model transformation we pass to a Platform Dependent Model or PSM that includes specific concepts of a technological platform. Finally, through a model to text transformation we can pass a PSM to software code.

This approach generate an increase in productivity, because, when the transformations rules were created, an user only have to define a model conforms to the PIM metamodel, and the model transformation chain will produce the code. The quality of the documentation is also improved, it is because the code is auto generated, and the documentation too.

STATE OF THE ART

A PLATFORM INDEPENDENT GAME TECHNOLOGY MODEL FOR MODEL DRIVEN SERIOUS GAMES DEVELOPMENT

The work of Tang and Hanneghan[5] was focused on the creation of a framework to create serious games. The define the serious games as interactive applications that combines pedagogy and interactive entertainment to create a virtual learning environment in an effort to motivate and regain the interest of a new generation of digital native learners.

They proposed a model driven serious games development framework that consists of nine parts namely: (1) User Interfaces (UI), (2) Models, (3) MDE Tools, (4) Components Library, (5) Code Templates, (6) Artefacts, (7) Technology Platform, (8) Operating Platform and (9) Software. In the first part they create the user interface using natural language, scripting and GUI code, after that, they construct the models that describe the complete videogame in step 2, and then in steps 3 and 4 they do model transformations in order to obtain the source templates for the game. In the next steps they complete the videogame. In figure 1 we show their complete process.

GENIUS

The Genius project propose a Model-Driven Web Engineering approach for construct transactional web applications, that approach allows to deal with two main problems found in the enterprise web application development, the first one is the lack of existence of an artifact in which a business expert can explain a problem using only business concepts without needing an engineer and the second one is the lack of a mechanism to abstract common concepts of structure, behavior and implementation of functional requirements to achieve automatic code generation. Genius is based on specific patterns that abstract features in order to improve developer productivity by having standard solutions to certain problems. The representation of the problem is the first step taken to generate transactional applications, the representation is achieved by using two DSL, one called Enterprise Application Model that contains the domain structure of the business and another called Extended Use Case Model that represents the application functional requirements. The second step is to obtain a representation of the solution using two elements, the pattern description, that includes the name and parameters required for functionality, and the pattern of solution, that contain the information needed to generate the user interaction flow . Using these representations, the GENIUS project generated transactional applications with common functional requirements, the user intervention is only for the construction of the initial modeling.

Mandarina Mobile

The main idea of the project Mandarina Mobile is proposing a solution that allows automatic generation of connected mobile applications for multiple platforms, based on a MD-SPL approach (Model Driven - Software product line). The idea of the project is to cope with three problems encountered in developing connected mobile applications in a traditional way, low productivity in creating applications, problems with developers that do not exploit usability standards of each mobile platform, and the low extensibility of the generated applications. Based on these issues, Mandarina Mobile specify a reference architecture in which functional variability and non functional variability is contemplated (Given the devices and the different functions supported like gps, wifi, accelerometer etc.). Using these models and some model transformation chains, Mandarina mobile attains to derive mobile applications, and increase productivity by automatically generating consistent graphical interfaces, taking into account the principles of display of each platform and improving usability and the quality of the application code, because it is based on a reference architecture. The proposed solution focuses on four main activities: 1) functional variability, 2) variability of platforms, 3) architectural representation, and 4) mobile generation.

SPECIFICATION OF USE CASES THROUGH PATTERNS AND RELATIONS OF COMPOSITION ON A PRODUCT LINE FOR CONNECTED MOBILE APPLICATIONS

This project is based on Genius project ideas but with a big difference, Genius focuses on transactional enterprise web applications and this project wants focus their patterns specifically to connected mobile applications. The main objectives of the project are to develop a strategy for the definition of the assets of the SPL by describing the variability of functional requirements through use cases that allow the composition of these by means the include relationship, to define a strategy for the specification of use cases through use case patterns expressed in terms of user interactions with graphical interfaces of the application and the services provided by the platform, and finally, to specify the main services provided by mobile platforms through use case patterns that enable the creation of connected mobile applications.

DOMAIN ANALYSIS

The construction-simulation games in which this work is focus are those in which the player collect resources, construct elements such as buildings or crops that are resource producers and enlarge their constructions based in the collected resources. The aim could be construct a farm, an empires or a city, always thinking in increase the size and production capacity of the elements constructed. Three examples of that kind of games could be FarmVille, CityVille, and Empires and Allies, it is important to say that the three games are completely different, but in some cases they share common general elements. Let talk about the main elements of the game Empires and Allies. We have at the beginning a plane or construct area in which we can put different elements like decorations, resource production buildings, home buildings, element creation buildings (For produce warrior and arms) and govern buildings. Each element have a value in terms of resources and some elements after a time produced some resources, the resources are raw materials for construction. Besides that, a player have experience points and a nivel based on the experience. Now we are going to talk about the main elements of the game City Ville. Like in Empires and Allies, we have at the beginning a plane or construct area in which we can put different elements like decorations, resource production buildings, home buildings and govern buildings, here we do not produce elements only resources. Each element have a value in terms of resources and some elements after a time produced some resources, the resources are raw materials for construction. A player have experience points and a nivel based on the experience too. Finally we are going to talk about the main elements of the game FarmVille. Like in Empires and Allies, and CityVille, we have at the beginning a plane or construct area in which we can put different elements like decorations, crops, home buildings or animals. Each element have a value in terms of resources

and some elements after a time produced some resources, the resources are raw materials for sell and earn coins. A player have experience points and a nivel based on the experience too. We can say that the games share the same basic elements of functionality, we have some resources like coins, seeds or wood, the games based their economy in these resources, we can buy or construct thing using the collected resources and we can expand our construction area. The main differences between these games are some game social mechanics included, the graphics in each game, the specific resources of each game, and the animations of the elements constructed or included in the game scenery. Our work is motivated by the idea of the share of common same basic elements in the games, based on this idea we abstract in a metamodel the common elements of that kind of games, in order to produce a domain specific language or DSL to describe construction-simulation video games. Following, we are going to explain all the elements that compound the metamodel and to give an example of the element in the three games. Plane The Plane is the element that represent the area that can be constructed, in each game it is represented as a green area. In the following image taken from FarmVille we can see the green area in which we can construct things like crop spaces.

The Plane has the following characteristics: The plane has an x axis size and a y axis size, these sizes represent a table space in which we can construct things. The plane has a side square size that represent the size of one of the square sides that occupies a (x,y) position in the plane. In a specific position in the Plane, one point(x,y), there are not two elements.

In terms of graphics, the plane has the following characteristics: The plane have a visual matrix of isometric plane squares, all of the squares have the same side size. The plane have a color that represent an empty space.

Resource A resource is a raw material that can be produced and collected inside the game, it represent the basic elements of the economy for buy thing or to produce things. For example, in CityVille the resources are coins, bills, energy, and product boxes. A resource have the following characteristics: A resource has an actual number of resources. A resource has a limit number of resources.

Element An element correspond to anything that can be constructed over the Plane, including decorations, buildings, crops etc. An element encapsulates the general behaviors of things that can be constructed, they have three principal components, a cost in terms of resources, a number of resources needed to produce something, and the resources that will be produced, it is important to say that the existence of the three elements it is not necessary. Furthermore, an element have properties, that could be things like a name, a description, or the time takes to finish his construction or the time takes to finish a resources production. Elements could be subcategorized in order to recognize specific characteristics in the behavior of an element. We have two general kinds of elements, the first one is the animated element and the second one is the inanimated element.

An element has the following characteristics:

An element has a time taken to finish his construction. An element could has a cost in terms of zero or many resources. An element could produce zero or many resources. An element has a time taken to produce resources. An element has a list of resources needed to produce other resources.

An element occupies a position in the plane, it can occupies one or more (x,y) positions but these positions have to be next to each others. An element has an state that represent the actual activity of the resource, as an example we can talk about construction state (The time to complete the construction has not been met), waiting for resources to start production state (To begin the production of resource, the element

need other resources), production complete state (The production is complete and the player can collect the produced resources).

-Animated Element An animated element is a subcategory of an element that represent an element that have some kind of animation, for example a crop that grows over time. In the next image we can see and example taken from CityVille, crops begin like simple seed in the earth but at the end the are a big plant.

In terms of graphics, the animated element has the following characteristics: It has a constant animation, for example a house with smoke from the chimney.

-Inanimated Element An animated element is a subcategory of an element that represent an element that do not have some kind of animation, for example a rock or an avenue. In the following image we show an example of animated elements that can be constructed in CityVille, some decorations like threes do not have any kind of animation. Challenge A game could have challenges, the challenges are objectives that a player have in order to earn experience points, they are described through a description and a number of resources that a player have to collect, one challenge can be compounded for other sub challenges. In the following image we show a general metamodel of the concepts included in constructionsimulation games.

The Challenge has the following characteristics: The challenge has a list of resources that have to be archived to win. The challenge has a level in which it can appear.

PROPOSED MODEL

GENERAL PROPOSAL

REFERENCES [1] Emanuel Montero Reyno and Jos . Cars Cubel. A Platform Independent Model for Videogame Gameplay Specification Software Engineering and Information Systems Research Group. Department of Information Systems and Computation. Technical University of Valencia. Camino de Vera s/n. 46022 Valencia (Spain).

[2] Montero, E., Cars, J. A. Model-Driven Game Development: 2D Platform Game Prototyping. 9th International Conference on Intelligent Games and Simulation (Game-On08), Valencia, Spain, November 2008. [3]Tang, S. & Hanneghan, M. (2011). State-of-the-Art Model Driven Game Development: A Survey of Technological Solutions for Game-Based Learning. Journal of Interactive Learning Research, 22(4), 551-605. Chesapeake, VA: AACE. [4] Altunbay, D., Cetinkaya, E., & Metin, M. G. (2009, 20th May). Model Driven Development of Board Games paper presented at the First turkish Symposium on Model-Driven Software Development (tMODeLS), Bilkent University, ankara turkey. [5] Tang, S. & Hanneghan, M. (2010). A Platform Independent Game Technology Model for Model Driven Serious Games Development. Proceeding DESE '10 Proceedings of the 2010 Developments in E-systems Engineering. Pages 95-100. IEEE Computer Society Washington, DC, USA

Das könnte Ihnen auch gefallen