Combine And Conquer

Runs on Windows, Linux

Overview

Combine And Conquer is a 2D factory automation game with space colonization for both Windows and Linux.
It’s also available as a demo. The demo has all the features of the full version except for the ability to load games.

Devlog

I’m writing a very detailed devlog for Combine And Conquer including code snippets.
Come and have a look if you’re interested in the development process.

Changelog

0.3.2

0.3.1

0.3.0

Others

0.2.1 | 0.2.0 | 0.1.0 | 0.0.10-prototype | 0.0.9-prototype | 0.0.8-prototype

Guide (updated for 0.3.2)

Demo

Note that the guide below also applies to the demo version.

Getting started

After launching Combine And Conquer you’ll be greeted with an overview of the starter planet and your cursor will be set to the Starter Structure.

In the top left corner are the Hotbars for different views and actions.
The InfoBox is in the top right corner and displays additional information on whatever you currently hover with your cursor.
In the bottom right is the Overlay, where you can select Structures and Items.

Camera Controls

Below an overview of the controls:

  • Zoom => Mouse wheel / scrolling
  • Move => WASD or arrow keys

Placing, copying and removing Structures

Structures can be placed by left clicking (one, with error reporting) or holding (many, without error reporting) when they’re the current cursor.
They can also be removed by using the Delete key or the Remove cursor.
Same for rotation via the Rotate cursor or usage of key R.
You can also set the current cursor by right clicking an already placed Structure.
Removing Structures gives them back to your inventory and you can place them somewhere else. (But Items within the Structure will be lost)

Placing the Starter

If you accidentally reset your cursor and don’t have the Starter selected anymore, you can select it again by choosing it via the Overlay.

Structures -> Other -> Starter


You can use your mouse wheel to zoom in and out. Use WASD or the arrow keys to move the view.
Once you zoomed in, you’ll notice that there’s a highlighted area around the Starter Structure. That’s the Influence. Most Structures can only operate inside of it. Note that there’s also an Influence Structure that you can place to further extend this area.
Since you’ll need Iron, Coal and Copper, try to find a spot such that you have access to all those materials. You’ll also need space for your factory, so don’t choose the smallest island available. Once you found a good location, left click to place the Starter.
I picked a nice spot with plenty of all material types:

Extracting raw materials

You’ll need raw materials as input for your factory. For this let’s place Miners on Coal and Iron resource fields.
You can find them in the Overlay via:

Structures -> Mining -> Miner

You’ll notice that there’s another highlighted area around Miners. Try to place them in such a way, that there’s as many resource tiles in the area as possible. This affects the Miner’s speed. If you put Miners on multiple different resources, it will yield the one with the most tiles.

Great, you now have your Miners set up to extract raw materials.

Moving raw materials around

You should now start moving those raw materials around so your factory can process them.
Arms can move Items in and out of Structures.
Let’s place two Arms to move the raw materials out of the Miners.

Structures -> Arms -> Arm

You’ll notice that there’s now a direction arrow when you have Arms selected. The arrow indicates the flow direction of Items. Press R to rotate and make them point away from the Miners.

While only Arms can interact with Structures, Belts are a cheaper and faster alternative to move Items around. Let’s place some Belts to move the raw materials away to where the factory will be.

Structures -> Belts -> Belt


Well done, you now know how to extract and move raw materials.

Ore to plates

For most crafting recipes you’ll need processed materials.
Ores can be smelted to Plates in Furnaces. The Furnace also requires Coal to produce heat.
Let’s place a Furnace

Structures -> Processing -> Furnace Burner

and use Arms to place both Coal and Iron Ore into it.
You can use yet another Arm to retrieve the produced Plates.

You now know how to convert raw Ores to processed Plates.

Crafting new Items

Most Items in Combine And Conquer can be crafted from others via recipes.
To do so, Assemblers are needed. Let’s place one and feed the Iron Plates into it.

Structures -> Processing -> Assembler


Great. We now have to tell it to produce Gears.
Go to the Overlay once more, but this time set it to Item mode. Choose the Gear.

Items -> Processing -> Gear

When hovering the Gear its recipe will be shown at the top right. It requires Iron Plates. Just as we prepared for.
With the Gear cursor click the Assembler to set its recipe.
We’ll also want to use those Gears, so let’s move them out via yet another Arm.
It should look similar to this:

