Podcast #128: We chat with Kent C Dodds about why he loves React and discuss what life was like in the dark days before Git. Listen now.
200

One major feature is that they make debugging easier. If there's a broken puzzle door that's not unlocking, and you can bypass it by clipping through the walls, or skip past some tough combat with invulnerability and an insta-kill weapon, or shortcut the economy grind by giving yourself infinite money to make sure the last-game purchaseables all work, you'...


145

I slightly disagree with Philipp's answer; or at least with how he presented it. It gives the impression that moving the world around the player might be a better idea; when it's the exact opposite. So here is my own answer... Both options can work, but it's generally a bad idea to "invert the physics" by moving the world around the player rather than the ...


116

Just have them respawn Have an enemy spawner which will either spawn enemies that fall to their own deaths or just respawn the enemy once you killed it (e.g. drop it out of a pipe like in the original Mario Bros).


92

Yes, you totally should have cheats in your game. Replay value! Having all weapons with infinite ammo and invulnerability might make level 1 far too easy, but it can also be a lot of fun when you already beat the game regularly. Dealing with bugs! It creates a possibility for the player to work around game-breaking bugs. Let's say there is a very obscure ...


88

Both options work. But if you want the endless runner to be truly endless, you will have to keep the player stationary and move the world. Otherwise you will eventually hit the limits of the variables you use to store the X-position. An integer would eventually overflow and a floating point variable would become increasingly less accurate which would make ...


82

