Recap (once again)

(Ok, I’ll start by mentionning that this post was intended to be online three months ago, in december. Unfortunately, I broke the blog when I tried to update it to a more recent version, and I left it untouched/broken until now… I paid it dearly in terms of spam to remove, not gonna do that again. Welp.)

So, another 13 16 months later, and here we are (again).

Believe it or not, but despite the lack of news, I am still as commited as ever to the game. Irritatingly so, I would say, given how frustrated I am by this last year’s poor progress, so, so far away from my expectations.

The last few months of 2017 and most of 2018 has been a succession of events that ate little by little every speck of free time I could dedicate to working on the game. Some positive, some negative, but the end result is the same nonetheless : I have had little to no (viable) time to work on significative feature. It does not mean that I did nothing for all that duration. But I have little to show as most of it ended up being background or game design work, rather than graphical, player-appealing stuff.

What has been done

Overall, most of the time I have worked on the codebase has been used to simplify or refactor (improve) code that was getting hard to maintain. There is still more work to do on that front, but the situation is already much better than it was a few months ago. The plus side of not working on code for an extended period of time is that it makes it obvious what needs to be clarified, improved, or simply documented more adequately.

Failsafe behaviours have been added in quite a few systems that were previously crashing the game’s client. The server was already fairly stable in that regard.

The rendering engine has been improved to better manage animated entities. Any game object can now be animated at a much fewer cost than before.

Persistence of character data has been thoroughly implemented (inventory, skills, location…), what gives a more MMO feel to the game. It’s also much easier to test it as progression is saved properly.

Support for multiple worlds (versus a single map) has been prepared. It is not yet used, but it is ready. As I detailed in one of the first few blog entries, personal “housing” space is planned, and it’s most definitely one of the next things I hope to work on, making multiple worlds a necessary development.

Plenty of minor bugs have been fixed. Even if I can not work on big shiny features, I can at least fix bugs :)

What is coming

So far, 2019 as been significantly more active on both the game design and development fronts. Not much to show for now, I’ve mostly done cleanup, fixes and created the bases of incoming game systems.

Developments, by order of priority for the time being :

1. More refactoring. As a whole, I am rather happy with how I have architectured both the client and the server. But I have made a few poor decisions that need to be addressed now, before they become a problem. It’s more an “on-the-go” thing than an “it’s done” thing, but it’s the top priority nonetheless.

2. Personal spaces. It is a core feature of the game, and I need to have at least one new of such features up and running, even just to have something to show. It implies quite a lot of sub-systems to implement (“housing”, crops, cycles, …) or move forward (player cities), so it will be a time-consuming development. I’m still finalizing the game design for it at the moment, but I hope to start developing it very soon.

3. Another graphical rework of characters. It is one of the few things I have prepared on the side, and certainly nothing critical, but I have slightly adjusted the look of characters to return to something more akin to the first game models I created years ago, except at a slightly higher voxel resolution. It’s one of the things I had actually plan for 2019 that is already partially done.

And there we are. I would like to say that I’ll try to news more often, but I’m more likely to code when I have some time than to write a blog post. I’ll do my best either way, but the past proved it was far from enough, so let’s see how long it will be until my next post. See you soon (hopefully).

Screenshot saturday #10

Screenshot a few weeks old, this time it’s all about the new vegetation that can be found in the desert biome. Instead of a simple empty… desert, I added plenty of herbs and cacti, that can usually be found in dry areas:

Desert environment
Desert, now with some green touch. Gate in the background.

It’s recap time

It’s been no less than 13 months since I last updated the dev blog, so, it’s more than time for a recap and some news about Metaworld. What happened during the last year, what’s going on at the moment, and what I plan for this year.

The plan that was

I initially started working on Metaworld’s prototype at the end of 2014, after a few years digressing around voxel engines. For most of 2015, I worked fulltime on the game, gradually building a robust engine both on the client and the server sides, and implementing the first gameplay mechanics. I initially expected a release in the second half of 2016, something that didn’t happen, as you can see.
The plan actually changed in late 2015. At that time, I was evaluating the remaining work load at roughly six man-months. What would have matched the schedule if I hadn’t to include the business/marketing aspect of releasing the game. The fact is that I gradually got late in the development due to unexpected but necessary graphical improvements and a rework of the character style to differentiate it more from the existing offer (mainly Cube World, that is).
In a best case scenario, the game would have been released at the end of 2016 or early 2017. One additional year was unfortunately a bit too much for me, so I accepted a job offer for a software engineer position, and since then I’ve kept working on the game on my free time.

What was done in 2016

Not being fulltime on the game allowed me to stop focusing purely on development, and instead to make a game design check up. I already had some doubts about some systems I designed that didn’t seem to work as well as I thought they would, so that was the perfect time for it (note that if I kept working fulltime I would have needed to do that check up anyway, what would have pushed the release even further).