You now know how to craft Items. By looking at Items recipes you’ll be able to now craft any of them by setting up Assemblers.

Filling the planet’s inventory for placement

You don’t have infinite counts of Structures and will eventually run out, being unable to place any more of them.
When you hover a Structure in the Overlay or set your cursor to it, you’ll see the count available for placement.
Let’s create some Belts that should become available for future placement. First let’s extend our Gear production to also produce Belts.
You’ll notice that Belts require both Iron Plates and Gears.
A solution might look like this:

All that’s left now is to place the produced Belts into a Provider.
Any Structure placed into a Provider becomes available in the planet’s inventory. (non-Structure Items will be rejected).
Let’s put the produced Belts into a Provider.

Structures -> Other -> Provider


Your factory now produces Belts that you can place to further expand it.
You now know the very basics for setting up your factory. Make sure to produce Structures that you place, so you won’t run out eventually.

Energy

Most Structures either produce or consume energy. You can hover them in Structure mode to see their production +, consumption - or storage =.
You can see your planet’s summarized energy statistics in the bottom left corner.

The UI displays the required, produced and stored energy (top to bottom).
If you run low on energy, your factory will slow down accordingly, grinding to a halt at 0 produced energy.
The Starter produces some energy, so you don’t have to worry about energy management right away.
To produce additional energy, you can e.g. use Burner to create energy from Coal, or place Solar.

Research

Selecting technology to research

To unlock new recipes it’s required to research their respective technologies.
Click Research in the vertical Hotbar to open the tech tree.

When hovering a technology you can see:

  • Which recipes are being unlocked by it
  • Other technologies that depend on it
  • Technologies this one depends on
  • The cost in Research Tokens to research (Research Token Tier 1 -> RT1)

Click a technology to start its research.
But nothing will happen until your factory is set up to produce and invest Research Tokens.

Producing and investing Research Tokens

You have to craft Research Tokens of the required tier and place them into Labs to spend them. The more Labs have the required tokens available, the faster the research will progress.
You can find them under:

Items -> Other -> RT1

A very basic setup might look like this:

Tips

I suggest researching Crossings and Two Belt Mixing early on, since these unlock very useful Belt variations.
They make it possible to mix and split Belts, cross them and evenly share Items between them.
Making it way easier to set up an efficient factory.

Planner and Modules

It is possible to ‘design your own Assemblers’ (Modules) with the help of the Planner.
You can simulate small factories, which can then be re-used as building blocks.
During planning you can use any Structure or other Module that is unlocked. You have access to an infinite amount of Structures and Modules. Your planet’s inventory is not considered here.

Source and Sink

Unlike other Structures, Arms can’t place and take Items from Modules at any location.
This is only allowed at the location of Sources or Sinks. Both of them also define which Items your Module consumes and produces.
Sources ‘spawn’ the Item you assign to them, Sinks accept Items that are placed into them.

Simple example

Let’s look at a simple Module that produces Belts from Iron Plates.

At the top left corner is a Source set to spawn Iron Plates (You can change the spawned Item the way you’d set an Assembler’s recipe).
They are then processed to Belts that are placed into the Sink at the bottom right.

Conversion to Module

The described actions can be found at the top Hotbar.
Once you are satisfied with your blueprint, you can create a Module from it by clicking Modularize and then naming it. This action might fail, see below.
If successful, you can now re-use this Module by selecting it in the Modules view. Here you can also delete or edit existing Modules.

The Module can now be placed on the planet just like any other Structure. Make sure to place and take Items from the correct spots.
You can also use Modules for the creation of new Modules.

Module ticks

When generating a Module it is simulated for Module ticks amount of game ticks / steps.
Depending on the configuration, the Planner will either run the simulation forever, or stop it when one of the defined conditions is met.

Settings and actions

Modularize Blueprint

Try to generate a Module from the current layout and configuration. This will prompt you to set a name for your Module. If it succeeds, the Module becomes available in the Module view.

Restart Blueprint

Restart the current Planner simulation, remove all Items and start at tick 0.
This is useful if you made modifications and would like to run the simulation with a fresh state.

Set Modularize Ticks

Set the amount of simulation ticks that should be used when generating the Module.

Fast Ticking / Extra Fast Ticking

Run the Planner simulation at up to 10x or 100x of the normal speed.

Stop At Modularize Ticks

