1. The forum will be closing soon permanently. Please read the announcement here

    Note: User registration has been closed. We do not accept any new accounts.

Fleet Command Project, AI + Strategy Gaming In SE [Alpha Released!]

Discussion in 'General' started by Rdav, Apr 10, 2016.

?

Would people prefer further versions of Fleet-Command as a proper-mod, or an In-Game-script?

  1. A Mod: I want the extra functionality that a proper mod would have over an in-game script,

    16 vote(s)
    18.0%
  2. An In-Game Script: I would like to be able to use this in a 100% vanilla world,

    32 vote(s)
    36.0%
  3. Not Fussed: any form is good for me!

    8 vote(s)
    9.0%
  4. Both: Do a core-functionality version for vanilla and an advanced full version as a mod

    33 vote(s)
    37.1%
Thread Status:
This last post in this thread was made more than 31 days old.
  1. Rdav

    Rdav Apprentice Engineer

    Messages:
    117
    Fleet Command Project
    TLDR: AI at last!, I need your input!

    Introduction:


    The concept for this project was to give players the ability to control a fleet of ships, effortlessly and reliably in vanilla.

    However this is not merely a drone following script, this script will give a sequence of AI to ships that will enable a player to fully and completely control the actions and commands of their fleet, control formation, tactics, squadron manoeuvres, and automated docking, all with an easy to use LCD menu.

    Self-AI will control fighter-class ships to roll and dogfight enemy ships in a 3D area, frigates will stay at a medium range, using their superior agility to avoid heavy weapons fire from enemy cruisers, while larger cruiser class ships will stay at distance, using their longer range weapons for maximum effect against larger enemy targets, turning to bring their best weapons to bear.



    What Will The Script Do?

    Players will have the ability to command and control an entire fleet from the deck of their mothership, combined with scripts such as Alex_thatradarguy’s Radar, or Blue-g’s radar*, this will will add another level to the game entirely, enabling late-game players to command and control their scratch-built fleet akin to strategy games such as ‘Empire At War’ or ‘Homeworld’.
    *(these are optional, the script will work fine just using the vanilla sensors)

    Players will be able to build up from humble beginnings to a fleet that spans hundreds of ships and hundreds of kilometers, controlling it all from their mothership.

    Send a bomber squadron dive bombing from the sun, Get a frigate to pop up from behind an asteroid and unleash a critical barrage on an enemy capital ship, launch and dock squadrons of fighter-class ships from a carrier. Crush the enemy using advanced on-mass-manoeuvres and tactics that where previously only dreamed of in space engineers.

    All of this in a 100% vanilla game.

    For many years people have desired and yearned for a purpose to their fleets, no longer shall multiplayer fights be restricted to just two massive capitol ships, coated in turrets, slugging it out, the age of the fleet is upon us.



    [​IMG]
    Example of the basic system-layout

    But I’ve Never Used an In-Game Script Before?

    Don’t worry, I fully intend to make this as accessible to everyone, you won’t need an IT degree to get this working, I want this to be as accessible as I can so I’m trying to integrate a setup that’s no-more complicated than using the vanilla RC block, but this is where I need you! Let me know, give me feedback, make my life a living hell getting me to make your life easier, does something seem too difficult to set-up? Let me know! Is the menu too confusing? Let me know! I’m a compulsive people-pleaser , and passionate about the project so I’ll try my best to keep everyone happy.


    Example of the UI system currently in--place

    I’ve Heard That Things like this were impossible to make because of performance issues?

    While this could well be true, I’ve implemented systems to control performance, I have had over 50 ships running simultaneously without a any degree of sim-speed drop, in fact no matter how many ships you have, performance will stay the same because it will run 1 ship per tick (1/60th of a second) so performance with 100 ships will be the same as with 10, or 5, the limiting factor here is how many your ships pc can render!


    I Need You!

    Please Let me know what you are thinking in the comments, I've poured weeks into this project, and with a few weeks still to go any feedback would be greatly appreciated, give me suggestions for things to add, ask me if something is already in the script, I'm hoping that I can keep this thread up as a running Dev-Log for the project, so I can keep you all updated on the progress, I'm foreseeing a final release within the month

    Setup Currently Requires:
    • 1 programmable block, 1 LCD and timer on mothership
    • connectors (named) for each ship to dock on mothership
    • Connector, p-block (named) and RC-unit on commanded ship
    • 4 things in your toolbar to navigate through the menu (left, right, enter, clear)
    The Three Classes Of Ship
    • AssaultCraft, light fighters and bombers, the AI will engage at maximum velocity and dogfight and strafe targets (squadrons of 5)
    • Frigates, Large ships with large amounts of firepower, AI in these will engage targets and drift up, down, left, and right, randomly to avoid enemy fire (squadrons of 1)
    • Heavy Cruisers, a fleets flagship, Will engage targets and prioritize bringing the big guns to bear on a target (will intergrate PMW and Railgun abilities)

    Example of automated squadron docking (still a WIP)

    PROJECT STATUS:
    Alpha Released! Waiting for some bug reports and some feedback so far,

    SUGGESTED + PLANNED FEATURES:
    These are features that will be eventually implemented, although this is subject to change, let me know what you guys things, and ask me if you want something on the list:
    • Utilities management, a separate (or combined) panel will deal with utilities, and allow control of mining, and scavenging drones (welding is a little more complex, so perhaps not)
    • Advanced controls panel, a separate LCD panel for specific + advanced functions for individual ships, (eg changing squadron, go to repairs shipyard, use only gatlings,)
    • Sensors LCD panel managing Recon drones, and sensors,
    • Integrating 'Patrol' and 'Follow/Defend' features into the Military command panel
    • (Perhaps) making a GFD radar script to detect enemies beyond sensor range
    • Improvements and optimizations (ongoing)
    • Dedicated 'Planet surface' mode, for vehicles and airbase management
    • Radar LCD panel for realtime strategy-map
    Acknowledgements
    Big thanks to Jonnytaco, and JD.Horx for putting up with my endless nagging for input, also special thanks to JD.Horx for the use of his drones for my testing

    Current hours spent on project: 320
     
    Last edited: Jun 19, 2016
    • Like Like x 32
    • Friendly Friendly x 2
    • Agree Agree x 1
  2. Rdav

    Rdav Apprentice Engineer

    Messages:
    117
    To let you know how I'm getting on, here are some Gifs of my progress so far!

     
    • Like Like x 8
    • Friendly Friendly x 1
  3. BlackUmbrellas

    BlackUmbrellas Senior Engineer

    Messages:
    2,818
    Okay, this is something I find interesting.

    I can't test it myself due to hardware issues, but damn.

    I'm very interested in where this goes.
     
  4. Spets

    Spets Master Engineer

    Messages:
    3,214
    • Informative Informative x 1
  5. theorytard

    theorytard Trainee Engineer

    Messages:
    37
    This is amazing I can't wait until I can try it out.
     
  6. SaturaxCZ

    SaturaxCZ Senior Engineer

    Messages:
    1,718
    Now we only need 3D map ( ala homeworld ) to control our fleets in diferent parts of univers to conque all MUHAHA ( evil laugh ) ;)
     
  7. The Q

    The Q Apprentice Engineer

    Messages:
    247
    [​IMG]
     
    • Like Like x 4
    • Funny Funny x 1
  8. Stollie

    Stollie Apprentice Engineer

    Messages:
    136
    So how do I help you test it? :D
     
  9. Rdav

    Rdav Apprentice Engineer

    Messages:
    117
    I have indeed! in fact it was that post and a nudge from JD.Horx that first gave me the inspiration to start!
    It was a great concept, however I encountered many of the same problems he did, so I had to write my own autopilot, as the vanilla autopilot not being capable of following rapidly changing, successive instructions,

    Within the next week or so I'll be releasing an alpha version for people to get familiar with the script and test it out, not 100% in functionality just a taster for people to see if there is any core elements still lacking.
    For the time being just some thoughts+ideas will do!
    From the Gifs and description people can get a general feel for the concept, is there anything you think it would be cool/useful to have integrated?
    (eg, some ideas could be: auto battery turn off on dock, warning sirens when an enemy is detected, upon selecting a squadron beacons on selected ships will light up)
     
    • Friendly Friendly x 1
  10. Fidel Battista

    Fidel Battista Apprentice Engineer

    Messages:
    256
    Cant wait to test it! :tu:

    Also, you need "Jump to location" commands.
     
    • Agree Agree x 1
  11. Stollie

    Stollie Apprentice Engineer

    Messages:
    136
    Sounds good :)

    Well some simple run of the mill stuff that any of the fleet control games uses.

    1.) Command to attack my current target
    2.) Indication of current target
    3.) Protect my target
    4.) Protect me
    5.) Dock here, turn on projector, rearm, refuel (think you mentioned this)
    6.) Dock with my target
    7.) Fly to this gps point and dock with closest player owned station
    8.) Keep ship facing x way to enemy for broadsides vs frontal attack
    9.) Ram my target
    10.) Engagement rules, kamikaze vs run when no ammo no weapons etc.
    11.) Go here, dock, collect x, fly to x, dock, drop it off
    12.) Easy remote control function without having to navigate so many menus, ie. one button on toolbar
    13.) Keep x distance from enemy
    14.) Repair my target

    Thats all I have for now haha, theres also a mod on the workshop that has a lot of this stuff but it stopped working last update.

    Its called autopilot, radar and military systems, ID# 363880940
     
    • Agree Agree x 1
  12. MisterSwift

    MisterSwift Apprentice Engineer

    Messages:
    367
    This looks pretty cool!

    Out of interest, how are the ships communicating? Did you write a ModAPI mod?
     
  13. Rdav

    Rdav Apprentice Engineer

    Messages:
    117
    This would be good, however, In-game API still doesn't have access to jump drive yet, so I'm waiting on keen for this! But I've got something ready for when they do, so hopefully it should just slot in,



    Thanks for these ideas! I'll start from the top, and I'll update a list of planned/working features at the top of the page so I can keep track too,
    1-6, and a few more are already implemented, and I'll have a think through some of the rest to see if they are possible with the in-game API without too much of a performance hit, :) I had never previously considered the Ramming option,


    Thanks! I use the ability of a prog-block to permanently log a block, this was so I could keep it 100% vanilla.
    However, as I know some people think of it as a 'cheaty' method I do also intend to put support for laser-antennae communication in too, I also have a large section of code ready and waiting for when keen introduce an 'official' way of communicating across grids, which I'm hoping will be simultaneous with the removal of previous 'cheaty' methods.
     
    • Like Like x 2
    • Informative Informative x 1
  14. Atropos89

    Atropos89 Trainee Engineer

    Messages:
    2
    I made an account just to ask this question, so apologies if it gets answered before I get through the first-post moderation approval.

    This sounds like an amazing addition to the game! I have to be skeptical though. SE isn't exactly stellar at rendering many grids from a physics standpoint. As the number of grids and/or block count increases, the sim speed suffers. In my experience, having 30 decent-sized grids would restrict you to somewhere around a sim speed of 0.8 at best. You claim that you won't have performance issues from your script by forcing it to calculate only one grid per tick. That's great! But what about the real burden on the game - physics interactions from missiles and grid collisions? If you have only two cruiser-sized ships ram each other while firing weapons, the game practically becomes unplayable until they separate. Do you have a way to address this?

    TL;DR: How will this not lag the heck out of any server?
     
  15. Rdav

    Rdav Apprentice Engineer

    Messages:
    117
    Thanks for the comment,
    I suppose there isn't really a cap on it, but then again I'm not sure if there's a way in-game I can prevent large-scale physics interactions.
    However, I am going to hard-code some limits into it to reduce potential server-load, kind of like a unit-cap in strategy games, but things in SE have been getting better, slowly but surely, with more optimization these things will be less taxing and I can increase this limit.
    Also, I'm hoping that with this system people will rely less on large slow moving capital ships and more on smaller versatile craft, so explosions and collisions should be less intensive, also AI in the smaller craft is fairly good at dodging, so explosions and damage effects should be less frequent than simply two large ships that are guaranteed to hit each other.

    Beyond that there is not much I can do to save on sim-speed, the best I can do is minimize the chance of accidental collisions.
     
  16. kcjunkbox

    kcjunkbox Senior Engineer

    Messages:
    1,132
    Will your autopilot work with mods that use realistic thruster mechanics? Realistic meaning that they do not apply their thrust at the center of mass. Or will the autopilot get confused?
     
  17. BlackUmbrellas

    BlackUmbrellas Senior Engineer

    Messages:
    2,818
    I'd be interested in non-combatant role support; would it be possible to use this setup to order around miners or grinders?
     
  18. Light_gemini

    Light_gemini Junior Engineer

    Messages:
    671
    I have been looking for somthing like this for long in this game. Im excited to take a look at your code when released to see how you manage to do it ;).

    Im wondering about a couple things. Will you use any radar mod our there to give "eyes" to the ship AI or you are handling it yourself? Or will the AI totally relay on you to mark its targets? If AI could pick its own targets it would be possible to have an autonomous command AI be left alone to defend a base or area without player intervention. With the pirate drones AI project being made by Me 10 Jin, and a "standalone" version of yours we could start having a real dynamic and alive world not centered around the player.

    Another thing is how to handle the concept of "enemy destroyed", or simply how the AI will know when to stop beating an already dead enemy. Will it use the current turrets logic(destroy every single system block that still functions)? Could you order them to stop when all turrets on the enemy ship are disabled, so you can proceed to board it? Maybe it could recognise that an unpowered ship is dead and stop attacking?

    Really looking forward to this project:)
     
    • Like Like x 1
  19. Rdav

    Rdav Apprentice Engineer

    Messages:
    117
    Not quite yet...theoretically it will, but not exceptionally well, if enough people want the script to I'll invest some time in it, but until then I'll just try getting the core mechanics rolled out first,

    That's the goal, at the moment you can point 'em around and autodock them and such, but proper mining and/or welding is phase 2 I'd say, I have some ideas, but haven't started prototyping yet,

    Thanks :) Currently the script uses the ability of the vanilla sensors, and an occasional call to the GetFreeDestination to 'See' the world around it (GFD is for drone collision detection) , Once any enemy object comes within 50m of any player owned sensor (eg scout-ship, or sensor-mine) I can permanently log it, and then provide continuous updates on it's size, mass, and location from the Mothership, which relays that info to every ship.
    Hopefully within the coming weeks or months keen will either give us a radar-block, or more access to the radio antennae in-game to make this process more streamlined, although if you want more range now, any of the sensor range mods will work fine with it.

    Dead enemies are a difficult one, currently it's using a if the grid is smaller than x% of its original size, however I've been looking into ways of getting more information about the grid,

    Regarding the AI, yes! the eventual aim is to be able to get the script to a point where it can be tied to an AI script and have some proper AI factions, gathering for and building their own ships, potentially even warring (if SE gets optimized to a point where that's feasible) but that's still quite a few months off yet, I'll get in contact with Me 10 Jin at somepoint see if he wants some input,
     
    • Like Like x 2
  20. FlakMagnet

    FlakMagnet Senior Engineer

    Messages:
    1,551
    I think this is excellent :)

    I'll be subbing this as soon as it's out, as I think it will be great fun to have a small squadron of fighters on patrol around a mothership defending it, which can dock and launch. Attacking pirates with a squadron, or using a frigate and fighters... as i play mostly in Survival SP, this would allow things to get a lot more 'busy'
     
    • Agree Agree x 3
  21. MisterSwift

    MisterSwift Apprentice Engineer

    Messages:
    367
    It's even more impressive considering you're just using persistent Programmable Block references, sensors and remote controls :tu:

    I've been toying around with something similar but on a much smaller scale, the collision detection alone is a massive pain in the ass. Keep up the good work and good luck!
     
  22. JD.Horx

    JD.Horx Senior Engineer

    Messages:
    1,032
    Told you this project would get a ton of response on the forums. :D
    Keep up the good work!
     
    • Like Like x 2
  23. DragonShadow

    DragonShadow Apprentice Engineer

    Messages:
    407
    :carlton:

    I will happily be your guinea pig for this, lol
     
  24. mze9412

    mze9412 Junior Engineer

    Messages:
    791
    Great project! Wow! :)

    Could you please go a little bit into detail how you remote control the ships? I would guess by keeping block references? Or did you find a different method?
     
  25. Kingfishercritic

    Kingfishercritic Apprentice Engineer

    Messages:
    108
    I can't wait to try this.
     
  26. Rdav

    Rdav Apprentice Engineer

    Messages:
    117
    Thanks, Yes, block references, lots of em, each drone has a p-block running a variant of the script that deals with the ship-types 'personality' (eg, fighter, cruiser etc) the script in each automatically scans through gyros, thrusters, and weapons and controls gyro + thruster overrides to control heading and velocity towards a targetpoint.

    The targetpoint itself (and a few extra pieces of information) is input into the programmable block from a central-command unit on the mothership that coordinates each of the drones, (this is the block which has the references to each drone) this variant of the script, coordinates attacks, formation, and User-inputs, and keeps track of enemy targets and targetinfo, automatically assigning squadron information and commands to newly detected ships,
     
    • Like Like x 2
    • Informative Informative x 1
  27. haibusa2005

    haibusa2005 Trainee Engineer

    Messages:
    40
    Looks amazing! I have always wanted a way to control a fleet of ships! Keep the good work. I will definitely test it once it gets published.
     
  28. Hakon102

    Hakon102 Apprentice Engineer

    Messages:
    300
    Hell Yes! :woot::woot::woot: This is one thing, what i wanted to see in this Game. :) I will definitly test it out and I will try to help you with reports, requests and suggestions!
     
  29. mze9412

    mze9412 Junior Engineer

    Messages:
    791
    I hope that a "legal" grid communication method will be introduces at the same time when they patch the block reference issue (I still see that is an very handy exploit but by no means as intended behaviour) :D Great work!
     
    • Agree Agree x 2
  30. Speshal_Snowman

    Speshal_Snowman Apprentice Engineer

    Messages:
    175
    Great idea, and I can't wait to try this! To answer your last question on whether a video or a written manual. I prefer a written manual since it is more detailed, and easy to go back to a particular step, instead of trying to find the place in the video.
     
    • Agree Agree x 2
    • Informative Informative x 1
Thread Status:
This last post in this thread was made more than 31 days old.