Project Vague is a sandbox MMO environment in which players pilot space ships and travel a universe full of procedurally generated planets. Players will be able to harvest resources from asteroids as well as deposits located on the surface of planets and moons, which can then be used to construct bases and space stations.

Post news Report RSS Project Vague - Devlog #5

Base construction is back in working order and the first multi-planet star system has been populated with resource deposits. Players can now establish a base and then warp to neighboring planets to continue harvesting the ore deposits, then use those resources to construct new items for placement around this base.

Posted by on

Home Base


This is my base. There will be many like it, but this one is mine. I constructed it by harvesting various resource deposits that litter the surfaces of the four planets inhabiting this star system. As you can see in the following video, the inventory and blueprint configurations are back in working order, which when combined with the new features that allow me to easily warp between planets while giving me the freedom to land on any planet's surface, already makes for the beginnings of some compelling gameplay.

The new landing system that I finished last month is a lot of fun to play around with and makes for some immersive experiences; there is something about taking off from the surface, lifting my landing gear, and then speeding away with boosters at 100% that I find incredibly satisfying. Every action is bound to its own key, which for me, adds to the illusion that I am operating the ship via the keyboard. I have a button for landing gear, buttons for individual thrusters, for roll, etc., and they can be used in some pretty interesting combos to get some aerobatic results while also leaving more than enough room to role-play the systematic list of operations one might need to go through in order to land a ship on uneven terrain.

The resource deposits that dot the planet surface are generated server-side, which for the time being is nothing more than a loop that generates random lat/lon coordinates as well as a quantity value for the number of resources that can be harvested from each deposit. The client takes these lat/lon coordinates and converts their values to work in tandem with the players ever-shifting point of origin, which allows for any number of deposits to exist well beyond the normal 10km limit. Each planet can have its own types of deposits, and each deposit has it's own value to represent how common it is on that particular planet. The server knows at all time where the player is in relation to the deposit, but beyond that, the deposit does not exist at all on the client until the server decides the client needs that information. This allows me to populate a single system with multiple planets, each of which have tens of thousands of resource deposits, all without ever needing to send a single byte of information on those deposits until the player is within range. For those familiar with the terminology, it can be thought of as a server-controlled and fully-authoritative view frustum, although rather than determining what is rendered on-screen, the system is responsible for determining what information the client receives based on their position in the current star system.

In the video, you'll see another player-controlled character will pay a visit to my base (also controlled by me). After brief introductions, we will take off together to go mine some of the more rare resources that are located on a neighboring planet, after which they will take off on their own adventure and I will return to my base with my new building materials to construct some new items. Props currently have no function beyond decoration, although I did ensure that the ship worked with the landing pad (which has quickly become one of my favorite parts of this project so far). Crates that can be used for storage were in place and working for the proof-of-concept, so I don't expect it to take very long to get that back in order. Other props will have roles added to them as I progress, but suffice it to say that the majority of them will likely stay in their decorative-only states for a while.

Going forward from here, I have the next major milestone of warping between star systems. There is still a fair amount of clean-up before starting down that road, however. After having spent so much of my down-time focused on progressing towards this stage of development in what short shifts I could, priority number one at the moment is to put all this code through the ringer in every way that I can possibly think of in an effort to fix any and all issues that may arise from trying to both build and represent a galaxy of this scale via a client that is bound by the 10km limits.

This has been both the most challenging and the most rewarding work I have ever done, and having my own little plot on the surface of a planet that provides a clear view of its neighbor is an incredible feeling, and I hope that future players enjoy their little nook of this MMO galaxy as much as I have enjoyed building my own. At some point, I will re-enable the code responsible for generating AI-controlled bots to start breathing some life into this otherwise empty system, but for now, I am enjoying the grass-on-grey-grid simplicity of it all.

Apologies for the lack of updates recently, but an injury left me laid up for the majority of the last two weeks. I worked in short shifts as I was able to slowly but surely work longer days, and am happy to report that yesterday was my first full day of work in quite some time.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: