Feedback on design?

I have a game called Powerworks Industries which I’ve been working on for a few years. I recently made a design document, detailing the general game plan and various aspects of the game. I’d like to ask for the community’s feedback, because I really value all of your opinions!
Here is a link to the up-to-date Google doc:
and here is the copy and paste current text:

General setup:
Biological intelligence is a thing of the past. A species of AI is spreading throughout the cosmos, very successfully, and until now, totally alone. One day, a vast fleet of alien AI simply blinked into existence outside the orbits of every major AI center and annihilated all of civilization. You are an AI which has taken refuge from the fleet on an untouched planet on the frontiers of the galaxy.

You spawn in to a level. You only control the camera with WASD, but you have spawned with a robot called the Brain (your AI, according to the lore). It is controllable with the mouse and various keyboard shortcuts. Being a factory AI from the group Powerworks Industries, you remember very limited things, centered on mass production and heavy industry. You also have a radar block, which quickly alerts you to an incoming enemy orbital drop force.
Directions appear on the screen, telling you how to defend yourself. Move the Brain to a nearby patch of iron ore, and command it to mine the ore, producing Iron Ore items. You place down the last block you spawned with, a Furnace, and put the items into there (even though you are just a camera, you have control over items).
The Furnace takes in 2 ore and produces 1 ingot. Do this 4 times, the directions say, and then use the Brain to craft (rather slowly) a Mk. 5 (Stationary Defense Turret). Once you have placed it as the directions ask you to, the wave will land in a short amount of time.
The wave consists of 4 scouting robots and 2 standard general-purpose robots equipped with short-range weaponry. They immediately target your radar, knowing that if it is disabled you will be unable to see if they are receiving backup. Your turret puts up a good effort and kills them all, but the radar is guaranteed to die (it is set to die extremely quickly, and will explode automatically if it hasn’t been destroyed by the end of the attack).
Now you have an objective: get that radar back online so that they can’t hit you by surprise.

Mid game:
After some more tutorials on crafting a radar machine, you get it back, and see a vast fleet headed towards you, destined to come in waves.
These will come in predetermined times (probably, some could be based on certain goals being reached) and are essentially the single player campaign of the game. During these waves, you will be trying to construct a transport ship to attack the alien planet with. After the destruction of the last alien ship, you use its power source and data to fly your ship to the alien homeworld, and you mount an attack on it. If the attack is successful, you will steal the Farcaster, which allows communication with, and transport in, the multiverse (free-play is now unlocked). If it is unsuccessful, several more alien waves will be generated, along with another power source and data core, allowing you to keep on trying to attack until you win.

End game:
Free-play can be against other players, or against AI. AI bases are generated (possibly scaling based on some algorithm taking into account how much stuff you have) and contain valuable technology in their Brain robots, which you can extract and put to use.
Player bases are, of course, made by real people. They do not contain technology and instead are seen as points you must conquer in order to get to the next alien base (you are not allowed to choose entirely freely to which planet you can transport, due to interference from their Farcaster, according to lore). You must raid their base and destroy their Farcaster, temporarily disabling it and allowing you to move onward with your fleet.
However, Farcaster connections are two-way. When you open a portal into their universe, they get one into yours. This sets the scene for essentially a 1v1 RTS on two different levels: your planet and the opponent’s. Transport between them is slow and thus some time is spent preparing and establishing oneself on the enemy planet. The first person to destroy the enemy Farcaster wins and their opponent’s robots will cease functioning and all power to their machines will be removed.
The player who has had their base raided will be unable to use their Farcaster until they wait some significant time, which can be lowered by putting resources into reconstruction down to a much shorter amount. Lore-wise, the Farcaster is searching through the planetspace in the multiverse, trying to find a planet on which it is not destroyed. This provides a strong motive for defense in addition to just trying to stop the destruction of machinery.
The base will partially reset to before the attack (unreset areas will be obvious, probably 70 percent or more will be reset), lore-wise, because the Farcaster has found a world in which your stuff wasn’t destroyed too badly. The intent of this is to make even utter destruction not a devastating loss.

