mouthporn.net
#fundamentals of game development – @askagamedev on Tumblr
Avatar

Ask a Game Dev

@askagamedev / askagamedev.tumblr.com

I make games for a living and can answer your questions.
Avatar
Anonymous asked:

Valve new game is a card game Artifact. Are card games genre right now a trend & on a development side, how these type of games are developed?

Card games are indeed on an upward trend. Hearthstone basically showed the world that a polished cross-platform freemium collectible card game could be a huge success. True to form, many similar games appeared to (try to) carve out their own slice of that burgeoning pie.

The thing is that competitive card games have been around for decades. Magic: The Gathering, the grandfather of the genre, is nearly 25 years old. Hearthstone really only took major advantage of the digital space to handle all of the upkeep that most players normally have to do for themselves. Instead of dice, counters, pens and paper, all of the fiddly details are handled by Hearthstone and the player can focus primarily on the interesting and fun bits.

The design for a card game follows a few core principles. Like many tabletop games, they are basically all about resource management and the interesting decisions based on managing those resources. There’s also an inherent randomized element to them, meaning that each match will likely not take the same path. The important takeaway is to provide the player interesting choices at each step of the play process.

Understanding what resources the player must manage is the most important element of card game design. Common resources that the player must manage are (along with examples from Hearthstone) in parentheses:

  • Health
  • Resources spendable per turn (Mana crystals, hero power, attacking with a minion, etc.)
  • Cards in hand (draw extra cards, force opponent to discard cards)
  • Cards on the field (minions, quests, secrets)

Each card must have some sort of cost (usually in per-turn resources) and effect. The gameplay emerges from the player deciding which cards to play. The power of the effect must be proportional to its cost. This defines the game’s power curve. One of the most valuable skills a player or designer can cultivate is the ability to evaluate a card’s power to cost ratio.

Cards generally have a number of different qualities to distinguish them in addition to cost. Examples of one or more qualities that may occur on a card include:

  • One-time use, limited number of uses, or remains on the field until the opponent removes it
  • Takes resources from the opponent
  • Gives the player additional resources

Look at the above three cards that each cost one mana. They are each one-time use cards, but Mirror Images remain on the field until the opponent removes them. Arcane Missiles and Breath of Sindragosa can potentially take resources from the opponent (by killing or damaging enemy minions), while Mirror Image grants its player more resources (two taunt minions).

The synergy of specific card combinations is where the nuance and fun comes in. Cards that selectively work together make it much more difficult to find an optimal way to play the game (i.e. “solve” it). Players must be able to recognize which cards and abilities work well together in order to grow in skill. Sindragosa’s summoned Frozen Champions work especially well with Frost Lich Jaina’s new hero power. It presents the opponent with a bad decision - help the mage player by breaking the frozen champions and adding legendary minions to her hand, or let the mage use Icy Touch on the frozen champion herself and get a free water elemental out of it.

The main resource in most card games, however, is just more cards. Typically, in any given competitive card game, whoever gets to play more cards will tend to win because it means that player has acquired and spent more overall resources. This is called “card advantage” and it is a central axiom to all card games. Thus, the better cards tend to be those that require more than one card to answer, and weaker cards usually provide effects that don’t require cards to answer. This helps provide a baseline for card design. A card like Sindragosa brings two additional legendary minions with her, making her a very strong card to play.

As you might have begun to notice, a lot of these observations about card game design are not specific to Hearthstone, but common to most card games in general - Magic, Gwent, Shadowverse, Yugioh, Pokemon, and the like. Developing a card game requires understanding these kinds of core design principles while still maintaining the usual things - theme, interface, constructing an experience for the player, etc. Those readers with good memories might recall that I wrote some pretty nice things about [Hearthstone’s user experience a while back]. Those observations still apply quite strongly. But any card game is about managing resources and exchanging those resources strategically to put oneself at an advantage over an opponent. It’s up to us as designers to create systems to enable players to make those interesting and strategic choices.

Got a burning question you want answered?

Avatar

Game Design Fundamentals: Granting sight beyond sight

Whenever you are designing a game’s fundamentals, you need to consider the needs of the player during the play. You need to understand what the moment-to-moment gameplay is, and what information the player needs in order to make informed decisions about that gameplay. As an example, let’s take a look at this screenshot:

Have you noticed just how little screen space Mario is taking up in this screenshot? Here, let me photoshop this a little bit, just to make it stand out more:

This is because Super Mario Bros. is primarily a platform game. As such, the player is primarily concerned with the environment and the player’s position within that environment. When the player interacts with the game, she wants to know what locations on screen are safe, and which ones are not, and the screen space takes this into account. Imagine that we changed the viewport size to this:

