This is my first blog post in 6 months, honestly I was extremely busy with graduate school applications. However, I plan to be back in writing blog posts more frequently.
Today, I will be talking about how to detect a hula-hoop using a camera and estimate its relative position from the camera. This method I will be talking about is currently being developed in the Cyclone project in which I work on an autonomous racing drone using C++ and OpenCV. The detection of a hula-hoop can be very beneficial for instance when developing a drone that tries to go within the hoop or avoids it when racing. The method presented here is not optimal, but is good practice for beginners in the computer vision field. This method assumes that the camera used is properly calibrated, that the hoop is filled with red LEDs, and that the camera is facing the center of the hoop.
First of all, the image (frame from the live video) is converted into HSV (Hue, Saturation, Value) color space, which is more useful than the BGR image that comes straight out of the camera, as in this representation the intensity information is separated from color, which makes thresholding much easier. This in turn reduces the effect of light intensity changes while tracking the target . The LEDs that need to be detected have a consistently high luminosity, so by setting a relatively narrow threshold at a high intensity level, already most of the unwanted pixels can be discarded. Empirically and through research, the following values are excellent ranges for the red color in HSV:
H = [45,255]
S = [170,245]
V = [170,255]
This thresholding will allow to detect only the red points in the frame, with the following results:
As you can see, the red LEDs are extracted (we discard the green color in our example).
In order to be able to apply circle fitting, the edges of the detected image need to be extracted, which is done by using a Canny edge extraction. This canny edge extraction is a built-in function inside OpenCV.
Finally, an ellipse is fit over all the coordinate points remaining in the array which describes the position of the hula-hoop on the image. This is done using the function fitEllipse from OpenCV. This function returns the height of the detected ellipse as well as the width and the angle ω of tilt of the major axis. From this, we can extract k, which is the length of minor axis (b) divided by the length of major axis (a). In theory, these are the values extracted from the function:
The following figure shows the result of the detection on our hoop:
Great, now we have detected the ellipse as needed and have some important values such as the angle and k. Now, in order to get the position in cartesian coordinates, it becomes a little tricky. Here, we assume that the origin is the center of the hoop, x is the horizontal axis (left and right from the center), y is the vertical axis (up and down from the center) and z is the axis from the camera facing the center of the hoop.
We wish to determine the relative position (x,y and z) of the hoop with respect to the camera, where the origin is the center of the hoop.
In order to do so, we need to determine the distance from the camera to the hoop as well as the vertical and horizontal angle of the hoop. Indeed, we need the following values:
α2: Angle of rotation about the camera frame's vertical axis between the disc axis and the horizontal direction of view of the camera (0 = no rotation; 90 degrees = viewed left edge-on, disc facing right). This is the horizontal angle.
β2: Angle of rotation about the camera frame's horizontal axis ('lie back') between the disc axis and the real world horizontal plane (0 = no rotation, disc is vertical; 90 degrees = disc is flat, facing up). This is the vertical angle.
D: Distance from the camera to the center of the hoop.
Determining the distance
First, the measurements of the hoop and the focal length of the camera lens have to be performed. The focal length, in turn can be determined with the following equation:
F = PD/R
where F is the focal length, R is radius of the hoop in meters, D is the distance at which the reference shot is taken and P is the representation of the radius of the hoop in pixels in a captured frame.
In order to determine the distance to the object, the semi-major axis of the ellipse in the captured photo frame is compared to the ellipse (circle) in the reference frame that represents the perceived hoop at a distance of 1 meter with a perpendicular view. The distance can then be determined using the focal length F calculated with the following equation:
d = FR/pmajor
where pmajor is the semi-major axis of the perceived ellipse.
Determining the angles
The following source  suggests that, using k and ω, we can comput the following horizontal and vertical angles:
The math behind this is a bit complicated so I will avoid going into the details.
Determining the position
Using the computed values, we can now compute the values of x, y and z:
x = sin(β2) * cos(α2) * d
y = sin(α2) * d
z = cos(α2) * d
And that’s it! If the assumptions stated at the beginning of this post hold, then the output results should be correct.
A small trick: This method proved to be inaccurate sometimes when looking at the hoop from the center (where x and y should be nearly 0). This is due to the fact that the tilted angle returns inaccurate result because the detection does not know which axis is the major and which axis is the minor. Hence, whenever k (remember k is the minor axis divided by the major axis) is nearly 1 then we can assume that the ellipse is a circle, and thus that we are looking at it from the center. As a result, we can then assume that x and y have a value of 0. This is not the best way to fix this, but it works for most of the cases.
I think this is the fifth blog post I talk about VR. I just can't help it. It is just such a passionate subject. I was walking in MediaMarkt store here in Eindhoven, and saw all the new virtual reality headsets being sold, so it inspired me to write this blog post.
The thing is, to quote Jay Borenstein from Stanford CS department: “If you believe that VR is coming… that it’s going to be transformative, that it’s going to be ubiquitous, and very significant for the way that society interacts with one another, then it’s exciting to be at the very early stages.” And yes, I believe in this, I am more than excited to be at the very early stages.
As you may all know, Facebook, Google, Sony and a lot of big companies are working on it. What you might not know is that there are a lot of small start-ups as well, so many VR headsets that are not as famous as the Oculus Rift or the HTC Vive. I talk more about this in my post about the Game Developers Conference 2017 that happened in San Francisco, California.
Today, I will not be talking about the technology behind VR, but rather how to get into that world. Why don't I apply all these strategies? I am trying my best to do so, by working on VR with a PhD student, writing these posts and making my own research on this subject, but I am also extremely busy with studies and graduate applications as well as sports.
Science fiction writers and futurists dreamt up VR decades ago, and hackers have been attempting to build it ever since. Today, the technology is rapidly advancing with the promise to shift modern computing into a new paradigm, not unlike smartphones did one decade ago.
Some people are skeptical about whether VR will stick around, because the technology is still very much plagued by issues like high cost, unwieldiness, and simulator sickness. But I strongly believe that this will be resolved with time, and investments.
Is VR a new technology?
To quote Jeremy Bailenson from the Stanford VHIL (with whom I had the opportunity to exchange some e-mails with): “VR is not a new technology. It just became accessible.”
And that is true, the technology was being developed since the 1960s. Only recently have developments in VR become more visible to the public eye. CPU/GPUs have reached a point where they can provide high-fidelity, immersive experiences for reasonable prices. Smartphones have enabled mobile VR as cheaper and more accessible options that don’t require you to be tethered to high-end computer. As more people have an opportunity to try VR, it’s becoming increasingly clear how the technology might reach consumers in a big way.
VR Gaming is cool, but there is more to that
I mean, when you first think about VR, it is about driving cars in video games, destroying robots and infiltrating military camps. Those things are really fun, but there is a lot more than that.. and that is what makes VR so interesting.
But VR will also enable immersive concerts, reinvented museums, and live, court-side sporting events. With VR, videoconferencing will improve, with better eye contact and the inclusion of nuanced, non-verbal cues. The cost of training will plummet without the need for human trainers in industries like construction or manufacturing. At the same time, the efficacy of repeatable, hands-on training will increase. Academics will conduct social psychology research with more reproducibility, diverse sample sizes, and day-to-day realism without the need for human confederates. VR will provide a scalable way to introduce true experiential learning into education.
Let's lay down some of the technical fields of VR
My point here is that any experience in one of these fields will you get into the VR world.
But there are also non-technical fields
It is possible to create content.. RIGHT NOW
Download a game engine, like Unity or Unreal Engine, and start hacking. I have the chance to have extended Unity experience, and hope you also do! Otherwise, it is never too late to start learning!
Usually, the game engines are very intuitive and it is not too hard to learn the basics, mastering them is something else.
Some useful links that can help you:
Some Computer Vision and Imaging resources:
My advice..START SMALL
This is very similar to Game Development, everyone wants to build the next Call of Duty as a first project. Check my project, it was a simple space shooter 2D, and it was a great learning point!
Try to embody the perspective of a beginner: be willing to learn and absorb. Don’t start something because you feel like you have to. Now is a great time to learn, experiment, fail and become part of an amazing community.
Another advice..TALK TO PEOPLE
I honestly believe that this is my main strength, I always go talk to professionals. Don't be shy. During GDC 2017 in California, I talked to senior software engineers from Oculus, Facebook, Google, Unity and senior programmers from Treyarch, Psynox, Infinity Ward etc.. Because you don't lose anything by doing so, all you do is learn.
The process of building a beautiful experience requires the work of not only engineers, but artists, designers, and storytellers as well (game developers will understand this). Ask for feedback in online forums. Join clubs. Work at a VR company. The world of VR is still very small, and that’s really special for someone looking to make a big dent in the field.
Here is a Facebook VR group you can join as well :)
A bright future is coming, let's make sure to contribute to it!
In the week from 28th of February 2017 to 5th of March, I flew to San Francisco, California to attend the Game Developers Conference (GDC) 2017 happening in the Moscone Center and visit my brother who lives in the same city. Attending GDC has a been a huge dream for me, as I have followed it for the past years through Twitter. Without hesitation, I went there to see the latest in the entertainment industry and listen to talks from companies investing on gaming platforms and infrastructures (Google, Facebook, Amazon to name a few).
It was one of the best experiences in my life. I fell even more in love with the gaming world, not just the content but the whole world being built around it, namely Virtual Reality and Augmented Reality.
After spending more than 15 hours in the event talking to people from all companies and studios, here is an overview of it.
VR is the next big thing
Yes I know, I said this a bunch of times already!
I wrote a bunch on VR explaining how it represents the future, but this is different. In the expo, nearly EVERYTHING was about VR. It was like heaven for me, literally heaven. I was walking there like a little kid, fascinated by everything around me. You put your eyes up, and all you read is "PlayStation", "XBOX", "Google", "Facebook". I attended different tech talks, 2 from Facebook and one from PlayStation. It was interesting to see how facebook is putting so much money into gaming, not game development, but rather into the platform (instant games, gameroom). Google is doing something different, they are more into analytics rather than ads and platforms.
I also talked to some people from Naughty Dog (Uncharted), Treyarch (Call of Duty), Psyonix (Rocket League), Oculus, PlayStation and were all telling me how it is to work at their companies.
I had the chance to try several Oculus exclusives, played a tournament of Robo Recall to try to win an Oculus Rift, but did not manage. Anyway, it was an amazing experience to meet engineers from their team. I also had the opportunity to try the PlayStation VR with the Aim Controller to play an FPS game. It was amazing and disgusting at the same time, as spiders jump on you in the game. Honestly, if I felt disgusted, it means the game was well designed, doesn't it ? :)
Here are some photos about what happened there in downtown San Francisco
Facebook + Oculus
This is Facebook and Oculus hubs, where Oculus was making the Robo Recall tournament and showing the demos of other games. Facebook was mostly there to give tech talks, give Facebook swags (cool right ?), and recruit.
Having seen the GDC, my perspectives and opinions changed quite a bit. Before this, I wanted to become involved in Game Development (Programming mainly), working in game studios. Now, even though I still want to do that, GDC expanded my horizons. I realized I also want to enable game developers to do their job and provide awesome interactive experiences to players. I saw so much potential there, and started thinking about specializing in Human-Computer Interaction, Software Engineering in VR companies such as Oculus. Of course, the entertainment industry is still where I am heading (and that will hopefully never change). GDC did expand my horizons, offering me a broader vision and more opportunities to consider for my future.
Here are some other photos I got from the event
It was kind of funny to see Unity and Unreal (Epic Games) battling and trying to get the maximum of players. I spent some time talking to the analytics team and met their product manager. He explained to me their plans for the future in terms of data analysis.
It was also funny to see XBOX vs PlayStation and Google vs Facebook. As a passionate game developer, I focused on trying the maximum of knowledge from every company.
A photo of the PS VR + Aim Controller is part of this slide show.
Last year, I spent a week living on the campus of Stanford University. This year, I had the chance to visit the campus of UC Berkeley and Facebook HQ in Menlo Park, and all of them were really, really amazing!
A funny selfie at GDC :)
Technology... it just never stops growing. Amazing things happen every single day. You wake up, a Google robot beats the Go game world champion. You wake up, Amazon demonstrates Amazon Go, which is a grocery store without check out using Computer Vision, Deep Learning algorithms and other complex stuff.
What is happening there in the Silicon Valley (and everywhere in the world) transforms the world into a sort of a dreamland for those interested deeply in technology like me.
I currently work as a VR Game Developer in the Game Lab here at the TU/e and doing research on how to create empathy through VR experiences. Sometimes I meet people that are more interested into Augmented Reality (AR) and we start arguing about who will take the other in the future. I honestly believe that it will be the next big technology battle, where different big companies will invest into one of them and start developing crazy stuff.
Microsoft is already investing a lot on the HoloLens, which is "the first fully untethered, holographic computer, enabling you to interact with high‑definition holograms in your world." This means that Microsoft is in the Augmented Reality side. On the other hand, there is Facebook who acquired Oculus currently building the Oculus Rift. Moreover, there is HTC and Steam, working together on the HTC Vive. Both of these headsets are Virtual Reality headsets. This shows that tech battle already started.
Both AR and VR are not yet consumer ready: Yes, they are being sold and shipped, but they are still too expensive and not perfect yet. Those who possess them are usually developers and huge VR or AR enthusiasts. Of course this will not last for long, I believe that in 2-3 years, everyone will start buying the headsets at home for them or their family and friends.
Mark Zuckerberg, the man who spent $2 billion of Facebook's money on Luckey's VR company Oculus, is a huge VR enthusiast: "We're working on VR because I think it's the next major computing and communication platform after phones," he said in July 2016. "we'll have the power to share our full sensory and emotional experience with people whenever we'd like."
Both Virtual Reality and Augmented Reality are similar in the goal of immersing the user, though both systems do this in different ways. With AR, users continue to be in touch with the real world while interacting with virtual objects around them. With VR, the user is isolated from the real world while immersed in a world that is completely fabricated. As it stands, VR might work better for video games and social networking in a virtual environment, such as Second Life, or even PlayStation Home.
On top, you can see the Microsoft Hololens and in the bottom the Oculus Rift headset.
In terms of experience, they both differ a lot. AR is more about wearing something light such as glasses while VR is about wearing a huge headset.
While AR will eventually be neatly tucked into the sides of your sports sunnies, though, VR is always going to have to enclose your eyes and ears with lenses, displays and headphones to work.
AR glasses will cause etiquette problems as they 'disappear' whereas VR will go the other way with us very clearly 'plugging in' to a virtual world for a session. With pass-through cameras there could even be some kind of hybrid wearable that offers both.
In general, AR specs are lighter and more comfortable than VR headsets and they are more likely to be wireless.
This is important because, at least for now and the next few years, no one will go out in the street with a heavy headset, but going out with a modified glass is possible. What I am saying is that I see VR more as a technology where the person stays home to play video games while AR will be much more there outside.
Now, which of the two technologies represents the future ?
This is really the question of whether humans want what they experience in the future to be based in well, reality, or constructed, artificial and cut off from what we now refer to as reality. That's a big question.
We're social creatures. So you might think VR has a slight disadvantage - augmented reality demos such as HoloLens' Halo 5 demo allow a group of users to stand in a circle around 'holograms' simultaneously.
But steps are already being taken to make VR more social - Facebook is betting big on it and we are beginning to see real investment in platforms which allow virtual hangouts such as AltSpaceVR. And look no further than at art projects such as the telepresence installation Me and My Shadow which connected visitors from four cities in a virtual space.
Neither of these technologies is as passive or as social in a physical location sense of the word as say, hanging out half-watching TV. And this could be a big factor. To play a game or experience on Oculus or HTC Vive, you have to commit yourself fully. And VR is thrilling and entertaining enough that gamers will do this, not to mention students, say, getting their heads around anatomy.
Perhaps the difference will be VR as an at-home treat, as console gaming or kicking back to a Blu-ray is today and AR for more of a social, everyday experience that doesn't take you away from smartphone alerts, walking down the street or playing with your kids.
The answer, then? Well, it's both isn't it?
Note: I just published Shapion on Android. It represents an achievement for me as this has been a small dream. Here is a link: https://play.google.com/store/apps/details?id=com.Ahres.Shapion
Onto the next project :)
Serious games are getting more and more popular. They are a source of education, motivation and I have had the chance to work on one already. My project was about getting people to change their minds of nuclear energy in favor of Sustainable energy. I am pretty sure that it will get much more importance and will have a bigger impact on the world, especially with the rise of VR.
But first, let's define serious games!
Have you ever wondered how playing games can help us to train people, deal with societal challenges or raise awareness of contemporary social issues? This is exactly what serious gaming is about:
A game designed for any purpose rather than entertainment. Serious games are considered useful to those who wish to use simulation for training and education e.g., flight simulations. They also make use of games engines, a good platform for development and play.
That is where the "serious" expression comes from: education, persuasion, motivation or whatever is other than entertainment.
It is quite hard to imagine them for some people, because games are usually seen as "fun". Thing is that, they can be both at the same time. However, in this case, being fun is not the most important thing for the game to have.
A study made in 2012 by the Serious Games Association showed some really interesting results for the future of this industry :
Now that we have covered a bit about serious games (currently developing one), one idea came to my mind not a long time ago, and I will start working on it just after publishing Shapion on mobile. Here, I will give a quick overview of it and the reason why it can be amazing to develop it, without going too much into details.
What if life-lessons are not meant to be said, but to be experienced? An introduction to motivational games
Today, Youtube possesses more than 300 motivational videos with up to 35 million views , and this number is increasing daily. Watching motivational videos is becoming a well-known advice in order to help people overcome failures, loss of motivation and social difficulties. They are a strong tool in helping humans achieve their highest potential, accomplish more than expected, and visualize success.
Moreover, most of the well received speeches are the ones about past failures. For instance, Steve Job’s speech at Stanford University (2005) is considered as one of the best speeches ever made. Another example is J.K. Rowling’s speech at Harvard Commencement (2008).
What if we enhanced this motivation by making people live these videos as experiences instead of just being a simple Youtube viewer? What if games can foster learning life lessons?
In this section, I will be presenting motivational games as a new type of serious games. The informations highlighted in the first part of this paper will guide serious games to a great design, a great user experience allowing players to be truly satisfied.
But first, let’s talk about what current entertainment games teach us about life. Needless to say, some videos games currently possess life-lessons, explicit or not, that the play can extract to use it daily. Here are some of the example:
Embrace failure and never give up
"Game Over" never means game over. It means press start and try again. A gamer’s video game history is plagued with failure. So many missed leaps, bad timing, and shots to the head. This doesn't mean he gives up, though. Failing in a game just sets him up for success in the future.
In life, like in video games, if you take a path with no enemy, it means you took the wrong one
When confronted to different paths, usually in games including adventure, a player knows midway though the taken path whether he took the correct one by looking at the number of enemies coming in his way. By making an analogy with life, one can understand how it relates to the path we take in terms of career or even relationships.
One last example that is deeper, emotionally appealing to humans is Journey. In this multiple awards-winning PlayStation game , the player controls a creature in a beautifully crafted desert with one goal: go to the top of the mountain. The studio stated their interpretation of the meaning life with this game. It is in the title, and it is there until the end of the game. The meaning of life is to never truly know the meaning. All that matters is the Journey you make to discover it.
From the beginning of the game you have no idea where you are or what your reason for even being there is. You are basically a newborn, and you are about to enter a beautifully mysterious world, much like the lives we live.
Then your creature travels on, learning more about itself, and its culture, and the history behind it. Much like a child. Then at sunset you discover true beauty. You surf over waves of sand that might as well be water. The analogy could be made with your first steps into the world as a young adult. You seek adventure and find things you have never seen before. Then darkness falls, and your delve into the underbelly of Journey's world. It is a dark and scary place down there. Just like the challenges of adult hood. Then you surface and enter the cold unrelenting wind. It blows you backward, but you continue on. This is much like the hindrances of old age. Then you reach the brink of death. There is no beauty, just hopelessness, but you are given a second chance to complete your quest. It's almost like surviving a heart attack.
Then peacefully, on your own terms, you walk slowly into the light accepting your fate. As a player, you never knew for sure what your true purpose in life was, but you're at peace with that. Because you have seen such amazing beauties that you do not need a sentence to describe your true meaning.
The meaning behind Journey is that there is beauty in life, in triumph, in fear, and in death. You just have to slow down and realize it.
My point through these examples is that the meaning of life and life-lessons are not meant to be said only, but they have to be experienced.
In the first two examples, those lessons were taught un-directly. What if we design these motivational games to teach them directly?
The example of Journey can be used as a reference. In their website, the studio that developed Journey called thatgamecompany explicitly stated the following: we design and develop artistically crafted, broadly accessible video games that push the boundaries of interactive entertainment. We respect our players and want to contribute meaningful, enriching experiences that touch and inspire them. 
Journey is a 45-min game that won multiple awards including best PS3 game and came in front of the AAA games such as FIFA, Call of Duty, Assassin's creed and so on.
If a 45-min game explaining the meaning of life made this impact, what if we adapt Paulo Coelho's "Manual of Warrior of Light" or "Like a Flowing River" into 2D games with a length of 5-10min ?
For those who have read these books, we all know that reading them when feeling bad (pressure, depression, failure..) creates such an amazing feeling that makes us feel alive again, and those are only words.
Experiencing it would make it much much better.
I am confident that this type of games has a huge potential with VR, and it is time to start building them from now.
When you read some of the important skills one has to develop, you often read: "learn how to learn".
For some people, this may sound weird. Yet, it is fundamental to our development. I have always had this problem to memorise information instead of learning.
The key is to understand how the brain works when learning something new, and take advantage out of it. In this post, I will share some of the knowledge I learned in the online course called "Learning How to Learn: Powerful mental tools to help you master tough subjects" and from my personal experience
One day, as I was reading some answers on Quora, someone asked: What is something unusual about you ? An answer showed up, the best answer among all the others for that question. I cannot remember the exact words, but these sentences stayed in my mind the whole time: "I don't study. Seriously, I don't. The key is to learn, people tend to memorise. I learn".
Well, you could say that for a high-school student, it is easy to answer like this. The material covered is still simple. This person was doing a PhD in Mathematics at MIT.
Focused vs Diffuse Mode
When learning, our brain has two different modes that can be activated. These modes cannot be activated at the same time:
FOCUSED MODE: it is just what is sounds like, a concentrated, focused form of thinking
DIFFUSED MODE: it is a more relaxed thinking state, one the the brain settles into at resting.
One way of imagining it is the FLASHLIGHT ANALOGY.
This involves visualising your brain as a flashlight: Diffused mode of thinking could be thought of as a setting on the flashlight designed to cast a broad light not very strongly, while focused mode would cast a very strong light in smaller area.
Now, why am I talking about these ? It is important to know how to joggle between both of them. Did it ever happen to you to focus on a problem, not find a solution, then you take a break and during that break the solution just comes to you ? That is because you joggled between both of them. Sometimes, I wake up at 3am, my mind solves an algorithmic question, then come to sleep. Funny right ?
Learning in focused mode is usually what people think of when hearing the word “learning.” It is using our focused attention to think solely about the information we are trying to learn. During focused mode thinking, we are sitting down and deliberately practicing something or trying to solve a problem, without distracting ourselves with anything else. When you are sitting down and writing a paper, doing a math problem, or practicing a specific dance move, you are in focused mode.
The focused mode can be thought of as the foundation of knowledge, laying the initial memory traces for us to form our knowledge base. The focused practice and repetition of triple axles, free throws, roundhouse kicks, math problems, or vocabulary is what allows us to build a foundation of knowledge to ultimately apply it to what we are ultimately learning to do—whether it be figure skating, playing basketball, doing karate, acing a math examination, or learning to speak a foreign language.
Focused mode learning is centered in and around the prefrontal cortex, the area right behind the forehead. The prefrontal cortex is responsible for much of our executive functions that has to do with decision-making and problem-solving, in addition to controlling our attention and memory.
Unlike focused mode, diffused mode doesn’t seem to have one central area in the brain that is mainly responsible—it seems to be a division of labor of multiple areas of the brain.
When you are trying to grasp a new concept, you do not have a preexisting neural patterns to help guide your thoughts—there is no fuzzy underlying pathway to help guide you. This is when diffused mode becomes handy. To further explain the difference between focused and diffused, it is useful to use the flashlight analogy used in the book. When you are in focused mode, you are shining a flashlight that is tightly focused on one small area. However, when using diffused mode you are casting the flashlight in a broad area, with the light not shining brightly in any one specific area.
When you are in diffused mode, you are not intently focused on so-called deliberate practice. Rather, you are just letting the limited knowledge run in the background, kind of like background programs running on your smart phone while you actively use one program. Thinking in diffused mode can be done by just playing a game of basketball if you are learning how to be a better basketball player, by playing random chords on the guitar if you are learning how to play the guitar, or just mentally thinking about math problems while taking a walk.
Let me give you an example: Salvador Dali was an extremely famous surrealist painter. Here is his face and most famous painting:
This surrealist painting is called the "Persistence of memory" and was painted in 1931. I will leave all the art analysis, as it is not my goal here. However, any person interested in art should check its analysis. It is a masterpiece.
Now, let's come back to our initial point: Salvador Dali was said to relax and drift off to sleep with a key dangling and upon his dozing off to sleep he would drop the key, it would jangle and startle him awake. This is an example of Dali bouncing between thought modes. He would clear his head and relax his mind until sleep came, entering the diffuse mode, then he would wake up and drag all those wonderful diffuse mode ideas back the focused mode and the results were brilliant works like the painting above.
I hope this example gives more insight to the joggle of both modes.
Now, I will give some learning techniques that anyone should use in order to learn faster, work smarter and be more productive. These techniques are from my personal opinion and some resources on the internet:
I honestly believe it is quite a shame that this is not taught in school. We only learn about new materials, but the first thing we should be taught as children is how to learn.
VR is awesome! Right?
To quote Mark Zuckerberg: "VR has the potential to be the most social platform".
It opens a whole new world to visualisation: Gaming, Immersion, Movies, Experiences. A few months ago, I have had the opportunity to try the HTC VIVE on a stealth game. It was literally one of the best experiences of my life. It really made an impact on me. Since then, I have started learning deeply how to develop applications on it and have done a lot of research on how VR works exactly.
Today, I will be explaining how Virtual Reality works, and will try to go deep into it from an engineering perspective.
Virtual Reality tricks your brain into believing you are in a 3D world. The first way VR does this is with the stereoscopic display. This works by displaying two slightly different angles of the scene to each eye, stimulating depth. the image above is an example of the stereoscopic display. In order to create a life like experience, other techniques are developed. For instance, parallax defines the farther objects to the player seem to move slower, making it more realistic.
As you can see in the picture, the angle of the weapon is slightly different on each side, as is the crosshair. Once you put the headset, everything lines up perfectly, as if you actually a real weapon in your hand.
For VR to work convincingly, the person needs to feel completely immersed in an environment, but also have the ability to interact with it. It's the interaction - known as telepresence - that sets VR apart from other virtual world systems and 3D cinema. Moreover, there is the notion of feedback to be taken into account.
When interacting with objects in real life, we can touch, pick up and feel the objects. It is referred as force feedback. In order to create this in the VR world, things such as vibrating controllers have been implemented. They are called haptic systems.
A very important part of VR is about tracking the movement and maintaining the illusion.
Virtual Reality just wouldn't be Virtual Reality without the ability to look around. I mean, otherwise, the whole thing would not be immersive.
Tracking a user's motion is nothing new in the world of computer technology. The mouse that you are currently using is already a device for tracking hand motion, a very simple one compared to an HUD like the Oculus Rift or the HTC Vive. A mouse could be described in engineering terms as a "two degrees of freedom" tracking device, since you can move it left-to-right and front-to-back across a desk. Mathematically speaking, it represents the x and y axis.
Most VR headsets have at least three degrees of freedom: you can "pitch" your head by tilting up and down , "roll " your head from shoulder to shoulder, or "yaw" your head from side to side (for example to say "no"). A few even let you move around a physical room in three dimension (such as the HTC Vive), for a total of six degrees of freedom.
The image above represents the tracking system of the HTC Vive.
The trackers take some time to setup, but do the work efficiently.
As you can imagine, tracking someone or something moving around in a combination of six different ways is more complicated than a mouse. One device for recording the kind of information needed is called an Inertial Measurement Unit (IMU).
For VR to work, the illusion must be extraordinarily slick. Humans are extremely sensitive to visual inconsistencies; even small snags can cause "VR sickness" (also called Cyber-sickness), an affliction like motion-sickness. So images must update very quickly. That requires beefy computing hardware capable of generating 90 or more frames per second, also called FPS (standard TV, and most video games, target only 30 updates per second). And the sensors that track the user's head must be able to talk to the computer at least that fast: any delay can cause an unpleasant dragging sensation. Despite the difficulties, engineers are convinced that such problems have, at last, been banished.
Different VR platforms also have different specifications on the headsets themselves. The HTC Vive and Oculus Rift both have 90Hz displays, while the Playstation VR has a 60Hz display. It is a rule of thumb that you want your frames per second to match your monitor’s refresh rate, so it is recommended that the Vive and Rift both maintain 90 FPS while the PS VR maintains 60 FPS. Mobile is a different story, as different phones have different resolutions, but maintaining at least 60 FPS is the goal.
Expanding more on how FPS and refresh rate work, FPS and the refresh rate of a monitor are two separate things independent from each other. Frames per second is how fast your GPU can display images, per second. 60 FPS means that the GPU is outputting 60 images every second. The refresh rate of a monitor is how fast the monitor can display images per second, measured in hertz (Hz). This means that if you are playing a game and the FPS is 120 but your monitor refresh rate is 60 Hz, you will only be able to display 60 FPS. You are essentially losing half of your frames, which is not a good thing as “tearing” can occur.
Tearing is the phenomenon of objects in a game breaking up into a few pieces and being displayed in two different locations along the X axis giving a tearing effect.
The battle of VR headsets
1. HTC Vive
+ Most complete and best overall VR experience
+ Software partnership with Valve
- Requires a high-end GPU
As of right now, the HTC Vive is the most complete VR experience on the market. As well as a headset and two base stations (which are used for tracking the headset's movement) the Vive also includes two motion controllers in the box. This is important, since it allows the Vive to offer a much more immersive experience than using a traditional controller.
2. Oculus Rift
+ VR pioneers
+ Facebook backing
- No room-scale
The current VR arms race is all thanks to one man: Oculus founder Palmer Luckey. As a teenager, Luckey collected VR tech and was fascinated with making his own headset in his garage. Numerous prototypes and a $2Billion Facebook buyout later, Oculus is still the biggest name in VR.
Now the consumer version of the Oculus Rift is finally out and we can get our hands on the headset that started it all.
3. Samsung Gear VR
+ Good build quality
+ Works with many of the most popular phones
- A bit bulky
- Expensive compared to other mobile VR offerings
Powered by technology from Oculus, the Samsung Gear VR was effectively the first VR headset on the market. To use it, you simply grab a Samsung phone, download apps and games from the Oculus store, and clip it into the headset.
The original model supported the Note 4, but subsequent models have expanded compatibility to a number of phones including the Note 5, Galaxy S6 and Galaxy S7.
Below, you will find the specs needed for a computer to support VR.
Actually, the majority of people who own desktops are unable to use virtual reality, as their computers are not powerful enough. Steam recommends an Intel i5 Haswell or newer and either an Nvidia GTX 970 or AMD Radeon R9 290 for a smooth experience.
I hope this gave you some insight on Virtual Reality and how it works.
In my first blog post, I have talked about A.I. in a very broad way since I was learning the basics of it as well. After weeks of doing some extra research, I have today decided to talk about it into more details.
In the process of adding A.I. into a game, there are tons of techniques. In this post, I will talk about two common AI techniques: steering and finite state machines.
Steering behaviours aim to help autonomous characters move in a realistic manner, by using simple forces that are combined to produce life-like, improvisational navigation around the characters' environment.
In my first post, I have talked about Pathfinding A.I. Steering is mainly about this kind of A.I, using linear algebra and physics. For instance, the famous A* algorithm of pathfinding is part of Steering.
Here are some examples of steering behaviours:
As you can see, the basics of Steering is based on mathematical vectors (and physics).
Each behaviour is represented as a force vector. Giving more importance to one or another by making the vector scale bigger, makes the entity move in the direction of this force-behaviour.
For example, set the player as a seeker so you can have the entity char follow a position and then add an entity that is a sheep that will evade wolves entities. Now set an evade force for the sheep and a pursue force for the wolves, you may want to add a wander force to make the sheep follow a location.
Each steering behaviour has of course a more complex side, such as different ways of implementations in different programming languages.
I will not be treating the complex part in here, but in future posts.
Now, as I said, steering is mostly about pathfinding. Let's get a bit more technical by talking about Dijkstra algorithm.
First, what is an algorithm? It is a step by step procedure designed to perform an operation, and which will lead to the sought result if followed correctly.
In our daily life, preparing for school in the morning is an example of using an algorithm.
We first wake up (step 1), then eat breakfast (step 2), then put clothes on (step 3), and go to school (step 4).
Dijkstra is a Dutch computer scientist that studied and taught in my university. He is famous for his algorithm which can find the shortest path from point A to a certain point B.
Another famous algorithm that has the same purpose is A*.
Finding the shortest route from one object to another when developing game A.I is a very common problem and many solutions exist. In 2D grid / tile based games, perhaps the most common one is A*, with Dijkstra's being also quite good. Depending on the complexity of the game, Dijkstra's algorithm can be nearly as fast as A*. A* is generally a better implementation, but can be slightly more complex, so I will be discussing the fundamentals of Dijkstra's algorithm in this post.
From now on, I will be talking only about graphs, which have nodes and edges:
Here, the blue circles labeled 1,2,3,4 are nodes. The edges labeled 1,2,5,10 are paths between the nodes. The number describing the edges are given numbers that show how long the path is.
For instance, it takes less time to go from node 1 to node 2 than from node 1 to node 3 because
1 < 2.
Graphs always have labeled nodes but the edges are not necessarily labeled, it is just for these kind of algorithms.
Now, we want to find the shortest path from node 1 to node 4. This is mentally easy, because we could all infer that going from node 1 to node 3, then from node 3 to node 4 is the solution because (2+5) < (1+10). However, computers do not know that by themselves and we need to implement an algorithm for this. Moreover, what if the graph has, let's say 1000 nodes, would it still be mentally easy? No, in that case and it is the case with Game Development, the computer does it for us.
Temporarily assign C(A) = 0. All other nodes have value infinity (temporarily)
C(A) means the Cost of A
C(x) means the current cost of getting to node x.
The following graph has changed a little from the one shown at the beginning. The nodes no longer have labels, apart from our starting point Node A and our goal Node B.
For each temporary node labeled vertex y adjacent to x, make the following comparison:
if C(x) + W(xy) < C(y), then
C(y) is changed to C(x) + Wxy
Assign y to have parent x.
There are two temporary nodes adjacent to our current node, so calculate their cost values based on the current node's value + the cost of the adjacent node. Assign that value to the temporary node only if it's less than the value that's already there. So, to clarify:
The top node is adjacent to the current node and has a cost of infinity. 0 (the current node's value) + 1 (the cost associated with the temporary node) = 1, which is a less than infinity, so we change its value from infinity to 1 (for now).
Now, do the same calculation for the next adjacent node. which is the bottom node. The value is 0 + 2 = 2, which is also less than infinity. Here it is after step 2:
Now, we go back to step 1. From this point forward, I'll be using the term iteration to describe our progression through the graph.
We’re back at the first step. We have two nodes to look at the top node with cost 1 and the bottom node with cost 2.
The top node has a cost of 1, which is less than 2, so we set it as permanent and set it as our current node. It is important to keep in mind that the bottom node still has a temporary cost assigned to it. This temporary cost is what allows the algorithm to find the actual cheapest route.
Find the cheapest node. It's set as permanent and our current node is this one. This node value is permanent.
The yellow highlight indicates the node we are currently on, and the green text means the node cost is permanent (no changing). The nodes with white text for their costs are temporary nodes.
Assign cost values. There is only one adjacent node to our current node. It's current value is infinity, which is less than 1 + 10, so we assign 11 to it's temporary cost value.
This is not the shortest path from NodeA to NodeB. The algorithm traverses all nodes in the graph, so you get the shortest path from a node to any other node which may decrease its running time sometimes.
We then return to step 1.
Ok, so now we look again at the temporary nodes to see which has the lowest value. Even though we calculated the temporary value of B to be 11, we are not done because that value might change (in this case, it will definitely change).
Pick the cheapest node and set it as our current node and make it permanent, and assign it its parent. We have two remaining temporary nodes with costs of 2 and 11. 2 is lower, so pick it and set it permanent and set it as our current node. Let’s take a look at the graph to elucidate a bit. So, out of 11 and 2, as we said, 2 is cheaper so we pick it. We set this node’s value to be permanent and assign its parent is NodeA, demonstrated by the arrow.
Assign cost values to temporary nodes adjacent to the current node. Again, like in the previous iteration, there is only one node to do a cost calculation on, as there is only one temporary node adjacent to the current node. This adjacent node is NodeB. So, we check to see if 2 + 5 < Node B’s temporary cost of 11. It is, so we change Node B from 11 to 7.
Return to Step 1.
Choose the cheapest temporary node value. There is only one temporary node remaining, so we pick it and set it as permanent, set it as our current node, and set it's parent.
Assign costs. There are no temporary nodes adjacent to Node B (there –are- permanent nodes, but we don’t check them).
Return to step 1
Choose the cheapest temporary node. If none exists or c(x) = infinity, then stop. There are no more temporary nodes and no nodes have values of infinity, so we’re done. The algorithm is over, and we have our shortest path from A to B, but also from that node to every other node in the graph.
Finite States Machines
A finite-state machine, or FSM for short, is a model of computation based on a hypothetical machine made of one or more states. Only a single state can be active at the same time, so the machine must transition from one state to another in order to perform different actions.
They are useful to implement A.I logic in games. They can be easily represented using a graph where nodes are the states and edges are transitions, which allows a developer to see the big picture, tweaking and optimising the final result.
Here is an example given through an image:
As you can see, An FSM can be represented by a graph, where the nodes are the states and the edges are the transitions. Each edge has a label informing when the transition should happen, like the player is near label in the figure above, which indicates that the machine will transition from wander to attack if the player is near.
This is kind of the brain of the character, that specifies what to do and when.
Why use Finite States Machines?
They are easy to implement and manage: Finite State Machines are the first step towards elegant A.I development. This programming model is one the simplest concepts to implement and to manage: it is close enough to using basic if/else statements, yet much more flexible. It basically makes your A.I easy to modify and extend, even when it gets big.
They cover many A.I needs: Although they have their limits, FSMs will cover most of your AI needs.
They can easily model a variety of enemies, characters, and even objects (for instance, an enemy with 3 states: “Fire”, “Hide” and “Run”).
They are accessible and intuitive: FSMs aren’t abstract at all: it’s quite natural to think about an artificial intelligence as an entity with a set of behaviours or states.
What about A.I applied to Computer Vision?
Now that I have talked about A.I in Gaming a lot, I would like to talk about something else related to A.I that is also really interesting: Artificial Intelligence applied to Computer Vision, or should we call it A.I Vision.
Today, Computer Vision gives computers the ability to understand what they are seeing, and to act smartly on that knowledge.
This leads to A.I Vision which has different topics: for example A.I can use computer vision to communicate with humans. GRACE the robot is a robot who could communicate slightly with humans to be able to recognise her surroundings and achieve a specific goal. For example, GRACE attended a conference through a lobby and up an elevator by communicating with humans. Communications included understanding that she had to wait in line, and asking others to press the elevator button for her.
Another example is handwriting or drawings recognition, like in this photo:
The last one is, according to me, the most interesting one: passive observation and analysis.
It is using computer vision to observe and analyse certain objects over time.
During my interview for the High Tech Systems Honors Track, I have talked about the idea of a Home-Security Drone. Imagine a drone standing in the roof of a house, and a robber enters, what should the drone do? Well, of course he has to go to him, but also keep a certain distance while following him (assuming the robber is running or moving). If he does not keep a distance, then the robber could break the drone. Now, one other question that goes deeper:
Which distance? It actually depends on the weapon: if a drone wants to use an electrical net that falls on the robber's head, then the distance must be kept in the Y-axis. However, if the drone wants to use a (non-killing) gun, he must keep a distance in the X-axis or Z-axis in order to shoot like a human-being.
I think A.I Vision is really interesting, and it is certainly not the only type of applied A.I.
Any person interested should check the following website: www.aitopics.org
Being a huge gaming and psychology enthusiast, I have decided to talk about the motivational psychology behind video games.
Why do we play them ? Is it because they are fun ? No, it goes deeper than this.
In this post, I will try to explain to you why we do play video games, and a lot of people will actually realise, through this study, that they are more than concerned.
Intrinsic motivation is one of the major concepts in understanding the science behind using gamification and game-based learning as engagement tools.
The self-determination theory (SDT) suggests that competence, autonomy, and relatedness are the three needs that stimulate the psychological health and well-being of a person.
Let me now talk more about this:
Autonomy: It represents the decision-making ability and personal agency.
This human need is about giving the player the ability to make decisions that could affect the outcome of the game and even affect the storyline. Players should be able to shape the game’s narrative through decisions.
It is an important part of game design since it gives the player a certain freedom to act and the feeling that he is in direct control of the character. It enhances the immersion and the player’s experience in the game.
One great example is Firewatch. During the entire game, the player is in control of a walkie-talkie and speaks to his supervisor Delilah. It is (almost) always possible to choose what to say to Delilah. The player has the ability to choose from three different options. The decisions made by the player directly affect the relationship developed with her during the game. For instance, Delilah could become in love with your character if the player chose to be playful with her during the previous conversations. Giving this ability to choose makes the player immersed and intrinsically motivated.
Control: This is also called Competence. It represents the sense of efficacy.
It is about giving the player the feeling that he does something successfully and efficiently.
The intrinsic motivation comes from the satisfaction of mastering the game as well as the pursuit of mastery.
It goes without saying that the more time is spent playing, the more efficient the player becomes.
Indeed, with time, experience and mastery are built. In order to keep satisfying the need of Competence, the game difficulty has to proportionally increase as the player becomes better and better.
The “flow” is an important graph in game design showing how the difficulty must increase with the skill to keep the player intrinsically motivated. On one hand, If the challenges underwhelmed players, they would result to boredom because the game is simply too easy. On the other hand, if they overwhelmed the players, they would lead to anxiety since the game is too hard. What maintains the proportion is called flow.
2D platform games are an example here of satisfying the competence need.
For instance, if we consider Super Mario 2D Land, the game starts very easy, giving time to the player to master the settings, the commands, and the game itself.
The player then feels efficient, he is given the ability to accomplish a task successfully. The intrinsic motivation is then developed. With time, the player gets more and more experience with mastery, which is why the enemies are multiplied and jumping becomes harder with distance increased.
Relatedness: It is about being (socially) connected and associated.
It represents the desire to connect and interact with others. It could also be described as the social connections made through the game. The intrinsic motivation comes from creating social connections.
This is an important part for game design because human beings are naturally social beings. Developing connections and getting to know new people is something that (almost) always makes people happy. Giving the ability to the player to create these connections through a video game will foster his well-being and enhance his experience as well as his intrinsic motivation.
A lot of MMORPG games such as World of Warcraft illustrate Relatedness. One other original example is Keep Talking And Nobody Explodes. It is a puzzle game that requires two players: One player has a bomb in the screen with a timer. The other person has a manual saying how to defuse the bomb. The game is based on the communication: how will the person having the manual explain meticulously to the other one the way he will diffuse the bomb within the time limit. This game is all about cooperation and communication. It enhances the social connectedness and therefore relatedness.
Our game, called Castlenova, is a stealth/infiltration game. It is about getting to the destination without being noticed by the guards.
It focuses on two of the fundamental human needs: Autonomy and Control. Indeed, the game being based on stealth/infiltration, they are the main needs to satisfy in this type of games. Relatedness could be added, but it is not the priority.
Autonomy is given a lot of importance in our game. Indeed, the city is freely explorable, opened. It is possible to arrive to the final destination choosing between multiple paths. This does not really influence the narrative, but still gives the player a sense of choice. Moreover, it is possible to choose whether to kill the enemies silently, or go into infiltration that involves using objects smartly in order to avoid the guards. This creates a separation between achievers and killers types of players. Of course, depending on the path taken, the enemies will have different pathways. Castlenova really gives a sense of choice through the style of play and an open map.
Control is about mastering the game. We try to foster control by increasing the difficulty as the player progresses. Mastering the way you play helps you later in the game. We will need to get the right flow by routing the guards in such a way that you will encounter more and more of them closer to the end. Also the game environment is less forgiving and open, there can be a guard literally around every single corner searching for your character.
As said previously, one of the SDT dimensions excluded in Castlenova is relatedness. It is mainly a solo game that does not require social interactions and does not create any social connections.
The question whether adding it would make the game better is subjective. Stealth game are usually played solo (such as Metal Gear Solid). People prefer being alone making smart moves to a whole army, which enhances competence. On the other hand, having a mode where two players play together in one level could be a great idea. Infiltrating in a team requires communication and strategy, which would foster social connectedness and therefore relatedness itself.
The main benefit of applying SDT to game analysis can be thought of as having a theoretical framework for identifying how much of the motivation for that particular game is intrinsic, as opposed to extrinsic motivation. Not only is the type of motivation and need satisfaction can be quantified and studied with SDT but it is also possible to make further decisions about the inclusion or exclusion of certain elements of the game in study, with respect to how much they contribute to the overall goal of furthering the type of motivation that we are aiming to achieve. Put differently, applying SDT and having the knowledge of the literature behind it, we have the option of leaving out certain elements of a game, such as extreme violence if this is not needed for the story or some other element, rather than thinking that it must be present in order to make the game more motivating or more immersive.
On the other hand, the limitations of applying the SDT to analyse a game can be thought of as the limitation of just like any other framework or theoretical model. That is to say, SDT does not capture all of the essence of games, and we may be overly focused with trying to satisfy and amplify the elements of competence, autonomy and relatedness while at the same time losing sight of the bigger picture of the game in question. This by itself is not a unique disadvantage or limitation of SDT but rather a more fundamental issue of attempting to dissect, analyse and be able to reproduce human experiences and emotions in different types of media. As such, it may not be the case that simply amplifying the dimensions of SDT can lead to an artistically congruent game even if it may be statistically more motivating than another control game. It seems to be apparent that, as in all creative endeavors, the element of art and ingenuity plays a big role in game development.
I strongly believe that analysing is an extremely important skill to develop whether it is about life choices, art, people, games or movies. This is why I have decided to publish my part of the analysis of Firewatch done with friends at the university.
This game is not like the others; it does not involve killing or levels, it is about the story and exploring. A true masterpiece.
Firewatch is a first person adventure video game developed by Campo Santo and officially released on February 9, 2016. It was created using Unity3D game engine for PlayStation 4, Microsoft Windows, Linux and Mac OS.
The game takes place in 1989 in North America. The player takes control of Henry, a fire lookout in the Wyoming wilderness who is assigned a special tower. While exploring the area, Henry discovers some indications about occurrences happening mysteriously in the surroundings that seem to be related to the destruction of his tower. In addition, he notices a shadowy figure that occasionally appears to watch him.
The only communication method possible is through walkie-talkie with Henry's sarcastic supervisor Delilah, which will be brought later in this analysis.
One of the main reasons Firewatch stands out from other games is the very beginning. The developers chose to immerse the player into the story using an original manner. Indeed as soon as the game starts, the player either chooses what happens next or is the one answering Julia, Henry's wife suffering from Alzheimer's disease.
The red sentence is what the player is supposed to interact with. Some of the conversation interactions are a choice between multiple answers.
The game designer is actually interacting directly with the player by using the pronoun "you".
This choice changes the rest of the conversation, as seen in the next figure.
The choices in the conversations of the previous screen shots were mostly about getting the player acquainted with the story. However, it goes deeper than this. Throughout the entire game, the player is supposed to speak to Delilah. With the use of conversations, secrets about Julia are revealed and the story gets clearer and clearer with time. Most of the time the player has the choice of what to answer to Delilah. The answers allow the character to mirror the personality of the player and they define the relation between Henry and Delilah.
This makes the game only more realistic and more immersive as it feels like it is the player's own life inside the game.
Looking at the bigger picture, Delilah's character could be seen as the personification of the unattainable escape in virtual reality that many players seek in video games. Her character feels so real to the point in which the player falls in love and leaves his rings on the table. However, no matter how close he gets to her, do everything to please her, Delilah will always be far and there is no way for Henry to touch her nor see her face.
Something else that makes Firewatch fun is that the player is actually able to interact with nearly any object of the game.
For instance, it is possible to interact with books, notes, ropes, alcoholic drinks and much more. Some of these objects could be used later in the game. For example, a rope to climb, a book to read or even alcohol to save for later.
The possible interaction solutions are in the bottom right part of the screen.
During the entire game, Delilah gives Henry instructions to follow.
When a clue appears, you need to report it to her in order to get new instructions.
This implies that the player has control over when to get to the next goal, leaving him the option to walk and discover the open world.
Firewatch is artistically tremendous. Undoubtedly, one thing that plays an important role is the audio. As the game starts, some relaxing piano music is played that seemed to attract every player.
That music does not keep looping, as other instruments appear such as guitar to make another relaxing music. As the player goes alone in a mountain, the audio keeps him into the game.
For instance, when the shadowy figure appears, or when a dramatic event happens such as the death of a character (at the end of the game), the music instantly changes into a dramatic song, enhancing the feeling.
Moreover, the artwork gives the feeling that everything is rich, detailed and uniquely designed as if every moment could be a computer screen saver.
The previous figure is an in-game screen shot that shows a sunset.
The analysis of the picture shows how realistically detailed the artwork is. For example, as the sunset starts, stars show up progressively and shine more and more as the sun goes down. The water reflection of the sun is interesting as well. The water part in the same direction as the sun light shines more than the other parts, as in real life. Last but not least, The colors are well chosen. This mix of red, yellow and orange creates the perfect aspect of a sunset.
This artwork is extremely important for the game itself since it psychologically influences the player as he seems to find a connection with the real world through beautiful environments.
Moreover, at the end of the game, the forest is burned as seen in this figure.
In this in-game screen shot, one could not help but notice how the trees are burned and how the environment changes and reacts to the burning area. This aesthetic part of the game adds more realism than ever.
For what type of player is Firewatch? It is mainly a game for explorers and socializers type of players because of the extreme importance of interaction. Indeed, the player is connected to the world and interacts with it nearly every moment and Delilah makes sociability an important aspect.
If assigned to a unified play style, there is no shadow of doubt that it would go with the Rational/Explorer/Simulationist as puzzles and theories are main parts of the game as well as the Idealist/Socializer/Narrativist play style since it also involves storytelling and cooperation.
We are currently working on an infiltration/stealth game with my interdisciplinary team using Unity3D. It will be available soon in the "MY PROJECTS" page.
Ahmed Ahres, 19.