# Accuracy mechanic in an MMO game

## Recommended Posts

I am a beginner in the Game Dev business, however I plan to build a futuristic MMO with some interesting mechanics.

However, I have some doubts about shooting mechanics that I chose for this game and would like to know your opinion on this. The mechanic goes as follows:

- Each gun would have it's damage-per-shot value
- Each gun would have it's shots-per-second value
- Each gun would have it's accuracy rating

Now the question is: how to calculate the output damage? I have three available options:

1) Calculate the chance of each shot hitting the target (per-shot accuracy)

2) Multiply the damage output of a weapon by it's accuracy rating (weapon with 50% accuracy deals 50% of it's base damage)

3) Don't use accuracy at all and just adjust the weapon damage output

Which of these three mechanics would you like to see in a game? Mind, this will be an MMO game, so it will have lock-on targets, AoE effects and all that jazz.

##### Share on other sites

I like the sounds of #1.  May require more computing but it would make for a varied scenarios especially if the health of enemies and other players is low.  #2 sounds a lot like the kind of math you'd see in old browser games, but I'm not familiar with how other games go about calculating accuracy.

##### Share on other sites

#2 and #3 are effectively the same, differing only in what numbers are shown to the player -- unless you're also implementing some way to dynamically change a weapon's accuracy.

So yeah, I'd agree that #1 is more interesting.

##### Share on other sites
2 hours ago, shelvick said:

#2 and #3 are effectively the same, differing only in what numbers are shown to the player -- unless you're also implementing some way to dynamically change a weapon's accuracy.

So yeah, I'd agree that #1 is more interesting.

Well, I plan for characters to have proficiencies, so the accuracy would change, as well as some buffs/nerfs that change the accuracy of the character.

But still, my first option is #1, however I'm just worried that it might be disliked by players.

##### Share on other sites

Who is your audience? If you're targeting the more hardcore FPS players, then yeah, you'll likely hear a lot of complaints about "luck". If you're aiming for a somewhat different audience that isn't as concerned about the gunplay aspect, then I think they'll be more likely to appreciate it. Single data point: From a player's perspective, I, personally, would still go with #1.

##### Share on other sites

I'm trying to make a MMO RPG game, so that's a completely different crowd. A SWTOR/WoW/GW type MMO at that. So that's why I want to implement accuracy ratings, so that your loadout actually makes a difference.

##### Share on other sites

4) Make accuracy a critical hit chance for +100% damage, it makes more sense to the player,

it also prevents freak randomness where the player misses eight times in a row and dies to enemy fire.

##### Share on other sites
7 hours ago, MeeMaster said:

But still, my first option is #1, however I'm just worried that it might be disliked by players.

You might not find this idea helpful, but I remember when I designed a couple counter strike maps back in the day I literally dissected the elements of what made a good counter-strike map, my conclusion was collision points where the two teams meet if running full tilt.  If that area of the map is conducive to good gun play then you've got a winner.  So I just focused on those two or three areas and slowly expanded out from there incorporating them all into one map.  The map was tons of fun to play.  If I was in your shoes what I would do is to take a similar strategy, rather than pick one option on arbitrary assumptions about what people may or may not like I would design gun play scenarios with your game and have players test out the various code and see which they like.  You might find that the answer to a good experience for the players is a modified version of #1 using hit boxes or something.

##### Share on other sites

Not sure *how* new you are to game development so I'll preface with https://www.gamedev.net/blogs/entry/2250155-why-you-shouldnt-be-making-an-mmo/ just so you know what you're getting into.

Having said that I recommend using the gamefeel approach which is forget about it needing game mechanics for a moment and imagine your player having an optimal experience. Does it take 1 hit to kill an imp, 2-3 to take down each enemy guard? Then using that weapon does 100% damage to an imp and 33%/50% damage to a guard. On the other hand the Imp might be a fast little scamp and dodges you 3/4 of the time.

I'd also suggest removing the idea of "Accuracy" for "Skill" and/or "Speed". You wern't so incompetant that you just missed someone standing in front of you, if you "missed" it's because the enemy was too fast/skillful and either blocked or dodged/deflected your attack in which case you use the term "dodged", never "missed".  It may sound like a nitpick but it's important psychologically. "Missing" is frustrating, people hate it. Being blocked or dodged feels completely different even though numerically its exactly the same thing. Skill can communicate "accuracy" but more like being able to stab your dagger between armorplating like a badass, not wether or not you'll even hit the enormous target in front of you like someone with a concussion playing pin the tail on the donkey.

