Progress Update

I have just been playing around with some really difficult code.

I got moving between ships to work, currently there are no built in mechanics for moving between ships (those will come later) but I’ve had fun jumping from ship to ship during combat via debug commands.

Ultimately the plan is for both airlocks and transporters to be added. Airlocks obviously require lining your ship up and docking, and then you will be able to walk from one ship to another. Transporters are going to work more like weapons. You will wait until there is an opening in their shields, load a brave red-shirt wearing crewmember into the device and fire at the enemy ship in the hope of hitting their hull. Wherever you hit the target your crewmember will materialize, and yes you can place them in the middle of a solid structure and kill them. That is why the design calls for the science console to handle transporters AND scanning the interiors of things.

Players will also be able to use transporters and I expect the typical use-case will be using the thing to rescue your friends, but if you want to load yourself into the thing, convert yourself into a beam of energy and fire yourself towards oblivion, I plan to figure out some way to make that possible from a game mechanics perspective.

After getting simple ship swapping working I started work on state migrations for ship hosting so you can jump from ship to ship in multiplayer, even if the ship you’re jumping to isn’t hosted on your machine. In order to enter a ship that’s not hosted locally you send a request over the network and ask who is hosting that ship. Then you either transfer ownership to yourself, or connect to that ship and stream it in real time. The 2nd scenario happens when another player is already on that ship, and that will be one of the last things I get working because that’s 2 people in the same ship at the same time.

Since pretty much everything I have been working on is completely invisible ingame, I don’t plan to push an update any time soon. Also, when I do push one you can bet that it will have lots of bugs. In the meantime I will try to make blog posts every now and then talking about my progress.

Opps, multiplayer was disabled

Just realized that I had disabled multiplayer connections in the previous build for testing purposes. Few lines of code later and it should be working again. I have also tested and fixed a few multiplayer bugs, so if you were hoping to test out multiplayer, it is available now in version 0.0.1.094

Design goals around controlling a ship as a team

There are a lot of challenges related to making a space ship game that can be controlled by multiple people over the network, but for this article I will mostly focus on the fun aspects: roles, interactions and player experience. What I won’t discuss is the coding nightmare of simulating an entire networked multiplayer game running inside of another networked multiplayer game. If you want to know how I have solved those problems, you will have to wait until I’m done solving them.

 

The goal is to provide roles to the players which are optional, yet non-trivial so that the system is satisfying from all possible perspectives, all while making the roles simple enough that the learning curve doesn’t prohibit switching roles. The perspectives that need to be considered are: the person who wants to play alone, the person adding a friend to fill one of his optional roles, the friend who is being invited to fill an optional role, and finally the enemy player forced to fight against multiple players in a single ship.

 

The factors for each role will then be:

  • is this role required for the ship to function?
  • is this role valuable to the ship as a whole?
  • is this role interesting enough to maintain a player’s attention?
  • is a ship without someone in this role at an unfair disadvantage?
  • can a new player pick up this role and benefit the crew without being frustrated by complexity?

 

I have selected 4 initial types of player role for the ships in Wayward Terran Frontier and I’d like to discuss why I made some of the decisions I have made and how I think they will affect cooperative gameplay. The roles are that of Ship navigation, gunnery, science, and engineering, and they all work together to answer the questions posed above. These roles are also tied directly to ingame objects which are the control consoles you can add to your ship during the designing phase. In this way I provide the ship owner with the power to decide which roles will be available to his crew during gameplay.

 

Required roles vs optional roles is probably the simplest discussion to get out of the way. I approach this question from the perspective of what you absolutely have to be able to do when you are flying a 1 seat fighter craft by yourself. Then I expand outwards to try and imagine what roles I would add if the ship were just a little larger. In Wayward Terran Frontier the navigation console is the only required role for a working space ship (although probably optional if you intend to make an immobile turret or support structure) and it is designed to control like a simplified version of the controls from other top-down space games. If all you have is a navigation console, you can move the ship, turn the ship, fire all the guns, and eventually dock with other ships. By design, all other consoles are 100% optional, but that doesn’t have to mean those consoles are trivial.

 

