22
DEVOLUTION by Ashin Mandal and Mihail Mihaylov

Devolution - An Independent Game

Embed Size (px)

Citation preview

DEVOLUTIONby Ashin Mandal and Mihail Mihaylov

RESEARCH

IntroductionVideo Games have come a long way from 8 bit consoles to graphic intensive games that we have today. However the complexity of the game does not necessarily decide how good the game is. Many a times, the simplest games are addictive and that is where a game is successful. This project is an attempt to make a simple independent game along with the exploration of storytelling through the game. The two simple motives are, to make the game simple but fun and to give the player an experience through the game.

Devolution presents a dark and comical perspective towards the evolution of man. The scene begins with a confused man called "Gus" walking around the planet. Driven by curiosity, he finds natural resources and consumes them. Gus continues to consume every natural resource with a dull expression on his face till the planet is completely polluted and destroyed.

State of the ArtThe gaming industry is presently in its golden age. Beautiful games with elaborate stories are being created every year and they are addictive as well as immersive. "Destiny", "The Witcher 3", "Metal Gear Solid V: The Phantom Pain" are a few names that have yet again created a benchmark in creativity and storytelling in the gaming industry this year. The scale of these games are unimaginable compared to games two or even a decade ago.

But if we say that these are the best games of this year, we would be wrong. These games fall into the category of single player role-playing games. However a large fraction of today's gamers are hopelessly addicted to MMORPGs (Massive Multiplayer Online Role Playing Games). These games get their user base not through their blinding sharp graphics or epic storyline, but from the number of players who spend hours playing these games.

DestinyBungle LLCSeptember 2014

THE WITCHERProjekt REDMay 2015

Another big platform for gaming right now are touch devices. With the advent touch phones and tablets, game developers have found a whole new platform and input methods for gaming. These games succeed because of the devices they are being played in as well as the large user base that they are appealing to. Games like Fruit Ninja, Angry Birds and Temple Run have definitely found a place in every amateur gamer's phone.

Apart from this there are games which have stuck around regardless of the time they were released in or their graphics. Biggest example among these would be Counter Strike 1.6 which still sees 20,000 to 30,000 gamers on Steam everyday even though it was released in early 2000. Games like Super Mario are still being played in emulated consoles. Snake which was first released as a game in old Nokia phones is a game which people still find entertaining even today. This genre of games confirm that the gameplay and fun-factor of a game is enough to keep a game alive and in a way make it timeless.

There is no one factor or platform which can decide on the best game; different gamers with varied apetite for games create the need for different genres of games. All these games and genres along with the ones that are not mentioned here collectively form today's gaming ecosystem.

DON’T STARVEApril 2013

PLANTS VS ZOMBIESMay 2009

CONTRA

today's games, but not only can they be compared but even called better than many games from this generation. 8-bit games are a big source of inspiration for this project since our motive is to build a small-scale but enjoyable game.

“Cosmochoria”, an independent game and “Super Mario Galaxy” are two existing games which have the character walking on the planet and provided relevant reference during the development of the game’s dynamics.

Related WorkEven though today's graphics intensive games have, without a doubt, set a standard in gaming experience, one can never deny that they need quite a bit of investment from the gamer (for the game as well the console or computer). Old classic games or 8-bit games had a very limited scope considering the time they were released in. Game developers had to make the games as good as possible within that scale. Through appropriate research into the evolution of 8 bit art and games, the limitations of 8-bit colours and old consoles become evident. However within these constraints companies like Konami came up with brilliant games like “Contra”, “Castlevania”, “Adventure Island”, etc. which are microscopic in size in comparison to

COSMOCHORIA

SUPER MARIO GALAXY

Game EnginesA game engine provides a unified platform to develop games. Two of the most popular game engines that are being used today are Unity and Unreal Engine. Of these though Unity is by far the more popular one, but Unreal Engine is rapidly gaining acceptance as well. Large scale game development studios have their own proprietary game engines but many independent game developers are using these game engines.

