Shall we play a game ? - The Answer.
Philipp Weckerle
Advocating customer experience and innovation through cloud technologies on Microsoft Azure.
YES, we should! But before we dive into this, here is the solution to the quiz.
Indeed the quote is from "Joshua" (aka WOPR), the AI depicted in the 1983 Movie "WarGames" where "Joshua" learns the senselessness of the cold-war-era first-strike and retaliation mindset by playing Tic-Tac-Toe, concluding that a game of "Global Thermonuclear War" was "a strange game, which only winning move was not to play". The overall movie is more exciting than this synopsis might make it sound like though.
Anyway, this quiz was more to prove a point. Games are a part of life, they are all around us, and by that i do not mean only those play-cards-in-your spare time, or console-of-your-choice-i-need-no-sleep type of gaming, bur if you think about it, games have a couple of, very common characteristics:
- You get tasked with a "mission" to be completed
- Along the way you get opportunities to earn (and use earned) benefits
- There is some type of competition among the players, wither built into the game or informally between players
When you think about it, this does apply to non-traditional gaming situations also, like your favourite loyalty program, some gamified business processes at work, etc.
So, indeed, games are all around us and the areas with game-like characteristics are steadily increasing. The question, however, for us as developers is how to best brace ourselves for this, as for sure eventually we will come across requirements that will call for game-elements, or -who knows- maybe a game as a whole.
While game development, at its core where the game itself has product status, is a huge, quite specialised, topic by itself and i do not necessarily want to talk about this here, but rather about those game-like applications or "small" games that pop up all around various business scenarios.
For developing an application with game characteristics there are several areas to look at :
- The Game Concept : which would be the "story" and "rules" of the game or gamified process. What is the "mission", what are the "rewards" and what are the main rules to follow.
- The Game Assets : every game lives of its visual impression to the player. It does depend on the scope of the "game" what this encompasses though. For mainstream games, this is a significant effort as the game's concept needs to be realized in visual worlds, characters, etc. all of which require visual representation. This usually spans multiple disciplines, like 3D modelling, lighting, texture painting, etc. requiring very specific skills and specialization.
- The Implementation : As for the meat-and-potatoes of a game, its implementation, there are obviously two aspects to keep in mind, the game front-end, which could be implemented using the likes of Unity, Unreal, etc. as core gaming engines, or possibly using more traditional application frameworks, it really depends on the nature of the game. The Backend, on the other hand, is commonly very similar between games as it's sole purpose is to track and maintain things like player profiles, leader boards, characters, inventories, rules, etc. but often has significant performance requirements, especially for larger scale scenarios or if we are talking multi-player scenarios in the gaming space.
Make no mistake
Even in this area, Microsoft can help you forward. Whether you are a professional Game Studio, an enterprise developer tasked with creating promotional games or an application developer who considers gamification for certain aspects of an otherwise traditional business app, we've got your covered.
Game Front End
Using Visual Studio for code development gives you the freedom to choose your game frontend as the likes of Unity and Unreal are quite tightly integrated with the Visual Studio environment and developers can leverage the advantages of the wider Development ecosystem around Visual Studio, like Azure Dev Ops, Visual Studio AppCenter, etc.
But even if you are looking for game-like elements in more traditional applications, developed in traditional frameworks, Visual Studio is the right place to be, and with the use of Microsoft Xamarin the world of cross-platform application development is wide open.
As for application operation, which is a topic that is often overlooked, Visual Studio AppCenter provides all the tools you need, as a developer, to manage your application's lifecycle. This is getting increasingly important as the wide distribution of enduser apps, especially in the mobile space, makes ensuring operational quality extremely difficult given the geographically distributed, and often outside-of-control nature of devices the apps get deployed to. Collecting logging info, to judge the quality of the app execution, for example, becomes pretty much impossible, unless environments like Visual Studio AppCenter become part of the overall application development workflow.
Game Backend
Something that is invisible to the player, but usually a vital part of the overall gaming experience, is the Game Backend. Core responsibilities are revolving around maintaining vital game information, like player profiles, inventories, player stats, etc. in order to (a) ensure a player is able to recover his or her game state, even if the device used to play is changed (or the game allows a stop-and-resume-on-different-device notion) and to separate the activity areas on the frontend from the game rules enforcement on the backend.
Monetization has also become a big area here, as often times the core game is either free or has a very approachable base price, but provides in-game commerce (virtual and real currency based) to generate ongoing revenue from a game.
These areas do seem trivial, but maintaining a backend that does provide the necessary functionality AND performance can become a challenging tasks, especially considering that in most games today the majority of the effort is not pre-release in creating the game, but post-release in maintaining its infrastructure to keep the game online.
Here, Azure PlayFab, a purpose built solution providing exactly these vital game backend services can help you in any game-like requirement to focus on your core solution and leverage the services to enhance the player experience and increase the game security ... because cheaters are everywhere ;)
Is it a game? It is a game!
So now you know the building blocks that you have at your disposal for tackling game-like use cases, and there a plenty out there as i already mentioned. It is those less obvious ones that might benefit from what i have introduced above.
Gamification -- the application of typical elements of game playing (e.g. point scoring, competition with others, rules of play) to other areas of activity, typically as an online marketing technique to encourage engagement with a product or service.
Every loyalty management scenario, gamification-approach in business processes (like collecting badges for certain task completions, reaching certain milestones, etc.) are relevant here and in all these you can potentially leverage the game-related tools in combination with possible other services.
Who says, your Coffee-Stamp-Card needs to be this boring piece of paper, but it could be a digital stamp card that records your consumption by you taking a photo of the coffee cup, the app then using Azure Cognitive Services' Computer Vision to identify the product, use Azure PlayFab to keep records of you as a "player", your inventory and rewards and facilitate the virtual-currency-commerce that is redeeming rewards, etc. and all that packed into a mobile app developed using Xamarin in Visual Studio and operated using Visual Studio App Center? All that, directly integrated with your CRM, Marketing and Loyalty workflows in, for example, Microsoft Dynamics though Azure Logic Apps low-code/no-code workflows.
Just a simple example, and the closer your use case is to a traditional game scenario, like branded, promotional games, etc. you are even better served do look at this arsenal of tools that can make your game developer life even easier.
Games are all around us, so why not be part of the ... well ... game, i guess.