Stop the simulation at the configured tick count. Useful to see the Modularize result.

Stop When All Sinks Have Items

Stop the simulation once there’s at least one Sink in use and all of the Sinks received an Item.
This is useful to find the tick count where your Module first becomes productive.

Restart on Edit

Restarts the simulation on every edit.

Previous / Next Blueprint

Switch to the previous or next Blueprint within the Planner.

New Blueprint

Start planning a new Blueprint.

Remove Blueprint

Remove the current Blueprint from the Planner.

Useful combination

I find it very useful to enable one of the Fast Ticking options, Stop At Max Tick or Stop When All Sinks Have Items and Restart on Edit.
This way one gets immediate feedback on what the final Modularize result would be on every edit.

Optimizing efficiency

Since some of the Items stuck in your Module on simulation finish are lost, the efficiency can be improved by changing (most of the time increasing) the Modularize Ticks.
This reduces the relative Item loss.

Error cases

There’s several reasons why the Module creation might fail:

  • You already generated a Module with the same layout => Pick the already generated Module instead
  • The name is already in use => Use a different name
  • No Sinks or Sources => You’ll have to use them, otherwise the Module won’t work
  • ‘Would produce nothing’ => Make sure Items make it to the Sinks by fixing the layout or setting a higher Module Ticks
  • Sources and Sinks must be at the edge of a Module, otherwise it couldn’t be used later on

Under the hood

The final Module generation slightly differs from what you’re seeing live in the Planner. The following steps are happening:

  1. The Module is ticked Modularize Ticks times
  2. All Sources are disabled and the Module is ticked for another Modularize Ticks times
  3. The entire ‘factory’ is scanned for leftover Source Items. These will not be considered an input cost
  4. For all input and output counts the greatest common divisor is calculated and all these values (plus tick count rounded up) divided accordingly. For example if your Module would produce 10 Arm from 100 Iron in 1001 ticks, this would be changed to 1 Arm for 10 Iron in 101 ticks

2. and 3. are done to prevent waste within the Module, while 4. is happening to generate faster and more enjoyable Modules.
Sadly all intermediate products at the end of the simulation will currently be lost.

Space

There’s multiple planets in Combine And Conquer.
Titanium only spawns on other planets than the starter planet, so you might want to explore the solar system to unlock even better technologies.
You can use the Space view to navigate between planets and also see your ships that are in flight.

Colonizing other planets

Once you researched the required technologies, build both a Launch Pad and a Colonizer Ship.
Place the Colonizer Ship into the Launch Pad.

With the Colonize cursor select the Launch Pad, then the planet you’d like to colonize. The ship will fly to the planet. Once arrived, the planet will be colonized and you’ll be able to build on it.

With the Colonizer Ship comes a minimal planet inventory that should enable you to start a new colony.

Moving items between planets

To send Items between planets, you need a Launch Pad on the sending planet and a Landing Zone on the receiving planet.
With the Space Port Linking cursor you can set up the connection between the two.
Once done, put a Cargo Ship onto the Launch Pad.
From now on any Item placed onto the Launch Pad will be loaded into the Cargo Ship.
Once full, the ship will fly to the target location, delivering its Items.

Savegame management

Use the Savegames view to manage your savegames.
Here you can load, overwrite and ‘save as’ your games.
Note that Combine And Conquer also creates autosaves every once in a while, on clean close and when for example loading another game.
Combine And Conquer will only show savegames of the fitting version.

Other

Cursors

There’s a few cursors not described yet:

  • Unmodularize => When clicking a Module in the Planner, it gets deconstructed into its initial parts
  • Edit Module => When clicking a Module on the planet, it will clear the Planner and put the ‘unmodularized’ version of it there

Selection

You can activate the selection on planets by holding Shift and clicking. With it you can select multiple Structures.
Once you have Structures selected, buttons to delete them, clear the selection or to create a new Blueprint from them will appear.
There’s multiple different selection modes:

  • Add => Anything you newly select will be added to the existing selection
  • Set => Anything you newly select will become the current selection, discarding the previous selection
  • Remove => Anything you newly select will be removed from the previous selection

Below an image showing selected Structures, the selection rectangle and the hotbar buttons described above.

Render settings

There’s several settings to change the visibility of elements.
These can be very useful depending on what you’re doing in the game. Have a look at them.