New answers tagged

0

One way to look at it is that you're possibly putting too much into your game objects. There's no reason that code that actually hooks up the HUD to your in-world game needs to be in a component/system that lives in some particular space. That code will perhaps be better off living in a central manager or global script that has access to all spaces and all ...


1

This is the big problem story-driven games face: Combinatorial explosion. As such, if you look at e.g. Bioware or Telltale games, you'll find that the most common approach seems to still be to try to restrict the story to being more linear, and keeping consequences from actions limited to their chapters. The approach Bioware seems to be using splits each ...


2

What you've described is the difference between Lanchester's linear and square laws. These are formulas estimating the rate of attrition between a battle between two military forces. The linear law says that the two forces suffer a constant rate of attrition, regardless of the size of the forces. This is used as an approximation of ancient combat, between ...


2

Of course you expect the smaller army to lose most of the time, but they should still have a chance to do some damage. Which history shows is usually the case - quality matters more than quantity unless it's overwhelming. There's many ways you can accomplish this but here are a few ideas: Allow everyone in the small stack to attack, don't let the larger ...


0

It may take a bit of time, but developing your own tree (like a behavior tree or dialog tree, but for pages) might be beneficial. And you could use one of those as a model. Something like this: How do dialog trees work? This would allow you to tailor it for your specific needs, but also let the code handle most of the work.


1

One solution I've seen that elaborates on your approach is to have various attributes with associated scores. Some choices result in modifying the one or more of these scores. The scores in turn may modify the choices available to the player. For instance, early in the story, there may be some option combat encounters. If the player engages in combat, the ...


1

The feedback management handbook (composed by input from several people in the office): Feedback is not to be ignored and not to be entirely listened to. Water is one of the most important substances on this planet. Half of you is water. You can die of thirst. Yet you can drown. Consuming enough will kill you - it is toxic, regardless of how ...


2

Breaking movement in two steps is an outdated approach. Mouse movement for the horizontal plane. Mouse wheel for vertical plane. Homeworld did a fine job, but mouse wheels weren't so widely deployed yet so they didn't go with that. You can still have modifier keys to switch mouse movement between the modes but moving the mouse and scrolling can be done ...


0

The characters do not challenge each other for supremacy. They challenge a requirement. What if both pass the requirement. Who wins? I'm surprised you haven't challenged the logic enough that you've even went to calculation with it. Either way, here are two things that might do you some good. Win chance case with advantage: IF pass bar/skill check is a ...


8

