Prototype
Technical Information
For the development of Evoke, we will use the Unity 3D Engine [1].
We have chosen Unity 3D because of its reliable performance, smooth framerate, and superb game play experiences across a multitude of platforms. Our target platform to deploy the game to is Windows based PC's.
We will script the game in C# as we are experienced with this language from last years work using XNA in Visual Studio. Unity also has a huge library of documentation available for audio, physics, graphics and scripting. This wide range of documentation will ensure ease of use of the engine for our programmers with a detailed scripting reference [2].
We have researched into the implementation of the use of the Leap Motion controller in Unity 3D and have found some very helpful reference material that will make the initial scripting steps a lot easier to program.
For the social element of our game (Twitter integration), there are a number of libraries we have researched to do this. Unishare [3] was the first one we came across but unfortunately the initial release only supports iOS and Android as Windows based integration is slightly more complex.
TweetInvi is another library we have looked at which uses .Net C# framework. There is a stable alpha version of the library available for download which we will need to explore further before making any decisions on whether to choose it or not.
Finally, Twitcurl [4] is another C++ based library for Twitter API's, twitcurl uses cURL for handling HTTP requests and responses for Twitter. It has been tested on Windows and works great! Other factors we need to take into account for the use of this library is managing to understand the OAuth authorization methods which Twitter uses as the open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications.
References:
[1] (http://unity3d.com/unity).
[2] (http://docs.unity3d.com/Documentation/ScriptReference/index.html).
Abstract
Evoke gives you the creative power to design a world with full control over the terrain, flora and colours in-game. We use the evoke Moodbar to bring the immersion out of the game and the player into the game.
Re-scoping Target Audience
One of our main short comings has been clarifying our target audience and generally taking a broad, ambitious approach. We are no longer attempting to cure or treat our user base but are instead hoping to in some way create a tool for welfare technology by saving in game analytics. Our goal is to make a game that is fun and engaging to play first and foremost, with any possible benefits being resultant rather than targeted.
Re-focusing Gameplay
World Evolution
The world will change over time with the bigger areas expanding, overwhelming and enveloping the smaller ones in the process. For example if a large desert area was next to a small grasslands area the grasslands would be slowly turned into desert if ignored by the player. Animals will begin to grow and flurish as will the biomes. We hope to make this more creative than destructive.
The five basic terrain elements
Grass
Snow
Sea
Earth
Desert
Orb Combinations
Dropping an orb of one terrain type onto the terrain of another will combine the two to form a new type. For example dropping a sea orb onto grasslands will produce a swamp. Any trees, animals will adapt to this new envirnomnet. We hope to have a large number of these, not limiting the player to reality. So unique combinations may exist where the player can create something that may not exist in real life.
Weather
Different weather will have a chance to affect each of the area types. It might begin to snow in a snowy area or rain in a grasslands area. The weathers will be specific to the type of area it occurs in. It won’t snow in a desert.
World Scale
The scale of the world will be roughly the same as a lego man on a beach ball. The player will be able to fly at any altitude between just above the ground and low orbit. This height will decide the players speed. At ground level it will take them much longer to circumnavigate than at orbit.
Multiplayer
The multiplayer of evoke is a future aspect for the game that we are always thinking about. We hope to communties of people were people can look up into the night sky and visit worlds created by family and friends.
Reducing Workload
Since we decided to focus our efforts more on the core gameplay of evoke, we decided to cut some of the lesser important features of the game. We decided on cutting the Companion App and replacing the messaging system with Twitter support. Meaning Twitter can be used to send messages to the game. This will be much less work for us as we can avoid developing an app. However this decision will also be very benefical as twitter already has a large install base including mobile platforms and the framework is there for us to implement.
Specialist Areas
Sean: Implementing various elements of flow in a video game, utilising adaptive level design
I will look at how to implement elements of flow such as the sense of timelessness, the sense of control, direct feedback and clear goals using evoke's adaptive level design. Evoke reacts to everything the player does, it will be important to create and maintain some of the elements needed to sustain flow depending on the world the player creates. Since everyones world will be different it will be difficult for us as game designers to 'hard code' these in so we must implement them in other ways which is what i am going to experiment with. If i am successful Evoke will be a much more rewarding and immersive game.
Keith: Implementing a controllable dynamic level creation system in unity
I will be working on creating the system that the game will use to generate the level itself (the world). Making and implementing the adaptive system that Sean will use to create flow. The system needs to be flexible enough for a very high number of possible combinations but also remain completely controllable.
Michael: Programming & interface Designer including design and creation of peripherals
My contribution to the game will be in getting the leap controller to work with our unity based game. Also will be lead programming on all interfaces and external devices. I will be in charge of designing and building our EVOKE MOOD BAR and then controlling this from withen the game. Another duty will be to lead the scripting in the engine for general game items.
Tadhg: Investigation into the characteristics of non-standard biped animations (flight)
I'm researching what techniques are used to create an animation of a character flying. This will be implemented into the Evoke game world as the player uses the character to travel across the map and explore various terrains. I am in charge of the design of the main character and it's kinematic movements.
Nick: Implementation of simple dynamic generation of ambient environmental audio in Unity 3D using PureData.
I will be researching how to implement the use of PureData in the Unity 3D engine to generate dynamic, relaxing and ambient environmental sound effects in the world of Evoke. These ambient effects will include the generation of wind, nature and randomised musical note effects for when the character picks up in game items such as Orbs. I believe that the dynamic aspect of some simple sound effects will be an interesting and new experience for players of Evoke and will eliminate the monotony of static and sometimes unpleasant repetitive sound effects.
Scrumwise
To complete this project we are using a similiar scrum system to the previous year. The most important change now is ranking the backlog items in the sprint as follows: Urgent - High - Medium - Low. Usually only one thing will be given Urgent in a sprint and it must be completed before the sprint is over. Anything that is low, is okay to carry over to the next sprint. This ensures us that all important elements are completed first and anything extra is rolled over to the next week. We wont decide the ranking of the backlog items until we start the sprint.