Wednesday, March 21, 2012

Computer Graphics: Graphics in Games Week 11 - Sprites vs. Models

In the very first games, hardware wasn’t very advanced. We didn’t have the capability to show 3D models, but we certainly had the capability to show 2D though.  Since we couldn’t do high tech, 3D model rendering then we used hand-drawn sprites in many games until we had the capability. The sprite look is a classic, retro look, not commonly used in games but recently there has been a significant increase in the number of pixel games, many of them being indie games but others from large companies as well. For a while sprite based games looked like they would mostly become a thing of the past but their popularity has increased in these last years. We’ll be taking a look at how sprites have been used in games and compare their advantages and disadvantages vs. 3D models.

Evolution of technology

Pong had a limited color palette of white and black

Like I’ve said, sprites have been used for a long time, since the very beginning. Due to computation limits, it was easier just to render a 2D sprite then calculate a model’s vertices and triangles and it still is. But sprites also had limitations themselves. Computers and entertainment systems could only show so many colors at the time, the first ones using only shades of grey. Eventually we evolved to 8-bit, 16-bit, and so on, so forth. Not only that but the resolution of screens also had to increase from a much smaller amount. This meant the sprites we designed were limited in color, and also in size. If we wanted to give the right proportions of a character sprite compare to a large building sprite, we had to make really small looking sprites and try to squeeze as much detail into them as we could.

Super Mario World had multi-layered backgrounds

Technology evolved, limitations of sprites began to cease and we were able to create vibrant worlds and even create immersive effects such as “layering sprites”. An effect like this would be to layer multiple sprites in the background, the closer backgrounds moving faster as we move, while the farthest move slower or not at all. This would really make the world look a lot more immersive. A lot of other neat techniques came with the use of sprites but sprites began to take a back seat once technology had reached peak where it could display 3D models.

Mario 64 still had sprites despite being a 3D game

Models got popular and many franchises went to these types of games. There was just something very appealing about the increased depth of a game now, that sprites simply couldn’t do at the time. That’s not to say sprites still didn’t play a role in these games though. If you take a look at Super Mario 64, there are actually sprites around in the levels still. More specifically, they used it in particle systems, such as the snow.

Doom was a 3D game with 2D sprites

Also to note is some games used a 3D engine but everything was sprites still. The most notably example of this is Doom. It was a completely 3D environment yet everything in the game consisted of 3D sprites. But models were still becoming popular.

Mario Kart 64 used sprites for some of the items like the green shell while having 3D models elesehwere

In any case technology continued to increase, it became easier to calculate 3D models and advanced physics that would appropriately render the 3D models. Sprites were not advancing nearly as fast, sure enough we had more computation and calculations, and maybe even the process of creating sprites increased in efficiency, but it wasn’t moving as fast as 3D models. Sure sprites had physics, such as gravity and other forces, but non that could affect their limbs and such like 3D models could. Sprites were and are still used in 3D games however due to their easy calculations but more and more advanced games use less and less sprites or even none. It seemed like for a while sprite based games were becoming obsolete. Keep in mind, I am talking about in mainstream games, I am not focusing on the many online, free games on various sites. I am talking about ones made by indie developers or large companies, the big sellers.

Scott Pilgrim vs. the World and other sprite based games began to pop up in the recent years

Then suddenly this huge surge of games came out, and many of them actually followed a marketing strategy of “Retro throwback”. Take Scott Pilgrim vs. the World, the game was a complete throwback to the days of retro gaming. It came complete with retro sound effects and an overall vivid color palette by passing any old limitations of old NES games though. But retro it was and it appealed to a lot of old gamers who missed the old sprite based games. After this it seemed like a massive number of sprites games came out and nowadays you can hardly tell sprite based games really disappeared for a while (in terms of being sold, not counting flash based games). There are a ton of games from both large companies and smaller companies releasing sprite based all the time now. Sprites are definitely back in, but for how long? Will they keep up with 3D games? Well let’s see the advantages and disadvantages of them.

Advantages of Sprites

Street Fighter 2 HD Remix: The dimensions of this sprite of Ken are approximately 430 x 395

Well like I said earlier, Sprites are easier to calculate, let’s get into the specifics of why that is. Sprites contain only a certain number of coordinates, and come with a size of X and Y. It has no “vertices” that make it up, it can essentially just be a square of pixels. That in itself immediately makes it easier to calculate then a model. Models are composed of vertices, representing points on the model, which are connected to each other to form triangles. You need to calculate these and connect the triangles to form a model, this is just the basics, we haven’t even counted surface normals (to form a solid figure, right now we would just have a wireframe), texture coordinates, faces, etc. It’s easy to see that there are way more calculations involved with models then there are with sprites. That is the very reason why sprites are used in backgrounds to save memory.

