Author Topic: [Brainstorm]Ever wanna play on the AI side?  (Read 1008 times)

Offline carldong

  • Full Member Mark II
  • ***
  • Posts: 191
[Brainstorm]Ever wanna play on the AI side?
« on: January 18, 2016, 07:14:00 PM »
Have anyone thought about this? I love this game, despite that it might or might not be maintained further. We have such awesome logic on the AI to make this game interesting (after figuring out when Threat will actually attack, I am no longer annoyed by them). However, I think we still lack a vision about what the AI side should see... Like, looking 3 hops into human territory?

It might be interesting to play the AI side... A wild thought, of course. Apparently this will reverse a lot of things. For example, as human players, we micro-place our defence, and kind-of micro our offence (route decision + role decitions, at least). The AI don't. The AI chooses its target, and its ships blindly throws itself into that one-meter-wide single most defended point. If we play the AI, that is what we get, too: lots of strategic decision, much more resources, but we lose the tactical aspect of microing.

On the other hand, writing a "Human-Ai" that goes for the conquest campaign might be really, really hard... For example, how the heck do you code an AI to do all those strategic decision a human player can do? Tactical is probably easier because, you know, an AI should have perfect reflection. Of course, a human player with pause can theoretically do the same thing.

I don't expect this to be in the game any time in the future. However, given that I am currently developing a game engine....

I may try to clone this game with just triangle-ships(Fighters/Bombers/Frigates), "triangle" starships(Flag/Bomber/Siege), and "triangle" turrets(Needler/Laser/Missile). Definitely not a small project, but at least I free my mind from writing plots which is a totally different story(which, writing stories is what I really need to practice) from programming. And let me see how it goes with the AI-side.

Offline carldong

  • Full Member Mark II
  • ***
  • Posts: 191
Re: [Brainstorm]Ever wanna play on the AI side?
« Reply #1 on: January 18, 2016, 07:53:03 PM »
This is what I have thought about the actual mechanics. First, what tools do AI have?

- Waves
- Eyes
- Reinforcement
- Special Force
- Exo
- Threat

What do we expect the AI to see? What information does it get now? These are what I can think of now:

- Strength value of adjacent planet(3 hops away in the current game. But I am sceptical on that)
- If planets are owned by human
- How many human units on an AI planet
- Which planets are on alert

Now, warp jammer actually creates trouble on the second point... If a human player is playing the AI side... There is no point to disallow the player to see what is on the planet since AI does not have scout, but then why the heck can't you just reinforce the adjacent planet? This may put fundamental questions on "what the AI is".

So, if this needs to be made playable, the AI has to be a distributed mind plus one central commander (I've seen the Exile plot, I won't spoil here, but I think it actually confirms this). You can treat each command station separate entity with limited information inflow, so that Warp Jammers actually trick the command stations into thinking that they are safe (while actually not), so they, well, may not request for reinforcements. However, some information do get shared. Therefore, when Data Centers and CoProccessors are destroyed, the AI lose some memory about the existence of humans(manifested in lowering the AIP).

So, if you ever want to play the AI side...

To make this a "game", there is no point why you cannot see the individual units unless you want to look at an empty map, some numbers, pushing buttons, and play a blind game. That isn't particularly exciting. You do, however, get to choose what you send in waves. i.e. fleet composition. This is something the current AI-AI can't do, but again, unless you want to stare at an empty map...

You are absolutely limited on the AIP. As a human player, it is completely different from the "distributed mind" sens of the AI, because the human player is obviously not "distributed minded". Maybe on the AI side, that is not called "AIP", and the game mechanics should change so that the Human-AI player have some control on the pace (or it'd be boring). Speed adjustment is likely, unless you want to wait twenty minutes to be able to send a wave or something like that.

Here in mind, there are several things a Human-AI can do

- Choose your unlocks
- Compose the fleet in waves
- Set retreat threshold
- Set reinforcement priorities
- Target the Special Force
- Compose Exos, if you like

Well, ok, that doesn't seem like a lot. Hmmm. Maybe there is some real problems in this idea. Anyways.

And yep, I will try to clone a minimalist version for my own entertainment and experiment. Thoughts include:

- Triangle ships/starships/turret. Maybe some more
- I will bring Crystal back, as it adds another layer of good strategic decision
- I have some crude thoughts on... interesting... AI behaviours. Let me test that, and I don't want to decompile the current AI war and study machine code or anything like that
- I also have an... intereseting... thought on watching AI-Human vs AI-AI. I'd like to see how much strategic decision can an AI-Human make. (And than probably in a later version Human-Human will have to fight both AI-Human and AI-AI, who also fights against each other)
- Aaand I may play around with some mod on Hull vs Multiplier system. I think there are more interesting/elaborated systems out there, but I have not figured them out. The current system is good, though.
- Parallel computation, of course. Looking at the current game, and some history records... Unbelievable that some stats were limited by Int32 values! Premature Optimization, I'd say. Also, by intuition (i.e. not tested) I think this kind of flocking behaviour (what I saw in the blog posts about the AI) should fit quite well in parallel as long as there is a pure way to compute the decisions. Um, the simulations may have to be single-threaded I must admit. OR maybe I can think of a way to break into pure computations as I am typing this sentence... Per-planet thread, maybe? I am currently drowned in Haskell programming and I know that it has extremely cheap sub-threads and something called STM to make parallel/concurrency much easier to handle. We'll see.