Here Mario takes up a much larger percentage of the screen space. We can see a lot more of Mario’s expression and his movement animations. With such a large presence on screen, we can see expressions for things like pain, joy, anger, frustration, and so on. However, this view also deprives the player of what she wants to see most in order to play - the environmental hazards of the game. If we had to play Super Mario Bros with this sort of view, it’d be very frustrating since we couldn’t see where we’d want to land when we jump, even though we’d get a much better view of Mario. This doesn’t mean that this sort of viewport can’t work for a game though. It just means it isn’t suited for a platformer.

Consider this screenshot instead:

If we do a screen space breakdown, the characters are much larger comparatively speaking:

In this game it is much more important to see what the characters are doing - what ranges their attacks are and what animations they are playing - than it is in Super Mario Bros. However, the environment is also practically cosmetic. The position of the characters relative to each other and the sides of the area is all that matters, and the lengths of the stages are standardized. In terms of gameplay, what the player needs to see is the characters and that means showing them as a much larger portion of the screen. Let’s compare the screen space here to some another classic game, Yie Ar Kung Fu (1985):

This game is visually laid out much more like a platformer than a fighting game, even though it was one of the earliest fighting games to be released (preceding Street Fighter 1 by a full two years). Given how much space there is in the environment, it lowers the emphasis on the characters shown, when it really shouldn’t. 

One of good design’s most important aspects is showing the players what they need to see without them even knowing they need to see it. As a designer, you need to be able to take the needs of the player into account while designing elements of the game. Since there are so many new developers out there playing with engines like Unity and Unreal, it’s important that you consider some of these things from a player perspective. Think about what it is they need to know in order to enjoy the game while playing it. New players probably won’t know they need it going in, but you still need to provide that information to them or they will realize they need it at some level and feel frustration if they don’t get it. 

As a design exercise, think about a game you played most recently and how the screen space is broken down. Why do you think the designers chose the view they did? What about the view helps or hinders the play experience? How would the game play if it had a different view?

The FANTa Project is being rebooted. [What is the FANTa project?]

Got a burning question you want answered?

Avatar

Game Design Fundamentals: Information Channels

Whenever you play a game, you are constantly being fed information about the game’s state through your senses. These are most commonly conveyed through things like character animations, UI elements, particle effects, and so on. As a designer, it’s extremely valuable to know exactly what ways information can be conveyed to the player at any given time. Why? Because of mental bandwidth.

When I say “mental bandwidth”, I mean this - people can only process so much information being picked up by a particular sense at once. When humans look at things, we can only focus our attention on so many things before we become overwhelmed. This is normal; creatures have evolved this trait over thousands of years to prioritize important things like survival. This applies to all of your senses, not just sight - it’s why you can tune out ambient noises in order to listen to specific conversation, or why you don’t feel the clothes against your skin but you do feel the things your fingers are touching. The average human brain can only process so much information from a single sense at once - hence the term ‘bandwidth’. We humans have an upper limit on how much we can process. So what does this have to do with game design?

As a game designer, you’ve got to convey a constant flow of game information to the player, and you want to avoid overwhelming them with it. A classic example of this would be sitting down in a flight simulator and seeing fifteen hundred different buttons, dials, and meters. That much visual information will completely overwhelm a new player and make them drop the game. This is a problem often caused by overly cluttered UI, because it requires the player to focus their eyes on each one (if only for a moment) to get that information into their brains. 

Avoid hitting that mental bandwidth limit by using a different sense to convey that information. The player might not need a UI element to look at, for example. Here are a few examples of games utilizing different channels to disperse the amount of information they convey to the player at once.

Call of Duty uses your peripheral vision to convey when you’ve taken damage. You don’t need a life meter, because the blur effect and reddening of the screen tells you everything you need to know. We use our peripheral vision to spot changes or movements even if we don’t necessarily focus our eyes directly on them. This enables players to keep their visual focus on their targets while still conveying information about health and enemy attackers to them.

Even small things like controller rumble can be used to convey worthwhile information. In Persona 4, Atlus added a fishing minigame. The controller rumble during the fishing game actually conveyed the kind of fish you could potentially catch, which made it a means of selecting the kind of fish you wanted to try for. This allowed you to make the best use of your fishing bait, and removed some of the randomness from the minigame.