Having the player play against their own earlier accomplishments actually seems like a viable approach to implement dynamic difficulty. The better the player, the more challenging the game will become. But when the player becomes aware of this mechanic (and you have to assume they will find out about this before playing - because it's an unique mechanic and ...


77

Now how does the game handle those 30 Projectile and 70 units by handling them on 100 different threads No, never do that. Never create a new thread per resource, this doesn't scale in networking, neither does it in updating entities. (Anyone remember the times when you had one thread for reading per socket in java?) 1 thread that moves all of them ...


60

Usually you should separate the logical state of your game environment from the visual representation. The player might only see a small part of it on their screen, but you still keep the state of the whole level in memory and usually also calculate the game mechanics for the whole level. When your world is so huge that this would require too much ram and/...


59

The problem with this system is that it just fights the symptom, not the cause. Inflation means that money loses value, because players have too much of it. It's not the items which become more expensive, it's the money which becomes less valuable. When nobody needs money, they won't sell anything to the trading house (I won't call it "auction" house, ...


54

Force players to visit an area not suitable to sniping, to continue playing, for example limited ammunition. Or advantages instead of disadvantages - buffs that only last a while that you cant get in the sniper tower, or distant lights that you need to activate to actually see the targets when in the tower (or any other mechanism that could interfere with ...


51

Ensure that the positions are not defensible, but just hidden One way to get snipers to be mobile is to mirror real life military tactics that generally prescribe snipers to immediately vacate their position after executing a shot or two (either moving to a nearby alternate firing spot or retreating) - the 'defensibility' of sniper nests come from ...


47

When you are designing a game, you are in control, don't forget that. If you have enemies that can be killed which are crucial to traversing the level, why are they able to die in the first place? There is no reason to kill them if you have to start over if you do so. Perhaps allowing you to 'stun' but not kill them, still allowing you to use them to ...


43

I was about to post a link to the Asteroid Base blog on the Walker enemy when I noticed karmington already linked to the Gamasutra article in a comment. It's probably worth giving this a bit more visibility and explanation as an answer in its own right though. The trick is raycasts. These let your code scan along a line for a collision. To get the Walker ...


41

I think you need to consider this at a more fundamental level: what is the gameplay purpose of having a health system in your game? A conventional health system serves two purposes: (1) it gives a staged failure state to combat, and (2) it serves to create long term resource management with health between fights. You say you want your game to be ...


40

Finite amount of lives in video games was a design element inherent to coin operated arcade gaming machines. In order to limit a player's play time so he would be forced to spend more coins or make room for the next player, a finite lives system, coupled with high difficulty, proved successful, so it became the standard for all of arcade gaming. As home ...


39

Rule number one of multithreading is: Don't use it unless you need to parallelize on multiple CPU cores for performance or responsiveness. A requirement "x and y should happen simultaneously from the users point of view" is not yet sufficient reason to use multithreading. Why? Multithreading is hard. You have no control over when each thread gets executed ...


39

Well, in a roguelike or something, where eventually if you don't use your consumables they expire (because you die, or win), then consumables provide another layer of medium- to long-term strategic planning for the players to think about. Instead of just making sure you use your renewable resources effectively in each encounter, you now can also consider ...


38

Your game is a nontransitive game. You can implement it with 3 stats R, P and S, using the rock-paper-scissors logic. Call these stats whatever you want, but I'll stick with the RPS logic. Now suppose you have two heroes, with stats R1/P1/S1 and R2/P2/S2. We need to compute how much damage they will do to each other. You want rocks to deal damage to ...


37

You are going at it backwards. You start with the logical state of your game and model that. The whole logical state of the entire world will almost certainly be too much to be held in memory at once, so you break it down in smaller parts that can be loaded and saved independently. These parts are often referred to as chunks. These chunks can form a ...


37

Extra Credits made an episode about De-Gamification a while ago. But I am not sure if that's what you mean. They are talking about removing incentives and obstacles to allow the player to interact with the game world more on their own whims and not be too focused on success. You could also be talking about the axis of Gameism vs. Simulationism. Gameism is ...


36

I'm not sure about your assertion of "most" - many games like GT, DriveClub, etc, have many point-to-point races... But there are two reasons to this: Firstly, many real-life races are lap-based on closed circuits (Formula 1, Nascar, etc), so gameplayers might expect this as a standard. Secondly, and from a game design point of view, putting multiple laps ...


36

Building off of XenoRo's answer, instead of the re-rooting method they describe, one could do the following: Create a circular buffer of parts of your infinite map generated, which your character moves through with position updated with modulo arithmetic (so you just run around the circular buffer). Start replacing parts of your buffer as soon as your ...


34

Yes, it's theoretically possible - that's a good part of the game theory which deals with this subject. However, it's only rarely practical, and even then mostly just for games which don't involve a randomiser (Chess, Reversi, Go and so on). Combinatorial explosion ensures that the theoretical time needed for such proofs for more complex games like Magic ...


34

I'm actually one of the Don't Starve devs (Kevin on our forums). I don't usually handle the rendering stuff, but I can tell you that the game is in 3D. The ground is just a regular 2D tile map with special transition pieces to make corners look better. There's no special Deathspank-style rounding going on, although we have talked about doing that in the past....


34

Generally speaking, the ease with which any system can be extended is dependant upon the degree to which its subsystems are tightly or loosely coupled. Usually, the more loosely coupled the subsystems are, the easier it is to modify them as they are isolated & don't necessarily require a complete understanding of the system as a whole. Nothing is free ...


32

This is a complicated issue, because you're talking about a few different things that (these days) get lumped together as 'buffs': modifiers to a player's attributes special effects that happen on certain events combinations of the above. I always implement the first with a list of active effects for a certain character. Removal from the list, whether ...


31

When you look at the countless other questions about preventing cheating in multiplayer games which are on this site you will easily see that there really is no technical measure to prevent client-sided cheating. All you could do is provide less information about the cloaked entity. All the client needs to know to render the distortion effect is that there ...


29

How games I've played do this I've played about 300+ hours of Counter Strike: Global Offensive and find the sniper in it to be quite balanced. There are a variety of ways this game helps counter snipers (AWP). The map has little clutter with a lot of entrances to points of interest. You can go to the other bomb site if there are campers in a strong camping ...


28

"Fool me once, shame on you. Fool me twice, shame on me!" The "problem" of camping is vastly over-stated. That someone might get an easy kill by means of an ambush — which is what most sore losers define as "camping" — is not an issue. That is a valid tactic. If the hapless victim then goes back the same way, in the same manner, and gets themselves killed ...


28

Are your test player having trouble discovering the controls or using them? If they have trouble discovering them, you can add a prompt that explains them. To make it unobtrusive for players that don't need it, you can have it appear if the player stays there doing nothing. Which, brings me to the next thing: probably all your game needs is a practice/...


Only top voted, non community-wiki answers of a minimum length are eligible