So what types of valuable additions could other consoles add without being mandatory? well that depends on your definition of mandatory. Gunnery consoles do not have their view tied to the ship so they can survey the entire battlefield, and they can make aimed shots with any gun allowing them to target the interior of ships as apposed to just the edges. They also will eventually have UI elements that makes it easier to hit moving targets. Science consoles will be required if you want to use transporters, but with airlocks, transporters will be a convenience issue only. Science consoles can also scan things to help in both exploration and combat, and they have the ability to reinforce shields during combat. Engineering consoles will replace the current system of seeing the inside of your ship and clicking on things that you want the crew to do, while also allowing the utility of toggling modules and conduits on/off and activating fire suppression systems. To give engineering consoles something to aid combat directly there will most likely be a way to manually boost the charge rate of specific modules by clicking on them when your friends yell over voice chat.

 

Maintaining a player’s attention during combat is important. It is absolutely imperative to avoid the situation where a player has a fully powered and properly configured console and for an entire fight all they do is click the “scan” button. The gunnery console is obviously going to take part in lots of shooting, and the pilot’s job is always interesting enough, so that leaves science and engineering. Science console solves this issue through reserve shield supply and transporters. Reserve shield modules allow the science console to draw new shield pixels around the ship in real time using stored energy, which gives them an active role in protecting the ship during combat, and transporters allow them to add/remove items from enemy ships arbitrarily, how cool is that? Engineering is a console more dedicated to damage control, and the trick to making this console interesting is balancing the game to make sure that you take some damage. That aside, sometimes a ship won’t take damage at all, so this console still needs another ability which is why they can super-charge modules. Having a good engineer means you can always get a little more power to the thing you need most.

 

The issue of balance for these consoles is addressed by the fact that all of their abilities draw against the same resource pool as everything else on the ship. Engineers can charge guns faster, but the energy they use must come from reactors and it generates extra heat when it does, all they bypass is the bandwidth limits of conduits. Reinforcing shields and using transporters requires large expensive modules that draw power away from other systems when they are used such as regular (passive) shield generators

 

In the end, the goal is for a solo player to fly his ship like a fighter pilot, only thinking about the enemy in front of him, until he stops and has to switch consoles to scan the hulk of an abandoned ship he intends to explore. meanwhile a larger ship has a crew of people constantly yelling at each other over voice chat; “We have long range missiles incoming they are off the screen, navigation would you try dodging? Science, Reinforce the aft shields and dammit engineering can you get us more power?”

Resolving future plans

I have updated the about page with some of the recent decisions I have made. The wall of text there should now give a good impression of my long term goals for the project as well as some details about how I am hoping to monetize the game.

The releases of course will be iterative, and you can probably expect to wait a while before a playable version of the dedicated server is available. In the mean time I will continue adding features to the client.

In other news, I spent a lot of time just playing the game and fixing bugs as part of an effort to prepare some publicity. The latest patch is the most stable it has ever been, and there are lots of new screen shots in the media section. Most importantly, I feel like the client is finally presentable enough to face public criticism, and I am looking into setting up a public download link.

Also check out the IndieDB page I set up:

http://www.indiedb.com/games/wayward-terran-frontier

It comes with this cool icon, and I’m not entirely sure what the numbers mean yet but I think it’s some sort of popularity contest. Also I seem to be losing!

Wayward Terran Frontier

yay!

Another video, this time demonstrating ship breaking

New Mandatory Launcher!

 

I have officially updated the game’s launcher to version 1.0 which means the old one has to stop working!

 

I imagine there will be questions, so I will answer them here:

Q. Why?
A. Well the old launcher had to be disabled because it accessed my server using an FTP account that I didn’t like very much, and besides the new one is much better.

Q. Why?
A. Well, the new one is more secure, AND it can download updates for itself. My goal from the beginning has been to hold back the public release until I was certain that I could give out a launcher that didn’t need to be reinstalled every time I came out with an update.

Q. Why?
A. Because people don’t like re-downloading and reinstalling your game every time something changes, also because shut up.

Q. WHY?!?!1
A. Seriously go download the new client. link is in the forums

Q. Does this mean you might release the public alpha soon?
A. Only if I feel like it! Also, the link doesn’t exactly check to see who’s clicking on it…just throwing that out there.

Maybe I will have to remove the word ‘Pseudo’ from my previous post?