There are various differences between the two game engines, for example price, programming languages, user interface, graphical capability, etc. Unity is free of cost; one can update to Unity Pro for $1,500, but the free version lacks a profiler which is essential to optimise a game. Unreal Engine is completely free but it does have royalty fees of 5%. So 5% of the money that a game developed by Unreal Engine makes (even the in-app purchases) goes to Unreal. A great advantage of Unreal Engine is Blueprints which is a graphical node-based programming language and is great for those who do not have enough programming experience. Unity, on the other hand, has better resources, asset store and a larger community to provide feedback. If one is more comfortable with C# or Javascript, Unity should be the choice but for C++ Unreal Engine should be chosen. In terms of graphical capability, Unreal Engine provides higher end graphics than Unity, but Unity is not too far behind.

At the end, a preference between these two depends a lot on personal choice and comfort with either of them.

UNITYJune 2005

UNREAL ENGINE1998

METHODOLOGY

Storyboard of the Initial Idea

Initially, the player doesn't really know what to do. The game shows a confused human standing on a planet. Bored and hungry, he starts walking around. He spots a natural resource nearby, goes to it, consumes it and pollutes the area. He keeps doing this. 70% into the game, there is a cut scene where a news report shows that world is being destroyed. Human continues to plague the planet. Near the end of the game, the final cut scene comes with a news report about global crisis. The player keeps on polluting till the planet is destroyed and "The Human" is declared as the winner ironically.

RIGHT:The initial idea was a man evolving through time corresponding to the planet’s destruction. The first designs were less “cartoonish” and more real.

LEFT:Through further sketching and

experimentation, the character was given a more exaggerated and comical look

along with a dull and stupid expression on his face following the game’s theme.

Character Design

Final design of the character with different expressions. Meet Gus! The colours are saturated and his expressions are more dull and ignorant in order to exaggerate his personality and give him an even more comical look.

A more detailed look into Gus’ design.

3D Character and Animation DesignCredits to Bawer Parada for the 3D model and animation design of Gus. Copy paste the following link in the browser to see an animation render test: https://vimeo.com/142137069

The UV map that creates the texture of the 3D model.

Early design establishing the colour palette Concept for in-game resources

Conceptualising the world in 3D

Environment Design

A detailed design of the environment.

The equations of the points on the surface of the sphere arex = cos(theta) * cos(phi)y = cos(theta) * sin(phi)z = sin(theta)where,

x, y, z are the coordinates of the point,-90 <= theta <= 90,0 <= phi <= 360

So with an incremental value of the angle phi and randomising theta we can find random points on the sphere. We spawn the natural resources and other natural elements like rocks and trees on these points and align them along the surface of the sphere. The game starts with the planet’s health at 100%, with every collision between the player and a natural resource, planet’s health decreases. The game ends when the planet’s health is 0%.

Game Logic, Rules and Geometry The essential action of the game is that of a character walking on a planet. So the space should have a planet in the center which can be represented by a sphere. For a character to walk along the sphere, gravity needs to be defined. However along with the gravitational force which will draw the character to the surface, the y (up) rotation of the character should be along the surface of the sphere as well. To figure this out, we need a vector from the center of the sphere to the present position of the character and rotate his y axis to this vector. The gravity attracts the body along the same vector.

gravityDirection = characterPosition (x, y, z) - planetCenter (0, 0, 0)

Apart from making the character walk on the planet, the natural resources as well as other elements of the world need to be spawned on the sphere in a random manner. For this we need to find random points on the sphere and then rotate the object as we did for the character.

One solution would be keep the character static and move the planet, but later if enemies were to

be added to the world they would face similar gravitational problems, so such a solution was not favourable. Thus, unfortunately Unreal Engine was

dropped as the choice of game engine.Copy paste this link in your browser to see a video

of the gravitational problem in Unreal Engine:https://vimeo.com/142200035

Initially, Unreal Engine was chosen as the preferred game engine due to it’s advantage in graphical programming and better game templates as well as rendering quality. To the right is a screenshot of an initial attempt of the world in the game engine.

But unfortunately the game reached stalemate with Unreal Engine because even with the new gravity defined, the world’s default gravity could not be turned off. After long discussions in the forums and community, it was concluded that the default gravity is always active which keeps attracting everything downwards along a plane. Below is the graphical function for gravity.

