Short description of the game

If there’s one thing that I should start to do with this blog, it’s to explain a bit more what is the game I’m working on.

My project is to create an online game with some of the usual RPG elements you find in MMOs : equipment, stats, classes, skills, PvE. Classical but well-rounded game mechanics. Contrary to most RPG, I don’t intend to add a story to the game, only a context and an ambience. This is the reason I’m only talking about “RPG elements”, and not a full fledged RPG, where role playing/story is normally a core part of the game. I’ll probably detail the reasons of this choice in a future post, but one of the main is that the core gameplay that I’m targetting is all about player interactions and player cities. Open world and PvP are parts of these interactions. Note that I’m trying to build the PvP in a somewhat “political” way so that the abuses usually seen in PvP games (chain kill, grey kill, spawn kill, etc) would be naturally detrimental to the PKs, and force them to choose between being able to have normal player interactions and poor behaviour (not that I’m fundementally considering such lacks of fair-play “bad”, it’s player freedom, but retaliation from the PKed players should be possible by some means, if not from fighting).

Regarding the game scale, the goal is to create a server able to handle between 1k and 2k concurrent users. I’ve already developped some months ago a game server that went to production and handled above 2k concurrent users. Thanks to this prior experience, I’m confident that I should be able to reach these numbers even with a more CPU-hungry game.

I’ll conclude this post with a project name : Metaworld. It’s not very specific, but its purpose is mainly to give the game I’m working on a name that can be used to designate it. That way, I can avoid to use “the game”, “the project”, etc. It’s way more practical!
If I have to pick a real name at some point, I’ll take the time required for it. Picking a definitive name is not exactly a priority at this time considering how much Metaworld can change.

2 thoughts on “Short description of the game

  1. Hey there. I got clued into your blog via reddit’s Screenshot Saturday thread. Metaplace looks like a very interesting project!

    Some questions for you to satisfy my curiosity:
    * What language/framework/tools are you using to develop Metaplace? I’d really like to read more about the server-side development.
    * Is the world hand-crafted or procedural generated?
    * What games have been your inspiration for Metaplace? The ‘sandboxy-ness’ of it (player cities, deep crafting, focus on player interaction) seems like it has inspiration from UO or SWG.
    * Are you really writing your own UI library from scratch? That seems awfully tedious :P

    Thanks for taking the time to answer, and for the interesting blog :)

    1. Hello, and thanks for the comment! I’ll answer the best I can to your question about Metaworld (not Metaplace, or at least not for now ;p):

      * Client, server and tools are all developped in C#/.Net.
      The client side is ran by a custom framework using an entity component system based architecture. All the client specific tasks (graphics, input, etc) of the framework are currently built above XNA. The abstraction is made so that I’ll be able to switch easily to other frameworks/APIs since I don’t intend to keep XNA on the long run. MonoXNA is the obvious candidate at the moment.
      The server use the same framework, with the difference that, as an application, it is more parallelized than the client. The ECS I’ve developped is built upon a principle of application sharding, which means that there are no dependencies between systems to allow easy splitting/threading (the application is mostly lock-free), everything being transmitted through messaging that can be either internal to the application or transmitted throught networks. Beside this, I don’t think I’m doing anything fancy that would be worth mentionning, I use fairly standard systems for space partitioning, networking and such. If you have more specific questions, feel free to ask :)

      * The world is both hand-crafted and procedurally generated. Terrain height is hand-made, which allows me to make it way more interesting than what I could get with current procedural generation algorithms, even if it has boundaries. All the systems based on terrain height are also hand-made, such as the piezometric surface one for water management.
      So far, everything else beside these is procedurally generally. Which includes vegetation, mines, terrain nature, biome conditions, etc. It is something that was needed since a given zone can undergo climatic changes depending on the players actions. It would not have been viable otherwise.

      * Overall, I don’t really have specific inspirations for most of the game features. I’ve read many online players feedbacks and suggestions during months before even starting to develop the game. I compared those thoughts to mine, and determined what was relevant for Metaworld considering that I wanted to create a game above a virtual world and not a virtual world to support a game, which naturally tends to favor sandbox elements such as player cities, deep crafting or player interaction. I couldn’t say what originally inspired me for those.
      Regarding the graphics, Cube World, obviously, though I’ve made it a bit closer to my taste by using a different character model style and less saturated colors, more in the pastel tones.

      * The UI is written from scratch, yup. It’s something I’ve regularly done in past and often considered tedious, but it means that I’m quite used to it. Enough to have more fun writing it than I was expecting initially.

Leave a Reply

Your e-mail address will not be published.