A lot of Adventure/RPG games handle this in two ways (there may be more I'm not aware of). Use of flags The first one is to set a flag if something happened (usually some bitmask). This is fine if you don't have many things to track. In the room/encounter there may be a check against a flag that alters something. In your example could add a rule: {"text" ...


0

The traditional approach that several answers have implicitly referenced but nobody has actually spelled out is that the task requires a fixed die roll, and add an ability modifier derived from your stats. For example, if two players follow the procedure: Roll a 14 sided die Add their modifier to the die roll and repeat until one side beats the other, ...


0

Know your numbers Adding a bit to Philipp's answer, namely that rand[x] compared to rand[y] may not always produce what one expects. Below a table where we compare A to B. Both A and B have the values 1...10. We compare in two ways (note: rand() in this case generates integers, ie. rolls): rand[A] > rand[B] rand[A] ≥ rand[B] (ie. greater or equal to) ...


0

Hierarchies. Feudal structures. Allow weak new players to swear allegiance to powerful established players. The overlord taxes his vassals some minor amount set by the overlord with a maximum tax rate set by the game admins; this tax rate is published to all players so that it can affect their decisions on whom to claim as overlord. This tax obligates ...


0

I'm doing effectively the same thing as you, although I think I have things organized a bit differently. I have an object (struct actually) that stores information about each map tile, including if it has more than one frame and what the frame cycle time is. I then have a sprite-map object that contains all those tiles. I then update the sprite-map every ...


9

Break movement into two steps Select a position on a 2D X/Z plane located at the entity's current Y position. Set the offset (up or down) from that plane. This is similar to how Homeworld, one of the first 3D space RTS games handled movement. Works really well. Breaking movement into two steps provides the most control, simply because the mouse is a 2D ...


2

Do what EVE online does: Don't allow click-and-move! Note What they do is that they create objects in space, and allow you to right-click on them (raycast or what-not), and select one of different options: Go to object (with different speeds) Rotate about object (at different radii) This allows you to only move to relevant places. Note (They might ...


10

Your mistake is using a "dice based" approach. You're on a computer you can use any system you like. Make a table that turns a difference in values into a %age chance to win and then you can set the values to absolutely anything you like, e.g. Difference (A-B) | %chance A wins -----------------|--------------- +5 or greater | 100% +4 | 95% +...


2

The thing is, in slither.io, the snake isn't following a spline at all. Each segment simply follows the previous segment. So create a head and a bunch of segments. The head is just a special segment with your movement and other logic in it: class SnakeHead:SnakeSegment { List<SnakeSegment> Body = new List<SnakeSegment>(); //keep the ...


1

How about this: Add a constant, e.g. 1000, to all attributes concerned. Then the relative difference becomes very small.


34

The problem with your approach is that you decide the result of the combat the moment you decide on the main stat. When you have 4 main stats, and the fighter is only better in one of them, their win-chance is always 1 in 4, no matter how large the differences actually are. When you want more fine-grained results, you need more fine-grained randomness. ...


2

There's two big things. First, remember you are on a computer. You can make any system you want. No need to limit yourself to a d20 roll, though this is easy to comprehend for players. Things like rolling 6 d6 dice are easy on a computer and they give far less random results. Second, looking at other systems like D&D it is obvious that they simply ...


2

I don't think "very few" is accurate, but aside from the semantics there it's likely that the highest reason is infrastructure. Outside of PC (Mac and Linux) gaming where peer to peer is fairly easy, most gaming (mobile and console) requires a server-client multiplayer option, and running servers and paying for bandwidth to allow that is not cheap. Indie ...


5

This is a pretty deep question, honestly, from a game mechanics standpoint. But there are a few things that might help. First, this is why most games have a separate component for hit and damage, where there's a "roll" to see if you hit for damage, then a "roll" against a damage table or range for the given character. This also leads to some standard ...


2

Remember the Edsel - giving people what they think they want is not necessarily going to make a good product. This is why I feel it's important that you, personally, have a real passion for whatever it is you are doing. That way you are qualified to be the ultimate authority in what the right direction is and sorting out varying criticism will not be much ...


0

Design your game in what is important to the direction of the vision of it, understand that sometimes people not liking an element of your game may actually confirm that you are going in the direction you seek for your game. You have to understand that people may dislike it because of their own personal biases or what image of it they have built up in their ...


1

All the previous answers here have been great! But I want to add one thing: What's the demographic of the people who like/dislike your game? This is another thing you'll have to find out when you create and design software and video-games. You may want to ask yourself some questions. Here are a few examples: Are the people that liked your game younger or ...


2

Farmville became one of the most successful games besides people writing articles about it how it is boring, rather than fun. If a game is polarizing the audience, that counts in it's favor. If some people find a game addicting then work on making the game even better for them. Of course you have to make sure that those friends are giving you honest opinion ...


61

This is something you simply must get used to when you create any creative work. Not everyone will like your work. Not everyone must like your work. There are plenty of world-renowned artists who receive plenty of negative feedback and are still widely successful. It doesn't matter, because that negative feedback comes from people their work isn't made for. ...


1

These functions are called by Love without knowing the rest of your program. It cannot know that they are inside a player table. As far as I know you cannot register other functions in their place, so you would need to call them from within the main update, draw etc. calls. If you want to control the flow of your program, you can create some object with ...


4

Gals Panic, is a Qix type game. You may search for Qix to get more information on how things work. The general concept here is, having two images. One is the picture that you want to be revealed. The 2nd one is the actual gamefield where the game is checked against. These two are combined to produce the end result. So suppose the filled game area is white ...


0

Many answers have hit on the essentials as far as limiting the INPUT i.e. do not allow infinite gold creation, infinite monster and material respawn based on simple timers, etc. Gold should circulate. Monsters should have loot because they got it from somewhere. Players who die in a dungeon could lose cash, that then ends up in the pockets of monsters that ...


0

Like most things in game design, this comes down to game designer priorities and intentions. The primary thing a global auction house does is eliminate the need to actually move goods. Therefore, the most interesting impact to game play by using localized auction houses to me is that it could be a way to facilitate a trading/merchant game as part of the ...


0

One thing that might lead to a natural conflict in this kind of a game is to allow the players to "cash in" shares they own of the various companies for items/doodads/prizes of some kind that they want and the player can collect/show off. That way, a player will want to get the shares of a company they own part of as high as possible, then sell off at "the ...


1

EDIT: @Bálint made a great point about my answer. This works best for 2D rendering frameworks (SDL, XNA, etc) and less so with working directly with things like DirectX/OpenGL, which require a much closer coupling of the WHAT, WHERE, and HOW that I list below. Here is the paradigm I follow with how I organize my classes and what responsibilities each has: ...


2

The idea is simple. You need to have a way to define an object on the screen. It should contain the information for the rendering (like textures, effects, etc.) and for the game logic (velocity, acceleration, etc.). The main game logic shouldn't touch the rendering parts and vice-versa. There are variables, which needs to be used by both systems (like the ...


0

I'm not 100% sure if I understood your question, so hopefully this answer answers some of your questions haha :) My current approach I've encountered this problem multiple times, and the method which I'm using right now is creating my own interpreter. Basically I have a file that looks something like this: [catapult] setName:catapult, setType:siege, ...


0

First of all, let's examine why a game would use more than one currency in the first place. Having more than one currency makes it far easier to balance. Each currency forms a closed ecosystem and allows you to experiment with it without too much influence from other game systems which rely on other currencies. For example, when you accidentally create some ...


1

Melee retaliation is both to simulate the danger of attacking an enemy at hand-to-hand range, as well as to compensate for the inevitable buffs that melee attacks receive related to ranged attacks. Ranged attacks are significantly more tactically advantageous than melee attacks. They are also much easier to accomplish, depending on what ranges are valid, ...


2

Risk has too many potential moves and too many potential outcomes per move to have a Chess-like AI be effective. You don't need to consider every possible move, and you don't need to do look-ahead. I would suggest you get some playtesters, or at least one or two smart gamers to help. If you're really just taking the Risk rules, or some sub-set of them, then ...


3

It gives turn based games a component of "realtime"-realism. In real battle you seldom can attack an enemies army without him fighting back at all, especially at close range. This is why everything in civ counterattacks everything in range in civ. Bowmen will counterattack other bownman. In some games the counterattack even happens before the damage is ...


4

It seems like you lack some form of transition between one scene and the next. Moving the player from one UI context to another instantaneously can feel quite jarring. Also, not giving the player any chance to breathe between levels can create a problematic pacing. Both could be what you perceive as a certain "cheapness". A loading screen is one form of ...


2

Loading screens exist as a feedback mechanism to let the player know that the game is loading things and hasn't simply frozen or otherwise crashed. If your loading times are basically non-existent, there's no reason to have a loading screen anywhere, especially if your app doesn't actually need them. People complain a lot about long loading times (See Super ...


4

You add additional depth by mixing 2 existing systems. System 1: Combat can be initiated from either side, winner is determined by stats and luck. System 2: Only the one initiating combat deals damage. Retaliations are just a variation of the first system. Both systems make sense on their own. "Attacker deals all the damage" has been used since chess, so ...


4

I think the rationale is pretty simple. A melee or a close quarters attack is a immediate threat to your survival fail to counter and your dead, or running for your life. Going into a melee is a two way street, you might get the first blow, but the other will counter attack or die. Nobody in their sane minds would be standing in place when they get attacked....


0

Remove loading screens altogether if the response time is less than 1 second is a good rule of thumb, since if it is longer and you don't have loading screens, the user will think "what is happening", but if the response is less than a second, they probably wont notice. Otherwise, a loading screen gives sense of progression and that the game is actually ...


69

Melee counter-attack is an easy way to make ranged attacks valuable. Do you build and use units that have strong melee attacks but die more easily because they're in melee or do you use units with weaker ranged attacks that live longer because they can stay out of melee? Melee counter-attack reduces otherwise over-whelming attacker advantage. In a game ...


15

I am currently developing a turn-based strategy game. There are (overly simplified) two kinds of units in the game: sturdy melee damage sponges and fragile ranged damage dealers. The player is supposed to position the first in a way which prevents the opponent from attacking the second. However, that usually means that the melee units will receive the first ...


1

The number one reason is to make the game fun and challenging. It: makes the attacker think twice about attacking if they're low on health (why would a low health unit be able to 'kill' a full health unit?) can represent a bit what happens in real life: in a fight, fighter A might want to hit fighter B, but this opens an opportunity to counter attack: e.g....


15

It's a basic question of a certain type of "realism". It's hard to imagine getting a melee hit in on an enemy and them not getting involved at all, because you have to very close to them to hit with with something like an axe. It makes sense that the unit getting attacked gets a swing in. Ranged attackers can't get hit by the melee units they attack because ...


-1

Forgot to answer for mark it as answered. At the end I finished doing what Balint recommended me, really thanks Balint for your answer.



Top 50 recent answers are included