You hear a steady beeping sound. In the distance, you can hear murmured voices. One of the voices sounds familiar it's your mother while the other one you don't recognize. You open your eyes and are immediately blinded by how bright the lights are. There is a sterile smell as you blink and adjust to the light. You try to turn your head and that's when you realize something isn't right. You try to lift your arm and nothing happens. You begin to panic not knowing or understanding what has happened. Your eyes dart around frantically trying to gather as much information about your surroundings as you possibly can. They seem to be the only thing left that will listen to you when you tell them to move. That is when your mom appears on the side of the bed with tears in her eyes she tells the doctor she thinks you are awake now. You can see her hand on top of yours you feel nothing the doctor walks over to shine a penlight in your eyes as he watches them. He tells you to follow the light and you do. He tells you to blink once if you can hear his voice and you do. He looks at your mother and that is when they tell you, you’ve had an accident. You try to think back to the last thing that you can remember. It was a normal morning commute to work. You were already going over the first task of the day in your head imagining what AFK RuneScape skill you would be working on your second screen. That’s the last thing you remember. You keep desperately trying to make sounds and talk but nothing will come out. That is when the doctor tells you that you have been in an accident and are completely paralyzed he tells you at this point all they can do is ask you, yes or no questions, you are asked to blink once for yes and twice for no. The only sign of the inner turmoil and panic you're feeling are the tears that trickle from your eyes. The doctor asks if you're in any pain and you blink twice. He then goes on to tell you the prognosis is not good, people with these kinds of injuries typically don't recover their mobility. He tells you all we can do is wait and see, and hope you get better. He tells you the number one priority right now is to find a way to allow you to communicate. The doctor says he has heard about a technology that might be able to help you but the hospital does not have it and it is very expensive. The doctor tells you that he will do everything he can though to try to help you as he turns around and walks out of the room giving you and your mother time together.
As the doctor passes the nurse’s station on the way to the elevator the registered nurse (RN) on duty asks how the patient in room 402 is doing. He tells her, he's completely paralyzed it doesn't look very good for his recovery. He's going to need a lot of care and right now, I have to find a way for him to be able to communicate with us. We are restricted to yes/no questions right now and it's hard for me to assess his cognitive function. That is when the nurse perks up and the doctor can see she has an idea, she tells the doctor that her daughter is a gamer and is helping a charity raise money for disabled gamers. Of course, the doctor replied with, “What is a gamer?”. The nurse laughs and says it someone that plays video games. The nurse tells the doctor that the special weekend fundraiser it's called GameBlast and her daughter told her all about it. The charity called SpecialEffect and they modify all kinds of devices to help people play video games again. One of the most interesting technologies her daughter told her about is called Star Gaze. The nurse suggests to the doctor that he contact the charity and see if there is anything they can do to help the patient in room 402. The nurse says the way she understands it, Star Gaze is a project that helps bring eye-tracking technology to people in emergencies. The doctor smiles at the nurse and says what would I do without you I will get a hold of them right away.
The next morning the doctor begins researching SpecialEffect and finds their contact information. He quickly contacts them and is immediately put in touch with a representative. He describes the situation and to his relief, the representative from SpecialEffect believes they can help. The representative tells him they will be heading out as soon as possible and should be there by the next day. The doctor heads straight to room 402 to deliver the good news. Your mother bursts into tears and while there is no sign on your face of your relief and gratitude, everyone shares a smile like it is known.
When the SpecialEffect team arrives, they begin work right away hooking up monitors and fitting the eye-tracking technology over your eye. You begin simply by just trying to move the mouse pointer. Low and behold it works they teach you how to blink to click the mouse and how to move around the screen as easily as possible they bring up a virtual keyboard on the screen and you begin to type ‘thank you’. The team tells you that in the future you will be able to even add a voice that can speak for you and even one day play video games. This is something you never thought you would ever be able to do again; of course, the only game you are interested in at the moment is getting back on RuneScape. Lucky for you the simple point-and-click mechanic of RuneScape makes it a great fit for this kind of technology. Of course, before any of that can happen the doctor comes in with his myriad of questions for you. All and all it has been a truly blessed day. One in which you have been given some of your communication back and some independence.
This may be a fictional story, but it's all too real for many people around the world that find themselves in that situation. The Star Gaze project helps SpecialEffect bring eye-tracking technology to people in emergencies that need it the most. It can open doors and give people some degree of independence that they would otherwise not have. The experts at SpecialEffect are some of the most knowledgeable people in the field of eye-tracking control. The work that they do changes lives. This is just one-way SpecialEffect helps people. Through their work helping people with physical disabilities have the ability to play video games again, they have been able to provide this technology. The benefits far outreach just the people they've helped though. Large companies like Microsoft have also solicited their expert advice in developing more accessible gaming devices. The Microsoft accessible controller is a direct result of Microsoft consulting with SpecialEffect and other experts in the field.
The impact of SpecialEffect on someone's life is incalculable. I could share with you testimonials from the people that they have helped. I can show you people that suffer from cerebral palsy, muscular dystrophy, and a host of other physical disabilities that they have helped. However, I think is important for all of us to think about what it would be like if we were in this situation. How grateful would we be that an organization like SpecialEffect exists and helped us? I want everyone to take a moment and think about how it would feel if you were in that situation. Now I want everyone to realize the things that are good for disabled gamers are good for everyone, you don't have to be a gamer to benefit from the Star Gaze project. You don’t have to be a client of SpecialEffect to be able to use Microsoft's accessible controller. The work they do far exceeds their original mission.
Gameblast 20 Takes place from February 21-23. This is an event where gamers from all over the world come together and raise money for SpecialEffect. This year RSB and B is also getting into the action. I will be hosting a stream on February 22 from 2-5:00 p.m. EST to raise money for SpecialEffect. You can visit our just giving page and you can check out how the team is doing here. The team is called the United Communities of RuneScape and you may even see some familiar faces that have signed up to help! If you know me, you know this cause is close to my heart, I use assistive technology to play RuneScape every day and I cannot imagine my life without it. Please come out and help the RSBandB community raise some money this weekend for a truly deserving cause. I will see you there and of course, Happy RuneScaping.
Double XP Weekend: Extended is here and it’s the most special weekend of the year, celebrating GameBlast and SpecialEffect. We detail why this charity is so important and what Tanis will be getting up to. Plus thoughts on the communications survey.
It’s Valentine’s Day and this year we’ve got a new quest, Once Upon a Slime! King Slime, a shrink machine, and inside jokes makes a perfect RuneScape quest - we discuss! Then we dissect Mod Jack’s whiteboard TED talk and break down where Mining is going.
Games are no longer small pixelated static images (or some simple animations) that just move across the screen. Many video games now contain fully immersive 3D worlds for players to explore. As humans, we rely a lot on the way light reflects of objects to understand depth and geometry. With the growth of the number of 3D games came the increased need to simulate how light interacts with objects in the physical world.
The concept of how we see things in the real world is simple: a ray of light from a light source bounces off one or more objects, until it hits the retina in your eye. The vast majority of rays misses our eyes, but there are plenty to go around to see what is around us. So... how hard can it be to translate this to games?
Simulating light rays is really inefficient. We could simulate a single ray from our light source, but the probability that it will reflect into our in-game eyes (the "camera") is not quite zero, but it may as well be. Of course, we could always nudge the rays slightly in a direction that will make it reach the eye, but this is still a fairly complex project. This technique of rendering a scene is called _path tracing_, and is too slow to be used in real-time applications, such as games. That is why it is usually reserved for rendering things where time doesn't matter much, such as films.
Luckily, the laws of physics of light are reversible in time, which means we could go backwards. After all, there are only so many pixels on the screen we need to give a colour, so we can just follow a hypothetical light ray shot from our eye and see if after some bounces we find the light. This has similar problems as path tracing, but due to the way the tracing works, we have more options for reducing the number of bounces and nudging the rays in a direction we want them to. Traditionally, this technique called _ray tracing_ was also only used for more extensive rendering tasks, but with the increased graphics performance and now the arrival of graphics cards optimized specifically for ray tracing, we can expect games to start using this.
Still, most games need to go faster than ray tracing. This is why most light models are very simplified. Light rays often don't bounce of objects more than once. Things like mirror reflections are often neglected or cheated to make them look good enough. Once you make enough of these assumptions, suddenly it becomes feasible to calculate the illumination 60 per seconds. So let's dive into how we determine how to light a point on an object.
Most people are familiar with the fact that 3D models in games exist of polygons (usually triangles). These polygons are formed by taking points of the model, and connecting them. See for an example the teapot below. Note that you can click on all the images in this post to view them in their original size.
You might recognise this as the Utah Teapot, a famous 3D model used for testing, and also a bit of an in-joke for most graphics programmers and artists.
Each of the points in this object is what we call a vertex. Every vertex in a model has a position, which is what makes up the shape of the object. When it comes to calculating lighting on an object though, we don't actually care about the position that much. Instead, we care about something called the normal. The normal is the direction that points away from the surface of an object. This sounds pretty intuitive in the real world, but in games and programming we often have to store the normal of a particular point, since we don't have the concept of surface there (for example on the teapot, we don't know which side is inside or outside). In the image below, you can see all the normals drawn.
Normals are incredibly important for shading, because when we are dealing with light rays, we need to know in what direction they reflect.
So now that we have the data we need, let's look at how we can make the object look properly lit. The easiest shading model is something called Lambertian reflectance. This is a simplification of the real world and it says that when light hits a surface, the light gets reflected in all directions equally much. That means that no matter what side we look from, a point on the object will always have the same illumination.
To find out how much illumination exactly, we look at the normal of a point. If the normal points directly at the light source, the point is fully lit. If the normal points in the opposite direction, it is fully dark. For anywhere in-between, the point is partly lit (according to Lambert's cosine law, if you want to be precise). You can try this out for yourself by taking an object with a flat surface, and rotating it towards and away from a light source. You'll notice it looks darker as the surface moves away from pointing directly towards the light.
This model is the most common model used in graphics programming, and it is a good approximation for items with a diffuse material. Think of something like wood or clay. If you look at the teapot below, you actually notice it does look a bit unnatural.
Diffuse lighting is still an incredibly powerful tool. It is fast and simple to calculate (it can be done in a single line of code). If you add some textures, you can make a good looking game with just this. Still, there is more we can do.
When you have an object that is somewhat reflective (metal is a good example, porcelain as well to some extent), you can often see the reflection of the light in there. Even if it's not completely reflective, there is a bright spot where the light reflects into your eyes.
To calculate the illumination based on this glossy model, we again use the normal. Since the normal always points directly away from the surface of an object, and a reflection always bounces off the surface in a predictable way, we can calculate for each point where the light ray gets reflected in a perfect reflection. If this is directly points towards the observer, we fully illuminate the point. However, usually it misses the observer's eyes, and in addition, most objects aren't fully reflexive. So based on how far off the ideal reflection angle the user is, we make the point on the object darker. The following image shows how that would look for our teapot.
If we move the camera, the bright spots will also change, since we now see different parts of the light reflected at us. These highlights are what we call specular highlights. There are different models to approximate how much of this reflected light actually reaches our eyes, but the most common function used for this is Blinn-Phong, named after its inventors.
If we now combine the diffuse shading with the specular highlights, we actually obtain a believable teapot!
These are just the basic building blocks of rendering objects. You can do all kinds of tricks to stylize the rendering, or make it look more photo-real. Still, you can't simulate physics exactly, and most of the effects you see in games are just faking things until they look good. To achieve the teapot above, instead of figuring out realistic formulas, I played with the parameters of the algorithms until it looked okay.
There is so much more to say on this subject, but hopefully this has given you a very basic understanding of how objects in games look like they are lit from some light source. There are many more ways to sell the illusion of 3D and realistic lighting, but those may have to be revisited in a future post. For now, if you have any questions, feel free to tag me on the RSBANDB Discord, and until next time!
So I was browsing through the Runescape site, doing my Monday morning rounds, and then I saw that Runescape had just released a new quest, and I was all:
And then I saw Peter in Rimmington and I was all:
... but a quest is a quest because it's a quest, and I like doing quests even if they're quests, so let's quest!
I teleported on over to Rimmington to invoke on what I was anticipating was going to be an epic continuation of the random, sort of semi-world event that had happened once before that caused the townfolk nightmares of unspeakable proportions.
... and I was mostly right. It was the continuation. All our favorite characters were there and everything!
So it starts with us chatting with our good friend Peter. For those who were there during that quick world event, Peter is the sole creator and the one who was entirely to blame for every Miscellanian nightmare this side of the River Lum. And we get to help him once more by resolving this threat of man-consuming and eardrum tainting once and for all.
Bcfore you continue, I will mention now that there are spoilers for this quest. If you want the full experience, do the quest at your earliest convenience because I don't believe there are any skill requirements at all. Trust me, you'll want to go in blind. Zamorak does die at the end, and it's very tragic when you don't expect it.
... or maybe that was just for my play-through... anyways, moving along...
So Peter went and cloned the giant slime and somehow assigned them genders, and now he's hoping that we can find a way to make them fall in love with one another. Doing that will inadvertently make them leave Rimmington forever and become someone else's problem. Trust me, your character knows this is a terrible idea.
So, to make him look the part of a strapping gentleman, we go have a chat with Thesselia and get a top hat, the Varrock Clothes Shop Owner. I personally was pleasantly surprised at this; it's been ages since I've seen her. She's been around since Runescape Classic. She's aged pretty well.
(Yes, your character does say that. I didn't doctor this photo in the slightest.)
By some freak coincidence, she owns the second-largest top hat in Gielinor. Perfect, except it's not; Peter wants a regular sized top hat. Alright, then.
About 20 hard treasure trails later, I discovered that Eva, our friend during the construction of the Anachronia ships, invented a shrinking machine that will shrink our hat for us! So, several million coins richer, I headed on over to experiment with this machine. What could possibly go wrong?
... I smashed the machine with an earth wave, shoved Eva headfirst in Gielinor's only toilet, and lucked out on a top hat from a treasure trail. I gave it to Peter. He gave it to the King Slime. Just, walked right up to the man-eating putrid mess of a slime and popped it right on top of its 3 story-tall head. Guy's got talent, I'll give him that.
But it wasn't enough. Turns out the other slime is more attracted to a scent somewhere in Rimmington. By grabbing a piece off her, you can sort of pinpoint where it is by a pseudo hot/cold minigame. Spoiler alert, it's Hetty's potion. The slime wants some of the good stuff.
Grab a bucket and jack Hetty's stew (also from the Runescape Classic era), and Peter will go ahead and splash it all over the King Slime because what else could possibly go wrong?
And... it works!
... too well. They fall in love, do things to each other out in public, and then wander off never to be seen again maybe.
... and that's it. Quest Complete! We win the universe, and Peter gets a new hat!
... yeah. That's literally it. You think I'm making all this up? This is the journal for the quest; try presenting this one to a friend without any context:
Doesn't even mention Zamorak. It was a thing you had to be there for. Super tragic.
So, what do I think? Joking aside, I actually really enjoyed this quest. It was quick, it was simple, and it gave some much needed personality to a few older characters in Runescape. It doesn't even look like it took much effort to make; it had a simple couple of puzzles, was mostly you going places and talking to people, and there were a couple really simple cutscenes.
And yet, it was a quest. A much needed, well deserving quest, full of humor and good times for all. These are the sorts of quests I really want to see a lot more of. Like a sort of guaranteed once a month quickie sort of quest. Or even, if they get a bunch of developers together to form a sort of "ninja quest team", I'll betcha they can make it a two-a-month thing! That would be epic, because quests are the things that really give the world life. It gives you things to do and discover, and sometimes can even hit you with a plot twist that you never saw coming. For example, who would've thought that Zamorak was actually a respectable fighter and leader among Mahjarrat rather than a straight-up bloodthirsty death god? Mind-blowing stuff.
And, you know, if there are no quests left to do, then there's not really anything more to discover. The game sort of grows a little stagnant, becoming little more than a skill grind and money-making simulation of a game. I don't like it when Runescape does that to me. I cherish the quests as the come. Even if they end like this one did.
Now, if you'll excuse me, I've got a bit of therapy to attend.
Until next time (I know, missed pun opportunity),