There are many more complex calculations associated with models 

This applies also for lighting, because 3D models require good lighting in order to look good. Sprites on the other hand do not have any lighting (At least they aren’t actually required to) since the “lighting” is drawn right into the sprites. That makes it so you don’t have to make any calculations for sprites, however this goes into one of the disadvantages as well.  Before I go into this disadvantage I want to point out that textures have the same application as lighting. Models need them but the texture is drawn right into sprites on the other hand.


3D models need good lighting and textures which are more calculations. Sprites do not need these, it's "drawn" into the sprite itself. 
 

Disadvantages of Sprites


Blazblue : Ragna's sprites don't need texture or lighting, it's drawn right in

Now then, that disadvantage is the fact that sprites need to be hand drawn. Sprites need to have the lighting already drawn into the sprite as well as any texture. There aren’t really any systems that layer a texture on top, at least none that I know of. Also another disadvantage is that models, once created can be placed and shifted to form animations, while sprites need to be hand drawn on every frame of it’s animation to look right. This can be very difficult, though there are tools to help but there aren’t many.


Blazblue: Noel requires hundreds of hand drawn frames for her animations

The best results for sprites are usually when every sprite is hand drawn by professionals, and this can take an immense amount of time depending on the quality of the sprite. A simple sprite can be really easy and quick to finish but a detailed sprite such as those in Blazblue can take a massive amount of time. The difference between making a model and making a sprite also depends on the person, because the process of creating both is entirely different. Being a good modeller does not make you a good sprite artist and vice versa.

Conclusion

So we can see that, calculations wise, sprites are much less costly than models, that much was obvious. And even in games with models, sprites can be used rather effectively if masked well enough. They are still used for particle effects even to this day. The quality of sprites may very though depending on the artist, and if you’re creating a character with a wide range of animations, it can actually be easier to model a character than sprite him. This is due to it being potentially easier to animate since you’re not “redrawing” the model every time like a sprite requires. You need to have a good sense of perspective, animation, scale and proportions when making a sprite being animated in complex ways (like in Street Fighter or Blazblue). This can create a higher skill cap when trying to make sprites like these and can look less smooth than their model counterparts even after all the effort put in. Not to say models don’t require effort either, but it’s using formulas and interpolation to animate rather than an artist’s skill in making sprites. If an artist wants to make a character look smoother, than they have to draw more frames for the sprite, where as a modeler need only position then correctly.

Marvel vs Capcom 3: It's easier to make alternate costumes for 3D models. It can be just a texture swap or add on. Animations can remain the same. 2D sprites can't do this nearly as easily.

So, besides the fact that calculations were easier with sprites, it can debatably require more effort to get into a game depending on the kind of sprite. There is a reason why most games go for models now. For one because most games that want to go for a 3D environment would want to look realistic anyways and sprites wouldn’t fit the game. Another reason is due to the advancements in technology and modellers, that models can look better much more easily. There are many tools out there like Maya that can allow anyone to make a model. A sprite has a larger artistic skill cap in order to make the truly great sprite animations. But there is also a feeling of nostalgia associated with sprites for many, which is the reason why they are selling once again.

Mortal Kombat uses people, takes pictures of them, and turns them into sprites

One way developers have gotten past the issues of making so many sprites for animations is to use an effect like Mortal Kombat or Donkey Kong Country. Basically they made 3D models (OR took real people) but then took pictures of the models/people, frame by frame and made the animations that way. This way, they could use the easier calculations of sprites vs models. They also would be able to easily make the animations for each frame of a sprite as well since all they do is move a pose. This is one of the ways in the past they have used to try and combine the best of both, and the effect is alright but not quite up to today's standards in terms of quality. But it has a retro look of sorts.

Shadow Complex (3D) on a 2D plane
vs
Castlevania (2D) on a... 2D plane

In this day and age, due to advancements in technology, it’s not hard for a person to make a model and 3D game, but with enough dedication you can make sprites to make a 2D or even 3D game. A lot of the choice between sprites or models depends on the type of game you want to give to the player and the type of feeling you want the game to resonate. If you compare a game like Shadow Complex, a 3D game, on a 2D plane, it invokes a similar different feeling compared to playing a sprite game such as Castlevania just by the aesthetics of the sprites. It’s all about the feeling.

No comments:

Post a Comment