Overwatch does a great job of offloading important information to sound and audio in order to convey information. Blizzard added a sound priority system to the game in order to make sure that you hear things that are most important to you depending on the context. If you are in the middle of a battle, for example, it reduces the priority of hearing things like footsteps - especially of those characters you cannot see. Instead, the engine prioritizes the barks of the characters calling out their special moves (like their ultimates) in order to give you as much information as you can get. Furthermore, each of the barks is filtered on a contextual basis. For example, when Pharah uses her Barrage ultimate, she shouts “Justice rains from above!” if you’re playing as her or her enemy, but “Rocket barrage incoming!” to her teammates. 

In addition to all of this, a designer can emphasize important elements by expanding the number of channels that the information is being conveyed on. Instead of trying to avoid sensory overload, you actually emphasize a specific event by telling the player that it’s important through as many different mental channels as you can. If you remember the post-nuclear explosion scene in Call of Duty 4: Modern Warfare, you can see many of these elements working together in order to feed into the single experience that the designers were trying to convey. The player’s movement speed has been reduced to the prone crawl. The audio is a mix of a heartbeat, radio chatter, and winds. The player’s vision becomes blurry. It’s a powerful effect, because every channel available to you is reinforcing the horror of the scene being depicted.

A good designer is cognizant of the mental channels available to convey information to the player. You can use this as a tool to reduce the amount of information pushed through a channel like direct visual focus, or you can use it in tandem with other channels to convey a much stronger effect. If you want to be a game designer, you should keep this in your pocket as a tool to use when the time is right. Using it properly can emphasize key elements of your game, decrease sensory overload, and even differentiate your game from competitors if you convey information in an interesting or novel manner. 

Avatar

Two part question: 1) How important is it to have experience with engines like Unity if the company has their own engine they'd need to learn on the job anyway? Slightly broader, 2) What kind of technical skills are expected to already be had by an incoming employee vs what is willing to be taught on the job.

Avatar

I’d like to try to generalize this question a bit more. This is what I am getting from your question:

There’s so much to learn out there, but not all knowledge is equal. What knowledge is more valuable to prospective employers?

To answer this, I’ll use an analogy. Let’s say that you are looking to hire a musician in order to commission some music for a project. You’ve narrowed it down to two candidates.

Candidate A has composed music for a variety of genres, having credits collaborating with multiple artists in hip hop, pop, R&B, rock, and even worked with a classical symphony once before. Candidate A also has a background in music theory and is familiar with the construction and structure of music.

Candidate B is the lead singer for a reasonably successful Bon Jovi tribute band. The candidate is definitely talented, has good pitch control, does a mean performance, and encyclopedic understanding of the music of Bon Jovi. This candidate is mostly self-taught, and has tried making various adaptations of Bon Jovi songs to some other styles. However, this candidate doesn’t have much experience with any other types of music besides Bon Jovi, and never without a Bon Jovi setting.

Which candidate would you choose?

The answer should generally be “It depends”. If I want music that is very much focused on the hair band 80′s-style rock-pop, I’d probably hire candidate B. If I wanted a more broad set of music, I’d hire candidate A. However, I would say that candidate A has a much better overall hireability rating than candidate B, if only because candidate A has a better understanding of the concepts and fundamentals of music than candidate B. More studios would be likely to hire candidate A.

If I hire you, I want you to become useful to the team as soon as possible. Learning to use new tools and languages is part and parcel of the job. I’ve had to learn to use dozens of new tools, languages, and engines to become useful to the development teams I’ve joined over the course of my career, and I’ve never had issues with this. But I’ve certainly seen others struggle when they lacked understanding in fundamentals and have instead focused on the specifics of the tools they were learning.

It’s generally easier to teach someone who knows how to construct a building how to use a new kind of screwdriver than it is to teach someone who already knows how to use that screwdriver how to construct an entire building. The only exception to this is when I am looking specifically for a screwdriver expert.

Avatar
Anonymous asked:

Progression or skill tree systems, the type you see in RPG's have made their way into different genres of games during the past couple of years. I was hoping you can give some insight into how such systems are developed and why they have become so frequent.

In order to understand what a progression system is used for, you need to understand the concept of gameplay loops. Let’s use Call of Duty as our example today, since it’s a great case of a non-RPG game that successfully integrated a progression system into their gameplay.

Avatar

Questions you need to answer when designing a game

So I've gotten a number of questions as to how to go about starting when you have a nebulous game idea. If I am starting a new project, these are the core questions I always need to answer before I can flesh things out. Keep in mind that these can be applied on a micro as well as macro scale. They can apply to a specific feature, or they can apply to the entire game.

Avatar

What is your opinion on the criticism against microtransaction? How do you think the F2P (with IAPs) model could work and benefit both players and developers?

Avatar

