One of the many interesting ideas in Peter F. Hamilton’s Night’s Dawn series [1] is that of Combat Wasps. These are robots used in space combat which may be armed with some combination of projectile weapons, MASERs, thermo-nuclear and anti-matter weapons.
In a lot of science fiction the space combat is limited to capital ships, a large source of this problem is technological issues such as the Star Trek process of making models of ships – it’s too expensive and time consuming to make lots of small models. Shows such as Babylon 5 [2] have fighters which make more sense. Sustaining life in space is difficult at the best of times and it seems likely for battles in space to have few if any survivors. So sending out fighters allows the capital ships to have a chance to survive. I suspect that a major motivating factor in the space battles in Babylon 5 was making it fit on a TV screen. Dramatic TV portrayal of small groups of fighters engaging in a battle is an art that has been perfected over the course of 80+ years. It’s about individuals being shown, whether it’s riders on horseback, pilots of biplanes, or space pilots, it’s much the same.
But a reasonable analysis of the facts suggests that without some strange religious motive adopted by all parties in a war (as used in Dune [3]) the trend in warfare is to ever greater mechanisation.
So while a medium size starship might be able to carry dozens or even hundreds of fighter craft, if using small robotic craft then thousands of fighters could be carried.
So the issue is how to effectively use such robots. It seems likely that an effective strategy would involve large numbers of robots performing different tasks, some would detonate thermo-nuclear weapons to remove enemies from an area while others would prepare to advance into the breach. The result would be a battle lasting seconds that involves large numbers of robots (too many to focus on in a group) while each robot matters to little that there’s no interest in following one. Therefore it just wouldn’t work on TV and in a book it’s given a couple of sentences to describe what would have been an epic battle if humans had done anything other than press the launch buttons.
One of the many things I would do if I had a lot more spare time would be to write a Combat Wasp simulator. There are already quite a number of computer games based on the idea of writing a program to control a robot and then having the robots do battle. This would be another variation on the theme but based in space.
In a comment on my previous post about programming and games for children [4], Don Marti suggests that a RTS game could allow programming the units. It seems to me that the current common settings for controlling units in RTS games (attack particular enemies, attach whichever enemies get in range, patrol, move to location, retreat, and defend other units or strategic positions) are about as complex as you can get without getting to the full programming language stage. Then of course if you have any real programming language for a unit then changing it takes more time than an RTS game allows, and if the programming is good then there won’t be much for a human to do during the game anyway. So I can’t imagine much potential for anything between RTS and fully programmed games.
There is some interesting research being conducted by the US military in simulating large numbers of people in combat situations. I think that the techniques in question could be more productively used in determining which of the various science fiction ideas for space combat could be most effectively implemented.
I do hope you have also read ‘Commonwealth Saga’ I think that’s even better than Night’s Dawn.
Apart from that: What people really underestimate is kinetic energy. A capital ship would need an awful amount of energy to move and to make it move fast, it would need extremely large engines to change it’s trajectory.
Now imagine small ‘cruise missile’ like wasps which consists only of dense solid matter, a too large engine plus a small flight/targetting computer. This would be a real killer to any capital ship.
Sure, any capital ship could put more plating to it’s hull (assuming an energy shield does not exist) but that would make the ship even less maneuverable and hence easier to target.
(final note: Larry Niven also wrote nice books where some of the basic problems of space faring are addressed)
The obvious synthesis between RTS and a programming game is to embed the programming game in the RTS. When you are not actively on the battlefield, you can write your own control programs, buy wasps with new capabilities, buy and sell control programs… this is also a sneaky way of introducing programming skills to a larger group.
http://en.wikipedia.org/wiki/Peter_F._Hamilton
Carsten: I have read the Commonwealth Saga, the books are good but disappointing in some ways. I should blog about it. It’s interesting to note that someone took a picture of Peter from my web site for the Wikipedia page.
http://en.wikipedia.org/wiki/Marrow_(novel)
One thing to note is that there is no real upper limit on the size of a starship. The book Marrow by Robert Reed (which I highly recommend – so don’t read more than the first paragraph of the wikipedia page) is set on a starship the size of Jupiter. Attacking such a ship would be extremely difficult unless you have extreme future-tech.
dsr: Most of the tasks in an RTS game can be better performed by a computer than a human. A large part of the game play has traditionally involved micro-managing battles. If that micro-management was taken away then it wouldn’t be a real-time game. The human would just set the objectives and the computer would do it better than the human could.
I guess you could have a game that starts off RTS and then becomes increasingly based on programming as the game progresses.
You could start with fairly powerful functions that give you the ability to make big unit behavior changes with relatively little code. One available unit out of the box might look like this:
surroundings = look()
if (friend = closest_ally_under_attack(surroundings))
join(friend) # does nothing if friend is very close
attack_closest_enemy()
elsif (broken = closest_broken_structure(surroundings))
go_fix(broken)
else
todo = closest_active_ally.get_current_order()
do(todo)