I think what I'm getting at is the player should have a skill rating but weapons should be 100% accurate. Even monkey island had more realistic feeling swordfighting than many mmos, not even including the insults. The combat was all parrying and disarming them when you won like in the old movies, not taking turns swiping your weapon through the air and not even flinching or trying but failing to dodge as they're about to hit you.

Edited by Old Soul

##### Share on other sites

Its like S4 League

## Create an account

Register a new account

• 28
• 15
• 23
• 10
• 19
• ### Similar Content

• By Shtabbbe
I've had a game idea for a while, and I wanted to finally try to create it.
Its a 2D open-world tile-based MMO. The concept is it is one world and multiplayer only, so everyone shares one world no matter region, platform, etc.
I am having problems finding out what to use to start development, I tried Unity but saw some of the negatives and refrained and now im stuck, could anyone recommend some intermediate friendly 2D engines that can support what I am looking for? Preferably in languages that are or are somewhat like Java, C#, Python, JavaScript, Lua.
Thanks for your help, im very new at this if you cant tell

• A few questions about some c++ code
So I am starting to get back into c++ after about 12 - 14 years away from it (and even back then, my level of knowledge was maybe a little above beginner) to do some game / SDL programming. I was following a tutorial to get at least a basic starting point for an entity component system and it works however there was some code that I don't quite understand even after looking around little.
First pice of code is:
T* component(new T(std::forward<TArguments>(arguments)...)); This seems to be assigning the component with the results of what is in the parentheses though normally I would expect this:
T* component = new T(std::forward<TArguments>(arguments)...); Is this just syntax preference or does the compiler do something different with the parentheses (it is weird to me as when I see that, I think it is a function call)?
The second piece of code I think I understand the general idea of what it is doing but some of the specific are escaping me:
template <typename T, typename... TArguments> T& Entity::addComponent(TArguments&&... arguments) {   T* component = new T(std::forward<TArguments>(arguments)...); So from my understanding, the first line would basically take this:
entity->addComponent<TransformComponent, int, int, int, int>(x, y, width, height); and take of the first item in the template and assign the to T and then "group" (not sure the correct term) the rest of the items as a collection of some sort and then the ... on the second line would group the arguments (that would need to match the template group) that were passed in. Then the third line is effectively converting the template / passed in arguments to be called like this:
TransformComponent* component = new TransformComponent(x, y, width, height); The parts that are a bit confusing to me is first the &&. From what I have read (from stack overflow), that symbol means rvalue reference or reference to an argument that is about to be destroyed. Not quite sure what it means by it about to be destroyed.
The second part, which I think related to using &&, is the std::forward<TArguments>. The explainations that I have found so far as are bit confusing to me.
I will continue to try to find the answer to these confusions but I though maybe someone here might have an explanation that might make more sense to me. I would also consider it quite possible that there is some prerequisite knowledge that I might not have (I mean I think I have a decent understanding of pointers and references) so if there is other stuff I should looking into, that would be great too.

• Hello I am looking for advice to what I should do next as I just completed the Unreal Developer Course on Udemy and now am at a lost as what to do farther as practice and to expand my knowledge. My background is 2 years studying college in Videogame Design and 3 years working on 4 years studying Software Engineering in college. I am mainly focusing on using my C++ knowledge with Unreal Engine to make indie games but I do also know Java, and C# as well, but I do not know Unity. I am welcoming any advice that can help with my current situation with my current skill set

• If this is posted in the wrong forum or could use more tags, I apologise. This my first post.
I am using ASSIMP to import FBX files for my system. Using Blender, I use Empties to create attachment points. Is there a way to get to these or detect these easily? The only way I can come up with is by going through the rootNode, and all of the child nodes, looking for names that match what I have entered. Which is quite cumbersome. Surely there has to be a better way of detecting an Empty ?

Many thanks

Andrea

• By POKLU
Hi there!
I think this post may get slightly depressing, so, reader discretion is advised.
I'm writing this to summarize what I did during my first game development process and hopefully someone will find it helpful.
So, in 2016 I tried to make a futuristic racing game in Unity. It was just for fun and learning purpouses but I knew I want to try to put it on sale on Steam. I asked some of my friends if they would want to join me in the adventure. And this is probably the first thing not to do because if you ask anybody if they want to help you with creating and selling a game, they will say "sure, absolutely!" and then when you start to assign duties they never text you back again. And that's demotivating.
Couple of months went by, and the game was more or less complete so I decided to put it on the thing that doesn't exist anymore, which is Steam Greenlight. I was extremely excited to see other people comment about my game (seriously it was super cool). My greenlight page wasn't the most popular one, but it was doing pretty good. Eventually the game passed, and was ready to be put in the store. This was truly amazing because it wasn't easy to pass the Greenlight voting.
The game was kind of shitty as I look at it right now, but it was the best I could do back in 2016. It looked kind of like a 4/10 mobile game. Nevertheless people were interested in it since it was unique and there wasn't (and isn't) any games simmilar to it. I posted about it on some gaming forums and some Facebook groups, just to see what people would think about it. And every comment was always positive which made me super excited and happy. Eventually, my game went on sale.
At the beginning my game was selling ok to me, but when I read other people's stories, I understood that my number of sales was below miserable.
Back then Steam had something called 5 "Product Update Visibility Rounds" which means that when you update your game, you can use the "Visibility Round" and your game will somehow be very visible in the store. Essencially you get 500,000 views for one day. This used to dramatically (to me) increase sales, so I used 4 of them in like a week, which is exactly what you're not supposed to do. I left one round for later, because I knew that my game is not the best and I may want to remake it in the future, so the last round may be helpful to get some sales. After about 1,5 month the game was dead and it wasn't selling anymore. I was kind of disappointed but I was waiting to get my revenue.
This is when I got my first big disappointment. On the Steam developer page, my revenue was about $1000 and when I got the payment, it turned out that half the people who bought my game had it refunded. So my total revenue (1,5 month) was around$600. So my game was completely dead. I abandoned it and moved on.
About half a year later there was a Steam Summer Sale which I forgot I applied for and the game made \$100. This was the point when I decided to refresh my game. I spent 6 months remaking it and when I was happy with the result, I uploaded it on Steam. I made a sweet trailer and everything and used the final "Visibility Round", expecting to revive my game and start the real indie dev life.
Huge f*ing disappointment #2: As it turned out, Steam changed the "Visibility Round" and now it doesn't do anything because I didn't get 500,000 views in one day... I got 1,276 views in 29 days.
I started searching for a PR company. I messaged about 8 different companies and one contacted me back. I explained that my game is out already, but I recently updated it. The PR company was cool, very friendly and professional. Unfortunately a revenue share wasn't an option and they weren't cheap (for me). They understood that and not long after that, we made a deal. I won't get into the details, but everything went cool and my game was supposed to get some attention (press announcement). I even got a chance to put my game on the Windows Store, which again, was super exciting. Microsoft guys were extremely nice to work with so if any of you are planning to put your game on sale I strongly recommend considering Windows Store.
For 4 months the PR company was instructing me on how to improve my game. It really was helpful, but come on, 4 months flew by. Although they were professional, suddenly we had a big misunderstanding. Somehow they didn't understand that my game is out already. Anyways, we were getting ready for the announcement and I had to make my website, which cost me some money. Also I had to buy a subscription for a multiplayer service for my game. (It uses Photon Network, I had to buy a subscription so more people could play online at the same time.)(Photon Network is great, strongly recommend it.)
Disappointment #3: I bought a page promotion on Facebook. Estimated: 310,000 people interested, 40,000 clicks to my page. Reality: 0 people interested, 20 clicks to my page.
The announcement happened.
And nothing more. 80 Steam keys for my game went out for the press, 41 were used, 24 websites wrote about my game, 6 hateful comments, 2 positive, 17 more visits on my Steam page, 2 copies sold which doesn't matter because it's to little for Steam to send the payment.
Estimated views of the press coverage: 694,000. Reality: probably less than 300.
I don't give a f*ck at this point about my game which I have worked on for 10 months. I don't care about all the money I spent either. I don't blame anyone. I'm just not sure what not to do in the future. I guess the main lesson here is don't try to revive a game, just move on and computers suck at estimating things.
Now I'm working on another game and I'm planning on making it free to play. I really enjoy making games, but it would be nice to have some feedback from the players.
If any of you want to know something specific about my game or anything, feel free to ask.
I expect nobody to see this post, so I'm probably going to paste it on some other forums.
Cya.
(sorry for the title being slightly clickbaiting)