ImplementationBefore implementing the logic into a game engine, all resources are to be accumulated into one place and in the correct format. Once a game engine is chosen, before starting to define the game’s logic the input method, the models and animations should be correctly defined. “Blend Trees” which allow a smooth transition from one animation to other and “State Machine” which decides the animation to be played, are to be construed as well.

Controls of the game are W, A, S, D i.e. forward, backward, rotate left and rotate right respectively. Copy paste the following link in your browser to see a video of the present gameplay in Unity:

https://vimeo.com/142089953

In Unity, more or less similar process of accumulating all resources in the correct format had to be followed including the animation methodologies. Through a simple gravitational code correct gravity behaviour was achieved:

Vector3 gravityUp = (body.position - transform.position).normalized;Vector3 localUp = body.up;

body.GetComponent<Rigidbody>().AddForce(gravityUp * gravity);

Quaternion targetRotation = Quaternion.FromToRotation(localUp,gravityUp) * body.rotation;body.rotation = Quaternion.Slerp(body.rotation,targetRotation,50f * Time.deltaTime );

Algorithm to generate objects randomly across the sphere is still under progress, but collisions between Gus and natural resources are being detected. Below is a screenshot of the world in Unity.

CONCLUSION

Challenges and Scope for ImprovementTo any gamer, Game Development always seems like a lucrative prospect but in reality game design is a demanding and challenging field. We faced many obstacles starting from the idea-finding process till the actual development.

Initially our greatest challenge was to decide upon the idea of the game. We had to keep it simple so that the idea is not over-ambitious, but needed to be careful with over-simplying it as well. We decided on this idea because the actions of the game were simple enough (though later walking on a sphere did turn out to be quite challenging) and there was an underlying sarcastic message as well. The prospect of illustrating the game in a comical manner and developing our first independent game motivated and inspired us.

The character development process was iterative but still with enough iterations we reached the present character design. From a design point of view, it was always a challenge to get the theme of the environment correct. One of the directions for design was to make the illustrations comical along with a primal attribute as well signifying the advent of human evolution. Open challenges for future illustrations are to indicate civilisation along with decay of the planet.

An important factor to improve the visual design of a game is to create appropriate textures. We experimented with many textures for the character, the planet and skybox (a virtual box around the planet which creates the sky). But there is still enough work to be done in terms of world design and sprites within the game engine to take the game to completion.

However, our biggest hurdle during the development was reaching a dead end with Unreal Engine. With both of us not having previous experience with game engines, we invested considerable amount of time in learning the interface of the game engine and how it works. It was quite a frustration when we realised that the only way to make gravity work for our game was to alter the native code of the game engine which was beyond our scope. A lot of time was wasted in repeating the learning process with Unity. The silver lining was that this resulted in us being familiar with both the game engines.

In terms of gameplay design, while playing the present version of the game we realised that simply walking to the collectibles might make the game rather boring so in the future we could add environmental friendly enemies who try to restore the natural resources that Gus destroys.

SummaryAlong with adopting the various design and technical aspects of game development, we gathered experience as creators of a game. We went through the process of imagining a game and drawing sketches of it till the process of actually being able to play the game we had in mind. We shared our previous knowledge in design and programming with each other and developed a designer-developer relation within the team. It took us some time to realise our tools and the environment we were working in, but we were able to solve most of the challenges that came our way.

There is still enough room for improvement in the game and we would most definitely like to take the game forward to its completion. If possible in the future, we would like to publish the game online as a polished and finished game.

In conclusion, we would like to mention that as gamers we have only but enjoyed the learning experience of this project and we cannot wait to work towards the complete realisation of Devolution.

AcknowledgementsThis project would not have been possible without the guidance and support of Prof. Dr. Jens Geelhar, Professor of Interface Design under Faculty of Media.

We convey special thanks to Bawer Henan Parada Manosalva for his 3D model design and animations; without him Gus would not be walking around the planet with such charm.

In addition, we would like to thank Prof. Ursula Damm, Professor of Gestaltung Medialer Umgebungen and Thomas Hawranke for their positive advice and suggestions.

And lastly, many thanks to the whole gaming community of Unity and Unreal Engine forums who helped resolve countless glitches, doubts and problems during the development process.