Research is pivotal to the success of any enterprise. Especially in such easily accessible market such as game development. Therefore we spent a large proportion of our time researching our competitors. Performing SWOT analysis’ on each of our competitors allowed us to see why their business was succeeding, as well as potential downfalls. This allowed us to avoid our competitors mistakes whilst also learning from their success.
An example competitor we reviewed was CoolMath.com. We chose this as an example not due to its similarity to our project but because they are a leading business in educational games for kids. Our SWOT analysis along with semi-structured interviews we performed showed that the main reason this business model was working so exceptionally well was because of the diversity of math games. Our game however is a singular game with no mini games inside it, so we discussed how to improve our game with this knowledge, and we decided that the research we performed showed that kids at these ages have a lower attention span. Therefore we decided to make the game more fast paced, with interactivity being a key area of concern.
Another competitor we researched was Sid Meier's Civilisation V. This game is not education oriented, yet it does provide insight into strategic thinking, however it is arguably the most famous hexagonal tile-based game. Observing gameplay of this allowed us to get a feel for how player movement should unfold. Reading the games documentation showed us how the game uses biospheres to add diversity to the game screen. At the current state we have not added this to our game, however it is in our future plans.
We chose the game engine Unity because it has powerful functions and it provides APIs that can connect with IBM Watson, Atmosphe.RED and other technologies required by our clients. Alternatively we could have used Unreal Game Engine however this did not have the SDKs required for our project so we proceeded with Unity.
We are using C# for writing scripts in unity instead of using JavaScript because Unity only have pseudo JavaScript support, while it does have full C# support (with advanced features such as generics and properties). This means that you can often find help with your problems outside the Unity community.The language C# is also closer to the Common Intermediate Language than UnityScript. This means that in some (rare) situations, you are able to write code in C# that performs better than in UnityScript.[2]
We are using Node.js and MongoDB for setting up the server. In comparison with PHP or APS, Node.js eliminated the waiting per request and continues to the next request. This allows us to create a low-latency interaction in the game. A fast and reliable method to connect a Node.js server with Unity is by using sockets, which use the TCP model to exchange information. To implement this, we use Socket.IO, which is a JavaScript library for bi-directional communication between web clients and server, which also provides support for Unity’s C# scripts.
Atmosphe.RED is a library available to Unity and Unreal games to enhance gamer experiences. The library was created to connect any game to IoT devices including Amazon's Echo, and Philips Hue lightbulbs. To develop the library the team used; Node-RED, IBM's IoT Platform, Unity, Unreal, Amazon Echos, Philips Hue lightbulbs, and Raspberry Pi's.
IBM Watson Personality Insights allows us to retrieve the personality type of each player and customise their game to them, more aggressive characteristics will translate to higher attack damage with lower defence, whereas social characteristics will translate to higher diplomacy ratings. IBM Watson also allows further possibilities within the game. In chat communication has several drawbacks. Voice chat fosters an abusive environment, whilst messaging chats are slow and inefficient. IBM Watson bipasses this by allowing voice to text communication.
[1] Atmosphe.RED http://atmosphe.eu-gb.mybluemix.net/
[2] C# versus JavaScript in Unity https://blog.nobel-joergensen.com/2010/07/07/csharp-versus-javascript-in-unity/