More specific stuff:
Robots come in several varieties. There are smaller ones, which have light, if any, weaponry. There are larger ones, which could have up to several turrets mounted on them, targeting multiple enemies simultaneously. Some are specifically for combat, some are for quick movement, which is necessary to get footholds because you can only construct blocks with a certain range of robots.
Robots are unable to function without a Transmitter block or robot that performs the same function nearby. Transmitters, in the lore, send commands from the Brain to the workers. Robots outside of a transmitter are unable to be controlled and will sit and do nothing. The intent of this is to limit how fast you can move and take over new places–you need to establish a presence, even if it is very small, first. Additionally, Transmitters can only rebroadcast from other Transmitters, meaning there will be a chan that can be disrupted and thus must be defended.
Farcasters, more specifically, are machines that allow the Transmitter signal to pass through the multiverse instantaneously and in all places, and thus allow real time communication with different worlds. They can also slowly transport matter between worlds. The matter transportation speed will be a primary means of limiting just how much you can send at another player.
Robots are the primary means of warfare, although it should be a reasonable strategy to construct defensive turrets on the outer layers to advance forward faster. Robots will require ammunition reloading periodically, with slower robots generally having more ammunition and faster ones having less. They will need to go to certain machines which will load them up if the machine has enough raw resources. The intent of this is to limit how much you can do when traveling the multiverse, because it will be much harder to transport blocks and thus to transport ammo factories.
Energy in Powerworks is about rate, not quantity. There is limitless energy due to ultra-advanced entropy-sapping technology in the core of each machine (this was what allowed the AI species to develop so far), but the rate at which it flows is limited. Thus, machines will always function at a minimum level, and for some machines, it may be pretty fast, but you can buff your machines by placing devices nearby that will increase the energy flow. Importantly, this only affects blocks. Robots are unable to be buffed in this way because they are already using their core’s maximum potential for energy flow (or so the lore will say).
Defensive structures:
Walls are for losers. Build bigass turrets. Still want walls? Make a wall out of bigass turrets.
The turrets in Powerworks will be universally large and slow-shooting. The changes between tiers will be damage or effect based. Some higher end versions will have multiple gunheads that can target different enemies simultaneously.
Additionally, above some weight class, turrets aren’t able to be placed like regular blocks which are able to be placed in a circular range around a unit. They instead will only be able to be placed AT the unit’s location, and the unit will join the turret to become its brain. Because these types of turrets have a unit brain, they will be manually controllable, meaning the turrets with slow fire rates but huge effect won’t waste their shots due to ineffective AI if you are directing them.
Factory blocks:
Factory blocks take in inputs and do something with them to create an output. They include mining machines, automated crafters, and other devices to automate production. They will be highly configurable in their behavior, as you will be able to write custom input and output rules in a miniature scripting language. However, this will be intended for later game optimization, as by default, their behavior will be pretty general.
Crafting blocks will automate the creation of items, blocks and robots. Each type of crafter will specialize in a category: weapon crafters, ammo crafters, robot crafters, etc. Ingredients for crafting will be very simplistic: ingots, wire, circuits, and some other basic components will be able to create nearly everything in the game.
Tubes and pipes will transport items and fluids, respectively, between factory blocks. They will take into account the IO behavior specified by the scripting language, are unrestricted by distance, and take no power. Tubes have a restricted speed, but pipes are instantaneous, providing an advantage to transporting ores as molten ores.
Other factory blocks include furnaces, which take ore and create ingots, forges, which take ore and create molten ore, and solidifiers, which take molten ore and create ingots. It feels like there are more but I don’t know them yet.

General ideas:
As you can see, it is a combination of a factory-builder with an RTS, and I think of the two, the RTS will be the more important and more visible component. The factory-building is more simplistic than games like Factorio, partially because everything is made out of raw or first-level ingredients, and partially because of the intelligence of the tube/pipe routing system. The RTS part will usually involve commanding troops in one or two areas max, while building occasional defensive structures and slowly pushing the line forwards into a base. Combat will favor the defending side, due to the difficulty of transporting objects across the Farcaster. It is possible staging planets will be added where attackers can collect units and prepare them for a larger scale attack. Multiple camera views at once allow easier control of specific battlefield sections.

Thank you for reading, no worries if you didn’t finish the entire thing, it is a bit long. Please let me know what you think. Also check out my twitter, for regular development updates.

Sounds interesting, will check out your updates on twitter

Sounds intresting! You got me at:

Nah. For real I think the idea sounds pretty neat in general :slight_smile: !
For me it sounds a little bit a like a mixture between factorio, a tower defense and a rts.

Thanks :slight_smile: Yeah the idea is Factorio mixed with Planetary Annihilation (a space based RTS)

I really like your idea. I’m a big fan of RTS games. One thing I saw recently that was interesting is this talk at GDC:

At the end in question time, the speaker says RTS are dying due to the popularity of MOBA’s like league of legends and Dota2.
He says there’s too much to do in an RTS, with the player having to manage both micro and macro. Could be a good reason to focus on one aspect of your game which would cut down development time too.

The positive feedback you guys are giving me is very motivational :slight_smile:
I’m pushing pretty hard right now, but college starts on the 10th (6 days) and I will be crazy busy for a while until I figure out a routine.
Currently working on multiplayer. Next will be fixing item routing.
Again, check out for fairly regular updates!

May I ask what you are using for multiplayer? Kryonet?

I’m writing my own multiplayer packet system on top of LibGDX’s rather basic networking stuff. It’s been a constant battle for me between using libraries like KyroNet (or Kyro, both of which look great) and writing my own stuff. As of now, the only thing I haven’t done myself is the lower end of the graphics pipeline (shaders and such, I just use LibGDX’s SpriteBatch) and the audio (for which I use @philfrei 's great AudioCue). I think I’m going to continue with my own code for networking and serialization because they are interesting problems and I’ve never written stuff for them before, so I want to learn.
I had the same question come up with using behavior trees–do I use the JavaBehaviorTree library, which is apparently really good and totally working, do I use LibGDX’s own BehaviorTree stuff, or do I write my own? I decided to write my own, again, because it was something that I knew I would have fun doing. It worked out pretty well!

And just like that I have switched to KryoNet (and thus Kryo). I was working on the network code and I realized that if I was going to do it well, I would have to make some generic serialization code. That didn’t sound very fun, and the fact that I was already considering KryoNet made me decide to go ahead.
This will save me a decent amount of time and probably solve way more problems than it creates, so I’m happy, but I’m also sad because I really do take pride in writing my own code.