I’ve written some about microtransactions before, including talking about things like positive externalities, and I have mentioned before that a lot of the main issues with microtransactions are just unfamiliarity and conservatism… players like what they are used to, and the thought of a free to play game that is paid for by some in small pieces places them outside their comfort zone. If that’s what you’re interested in reading about, I suggest you click the link and read that.

I’m going to go a different way today, however. Today I’ll stand on the soap box a bit and give some of my own observations. There are several features I would like to see other developers incorporate into their F2P models to help bridge that comfort zone from non-paying player to paying player. I’ll go ahead and go into a few of them here today.

Avatar
Anonymous asked:

So, I know that all games/animations are rendered in polygons (triangles), but what do you do when you want to render a sphere? I've seen programs/games with 3D spheres, that seem perfect to the naked eye. Now, a perfect sphere would require infinite polygons, which would take infinite computing power to render. Are these spheres just regular old models that only look like they are perfect because the polygons are so small on the model, or is there some sort of programming trickery involved?

It’s trickery, and it’s actually a pretty interesting trick. What you’re seeing is the combined effects of shading and normal mapping

Shading is when the renderer uses positional data to calculate the color of a particular pixel on screen. There are a number of different techniques for this with differing results. Here is the first one, using a technique called “Flat Shading”. Flat shading is when the renderer adjusts the color of a polygon surface based on what it determines the color of the center of the polygon is.

You can pick out the individual polygons pretty easily here, right?

Now we’ll switch to a different shading technique. This one is called Phong shading. Instead of using the center of the polygon to determine what color the polygon is, the renderer will take the color value from the corners of each polygon and interpolate between them and the color value from the center of the polygon. This results in shading that is much more gradual and smooth, as you can see here:

If you look closely, you can see that the number of polygons here actually hasn’t changed. You should still be able to pick out the vertices along the outline of the “sphere” here. But it certainly looks a lot rounder, doesn’t it?

But this still has issues, because we might have something that’s very polygon-intensive, like a cobblestone street. This poses a problem - we want streets to be flat in terms of polygons, because it’s a street and you walk on it, but it should still visually look like cobblestones. You don’t want to spend extra GPU cycles rendering extra polygons for the street when you could spend them on hair or fingers or facial expressions or something, but you don’t want it to look flat either. So how do you fix this?

Have you ever seen the movie Indiana Jones and the Last Crusade? There was a scene in the movie where Indy has to take a step out into what looks like a bottomless gorge:

But he’s not really stepping onto a bottomless gorge, is he? If you look closely, you can see it. When you change the angle of the camera, you can easily see what’s actually going on:

The step of faith here is actually a cleverly painted (and flat) bridge to make it look like there’s a huge drop. From the viewer’s perspective, it looks 3D even if it actually isn’t. And since we have a computer fast enough to do all the calculations for us every frame, we can make it calculate what the 3D surface would look like from different angles and repaint it on the fly, even if the polygon we’re displaying is actually still flat.

This is called bump mapping (or often normal mapping, which is a specific kind of bump mapping). The way it works is that you apply a texture like this to the polygon, but instead of being directly displayed on the polygon, it’s used by the renderer to determine the way the pixel at that point should look in terms of height, even if the polygon is flat at that point. It simulates a bunch of different heights or depths, even though the polygon is still actually flat. The result is what you see to the top right - lighting as if it were bumpy or pock marked, but without actually needing additional polygons to get the visual effect.

The results of this can be pretty interesting. Take a look at these. This is a model with a lot of polygons in it to create a bunch of different shapes:

And here is a completely flat polygon with a normal map based off of the above shape applied to it:

You can see that the stuff that really sticks out far like the cone doesn’t look right, but the stuff that only pokes out a little bit like the donut and the hemisphere actually look pretty good for taking up no additional polygons at all. If you looked at both of them from directly above, without the side angle view, it’d actually be pretty tough to tell them apart without touching them. And that’s the point - it’s a way to fake heights and depths without adding extra polygons. This is why it works best on flat surfaces like walls and the ground that you view from (nearly) straight on:

These are both flat polygon roads, but the right side looks a lot more like it’s made of real stones than the left. There are other effects also at play, like specular maps (which are used to calculate how shiny/reflective or dull an object is) and more, but they also operate on the same sort of mathematical principles.

It takes a good artist to create the proper map textures for 3D models, and it takes a graphics programmer with a solid understanding of math to create the renderer that can do all of the proper calculations to take those maps and figure out exactly what color each pixel actually is. I will say that it can be pretty fascinating stuff.

You are using an unsupported browser and things might not work as intended. Please make sure you're using the latest version of Chrome, Firefox, Safari, or Edge.
mouthporn.net