Jump to content
  • Advertisement

Gameplay Game balance versioning

Recommended Posts

Hi guys

I want to know what what is good practice to version balance update in a game.

We have game version like 1.1.0 and our balance properties are on the server. We want to notify user that balance changed, but we want to attach some version to that.
So for example we could display info in the game and change the version to 1.1.1 (still in application manager app will have version 1.1.0 because we don't update whole app just change version inside)
Or we can add another version of server or balance itself, or maybe show date.

What is a good way to keep game version and display balance updates? 


Share this post

Link to post
Share on other sites

Using letters added to the version, which are updated server side. In example:

1.1.0a, 1.1.0b...

Store version remains as 1.1.0 and server version updates with letters. When the game version increases, you reset letter to A.

Share this post

Link to post
Share on other sites

That's some option, we can also add 4th number But still thinking about more cleaner way of doing that.

Share this post

Link to post
Share on other sites
2 hours ago, likon said:

and change the version to 1.1.1 (still in application manager app will have version 1.1.0 because we don't update whole app just change version inside

Not really, 1.1.0 displays "1.1.0" as version, 1.1.1 should display version "1.1.1". Something in client should change thus.

You likely also want to handle the case where both the server and the client change.


I would think just have a single version for both server and client, even if client is the same for 99.9%. (ie small update patch in that case). It solves a whole bunch of trouble if a single number identifies the entire system rather than having to retrieve the exact configuration afterwards in some way. It also reduces testing if a single client version can talk to a server.

Share this post

Link to post
Share on other sites
3 hours ago, likon said:

We want to notify user that balance changed

That is always risky.  Many people are deeply attached to their specific settings, and will vocally complain about how a character class has been 'nerfed', how they will refuse to play, how they will flood every online forum telling them about it, and more.

In online games, I prefer the policy that they must always have the latest version in order to play online. It simplifies many things, and avoids incompatibility issues. While they should not be problems, sometimes even minor compilation differences can be enough to cause different builds to be subtly incompatible.


Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement
  • Advertisement
  • Popular Tags

  • Similar Content

    • By Erik Nivala
      So, as the title says i am trying to figure out a good way sync all that information with other players in Unity. My problem is that i can't come up with a good solution since i am used to creating classes for everything e.g. attachments are its own class and then the weapon would save a reference to that attachment. But since you can't send custom classes over [Command] & [ClientRPC] i am a little stuck. A solution for this would be giving each attachment for a slot a unique ID and then passing the ID to other player but i feel like that is very error prone if other ppl add a new attachment or the IDs get mixed up.
      Is there a "standard" way that this is usually done that i am missing?
      I am fairly new to programming so any help is appreciated!
    • By Ibragim Vykov
      Hi, everyone! I'm a self-taught indie developer. After two years of learning programming and gamedev, I finally released my first game. It's a hardcore arcade with simple one-tap control. Check it out please, it would mean a lot to me. And also I'd be very interested to hear your feedback.
      Get it on Google Play: 
      Official trailer:

    • By Jemme
      I have built games in the past in unity and XNA, android SDK etc. but it’s always been quite specific, when building a small Game Engine or more accurately a sub-set of code that is reusable across projects the tendency to structure the project falls towards composition of objects that are more "generic" than toward inheritance-based models.
      For the Engine specific sub-systems, we have components such as a MeshInstance/Renderer that contains a Handle to a Mesh in a MeshLibary and a handle to a Material from the material library which in turn hold PSO data etc. We can also have Components such as SoundSorce, which are managed by an AudioSystem and contains the data to specify what sound, at what volume etc.
      These systems can be Set up and shut down from within the Engine/Game class such as:
      void Engine::Run() { if (Initialize()) { //Main loop call the systems //Dispatch Events } ShutDown(); } void Engine::Initialize() { //Init all sub-systems FileSystem.Init(); RenderSystem.Init(); PhysicsSystem.Init(); AudioSystem.Init(); WorldManager.Init(); //Creats Entities } void Engine::ShutDown() { //shutdown all sub-systems WorldManager.ShutDown(); AudioSystem.ShutDown(); PhysicsSystem.ShutDown(); RenderSystem.ShutDown(); FileSystem.ShutDown(); } But where does logic go? in smaller games like XNA or SFML you generally create some managers, let’s take the example of darkest dungeon.
      They have various managers like:
      Darkest Dungeon Manager Campaign Selection Manager Estate manager Party formation manager Town manager etc.. All the logic and systems to run the game are based within the managers, and objects contain scripts of data that are fed thorough the systems.
      In a small reusable code base how would you separate the logic from the engine, should like the smaller games all the managers just be shoved into the Engine Class even though that goes against a reusable data-driven framework? Should they just be stuck in a GameLogic system that's is initialized in the Engine Initialism function. And how do people tend to connect data scripts to the other various engine systems without causing too much game specific coupling. For example, you can use an Event System, but firing and event such as DAMAGED_BY_ZOMBIE and having the internal engine respond to that seems to break the separation from the low-high level of the engine system.
      Would be great to here some opinions from the community on this subject as it is quite a vital and potentially problem prone aspect of engine/game development.
    • By Anikieth
      What softwares should I prefer for like really basic game development,and basic requirements for starting into this
    • By Strifexxx
      Hi guys, check out our new game about sticks. Feedback welcome!

      Stickman Destruction 5 Annihilation is a sequel to the legendary game of survival, where to make incredible tricks, driving different transport and getting into different crash! The game is made in the best traditions of simulator games with ragdoll physics elements. Make incredible jumps and tricks and destroy the enemy! Your task is make the finish alive or dead!

      Download on Google Play: https://play.google.com/store/apps/details?id=com.stickman.destruction.annihilation5

      Website: http://strifexxx.wixsite.com/cyberpony
      Facebook: https://www.facebook.com/groups/577850349043463/
      VK: https://vk.com/club122273704
    • By Helgraves
      I am seeking a few team members to help me run some survival sandbox game servers through a 3rd party hosting site. My goal is to replace "official" servers in the sense that our servers offer the best experience for players of all types (not easy to do!). Why do I need a team for this? Because the game we are working with has far more potential than most people realize - it is my hope that I can bring a better ruleset to the table that focuses more on fun-factor than a genre label.
      My end-game goal is to run quite a few long-term small MRPG servers across multiple games/platforms (platforms of course based on availability of supported server hosting). Personally, I see multiplayer and co-op gamers gravitating towards a more personal experience with small, MRPG servers, as opposed to something like an MMORPG.
      Current Progress:
      Design Document
      Server Patch Notes
      A little about me:
      I took 6 years of high school and have zero college education Zero game/software development experience Hate math, can't code, also can't create any type of art assets Musician of almost 30 years Work on songwriting and music production in a metal band based in my region Only have hobbies for things I'm passionate about, have had some success professionally, with more to come Can I build a toaster, no, but I can tell you exactly how it should work without confusing you That being said, I have made a lot of progress this year on my own - and currently have one server up and running. I am at a point now where I need to construct a small team to help me get my other servers up and running, as well as adding/creating custom content. 
      Currently looking for:
      1-2 x Mod Developers 1 x Server Administrator You must have access to the game we are running our server on, as well as any other tools that are needed to get the job done (like Unreal 4 engine, software development tools, etc.)
      I am more than willing to provide information as requested for anyone interested!
      Thank you for your time,
    • By Hashbrown
      Hopefully this is a simple question for some of you. I've managed to create a nice fly cam:

      ...but now I'd like to make a standard fps control. If I keep the y axis at 0, I don't fly up or down and I obviously move around at y0, but if I look down, my player slows down. Keep in mind, I'm using my own little engine btw.
      I'm guessing this has to do to the fact that my w,a,s,d forward vectors are calculated using the model matrix which also calculated XYZ rotation. Making a google search, I found this link, but it's an Unreal related question, and on top of that using their graphical blueprint whatever you call it. But it's pretty much the same question and (I'm guessing) possible answer.
      What I think I should do
      Should I make a completely different model matrix that ignores the X and Z axis which I can use for the player's movement? I'm a little confused in what I can do, and I can't find anything on Google that isn't THREE.js or Unity related.
      I'm pretty sure I have to disconnect the look controls from the movement controls. I'd like to be able to move towards where I'm looking without flying up or down, but at the same time be able to apply gravity at some point. But for now, I'd really like to solve that "look down move slow" issue. 
      Thanks all for your support. Below I'll share some of the code I wrote for the movement.
      // Controls flyCam(camSpeed) { if (Game.Input.Key.rightArrow.down) { Game.camera.translateX(camSpeed); } if (Game.Input.Key.leftArrow.down) { Game.camera.translateX(-camSpeed); } if (Game.Input.Key.upArrow.down) { Game.camera.translateY(-camSpeed); } if (Game.Input.Key.downArrow.down) { Game.camera.translateY(camSpeed); } Game.camera.transform.rotation.y += Game.Input.Mouse.delta.x * (200.0 / Game.Renderer.width/2) * Game.Time.step; Game.camera.transform.rotation.x += Game.Input.Mouse.delta.y * (200.0 / Game.Renderer.height/2) * Game.Time.step; } // TranslateXYZ translateX (speed) { this.transform.position.x += this.transform.right.x * speed * Game.Time.step; this.transform.position.y += this.transform.right.y * speed * Game.Time.step; this.transform.position.z += this.transform.right.z * speed * Game.Time.step; } translateY (speed) { this.transform.position.x += this.transform.up.x * speed * Game.Time.step; this.transform.position.y += this.transform.up.y * speed * Game.Time.step; this.transform.position.z += this.transform.up.z * speed * Game.Time.step; } translateZ (speed) { this.transform.position.x += this.transform.forward.x * speed * Game.Time.step; this.transform.position.y += this.transform.forward.y * speed * Game.Time.step; this.transform.position.z += this.transform.forward.z * speed * Game.Time.step; } // Model Matrix Mat4.translate(translation, this.position.x, this.position.y, this.position.z); Mat4.scale(scale, this.scale.x, this.scale.y, this.scale.z); Mat4.rotateX(rotateX, this.rotation.x); Mat4.rotateY(rotateY, this.rotation.y); Mat4.rotateZ(rotateZ, this.rotation.z); Mat4.mul(rotateXY, rotateY, rotateX); Mat4.mul(rotation, rotateXY, rotateZ); Mat4.mul(rotScale, rotation, scale); Mat4.mul(model, translation, rotScale); // Update Direction Mat4.transformVec4(this.forward, FWD, model); Mat4.transformVec4(this.up, UP, model); Mat4.transformVec4(this.right, RIGHT, model);  
    • By davejones
      I am trying to package a game to an ios device, but I am getting the error "Provisioning profile doesn't match the entitlements file's value for the get-task-allow entitlement". Where do I find the entitlements files and change the value? I am packaging for distribution, and am using a distribution profile and certificate. This error appears in the output log of an unreal engine 4 project which is on a mac operating system. 
    • By drcrack
      It is a combination of fundamental RPG elements and challenging, session-based MOBA elements. Having features such as creating your unique build, customizing your outfit and preparing synergic team compositions with friends, players can brave dangerous adventures or merciless arena fights against deadly creatures and skilled players alike.

      More info: https://zealrpg.com/about
    • By Gnollrunner
      I wanted to get some thoughts on player character collisions in MMOs for my project.   As I recall the original Everquest had them, however WoW didn’t. I also remember Age of Conan had them but I’m guessing they were done on the server which was highly annoying because you could collide with things that were unseen. I’m not sure how EQ did them but I don’t remember having this problem in EQ, but it was a long time ago.

      My general idea as to do player collisions on the client side. A collision would only affect a given clients player character as seem from that client. On the server, characters would pass right through each other.  This means that because of lag, two players might see different things during a collision or one may think there was a collision while the other doesn’t, but I figure that’s less annoying than colliding with something you can’t see and everything should resolve at some point.

      There is one more case which I can see being a bit problematic but I think there might be a solution (actually my friend suggested it).  Suppose two characters run to the same spot at the same time.  At the time they reached the spot it was unoccupied but once the server updates each other’s position, they both occupy the same space. In this case after the update, a force vector is applied to each character that tries to push them away from each other. The vector is applied by each client to its own player. So basically player to player collisions aren’t necessarily absolute.

      I was also thinking you could generalize this and allow players to push each other.  When two players collide their bounding capsule would be slightly smaller than the radius where the force vector would come into play. So if you stood next to another player and pushed he would move.  By the vector rules he is pushing back on you (or rather your own client is pushing) but since your movement vector could overcome the collision force vector, only he moves unless he decides to push back. You could add mass calculation to this, so larger characters could push around smaller characters more easily.

      Of course there are griefing aspects to this, but I was thinking I would handle that with a reputation/faction system. Any thoughts?


  • Advertisement
  • Popular Now

  • Forum Statistics

    • Total Topics
    • Total Posts

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!