Friday, April 29, 2016

Success!


YAY!  Okay, fine, my technology model is a wee bit too complicated ... but my engine successfully created a manufacturing network capable of generating Surface Transports, and it only takes a player 4 game years to do it.  Seems like a long time, but 4 game years, doesn't seem unrealistic, but it's early and the models aren't even tuned.

Once a player can create a Surface Transport, they can travel up to the space station, and begin the next stage.

It proves I can:
  • assemble and construct buildings
  • disassemble and deconstruct buildings
  • make surface transports
This is a major developmental goal.  Largely it means that development on the planet is complete, at least from a major delivery perspective.  There will be other planet related changes, but now I can move on to developing the space station bit. 

Next week!  I need a break.

Tuesday, April 26, 2016

Research View Update


The following view shows the updated Research view including the components needed to build the facility.  Clicking any of the boxes, including the blue ones below takes you to a different view showing how the game material is output and where it is used for input:


Manufacturing vs. Network Modeling

In the game, there are two types of modelling that is performed, Manufacturing and Network. 

Manufacturing is a simulated result that takes the organization of buildings and connection between complexes and calculates how long it will take per hour to deliver components to that planet's space station.  The manufacturing network works with an unlimited supply of materials, so whatever the simulated result is, that's the amount of materials that can be delivered.

Network Modelling is a bit different in which it simulates in real time the movement of collections of materials in ships that are constructed in orbit and move between planets either in the same solar system or between solar systems.  The analogy is a train system with tracks running between two points.

It was pointed out that a player is not limited to exploiting absolutely every resource on every planet to produce a massive amount of material for their space exploration/networking endeavours.  This is correct, however, in doing so, they are sacrificing time to pull this off.

The Lost Tribes is ultimately a racing game; in that you are trying to achieve mission success in the least amount of game time.  Figuring out that balance between the amount of materials that can be produced vs. the amount of time needed to achieve the missions end goals.

Due to raw material distributions, what might be possible with one planet might not be as easily achievable on another, so there is a bit of a balancing act between resource availability and mission goals.

Design Change

I have been thinking about a design change in the game for some time.  In the current mechanism, players configure planets to exploit their resources to construct buildings and transports.  While the transport side has not be implemented, it's largely a queue mechanism that says, make me a transport and the system calculates, "ah, that will take 3 days" ... 3 game days later there is a transport.

Transports can be used to move materials between complexes and into orbit.  One change is that transports will be distance limited in addition to volume limited.  This means a transport can travel a maximum of 500km/hr, which means that a 1700km distance with 640 units/hr means one transport, on average delivers 58 units/hr.  For a player to deliver all 640 units, they'd need 11 transports instead of 4.  Even on a planet with unlimited resources, the result is an increase in time.  [Edit: This feature has been implemented; I realized I could send from the planet editor to the complex editor a list of all distances between every complex that has a transport out and this complex.  Therefore, I would need to do anything special to get those distances.  This took only a few hours to implement.]

The other change is that each planet supports one and only one space station.  We'll provide a variety of stations, and a player will get one chance to pick the right one.  Too small and it takes longer to build ships because of limited resources.  Too large, and it takes forever to build.

The final change is a real time element.  The simulated aggregation of the planet is fine, except that you run into complications as soon as you add free running ships.  Therefore the final change is that once the player reaches the solar system, they go from a simulated environment to a real-time one.  This means that a planet, which is represented by the space station works more like a train system with ships running to/from other stations.  In a solar system with 200 stars and 3-9 planets per star, this creates a maximum of 1200 destinations.  Although realistically, once a player has the basics figured out, it's a race against time rather than an exploration and resource collection process; therefore, I imagine that no more than 10-20 stars will be exploited to the point where the player builds complex infrastructures on planets in order to achieve their goals, therefore, the actual number of destinations will likely be less than 100.

Saturday, April 16, 2016

Preliminary Surface Transports


This shows my latest planet view with preliminary path finding that shows the connection between complexes.  Eventually, this will be replaced by a smooth animation showing a transport flying over the surface, or possibly just some particles.

Each line flows from red to green, identifying which transports are connected.  The info on the left shows 5 major inputs, but each input, referred to as a "Transport In Hub" can have many sources, and those sources is what produces all the lines.  Looks like this:

In this screen, the system shows how much gold ore is available from other sites.  To add sources, you click on the buttons on the right to add them to the right.  Then click +/- to add remove transports.  Surface transports can carry a maximum of 200 units and Launch transports a maximum of 100 units.  Such as this source which produces 375 units/hour, you need to assign 2 transports to send all 375 units to this complex.



Right now the system supports dividing up resources, but does not do load balancing; nor is this planned.  If you have a raw material site that produces 375 units, such as the example above, and elsewhere, need silicon, the system evenly divides the available resources up between users.  So now, this new complex can get a maximum of 187 units:


Until the player actually makes it a source, the number identified is an estimate based on current information.  If they don't select the complex, the other complex still receives 375/hour.  If the new complex starts receiving silicon, then the original complex only gets 175; and are furthermore wasting transports.

Friday, April 08, 2016

Planetary Complex Colors


The above picture shows the 5 raw material complexes on the surface of a planet.  The elongated one is actually two complexes side by side.  The colours are as follows:
  • BLUE - are raw materials with no complexes on them.
  • YELLOW - are complexes with no buildings on them.
  • GREEN - are complexes with a valid building setup.
  • RED - are complexes with an invalid building setup.

Resource Potentials and Transports

In this game, each mineral resource has unlimited resources.  This of course isn't realistic with respect to real life or even other games.  However, in this game the intent is for a player to not play the same scenario indefinitely.

When I worked for railroad company (in my professional career), they had a concept called "rolling stock" ... this where a company would manufacture something and put it on a train car, and get it moving to a city, hoping to have it sold by the time a buyer had been identified; a warehouse on wheels.  I imagine the company doing this would stop when they ran out of train cars until buyers were found.  It's not really any different than the entire wholesale retail chain, where companies make things only based on the potential that a buyer is out there.

The Lost Tribes implements a potential model where the manufacturing stops when there is no demand.  Anything that is extracted from the ground, their units are measured in terms of time.  20 units/hour.  This allows the game to calculate the potential maximum that is available based on any time factor.  20 units/hour or 480 units/day.  The entire industrial complex can then be summarized based on time, rather than on availability of resources.

So let's consider an example.  The Processor Factory makes CPU units, 10 at a time with these inputs:


If the potential for all the other inbound material is greater than or equal to the amount specified, then the maximum potential is 10 units. However, if the input potential of copper is 5, then the maximum potential is 5 CPUs; should make sense.

But now, suppose Copper is 5 and Silcon is 8, what is the maximum?

The smallest ratio of availability is what drives the potential of the plant.  In this case, the plant can produce a maximum of 4 CPUs.  

Now, consider the last scenario of 3 Plastic:

You might think the potential is 0.75CPU, but it's actually 0.  All potential is calculated in whole numbers.  

Therefore, players will need to keep a watchful eye on this potential, because it is possible to reduce the potential by having a two Transport Out buildings split the potential that building provides, they can inadvertently cease production on all complexes because the potential falls below one.

Transports

Now to make it even more interesting, there is the entire concept of a transport.  Since the planet is organized around small complexes (like small towns), players will want as few industrial complexes as they can manage.  The problem is, industrial complexes aren't that big.  Currently 128 points, but I am considering making them 64 or 96 large; just add game difficulty.

Transports can only move one material type and each surface transport can move a maximum of 250 units at a time.  Each launch transport (surface to orbit or orbit to surface) can move 100 units at a time.  A unit is roughly analogous to a kilogram, but not really.  Each material's unit is a unit in size ... how about that for being non-specific!

The player will start with some limited number of surface transports, and will need to build more as the game progresses.  How many they get, I haven't figured out; but probably 15-20.  Probably 1 for each game material needed in the production of additional transports.

Complex Editing Video

Here is my first editing video for the complex.  This is a small complex over raw materials, where you can only extract materials from the ground, do the basic manufacturing on it before shipping it off. 


In other complexes, you get materials by transporting them in and routing them into factories to produce even more complicated materials.

Saturday, April 02, 2016

The Lost Tribe?

I got feedback from from folks on Friday about the current game.

I was criticised by one for introducing procedural generation too early.  I get their point, but disagree.  Another thought that this could be a resource collection game, but the problem I have with this is that once you understand the resource collection aspect of the game; there has to be some other thing to drive the player.  I thought there code be hope for some kind of enemy, but that creates the burden of AI which is hard to crack.

Perhaps the game could be called "The Lost Tribe" that is a race game.  A group of friends/competitors get into a room and decide on the style of the race; the type of galaxy, number of stars, number of stars the players have to travel to, and after that, they are on their own.  Players work independently or in teams and starting with the same resources on a given planet, try to be the first one to get to the last star system.  The race could be a few hours, days or weeks long.  And they simply record their progress through a central database (via NEO).

And this got me thinking ... what if the game materials and building types were procedurally randomized.  One of the problems I have at the moment is how do I build this massive tech tree with lots of resources and combinations.  What if all that was randomized too.  You randomize the materials and create combinations that create new materials that are the foundations for the aspects of your ships.

Make it all about resource gathering and assembly of larger order material types.  So that ships could be crafted.

One of the problems I ran into last time I did this, was the player having no idea what the over arching physics was.  How would you know that combination 1 produced anything useful, and since it was random, how could you know the generator didn't produce something that was basically gibberish and not intelligently assembled.

Good question ... let me think about it.  I do like the idea of PvE but PvP over the network.  Could be fun.