When creating something, it’s quite difficult to have depth in story without leaving someone out. This can make it difficult to create a story that means something, because the more emphasis on the story the more people you will likely offend. After reading a blog post by the SAE Creative Institute, I was made aware of many methods used to try to deliver a good experience to all of your audience. What interested me the most was what they said about accommodating the visually and hearing impaired. While I personally am not visually impaired, I always enjoy spotting a colourblind mode in video games. It’s a nice feeling seeing a game accomodate for them. I also enjoy seeing lots of subtitle and closed caption option. I personally enjoy playing story games with subtitles so I can interpret dialogue better and in turn enjoy the story more. Most Valve games have closed captions so that they can be experienced by a wider range of people, you can read about how they do it here.
Moving back to vision, after a short search I have discovered a surprisingly large amount of audio games for blind people. You can find some here. Here’s a post on polygon that gives details in the new world of blind games. I also discovered the need for game control diversity after reading Sae’s blog post. I was not aware of the importance of sensitivity sliders and control remapping. After reading I don’t know why I couldn’t see it, the need for customization always seemed like a personal preference rather than a need to me. But I was not considering those who had limits on their mobility into account. There are many games that let you remap your controls on the PC however, console gamers are often limited to a few option, if any at all. Lastly, field of vision is important as to player experience and maintaining a wider audience in the games industry as well. Many player can experience motion sickness when forced to play a game with a locked field of vision and can force them to stop playing for a time if not all together. A post by PC invasion explains the importance of FOV options and the effects FOV has when it cannot be customised.
And this is just a few thing that games have been doing to accommodate more people. This isn’t even dipping into the world of race, sexuality and gender. There is many more amazing things that have been done to accommodate and accept everyone in not just games but cinema and web design and beyond. The world is becoming more accepting, but still has a lot further to go.
This week I created a system that moves a targeting reticle across a 2D plane that marks where a projectile will land. To do this I had to a few things. Firstly I needed to create objects for a cannon and a reticle, the cannon can move and the reticle moves based on the cannons position. Then it needed a script, I created the reticle movement script to in such a way that it could be placed on the reticle rather than the cannon. In the update this script it calculates the range of the shot(and so the distance the reticle should be from the cannon). This is done with a projectile motion equation that you can find on this page. Then, by setting the reticles x position to this range I could move the reticle. But this would not make the reticle be where the cannon pointed. So to do this i gave the reticle a parent. This parent would be referenced in the code. With the code I made the parent have the same y rotation as the cannon. This then made the reticle point where the cannon pointed and gave a depiction of the cannons range on the ground.
Angles within unity are extremely frustrating. I spent hours attempting to get the range to be suited to the angle the actually existed. For a very long time the range would change depending on all three angles rather than just its x angle. This resulted in the reticle reducing in range as the cannon rotated on its y axis away from the origin. I discovered after these hours of frustration that I needed euler angles to get the range to work correctly and had an error in my range calculation.
Euler angles are frustrating
But that wasn’t my only issue. I also could not get the reticle parent to rotate the way I wanted it to. I have no idea why. The portion of code that rotated the parent would always lock the parent to 180 degrees on the Y. For some reason, setting the rotation to a quaternion.euler in the one line fixed this issue. Like magic.
But the code works now, and it feels right. Errors have been resolved and much hair has been pulled. Hopefully I will learn from this frustrating experience when attempting to work with rotation in unity next time.
This week I watched the GDC talk ‘Level Design in a day: Wayfinding & Storytelling Techniques’ by Brendon Chung. In his talk he emphasises the importance of letting the level guide the player naturally, rather than expecting players to trial and error their way through the level. He states that he often moves his camera throughout the his levels to get a better player perspective. He does this so that he doesn’t overlook any important corridors that appear like dead ends from the players perspective. To solve these issues he uses multiple different methods, one method is to curve the corridor rather than making it right angled. Another method he uses is giving the player a different elevation to the corridor, whether this is above or below it, it makes the corridor more intriguing. I have used the method he mentioned of guaranteed player orientation. Like how Half-life has its button to burn the tentacle creature, I have used a button to activate a laser and burn a turret in front of them. Because of the buttons orientation and the noise of the turret, it encourages the player to look at the action. I could also use his verticality techniques to help players feel guided through the level. After playing Brendon Chung’s ‘Gravity bone’, I found many points that give great examples of his level design methods. The first would be the elevator at the start of the game that gives you an overview of the space and shows the open space to the left and the wall to the right. Another is the curved tunnels and vents he used in the second level to help guide the player.
And finally he used a guaranteed player orientation with the elevator button before the chase in the second level.
There are plenty more examples all throughout ‘Gravity Bone’, these are just four ones that I found. Brendon Chung gives some amazing examples of level design techniques and I believe that they all will be helpful for my future level development. I will definitely use the guaranteed player orientation as I already have and I hope to find places to use his corridor methods.
This week I read a blog post about interviews in the creative industry and things that they will likely entail. You can read it here if you wish. However, what caught my attention was the short comedy skit at the end. Set in a fictional business meeting between two companies, one of which is asking for a project to be completed by the other. This fictional task is to draw seven red line, simple right? Wrong. The company requesting the seven red lines wants them to be written in green and or transparent ink. Yeah, not likely. They also want all seven lines to be perpendicular. To what and how, they don’t know.
In this fictional business meeting, the company being asked to complete the task is made up of two people who clearly don’t understand the true nature of their employee’s jobs, and the ‘expert’ who will complete the task. The two are mainly in the meeting to keep the client happy and better their own company, they do not understand what the ‘expert’ does. The expert is desperately trying to explain the faults in the task to no avail. There are some very transferable metaphors in this skit. For example the red lines could be a graphic, say a 3D character design for a videogame. But the green ink instead of red ink is like they are requesting the design to be produced in microsoft paint. This is just one of the ways this skit could be fit to a real situation, making the ridiculous people seem a little more realistic than idiotic.
This is a perfect satirical demonstration of what it is like to work with people who under or overestimate your ability in your field. The game ‘The writer will do something’ describes another, less comedic, fictional example of this. There are lots of people at the meeting who do not understand what you, the game writer, can and can’t do in the writer will do something. It of course ends in chaos. You can read what my thoughts on ‘The writer will do something’ here.
I personally have never had the experience where someone expected and demanded more than was physically possible of me, so it’s difficult for me to know any methods of dealing with people like this. I would believe it is very much like working with aliens. They barely speak the same language as you, they have a different mental process to you. From what I see, it’s never going to be a breeze, but with patience and generosity it may be possible to bring the alien and familiarize them with you world.
This week we made a missile targeting system for our shmup. This was not too difficult, but I did run into a few issues along the way. To start with we made the missile script that was a child of the projectile script. Then to get it following a target, we gave it a rotation speed and a way to find the closest enemy. To find the closest enemy we needed to test all the enemies for their distance from the missile and take the closest one. However an issue i ran into when implementing this script was making the missile object collider a trigger, so that the projectile script could apply damage and destroy the missile. When making the missile turn towards the target, we created a target rotation that always pointed at the target and then slerped the missile towards that rotation at the rotation speed. This resulted in the missile circling the enemy rather than hitting it. This method was creating a physics-less missile, however, there are of course other ways to do this. One way would be to create a missile with physics that move by adding force rather than transforming forward. Then you could simply make the missile look at the target and its mass would limit its ability to hit the target, not its rotation speed. I think I might take this approach to create missiles that the enemy fires, so that the there is some challenge in dodging the missiles while killing the enemies. This thread shows both ways that I listed with some more detail if you are interested in replicating it. One issue with the current shown methods is that the missiles can target the same enemies, making most of the missiles obsolete. There are a few ways to solve this, but they require much more work. Here is one way to do this.
All these ways are reasonable and it just depends on what type of missile you are looking to have and what purpose it serves. It’s better to have the missiles from enemies be easier to dodge and for the players to be near impossible to dodge.
This week we made an explosion force in our WIP shmup. This turned out to be much more complicated than it would appear. To start with we created an explosion object that consisted of a sphere collider and a rigid body. Then it needed a script. However, our script turned out differently to that of other methods floating about the internet, such as the unity Space Shooter Tutorial. Our explosion script gave a moment before dealing damage to the enemies within its range and also has the ability to be altered and elaborated at any moment. Our explosion also does no damage to the player. Also, rather than immediately destroying the enemies inside the explosion space, our explosion script causes the enemies to take damage. Alternatively, the unity tutorial instructs you to make the explosion destroy all colliding objects and destroy the player if they are within the range.
I personally would have never thought of doing the explosion in this way if I were to implement it myself. I would never have thought of the explosion delay if I were doing it on my own. If I was to be doing the explosion damage script on my own I would never have thought to use the spherical collider, but instead I would have considered all the objects existing at that moment and then would have considered their distance from the epicentre of the explosion when dealing damage and destroying objects. I also would have just straight up dealt the damage when the button was pressed rather than giving a moment for all the objects to be collected and then for the explosion effect to appear as though it’s doing something. Another great thing about the explosion script we created is its spectacular flexibility. It enables us to drag the prefab explosion into any situation and alter the variables so that it can deal all range of explosion damage in all different areas of effect. One issue I’ve found with the current explosion damage script is scaling the damage so that not all the enemies die when they are hit, but this could be solved with some adjustment of the damage value. Overall the code works well and any real drawbacks are of my own additions not the standard script. The addition of explosion damage was a very important step in creating this shmup because it allows us to apply damage to lots of things that are scaled by distance rather than simple collision.
Copyright, what a dreaded topic. But what an important topic, also. Copyright is an important part of today’s society. It is what many people rely upon for income and is a key encourager for creators. However, the definitions within copyright are difficult to keep up to date with the newest ideas in creation. Along with poor definition, piracy is almost impossible to manage, and it runs rampant against creators. One method that appears to be decreasing piracy is to make things affordable and accessible. However this takes away money from lower end creators and makes it very difficult to get started in any creative industry. The popular get rich and the uncommon and beginning figures get scraps. Spotify is one platform that have used this method for the music industry, read more here. After having read a blog post, by SAE Creative Institute, briefing the laws about copyright, I realised that I was already quite aware of the laws of copyright, but there was a large amount of detail that I was not aware of. The blog post reaffirmed my understanding of when copyright is applied and how long it last for. But I learnt that copyright only protects the expression of an idea, not the idea itself. This is intriguing to me because this means it is more important to record ideas then tell people, because if you tell someone your idea, you are likely to lose the creation to that person. Another odd thing that I discovered is the concept of fair use, which allows content creators to comment on another piece of work and not be infringing copyright… sometimes. Hank green, entrepreneur and vlogger, talks about the strange workings of fair use in america and the way corporations deal with fair use.
I believe the laws of copyright are very important to all creators, I think the protection of my creations is a key encourager for me to create and share my creation. If a country was to be filled with creators who never shared their work, how would we know what they created? How would they become better at creating? However, with the ever increasing popularity of the internet, copyright is being bent and dodged left right and centre. So it needs to be updated or rehashed.
Shmups are one of the only game genres that alter the display space regularly. Depending on which direction the shmup travels in, there can sometimes be large static blocks on the sides of the screen. In the beginnings of the bottom to top shmups, they would often leave the side of the 4:3 screens out to create a 3:4 display space. This alteration would allow the player to see more of what lies ahead than what was around them, since what comes next is a more important part of a shmup than what is here and now.
Left to right Shmup example
Bottom to top Shmup example
I believe this element is simply a logical progression of the genre. It is not fun to play when needed information is hidden from you but unnecessary information is shoved in its place. I feel this should be placed into our current WIP shmups in class because in our testing I have felt extremely limited in view. But that begs the question, what do you put on the sides? We could implement score and or waves that could be displayed there, we could also display ammo values if we implemented those. However adding these things in would still leave a large amount of negative space that could easily cause the game to feel unpolished and raw. The gamasutra article by Luke McMillan gives details to the positives and negatives of left to right and bottom to top shmups. He details the more common trends and the small things that some shmups did that broke the walls of shmups at the time. He speaks about Zero Gunner and how it uses an unorthodox looking and aiming style, allowing the player to rotate their ship 360 degrees while flying forwards. He also talks about viewpoint that travels bottom left to top right in an isometric style, which gave an interesting but slightly disorienting perspective on shmups. You can find it and read more HERE. However, from what it appears, there is no right direction to scroll in and no proper way to do any part of a shmup, but when scrolling up, it’s a good idea to limit the side views so that players don’t focus too much on unnecessary parts of the screen. I plan on implementing these view limiters before shipping so that our WIP shmup feels much more like a legitimate shmup.
I watched the GDC talk ‘Level Design in a Day’, this week. The talk was conducted by two of the developers from Fullbright, Kate Craig and Steve Gaynor, and centered around their experiences with creating Gone Home. They covered some really interesting parts of the level design process, such as room size, player projection, subtlety and a concept called ‘player RAM’. In Gone Home they used tighter rooms to make the spaces feel more intimate. They wanted to make the player feel like a part of the family, getting you to notice the strange items that give a family home its character. They also spoke about subtlety within their levels. They were not certain that the subtlety was too discreet, but having it there gave the game much more depth for people to discover. I believe that if there is time to implement this depth into a level, then it should be done. This is because even if the player cannot find everything, they can know that there are things they didn’t find. I think of it like painting, if you were to cut a circle out of a painting, you can believe that there was a whole painting, but if you just painted the circle it would not elude to a full painting. The spoke about player projection and how they let people believe that the world was real when in reality it was very empty. They gave an example of how they did this with the main character(Sam)’s bedroom.
The room came across as an angsty teenage girls room, with magazine cutouts of celebrities and posters taped to the walls. But if you were to step back and actually look at the room, it is severely lacking compared to real angsty teenage girls rooms. But it works because it let people see the pieces, then complete the rest within their own mind. Placing their own self in the room, relating with the character more. This is called player projection. Player projection is used all throughout successful media, they commonly have a main character that is very much a skeleton, letting people put themselves in the shoes of the character. Lastly they spoke about a concept they referred to as player RAM. This concept considers the players ability to remember the world they’ve passed through. It states that the player can remember the room they are in, the room before the room they are in, and kinda the room before the previous room. So, when considering this, you can construct spaces that seem to travel in a logical fashion, while not obeying any laws of physics at all.
They used it in Gone home by having rooms chained in a logical order, but not really being logically spaced within the world, having rooms and hallways that made the walls thicker than any house would ever have.
These methods for level design are very intriguing and I would love to be able to implement them in my future.
Working in the creative industry, it is important to have a passion for the work, rather than a passion for the pay. So how do you keep your passion alive. This is a topic that has come to my attention recently, and I’m a bit stumped by it. From my work so far in the industry, I’ve found that the passion can come and go. At times it will be consuming and a personal project may keep me up to the wee hours of the morning. And other times I might lack passion entirely, not feeling like creating anything at all. My method of getting through the fluctuations would just be perseverance. Trudging through the creatively lacking times, letting myself have the moment of rest/null, and embracing the creative moments as much as I can, getting the most productivity out of them. Entrepreneur and regular vlogger, Hank Green, says that we stop creating because we are afraid, he says that creation is terrifying because it opens the door to judgement. However, he also states that the best way to overcome this fear is to persevere, to create constantly.
There is not a solution because fear and lack of motivation is not a problem. Creative people, and people in general, are never constants. People are like a fluid, continuously moving and rippling, we have up points and down points. The issue of keeping passion alive is not a solvable problem, it is an inherent part of our creative nature, we will burn out at some stage and we will need some time to recover our motivation. It is important to have this contrast in life, to have the bad times. Because if we were not to have times when we lacked motivation or creative inspiration, then all the times when motivation was abundant would feel stale and numbing. Working in the creative industry is never going to be easy. It isn’t likely that you will become a millionaire with this line of work. But it is definitely exciting work.