Link to relevant article

I liked the Explain like I am 5 explanation on reddit (thanks antiduh):

The speed of light through any medium, for example air or water or glass, is determined by two things:

1) How far a photon can go through the medium without hitting anything, for instance atoms and molecules in the air. If you’re not hitting anything, you’re traveling at the speed of light through a vacuum (because the space between things is a vacuum).

2) When it does hit something, how long it takes for that photon to be absorbed and re-emitted and back on its way.

If you’re in a medium that has very little to it, for example air, then most of the the time you’re traveling at full speed because you can go a long distance without hitting anything, and thus the speed is the speed of light in a vacuum most of the time. So you go 100 units at the speed of light in a vacuum, hit something, wait to be absorbed and re-emitted, then go 115 units at the speed of light in a vacuum, hit something, wait to be absorbed and re-emitted, etc.

If you’re in a medium that has a lot to it, like water, then you can’t go very far before you hit something and have to wait to be absorbed and re-emitted. So you go 5 units at the speed of light in a vacuum, hit a water molecule, have to wait to be absorbed, re-emitted, then you go another 6 units at the speed of light in vacuum, and hit another water molecule.

All of this assumes that the fastest light can ever go is, at best, the speed of light in a vacuum, since a vacuum is the emptiest something can ever be.

The problem is that a vacuum, while being the emptiest thing we know, is not actually empty. We think that a vacuum has ‘virtual particles’ constantly coming and going.

Up until now, it’s not clear whether or not anybody considered that the speed of light that we all know and love – the speed of light through a vacuum – could actually be photons hitting these virtual particles and slowing down because the photons have to be absorbed and re-emitted, just like they do when photons travel through a non-vacuum medium like air or water.

What if the speed of light in truely empty space – no virtual particles – was actually infinite? What if the speed of light through a vacuum was the 299 million meters/sec we know and love because of these virtual particles?

These guys seem to have done some math with those changed assumptions:

1) A photon traveling through truly empty space is traveling at an infinite speed.

2) A photon traveling through a vacuum only goes 299 Million meters/sec because it’s interacting with these virtual particles.

Now just find a link between dark matter and the virtual particles that permeate space and my Pseudo-science becomes a lot less pseudo!

Maybe the medium through which electromagnetic waves propagate, is their own interactions with other electromagnetic waves? no, not deep enough… Maybe the entire universe is a single wave traveling infinitely fast between interactions with itself? we can go deeper… A wave must propagate though a medium, can a wave propagate infinitely fast through a medium comprised only of itself? Could that account for the concepts of space and time? Should I stop drinking now before I wake up tomorrow an regret all the crazy shit I posted on my website? All of these questions are very exciting and strange to me…

Anyhow, I’m done being philosophical for the evening. I’ll get back to programming client authentications now.

Progress and Pseudo-Science in the Wayward Terran universe

Game updates have been slow over the last few weeks because I am digging into some dedicated server code and theory. I have been working on authentication and databases and protocols, but at the same time I have been forced to actually think about some of the ways that the persistent game world will work. Here are some of my thoughts so far:

Pseudo-Science:

FTL travel is first on the list of things to explain, and I had an agenda that it needed to fit. I want ships to travel the map seamlessly instead of moving between nodes, but I still wanted to create high traffic areas where encounters would be more common. I wanted travel to take a long time when exploring, but be very fast and painless when running tedious errands. I want exploration to be interesting, hard, and also rewarding, and I want the quality of your ship to limit your ability to explore further into the void, but I don’t want people flying in groups to be punished for exploring their under-equipped friends. I also wanted hiding to be possible so I can have a secret pirate base carved into the side of a comet flying through a nebula.

My solution as explained in a wall of text, followed by a TLDR:

We all know you can’t move faster than the speed of light. Okay, maybe some of us know it and others have heard it but are not sure they agree with it yet. Suffice to say any Pseudo-science that allows traveling faster than the speed of light would be a bit too Pseudo for me and so there will not be any movement faster than light in the game. Now in the world of Wayward Terran Frontier we do have a lot of technology and from a physics perspective I am okay with really powerful conventional engines and generators that use matter-to-energy conversion to produce practically unlimited energy in the form of plasma. So lets just work under the assumption that ships have unlimited fuel.