The check up made it obvious that the game has two major issues:

  • the vastness and continuity of the overworld: this is a desirable feature for a virtual world as it improves immersion and creates a true sense of a “world”. I planned mechanics to go with the immensity of the world (mobile resource hot spots, dynamic mob spawns, rare events/object spawn, etc), and reward exploration, but at the moment the incentive is not that strong. This problem is something that I’m still working on. Many possibilities, but they’re all give and take.
  • the player city/housing system: it is suffering from the same “messy town” issue than most player city systems, and isn’t working well with terrain variations. To put it simply, it’s ugly. I have (mostly) settled on a solution, but not on the details. It’s very likely that I’ll change it in favor of an procedural/organical growth approach. Basically, a player plant a city seed, and by feeding it with specific materials, a city layout creates itself around (with either complete buildings or purchasable building spots).

Beside the check up and work on the game design, I’ve mostly done bug fixes, added UI details, and did a lot of graphical experimentations (shadows, ambient, occlusion…), the most notable being a deferred renderer.

The current state

Since the beginning of the year, I’ve mostly worked on adding a DirectX 12 support. Note that you can still play the game with XNA, what will be useful for older PCs.
The DX12 support was done with the goal of adding a VR support to the game (yes, “that” VR, as in Virtual Reality). At the time I’m writing, both of these objectives are close to completion, only the 2D is left to implement, and I’ve experienced the game in VR quite a bit :). I still have a lot of polish to do, but all of that makes a good 2017 start!

The plan that is

For now, I don’t intend to go fulltime again. I have the necessary resources for it, however I still need time to rethink the parts of the game design that don’t work, a task that I’m most efficient at when slowly processing informations and ideas, rather than when working on it fulltime. In the meanwhile I’ll keep improving the tech that runs the game, add content, and implement the remaining gameplay mechanics. I’m committed to create a great game, and will keep moving forward, even if a bit slowly.

Additionally, I’ll try to update the dev blog more often. It usually takes me a lot of time to write a post, but since a few people recently asked me about the game by mail, it seems as worth as ever!

Until next time.

Screenshot saturday #9

A bit late as usual, but here is last week’s saturday screenshot.

A shot of a character in the new volcanic environment, that is still being developed. If you’re not following me on Twitter, you might notice the slightly different character. I’ve indeed reworked them, something I’ll talk about longer in a future post. But for now:

Volcanic environment
Volcanic environment with glowing hot rocks.

About the Art system

Art System Window
The window dedicated to Arts: simple!

I’ve been working lately on the Art system implementation. It took some time to code it, but most of the work actually went into its design. The window in the screenshot above is not fully self-explanatory, so let’s talk a bit about this system, and what it provides.

Why it exists

Usually, MMOs and online RPGs tend to be very restrictive when it comes to what they allow players to do. Crafting jobs are limited in number or levels, you can’t change your class or use a weapon other than the intended one(s), etc. While I can live with such limits, I rarely like them, mostly because if you want to experience what is beyond them, they become a cheap way to force you to consume again the same content with another class/job/whatever by creating an alt. And if there’s one thing I’m sure of about MMOs, it’s that they already take more than enough time for a single character.

As you can guess after reading the previous paragraph, I didn’t want to put too many limits regarding how characters can be built in Metaworld. Or rather, in this case, I didn’t want to put too many locks that couldn’t be removed. The Art system is the key for these locks.

How it works

A new player does not know any Art. It’s a novice that can’t do much until it acquires some bits of knowledge about how to use a weapon or a tool, what will be done by starting to research Arts.
The mechanic behind Arts is very simple. Pick an Art, research it, and after some time (whether you’re online or offline), it will be complete, and you’ll have access to new items, classes, etc. It’s a core part of Metaworld’s character progression.

Once a player has acquired the first level of whatever it may want to try, the research time start to increase drastically. Most of the first Art levels take around 5~15 minutes of research. Level 2 rise to ~40 minutes, Level 3 to ~2 hours, and so on. The higher the level of an Art, the more time it will require to be researched. Needless to say, higer levels can take up to days. Oh, and there isn’t any upper limit to Art levels.

The time resource will encourage players to make choices about how much they’ll level a class or equipment. They can be jacks of all trades, but can also be very specialized. A new player can quickly be efficient if it goes straight to his Art goals.

Aren’t early players advantaged?

Take two players. Because the researches are done in real time, the one who started first is indeed advantaged as it could have learned more Art levels. But, that will be true only if none of these two players interacted with other “teacher” players, since there are actually two ways to lower the research duration:
– to be taught an Art by someone who already knows it,
– to use a book to learn an Art, book that can only be written/crafted by someone who already knows it.
Both of these methods involve other players who have either different Arts levelled, or have been playing longer than the learner do. There are no drawbacks for the learner, but the teacher/writer has some, so be prepared to see an economy based on Art transmission in the game :)

And that’s all for now. I tried to summarize as much as possible the essence of the Art system. I’ll gladly answer any question.