Jump to content
  • Advertisement

Project: unirule


Sign in to follow this  


Welcome GameDev, here we are, finally.

What I’m attempting to create is a strategy game unlike any-other I’ve ever played or anyone in my immediate social circles have ever played. What is yet to be determined is if it’s actually going to be any fun. I’ve got a lot of, what I think are, novel ideas and am curious to see how it will all play out.

If you’re unfamiliar, the project I’m working on is called unirule. It’s a global strategy game involving 50+ players. The beginning of the game takes place during early human settlements. The world will be home to thousands of simulated people called simulin. Your goal in this game will be to gain majority influence over all simulin.

The goal of this blog-series will be to explain further details about specific game elements. In this specific entry I will give a brief overview of the four main components of this game. I will then write a blog entry for each of the four main classes a simulin( simulated person ) can have at the beginning. I haven’t the foggiest idea how long this endeavour will take, could take 6 months, could take 6 years; however, what I can say though is by the end of this blog series you’ll have a full understanding of just how this game will work.

Now, I’ve got some questions for you( rhetorically ):
- Do you enjoy the Civilisation series?
- Do you enjoy the SimCity series?
- Do you enjoy MMO Browser games such as OGame, or Zelderex?
- Do you enjoy 4x strategy games?

If you answered yes to all of those questions then what I’m making is meant for you( and you should subscribe :) ), if you enjoyed two or three then you’ll want to stay posted, otherwise this project may not be your cup of tea( just saying ).


The most important asset you’ll acquire in unirule will be simulin. Each simulin will have 5 slots of influence available to the worlds players. Once a player has acheive influence over 3 of those 5 slots they will gain majority influence over that single simuin and their over-all Influence Counter will increase by one. If there are 5000 simulin in the world, a player must gain influence over 2501 simulin to achieve victory.

The simulated economy in unirule will be backed and bench-marked by the man-hour. All initial value will be derived from the number of man-hours it takes a specific simulin to complete a specific task. Of course no two simulin are alike and a simulin’s notion of ‘value’ is entirely relative. All actions you assign to simulin will require a certain number of man-hours to complete. And of course there will exploitable sources of man-hours such as animal-power, harnessed energy, and slaves.

With fear and awe you’ll challenge other players. The outcome of battles will be determined long before the first strike. The first to flee will taste defeat and those who rise to the occasion will have their spoils. Intimidation will come with training, moral and honour; however, one can choose to be ruthless and remove simulin from the simulation.

The more socially organised and well defended players will acquire prestige. Word will spread of the Monuments, oral-traditions, and wealth of your people so as to attract others. Prestige will influence how successful you are during negotiations and how easy it will be to have demands met or awe and wonder through generosity.


So there you have it, an glimpse into the game I want to make and have given so much thought to. There is much more to explain, specifically what the player will actually do. I’ll be explaining in further detail how the players will play this game when I explain each of the four main classes.

If you’re at all interested in the technical underbelly of the framework, I have another blog series called unirule:framework. In it are more details about the logic and coding that supports this game but not so much the actual game-play. Updates to that blog will be done each time there are additional features added; however, they will be less frequent now as I’ve changed focus to the actual game.

In my next blog in this series I will introduce the Farmer and explain in full detail what the player can do with their farmers. However, there is a ton of programming to be done so it may not be for some time.

Ultimately, in the end I want the four bases classes functioning and have game sessions involving

multiple players to see how this all works. And if in the end it lacks, so be it...

I will haven taken 
my crack at it. 😄

Sign in to follow this  


Recommended Comments


Now, I’ve got some questions for you( rhetorically 😞
- Do you enjoy the Civilisation series?
- Do you enjoy the SimCity series?
- Do you enjoy MMO Browser games such as OGame, or Zelderex?
- Do you enjoy 4x strategy games?

Yes, yes, yes, and yes.


Share this comment

Link to comment
22 hours ago, Rutin said:

Yes, yes, yes, and yes.

Fantastic...  I think we may have been pub buddies in a past life or something. :D 🍺

Share this comment

Link to comment

Most likely! :) I cannot wait for your next post!

Share this comment

Link to comment

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
  • Blog Entries

  • Similar Content

    • By Shaarigan
      Dear reader,
      for an upcomming ARPG hobby project I'm looking for a Story Writer/ Story Designer to give the story a heart and body. Are you in search of a challenge and want to work on a game with a unique story told in it's own universe developed with state-of-the-art technology? Then this might be your chance!
      I'm a long time gamer, designer, developer, board game fan and hobbyist board game author, passionated in games since age of 6 with addiction to video games. Working as senior in the games industrie at day, at night tinkering at my very own game engine and ideas for games I want to make with it popping into my mind from time to time. While most of them stay at the idea level, a few have become real game projects at least in planning and I created w complex universe arround all those games during past 20 years.
      The Game
      The game this post is about is a hack-and-slay action role-playing game in a steam punkt and fantasy mixed setting of a world far in it's own history. A world once home for a high spiritually race called the ancestors, now a place of political riots, misery and cult of gods and other things that let the player explore the abyss of humanity facing a big evil that throws it's shadows over the imperial capital. The player will explore dark and scary places of long forgotten cultures with one of 6 playable races in cooperative multiplayer.
      Your Tasks
      Transfer existing basic points of Races, Cultures and the History into an encyclopedia used by game designers and developers Fill in the gaps so that anything becomes plausible and interesting Plan and design the characters that will take part in the story Plan and design the places based on the encyclopedia Polish the games story  
      At least some experience in character design Good communication skills and a reliable response time Disciplined self-reliant and motivated work style Fluent in spoken and written English A Discord account At least 5 hours per Week to work on this project  
      Considered a Plus
      Knowledge of the German language As passionated as I am for letting others be part of interesting worlds Working as professional in the industry too  
      I offer
      No money at the moment because I'm working in my spare time and at my own charge, but a friendly, motivated and passioned teammate in a highly professional work environment, technical knowledge from a long-term industrie professional and and a share once the game is in a polished state.
      Dear reader, thank you for taken the time to read the full post and if you have any questions or want to work with me/us, please feel free to send a PM or Discord Message with a short introduction and a brief time schedule so I/we have an overview to plan further development.
      Thank you in advance!
    • By RoKabium Games
      The early concepts of the ”Something” focused on it coming out from the wall behind the player. Since it visually looked terrible, we scrapped that idea and changed it to a side view instead which looked much better. What do YOU think?
    • By Uttam Kushwah
      This article is on wikipedia says that we can change the behavior of the game entity by adding or removing the component at runtime how it goes 
      i don't know.
      What i am doing is, I have a gameObject class which is having four components 
       class gameObject
            #define MAX_COMPONENT 4
            unsigned int components[MAX_COMPONENT];
              for(int i=0;i<MAX_COMPONENT;i++)
      i don't use inheritance, Whenever i make the new game entity i add an gameObject in the gameObjectManger class using the game entities constructor 
      with all of its components filled at the time of game entity creation like index for rigid body , mesh and etc.
      Then i use these gameObjects at individual systems to run the game like below 
      // For renderer 
      for(unsigned int i=0;i<manager->gameObjects.size();i++)
              unsigned int meshIndex = manager->gameObjects.components[MY_MESH]; //mesh data
              mat4 trans=(*transforms)[bodyIndex];// The transformation matrix extracted and spitted out by the the Physics engine 
              GLuint lMM  = glGetUniformLocation(programHandle,"Model");
              glUniformMatrix4fv(lMM, 1, GL_FALSE,&trans[0][0]);
              glBindBuffer(GL_ARRAY_BUFFER, mesh_Entries[meshIndex].getVertexBuffer());
              glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mesh_Entries[meshIndex].getIndexBuffer());
              lMM  = glGetUniformLocation(programHandle,"pick");
              lMM  = glGetUniformLocation(programHandle,"pickScale");
              // This is very basic rendering since all object's indices are treated as
              // indexed based. Stored in element buffer with indices and vbo with vertices
              // for each single gameObject having their own VAO and IO. Optimization need to be done later on.
                              GL_TRIANGLES,                                // mode
                              mesh_Entries[meshIndex].getIndicesSize(),    // count
                              GL_UNSIGNED_SHORT,                           // type
                              (void*)0                                     // element array buffer offset
      but i am not getting it how to add a new component like LogicalData to the gameObject not about how to point from gameObject but how to build one 
      is this should be my approach 
      struct LogicalData 
       float running_speed;
      vec3 seek_position;
      vec3 attack_point;
      Character : public CharacterController
      gameObject* me;
      // methods to manipulate gameObject content using the component id for each component in their container
      // i.e is to update component[LOGICAL_DATA] in the gameLogicContainer 
      and then a global container which hold this logical data and every entity has a id to it using gameobjects  
      or i should not be doing this at all. i can just put all logical data  into the any game entity like this and push the physics and rendering data back to gameobject
      Character : public CharacterController
         float running_speed;
         vec3 seek_position;
         vec3 attack_point;
      // methods to manipulate above
      Any comments will be greatly appreciated.
    • By elviras9t
      I created this post due another radix sort post for CPU. This is Radix Sort for GPU. Able achieve 900 Mkeys/S, and sorting 8 million elements in 9.3ms (on RTX 2070). Written on C++ with Vulkan API and GLSL. Based on bitfield and warp hacks. For understand this shader code, need very good knowledge of bitfields and GPU subgroup. For NVIDIA, also need knowledge of subgroup partition extension. 
      Github source code: https://github.com/world8th/RadX
      Classification: Radix Sort (LSD)
      Stable: yes
      Parallel: yes, vector supported
      Bit width: 8-bit (Turing), 2-bit (other), can be changed
      Device type: GPU
      Also, how to get fastest GPU radix sort ever?
    • By lollydipstick
      A new creature design I've been working on. The Desert Bloodstrider (Mortestruthus corpusicco) is an endothermic pack-based predator that lives in the arid shrublands of the dimension Achlys. Using its proboscis-like face, it can inject digestive juices into its prey like a spider, allowing them to use their spongops (the sponge-like organ held underneath the head) to absorb the liquefied innards.

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!