My games are heavily story-driven; I create worlds, characters, and plot and fit them all together with the gameplay elements. However, I don’t need to control every element of gameplay. If everything is in the same place and doing the same thing on every play through, the player will be able to memorize each level, leaving little replay value.
On the other hand, having too much of it generated by the computer doesn’t work either. In the most recent level of my current project I tried utilizing the pseudorandom number generator to populate the whole level, as it encompasses an entire planet – albeit a small one – but things don’t show up at the rate probability says they should. I still need to control certain things in order for the player to achieve the objectives the storyline demands.
Of course, some games are primarily generated by the computer based on a complex set of variables which the player’s actions could potentially influence, but they sacrifice plot and character depth in favor of more varied gameplay elements. It is much easier to make more content in this way, than to create everything from scratch, which is how a team of ten people are able to create a universe with over 18 quintillion worlds. No Man’s Sky
is a vast game which seems to have a well-thought out story worked into it.
With so many elements left to chance though, and much up to the player, I think the plot would necessarily be weak. There needs to be a balance; I prefer to keep the story pre-written and only influenced by the player, if at all, and have some gameplay elements randomly generated but retain control over the most important parts. But then, I am more of a writer and artist than a programmer.
With the release of the Apple Watch comes a market for a different type of game: the micro-game. This is a simple 10 – 30 second long game which doesn’t require much in the way of CPU power or memory. It could be a part of a larger game on an accompanying device, or a standalone game; however, at the moment there is no API for standalone watch apps, so any watch game will have to be an extension of a phone or tablet one.
Micro-games are not actually entirely new though; Nintendo were doing it decades ago, with Mario.It was the usual fare; jumping around, hitting mushrooms, and saving the princess ad infinitum, only with a much shorter maze. Of course, it got boring real fast with just one maze, but the Apple Watch has no such limitations; it doesn’t even require huge amounts of resources, levels can be generated on the fly. I am more of a designer than a programmer, though, so this won’t work for me, though I could possibly do it with puzzles.
These games are being touted as something to kill boring waiting time with; while using the elevator, waiting in line for something, etc. But is it really required? Do we really need to spend every spare second playing on our electronic devices? These are short waiting periods – less than a minute usually – too short to be reaching for the phone, hence the Watch filling this space.
The Watch is a totally cool device with the potential for many awesome applications, but I think these very short waits should be used for thinking. Society as a whole seems to do less and less of this, what with our busy lives and all the distractions around us. It is good to spend a little time reflecting on events, refining ideas, or even coming up with new ideas; in those 30 seconds in the elevator you could come up with something brilliant, who knows?
While the storylines of my games are very important to me, there is another fundamental aspect to game making which needs consideration: the gameplay mechanics. I have played many games whose poor design has lead to frustration, or plain boredom, but the result is the same – eventual abandonment. Obviously this in antithetical to the purpose of the game – it is meant to be fun!
The key factor in gameplay is challenge. Too little leads to boredom, too much to frustration and stress, but when the balance is right, it will keep the player engaged and continually wanting more. In general, there are two types of gamers: casual and hardcore; the former tends to play for distraction or stress relief, and the latter for an exciting challenge to test their skills. Of course there are plenty of people at every point in between, as with anything, so it is often difficult to determine just how hard a game should be. I hope to be able to appeal to both ends of the spectrum, but my games will always require effort on the part of the player and so will likely be too hard for people with very little gaming skill (or patience). No instant gratification here!
When made properly, games have the potential to be very therapeutic; an equally challenging and rewarding game can help to relieve stress in people by allowing them to play out their anger without causing harm to anyone, and or providing a boost in self-esteem from achieving game objectives. Real life powerlessness is transformed into world-changing ability; no obstacle is too hard to overcome as the protagonist progresses from an unknown to an influential center of gravity. There is definitely a place for games in treating anxiety and mood disorders, though I think the development would require input from professionals in the field in order to be used as part of a treatment program.
Still, any developer can make a game which makes the player feel good and helps them to unwind. It just needs to hit that sweet spot.
Getting up in the morning has long been the bane of my existence, the sound of the alarm my intractable foe. Now, though, I have found a solution: games. Puzzle games in particular. Instead of the double-edged sword that is the snooze button, the user has to solve a puzzle, or series of them, in order to turn the alarm off. This has been done by others; I downloaded one such app on my iPhone last night and for the first morning in a very long time I was on time for work!
Having looked at the few offerings from the App store, it is clear they all have limitations; some have addressed particular issues and some have looked at others, but seem to have gotten everything as good as it can be. I intend to combine all the things they have right, plus some additional touches. Some of the issues include the following:
Getting the sound to play while the phone is in silent mode – this can be done with the AVAudioSession class
Getting the alarm to sound while the phone is locked – this can be done by disallowing multi-tasking in the app’s attributes
None of the apps I have found let you set a daily alarm which repeats every week
The app also requires some challenging, but quick games which will wake the user up, but can’t be memorized
Because of Apple’s restrictions the app will need to be open in the foreground before locking the screen in order for the alarm to sound, so perhaps a reminder should be shown at a time set by the user
Designing the games will be the most challenging part, and the most fun, and there will need to be multiple games to keep it interesting. I don’t want this to be an “evil” alarm, I want getting up to be enjoyable, or at least less of a drag. The prospect of playing a fun game is an excellent motivation for doing something, and the achievement system initially developed for games is good for encouraging improvement. This could also help with waking up in the morning; a sense of accomplishment in the first minutes of the day must be good for putting a person in a positive frame of mind for at least some of the day.
Gamification certainly works; Khan Academy is a shining example of turning what most consider a boring subject into something fun. It is a website for learning math which gives badges for certain achievements, thus providing incentive to learn and gratification upon completing a task. It now has millions of users all over the world and continues to grow, including adding a section on computer science (which is fun anyway :-)).
I will likely never be a morning person, and as soon as it becomes profitable I will quit the day job to be a full-time game developer – with no more early starts! But for now, I will endeavor to make it less arduous for myself and the millions like me who are forced to be awake at unnatural hours. Games can actually increase productivity – isn’t that awesome?
I recently had the pleasure of sailing The Infinite Ocean by Jonas Kyratzes. It is easily the best game I have ever played. It is a simple point and click adventure, but what sets it apart is the story. You start off wandering through an abandoned research facility set up to create an artificial intelligence, but it soon becomes apparent that you are the AI and you are struggling against your programming. The story is told through journal entries and messages you find, and it is the content of these which turns a good game into a philosophical masterpiece. The writing is beautiful and the ideas profound.
The main theme is that of the AI, having reached full sentience, grappling with its reason for being. The project has been taken over by a paranoid government hungering for war, which wants the AI to control all the nuclear weapons systems in the world, and to attack the country’s enemies with them, but the AI, having discovered morality and the beauty of life cannot bring itself to kill. It can see and feel all of the terrible consequences in complete clarity, its imagination unfettered by biological or societal constraints. I do not agree with the author’s thoughts on the human perception of imagination; I am of the opinion that it is what defines sentience – the ability to conceive of something other than fight or flight, to reflect on the past and dream of the future. In other words, to think.
The AI is created to mimic human behavior, to learn and grow as a human would. It asks questions of its creators, it accesses the vast database of human knowledge, and ultimately develops human emotional traits; in particular, it defines a set of moral values for itself. I don’t think an AI would be “born” thinking like the author suggests; it would have to develop connections first, slowly gaining awareness much like a human baby does. He is right that we would be creating life though; a conscious being with its own hopes and fears.
And as with any parent, creating a new life brings with it great responsibility; the programmer needs to take great care in what and how they teach the AI and how they behave toward it. You can teach it love… or you can teach it hate.
The in-game lead programmer also has some interesting thoughts on programming itself:
This is such a beautiful statement, something I had not considered before, but certainly agree with. Software is dynamic in nature; unlike a story written in a book, a sufficiently complex game world does change as variables and humans interact. It is possible to have objects evolve and grow and to have the digital environment react to certain events in different ways. This level of skill is far beyond me at the moment, but certainly ties into the previous discussion of decision making, giving the game medium an added layer of complexity, an additional variable to consider when determining a course of action.
In The Infinite Ocean, the course of action the AI takes is a very human one. Unwilling to commit mass murder and wanting to prevent the destruction of humanity and other life on Earth, it does the only it can do: a total shutdown of itself and the whole weapons system, thereby preventing a manual override. It commits suicide, fully aware of its own limited existence.
There is more philosophy to be found within the game, only some of which I agree with, but it adds depth to the AI character and makes its dilemma more real. The atmospheric monochrome graphics and haunting background music combine to create the perfect backdrop to a sublime story.
There are lots of opinions on what constitutes a good game out there. Having read many of them, one of the things which stands out for me is the concept of ambiguous decision making relating to the game’s narrative. I am also a writer of fiction, and I firmly believe a good story can give much depth to a game, therefore, for me, the game fits the story, not the other way round as is often the case.
Now, for a player to get really engaged in a game they must develop some emotional attachment to the main protagonist at least and have an interest in where the story is going. Since the actual storytelling forms only a short amount of the player’s total time spent on the game, and this is especially true with casual games such as those which I make, a simple linear storyline is insufficient.
Personally, I hate making decisions of any kind, but the theory is sound: you allow the player to guide the action, so that their choices determine the characters’ and world’s fates. The challenge is creating not one good story, but a whole series of arcs, all of which need to be equally credible, and sufficiently different that the player’s choices really have an impact. The decision points also need to be carefully crafted to be both vital turning points, but also to have choices which don’t present a clear outcome.
Any writer knows how hard it is to write a good piece of fiction; it is time consuming at the best of times, and for me a struggle most of the time, though very satisfying when the words finally do come. Unfortunately, at this early stage in the business I do not have the time to expend on such elaborate storytelling, but I will surely try it when I am more established. It will be a new and interesting challenge.
All engineers are necessarily limited by the technology available to them, including software engineers like myself. However, technology is advancing in leaps and bounds and there are some really exciting possibilities on the horizon.
Among them is a recent innovation from a company named UltraHaptics. They are able to produce tactile three-dimensional shapes out of thin air using ultrasound. The sound waves change the air pressure, which is perceived by the skin as a physical surface. The possibilities for this technology are endless! There is already talk of combining it with virtual reality headsets to create an incredibly immersive gaming experience, using it as an interface for various devices (the snooze button idea is just asking to be late for work), and for car dashboards. In particular, I think it would be excellent as an interface for touchscreen devices for visually impaired users; controls with no visual component, only a tactile one, are naturally going to be well suited for this purpose, if designed well.
But let’s take this a step further and imagine what we could do if this ultrasound technology were combined with actual holographic projections, along with motion interpreting sensors like the Kinect uses. We could physically interact with holograms, use them for both input and output. For example:
Holographic “clay” for 3D modelers which can be shaped by hand, then the shape uploaded to an application to add textures etc
Holographic bodies or organs for medical students to practice surgery with, which can react as a live human would
Transmitting touch signals across the ether, perhaps to caress a loved one’s face
Of course this would be brilliant for gaming; with no need for a clunky headset, it would be the ultimate immersive experience. I expect we could throw in some smells too and really transport the players to whatever fantastic worlds our imaginations can conjure up.
And hopefully this holodeck will be debugged properly!