If ships have unlimited fuel and crazy powerful engines, they actually can move between stars in a human life span due to the effects of relativity. When the ship begins to approach even a small fraction of the speed of light the crew sees the distance to their destination begin to shrink. The distance never reaches zero, because that can only happen at the speed of light, but if they go fast enough their destination will move so close that they will be able to arrive in a human life span at sub-light speeds. Hell, they could arrive in a few weeks of their perspective time, the issue is actually not from their perspective it is from the perspective of the planet they travel to: When they arrive after traveling for only a few weeks, they find that their destination has experienced a thousand years of history in those few short weeks. That kinda defeats the purpose of trying to get to a specific location at a specific time, and it absolutely can not happen in a multiplayer game.

Now, to understand my solution to this problem, you first should understand the interpretation of relativity that I will be basing my game on and that is the Photonic Theory of matter. Photonic theory states that all matter in the universe is just made out of interacting electromagnetic waves propagating through space at the speed of light. i.e. a meson is a wave and a quark is 3 waves interacting in 4 dimensions and reinforcing each other, charged particles are the result of being constructed from asymmetric waves etc. In a photonic universe the reason time stops for objects moving at the speed of light is because the objects are made of waves of light. If all the waves making up an object were to move in the same direction then those waves would stop moving relative to each other. It really does a decent job of explaining the issue of relativity.

The second part of my solution to the problem is the more Pseudo of the 2 parts, but still has some basis in reality. Dark matter makes up a very decent percentage of the universe by mass, and supposedly the stuff is everywhere. Furthermore Heisenberg and Bohr would probably agree with me if I were to point out that a particle of dark matter (being completely non-interactive) should occupy a super-position that has been growing in size since the beginning of the universe. Dark matter literally permeates space with individual particles being spread probabilistically across entire galaxies. If a particle of the stuff never interacts, then it doesn’t matter where it is, it remains a wave form that can occupy all spaces simultaneously. (Some reading material)

So here is where I start making up rules that are outside of the speculation allowed by modern science and fuzzy reasoning: The dark matter increases the optical density of space and slows down the speed of light. If you want to move faster than the speed of light, you simply increase the speed of light by moving the dark matter out of the way. And how do you move the dark matter out of the way? Simple: if you detect where the dark matter is you collapse its wave form into a discrete particle with a single position and velocity. Then you can just move around it. So the only device I need to add to a ship in Wayward Terran Frontier to make a ship move faster than the speed of light is a set of sensors capable of detecting dark matter particles and measuring their positions/velocities.

TLDR:

The game world is covered in a fog of dark matter that puts a cap on the max speed of ships traveling through it (the speed of light). By putting dark matter detectors on your ship you can carve a path through the fog and increase the speed of light in a region of space allowing ships to travel faster in that region until the fog returns.

Implications:

This solves all of my problems:

  • Known locations will be easy to find by following trails through the fog.
  • High traffic areas will have no obstruction and ships will be able to travel quickly, even ships with no FTL equipment.
  • Unknown locations will be hard to find and will require searching through the fog.
  • Hidden areas will eventually slip back into the fog if nobody visits them frequently.
  • Traveling faster through the over-world requires some type of ship fitting that is not an engine, thus putting separate design constraints on maneuverable combat ships vs deep space exploration ships.
  • When traveling in groups, everyone can move as fast as the person with the best sensors so group exploration is encouraged.
  • The game world can progress over time as players expand through the game world making their own “star-lanes”

I also aim to make space travel into a crew-management mini-game so that the distance you can travel is equally limited by space monsters that will kill you in deep space, the speed that your ship can move, and how comfortable your crew are during the journey. If you want your crew to explore deep space and live on the same ship for many months you can either add more equipment to try and go faster, or you can add nicer living quarters and a recreation center so your crew doesn’t go insane and murder you. Either way the effect will be similar to a loot grinder where better gear allows you to progress farther, and progressing farther gets you better gear, except instead of right clicking on demons forever you are exploring a galaxy full of unknown goodies. Maybe sometimes we can still right click on demons, I do enjoy right clicking on demons.

Forums are up!

Go check them out! –> forums

Video!

Return top