A summary of the Rendering Pipeline for Humans

Image result for Xenoblade chronicles 2

I just started playing Xenoblade Chronicles 2 on the Switch. It is pretty neat. Anyway In this post I wanted to talk about the rendering pipeline, or rather put it in simple terms that less tech savy people can understand.

In a game, rendering can be seen as the process of drawing a scene on a computer screen. It involves a mathematical combo of geometry, textures, surface treatments, the viewers perspective and lighting. In other words, it is a combo of the geometry that forms the meshes made in Maya, Blender, whatever, the textures that are applied to those meshes, shaders that do some neat stuff to make it look cool, where the camera is looking and how the scene has been lit. The Rendering pipeline then represents the flow of processes that take place to show a virtual environment on your screen. Basically, how your games console draws that sweet Vidja Game on the screen (bit of an oversimplification, but you get the idea).

In simple terms, there are three stages of the pipeline:

The application phase runs on the CPU (generally) and deals with all your gamey stuff. This includes moving object, input, collisions, etc. This then affects the geometry part of the pipeline that basically determines where stuff is. It involves calculations regarding the position of the camera, the transformation, scale, rotation of each object and all the mesh data we have. The rasterisation phase then actually displays the image on the screen. It goes through some more in-depth processes to get that desired image on to your sweet 43inch Ultra HD TV.

Now it is a bit of a cop-out to say “more in-depth processes” so let’s have a look at what those actually are. We are going to look deeper into both the Geometry and Rasterisation parts of the pipline.

I know what you are thinking.

Those sound like pretty technical things! S’alright, we are gonna look at each one individually. Imagine we are trying to render a model on our screen. Maybe it is a model of a character. Or a car. Or big massive gothic cathedral. Or an awesome mech. I will probably refer to the model as just a “character.” This is the process that happens to get it on the screen.

  • Geometry – So we kind of looked at this phase earlier on. In deeper terms, a model is made out of polygons and vertices. These are shapes that make up a 3d model. In other words they describe the structure of your game character. Not in gameplay terms but how the shape of the character should be in the game terms. The geometry phase processes all of these polygons and vertices so that data can be used in other phases.
  • Illumination – This is where the models are coloured and lit. In other words, you could see it as textures that represent the details of a character, like Link’s skin and clothing in Zelda are applied to the model and the details of how the model should be lit by light sources in the game like street lamps, the sun, etc are applied. This is the process where fancy programs called shaders (not Destiny 2 shaders, CURSE YOU BUNGIE!) can make models in the game look real nice.
  • View Perspective – The model is processed through a viewing perspective, or rather a camera. The process looks at how the camera is set up, whether it has an Orthographic projection (often used for 2D games) or Perspective projection (often used in 3D games) and how big the field of view of the camera is.
  • Clipping – This process looks to see what parts of the model are outside of the cameras viewing volume or rather what parts of the character can be seen by the camera. The bits that cannot be seen are clipped away.
  • Screen-Space Projection – This where we take a projection of the 3d object and put it into 2D space so it can be displayed on a screen. Monitors fundamentally show a 2-dimensional image so we are mapping the 3d model into this space and producing a 2D image to be displayed on the screen.
  • Rasterisation – This is where fancy post-processes occur. A post-process is an extra visual technique that is applied to the image and includes techniques such as bloom. These techniques are applied to the 2D image created by the Screen-Space Projection phase.
  • Display – This is the final image.

And yeah that is that really. I hope this helps understand how the rendering pipeline works a bit better.

 

No one cares about your indie game. So let’s make them!

It has been a very long time since I have done a blog post, for various reasons, however it is 11pm on a weds and I am waiting for the train. Now is a better time than ever.

So why the sudden post. Well a couple of my fav devs wrote an interesting article about a reverse indiepocalypse. For those of you that don’t know, it is a theory that making indie games is impossible and they won’t exist soon for various reasons. What I just said is a massive over simplification amd if you want to dig deeper, gooogle is your friend.

In reality right now, there are too many indie games. 
The app stores, itch, steam, psn are all filled to the brim of games. Yes I go to PSN on console and it tries to sell me some unknown game I have no idea about.

And why the hell should I buy them? There are so many titles and I have a finite amount of time and money. 

For example, let us say you are a developer at a relatively well known company and you make a cool puzzle game. You even document really well how you made it and release it to the world. You release it on store x y and z. You make a grand total of 30 quid and you wonder why.

In blunt terms. The majority of consumers do not really give a damn about you. And in reality why should they. This is nothing new. Your mechanics may be awesome. Your presentation spectacular. That does not sell a game alone. And it is upsetting how many people think “it will all be ok” in this way.

How do you solve it? 

Realise that noone cares. Seriously. Once you do that you will actively want to make people care. Your gane will not sell on merit alone in 2017 when everyone and their mum can make a game.

How do you do that? Well ask yourself, who is the audience. You are not going to get everyone to play the game. If it is an adventure game, why not send a free copy to those that stream adventure games. 

My example here is a small win, but a win none the less. I released Storm Ship Shiro on mobile. I made very little but it was a night out worth of cash. And I had a good one. Regardless, I was already following a PS Vita specific streamer. I asked him if he would stream my game. I was 2nd in the PSMobile store for a long time after that stream.

Now, I can prempt your argument. Yes that store was dead and Shiro was fun. Fundamentally though, if I hadn’t made the effort I would have been bottom of that store. 

I am not saying it is that easy. Of course it is not. What I am saying is you have to know that noone is gonna care and you have to make them. 

A hard recap of you making the game is not gonna do that either unless you are already well known. Making and finishing games is hard. Funnly enough it is pretty similar for everyone in some shape or form. As a consumer, I kind of do not really care you lived off beans on toast for months because you did not have time to feed yourself properly because you were making your game.
Harsh but true. 

In 2017 in a massively overcrowded market, you cannot just upload your game to itch, google play, the app store or whatever and expect consumers to care. There are a lot of games released everyday. Use marketing and other creative ways you can think of to make your game stand out. Or even better, when you are at the inception of the game, ask who your audience is and think at the start how you are going to make those people. Earlier the better. Analyse those markets. 

I hope this helps someone. I know it may not be presented in the best of ways but I hope the underlying point gets across. Your game may br awesome (amd if it is let me gace a play :p), but in the crowded markets of today, competition is tough. I want to see cool, new, unique  games and I do not want them to die on something as simple as this 🙂

The Laptop Saga

Back in Feb, I did a silly. I took my laptop to the pub in my nice PlayStation bag and I took my eye off it for a split second. Within moments, a gentleman helped himself to the bag and buggered off. Lukcily I was insured, so although I lost my nice Asus UX305, it wasn’t the end of the world. They couldn’t source another, so I got the money and looked for a new one.

I first replaced it with an HP x360. The laptop lasted a week. Seriously, this was quite frankly the WORST laptop I had ever had. The colours were washed out, the fan made an annoying buzz, the sound card cut out and for £550, it was quite frankly sub par. OK, I may have had a dodgy one, but type in x360 into google, and look at HP support forums, and you will get the idea, So that went back to the shop.

I had an old, not too bad Lenovo, so I grabbed a SSHD and put it in, to give the old girl a bit of life. It was not to be. Windows update… that’s right you ehard me WINDOWS UPDATE killed my pc. It did a very long update and then refused to boot. I put the old hdd in it and it did the same thing. Booo, although that Laptop was 6 years old and had done me well.

So finally I grabbed the Acer Swift 3. I have had it a grand total of a day and so far it is great (I really hope it doesn’t break down now). Nothing super powerful, but enough to make 2D games and stylized 3d games.

  • Core i3 6100U
  • 8GB Ram
  • 128GB SSD
  • Intel HD 520

The processor is a bit worse, but it does the job… and it was £150 less. So a bit of a saga, but hey, worked out in the end