Welcome to Keen Software House Forums! Log in or Sign up to interact with the KSH community.
  1. You are currently browsing our forum as a guest. Create your own forum account to access all forum functionality.

Robots for basic tasks

Discussion in 'General' started by jaunetajabe, Jun 8, 2017.

Thread Status:
This last post in this thread was made more than 31 days old.
  1. jaunetajabe Apprentice Engineer

    Messages:
    111
    I wonder if Robots will be an amazing addition.

    I am not speaking about supera amazing robots as C3PO, I am speaking about create with steel, tubes, computers, motors and battery cells NPC that we will assign to tasks such as:
    Pilot ships to patrol
    Manage turrets and fire them
    Repair damaged blocks as automated task

    Obviously if we can create robots like this turrets will not operate automatically, only if we or a robot is assigned.
    Inertia dampeners will not exists, only if we have a NPC piloting the ship it can be stopped in air

    What do you think?

    Will be a different game but will be better!
     
    • Friendly Friendly x 2
    • Like Like x 1
    • Agree Agree x 1
  2. Forcedminer Senior Engineer

    Messages:
    2,225
    imagine if there was pre-made programs so players that aren't a coding Master could assemble the body of a robot and follow basic instructions inside the code.
    .
    .
    i would love if ai controlled npc's could be a thing. :p
    imagine making scenarios with them?
    if they could be programmed the possibilities could be limited.
    .
    if npc's ever become a thing i'd adore if one option was to build the SnoBot Mk1.
    https://steamcommunity.com/sharedfiles/filedetails/?id=605730573
    [​IMG]

    at one point it was an engineer skin with bonuses like faster run speed,no need for oxygen,better faster jetpack, more hydrogen capacity due to not needing oxygen.
    it also had downsides like far greater energy usage
    one feature "was" to have the robot instantly die if you ran out of power......

    sadly the mod hasn't been updated in ages so it does work....but is very broken.
    animations don't work.
    but it was a clever robot skin using machine block parts we know from space engineers. it had convariers on the palms of its hands. cargo containers.....basically a piece of each and every small block to make it seem realistically functional
    and i really enjoyed the thought of the robot characters body getting destroyed and it just downloads into a new body...it even came with a custom medical centre which housed parts of itself.....also doesn't work.
     
    Last edited: Jun 8, 2017
    • Like Like x 2
  3. Ronin1973 Master Engineer

    Messages:
    4,801
    Sorry to burst the bubble... but the amount of coding, testing, and CPU usage would make this impractical to implement. In terms of assets. You're probably looking at least $500,000 to implement in the game; for a feature that really doesn't add much to the game.
     
    • Disagree Disagree x 4
    • Funny Funny x 1
  4. Forcedminer Senior Engineer

    Messages:
    2,225
    $500,000? -_-
    thats a load of bullsh*t.


    "doesn't add much to the game."
    look at the programmable block....the possibilities of that block are limitless.
    now imagine that on an npc shaped entity that can act on the player's behalf.

    how does that not add much to the game?
     
    Last edited: Jun 9, 2017
    • Agree Agree x 1
  5. Vrmithrax Senior Engineer

    Messages:
    1,017
    I kind of like the idea of basic "drone" robots, maybe. Let's face it, one of the first things a lone engineer would do is develop something to help improve their effectiveness. Small robotic assistants would not be an unusual thought for that. In fact, an engineer in space without robots to assist would be downright odd.

    I'd prefer to leave more complex things like ship piloting or turret targeting to automated AI types of situations. But, having very specific and limited functionality in a pre-packaged robotic unit could be handy. Maybe things like:
    • A welding robot to help with building from blueprints or to have wandering and spot repairing as it comes across damage
    • A mining robot to wander and gather ore (preferably that you specify)
    • A salvage robot to grind down wreckage for parts
    • Maybe gun robots for a little security, to help watch your back and such?
    Essentially create a mini specialized drone around each of the engineer's standard tools. And if there is any kind of NPC development going on in SE, that code could easily drive robots with such basic assigned tasks.
     
    • Agree Agree x 1
  6. Nacon Junior Engineer

    Messages:
    591
  7. FoolishOwl Junior Engineer

    Messages:
    510
    Given that it's already possible to program objects within the game through a scripting interface, and that several things the OP described have already been implemented within the game, including patrolling drones and automated construction and repair, this is clearly practical to implement. It would make more sense to discuss how the existing implementation could be improved or extended.
     
    • Agree Agree x 1
    • Disagree Disagree x 1
  8. Ronin1973 Master Engineer

    Messages:
    4,801

    How many dev hours are they going to have to spend to get a AI to move around a three dimensional object and navigate through doors, gravity (no gravity), and play butler to your ship? How many devs, testers, and graphic people do you think it's going to take to do that at an exceptional level? They will have to come from OUTSIDE of the company since everyone else is tasked. So there will be recruitment costs, employer taxes, space for them, spin-up time, etc. All that translates into a lot of money to give you what you want... and frankly, it doesn't add much to the game in terms of playability. It doesn't solve any of the physics problems. It doesn't fix rotors/pistons. It takes away CPU overhead which is already at a premium.

    It's not that an NPC side-kick wouldn't be fun. I can imagine it. But it isn't necessary. It's definitely not in any scope that we know of. It's a wanton wish surrounded in cake and 'bullsh*t' that you're itching for a slice of. Anything else on your wishlist that devs can wave a wand and do for you? How about being VR ready... next week and running on a 2gHz potato with an nVidia 400 series GPU? Might as well wish for that too.
    --- Automerge ---
    Drones are capable of very basic tasks. However they cannot interact with a grid at the same level as a human being. The level of programming it's going to take is far and above what you currently see. Grids are complicated to navigate for an AI. Riddle me this batman, how does an AI fix a block on the outside of your ship when it's inside of it? It has to find a path to the outside. What if your ship is pressurized? What to do then? Just open the door? Not fix the block? Reverse the airvent? What if the room doesn't depressurize (full tanks)? What if there's a series of rooms to navigate? Plus gravity? When does the drone determine if it doesn't have enough power to return to its recharge point? What if the grid has changed during its excursion? Should the robot try to move about if the ship is moving?

    There's a litany of questions and circumstances a "robot" has to be programmed to deal with in the game. These are things we as human take for granted... or don't even think much about. But all of this has to factor into some sort of decision making tree. The robot ALSO has to perform at a satisfactory level to be viable in the game. Most in-game AI really isn't doing too much of any importance. This isn't GTA V.
     
    • Agree Agree x 1
    • Disagree Disagree x 1
  9. Logi Apprentice Engineer

    Messages:
    170
    Having some NPCs (robot or human) just for planets (to make them easier to implement) would add so much more life to this "game".

    Even if they fix rotors and pistons and make multiplayer servers with 16 people + 16 "big ships" viable, SE would still be just an empty sandbox for creative building. Even ME surpasses SE in most areas now not to even start with Empyrion which was once seen as a cheap copy. Latest patch for Empyrion added more content and proper bug fixing than SE has had for 2 years combined.
     
    • Agree Agree x 1
  10. FoolishOwl Junior Engineer

    Messages:
    510
    Note the title of the thread: "Robots for basic tasks", and the examples from the initial post:
    You make a fairly good point that creating drone that repair an interior space would be very difficult. So, of the three specific requests the OP made for tasks robots should be able to do, two of them are already present in the game, including in the "Tutorial", the third is doable, but with significant limitations.
     
  11. halipatsui Senior Engineer

    Messages:
    1,253
    Good idea.
    More guns = more security
     
  12. Ronin1973 Master Engineer

    Messages:
    4,801
    A mission to Mars is doable in real life. That doesn't mean it's the most prudent thing to do at the moment. It's a wish. But what's the ROI on the investment? Very little. It doesn't do much for the core of the game. That's what you people are failing to understand. The point of the cost of man-hours or budget doesn't seem to sink in. Basically what you get is a self-repairing ship at the cost of a heavy AI burden.

    If GoodAI came out with some intuitive, self-learning AI, that was light-weight and could be implemented in the game. COOL. Let's do this.

    But they aren't plugging in some off-the-shelf AI into the game. We're not talking about some sentient android like C3PO. However, there are a lot of conditions that have to be met in order to navigate a complicated grid with TONS of conditional settings that is in motion in three dimensions.

    Okay. I'm out of your thread. It's hopeless to try and get you to think of things from a developers point-of-view or a product manager. You're right. It's a wishlist and Klang-o-Claus will bring you anything you put on the list; because you asked. Ho-ho-ho.
     
  13. GravelProducer Trainee Engineer

    Messages:
    99
    We have remote control blocks, programmable blocks and automated turrets already. However, this could give a ship without a remote control block RCB functionality.

    Robots that can repair, mine, patrol on foot etc can be useful. However, we would need a (fairly simple) interface to tell the robots what to repair, where to mine, where to patrol etc. Having your automated servant fill the refineries with stone might be a bit irritating...

    I do not think that removing functionality to "justify" the use of robots is a good idea...
     
  14. FoolishOwl Junior Engineer

    Messages:
    510
    I still think you're missing my point.

    The game already has drones that float around, see an enemy, and approach it while firing a weapon. The "easy start" maps have welder pits that engage when a friendly vehicle is close to them. A damaged block doesn't even have to be on the outer surface to be repaired by a welder. Mobile drones that can (mostly) avoid collisions, and friend-or-foe detection, are already in the core game; moving towards a goal, while avoiding collisions with arbitrary objects, in three dimensions, is the most computationally difficult task here, and is already implemented. The main thing missing (unless I'm mistaken) is detecting damaged blocks in an area, which doesn't seem like an exceedingly difficult computational task, since the game tracks damage to blocks already. "When you detect damaged blocks, move to within a few meters of the nearest damaged block, unless you collide with something; if near damaged block, activate welder".

    We're not talking about real machine learning here, or even particularly sophisticated coding, much less human-like AI. Much of the history of game design is about getting behavior that looks more intelligent than it actually is, using simple algorithms and the judicious use of "cheats" that simplify the task by eliminating variables. (The welders "cheat", for instance.)
     
  15. halipatsui Senior Engineer

    Messages:
    1,253
    I dont think robots even need to be implemented.

    It is ten times more awesome if you build it yourself.
     
    • Agree Agree x 1
  16. Sinbad Senior Engineer

    Messages:
    2,788
    true, but a ship big enough to have a repair droid made like one of your mechs would be massive.

    to be fair though, a ship that big would want repair droids anyway...
     
  17. Ronin1973 Master Engineer

    Messages:
    4,801
    Sorry, this was too good not to reply to.

    I've programmed quite a few custom drones that are a little "smarter" than Keen's vanilla drones. The drones aren't very smart. Basically the game "cheats" and allows the drones to access the nearest player's exact location in the world. Bump that location over to the autopilot and the drone gets sent there. Turrets are turrets. They have their own logic. Welder pits start up because you've triggered a sensor. You can even use a camera to shoot ray-traces out of it and get information about whatever that ray hits. I've programmed drones to use direct fire weapons this way. Keen has also programmed some simple scripts via Visual Scripting to add a little more dynamic behavior to drones.

    The autopilot using "avoid collision" doesn't avoid collisions with arbitrary objects. The response is much more simplistic.

    Detecting a damaged block would be easy. A grid can scan itself with a programmable block and create a list of damaged blocks. .IsFullIntegrity(bool) From there you can locate each damaged block. You can use the antenna block to transmit this information to a drone. Now what? How does the drone get near enough to the damaged block to repair it? Avoiding collision with another grid is simple. Getting close enough to that grid to use the welder is another. The shape of the ship would have to be known. So what does the ship look like to the drone? You'd have to calculate what direction to approach the ship from to weld the damaged block. So which direction is best? What if the block is inside the ship or unreachable via the welder. How would the drone know?

    You would also need to transmit an inventory of needed parts. You could have a generic inventory of parts. But the drone would have to be pretty big to house enough of everything.

    How often does the list of damaged blocks get sent? And how will we decide which block to go to first?

    There are a LOT more questions that have to be answered and problems to be solved to make the automatic repair drone possible... and more importantly VIABLE to efficiently do its job.

    "Well you just need to drive to my house. Here's the address." Well see. The robot just needs to get to 1234 Any Street, Any City, in AnyCountry. That's simple right? What's that? Two lines of code for a self-driving car? It's just not as simple to do as you think, else there would be some awesome repair drones in the workshop automatically repairing peoples' ships as the played.

    I've coded drones as I said. I've given them tasks (automatica deliveries between bases). Defensive reactions, bread crumbing their way back to patrol areas after chasing players, docking... it's a lot more complicated than you think to do it RIGHT. I'm no real programmer. But it's going to be a LOT of work to have a GOOD player assisting drone in the game world.

    You're free to make this script yourself. All of the tools you need are available IN the game. But it has to work on ANY ship and control for a bunch of different conditions. Let me know how easy it is.
     
    • Like Like x 1
    • Disagree Disagree x 1
  18. Crusader Apprentice Engineer

    Messages:
    177
    I'd like to see stuff like peasants from Medieval Engineers reintroduced into Space Engineers as robots. Would be cool to have at least SOME reason to build a interior.
     
  19. Spets Master Engineer

    Messages:
    3,209
    you can build repair bots yourself. The fun is to try to make your own bot, I have no idea of programming, but I can use other people's work from the workshop. Making this automatically done for the game is nerfing it, removing the fun part, the main core of SE. I have seen fully automated miner bots on space and planets, I tried to make a repair bot for ships, not easy :/ but it was really fun trying.

    here is a very simple platform repair bot, just using waypoints

     
    • Like Like x 1
  20. Vrmithrax Senior Engineer

    Messages:
    1,017
    I have a feeling that if I tried to code a little drone repair robot, it would end up spending all its time just fixing the crap it broke trying to get to other stuff that is damaged. :p
     
  21. FoolishOwl Junior Engineer

    Messages:
    510
    I concede.
     
  22. Bumber Senior Engineer

    Messages:
    1,018
    Divide your ship up into rooms with waypoints. When a block belonging to a room (stored in lists) is damaged, the repair program sends a drone along a simple path from the repair bay.

    You can get fancier than that with material lists and self-calculating paths using connectivity maps, but the basic idea is there.

    Not sure if there's a way to automatically populate the block lists using cameras, or whatever. Might have to sort through them using physical coordinates every time a block is rebuilt.
     
    Last edited: Jun 17, 2017
  23. SpecFrigateBLK3 Senior Engineer

    Messages:
    1,133
    Excuse me, half a mil for a repair drone? Nah! Engineering. You say it has to work on every ship. Why? This is engineering, you shoulda already know allowances would have to be made. Simplify the problem. Just make sure the drone has room to work and only aims for repairs within reach.
     
  24. GrindyGears Senior Engineer

    Messages:
    1,787
    Right, so how do you tell it what's in reach?

    How do you make sure it has room to work?

    How big is enough on a players end?

    What happens if it can't really get at the damaged sections?

    There are a disgusting number of things to take into account when trying to program robots that are entirely adaptable to any situation (any ship or station) to a point where it's likely not worth it, I don't know about the half a million figure, but I know it'd be a money pit at absolute best. We Also know that even if they managed a basic robot system somebody would have some stupidly complex labyrinth of a ship and would be complaining the repair drone doesn't work.

    Most other tasks can already be programmed in game by players, but these are very simple compared to what's being asked for here.
     
  25. SpecFrigateBLK3 Senior Engineer

    Messages:
    1,133
    Again, simplify the problem. How do you tell it what's in reach? You don't, you just define what's out of reach. How do you make sure it has room to work? Build enough room into your design. How big is enough? Fuck if I know, it's a situational thing the player has to adapt to. What happens if it can't get at something? Obviously you jetpack your happy little butt over and fix it by hand.
    In conclusion, stop focusing on the impossible and show/tell what is possible and under what unavoidable limitations.
    EDIT: And to answer the inevitable "what good is a repair drone that doesn't also make coffee like I said it should", build the ship so all the CRITICAL equipment can be repaired. Put all the important stuff where it can be fixed. Don't expect perfection obviously. Be realistic, not a pessimistic asshole.
     
    Last edited: Jun 18, 2017
    • Funny Funny x 1
  26. GrindyGears Senior Engineer

    Messages:
    1,787
    That's almost equally as hard to design a robot to deal with. That doesn't really change the fact that designing a bot AI that can repair things within for example a set radius, is still in fact difficult. Navigation is not an easy thing to do even for simple flat mazes, much less 3d mazes often with no obvious path to take.

    I'll give you that, but sometimes it isn't practical to make (as an example) a 3x3 hallway out to a small tertiary system.

    In general terms are you not better off doing it yourself instead of trusting the bot to ensure its been done? I personally would always go and fix critical gear simply because I don't feel like waiting for a bot to navigate to it. It'd be fine for passive work, like dented armor or whatever, but I think you'd be doing critical work anyway.

    Ultimately the question is: is it worth investing the money in designing an AI that can be assigned a number of different tasks that can navigate through 3d space that has to adapt to an infinite number of possible situations, so that a player can just let the bot do all of the work? In my opinion: no, it's not. It's a huge amount of work for minimal gain. I'm not being a pessimistic asshole: I'm being a realistic asshole.

    Except people inevitably will, and when it doesn't work perfectly for your (not you personally) convoluted maze of a ship, you're going to come onto the forums and bitch and moan about how keen are a bunch of incompetent programmers and can't design a simple bot..... Blah blah blah... I could do better but refuse to do so.
     
  27. SpecFrigateBLK3 Senior Engineer

    Messages:
    1,133
    Regarding the first point. Let me rephrase. Design the droid so that its navigation is restricted to where it physically fits. Make navigation exclude impassable areas. Accept the fact that this is Roomba-level sophistication and design accordingly.
    Regarding drone vs manual repair and critical equipment, also situational. Armor plating may not be critical in one situation or the only repairs necessary in another, and that's a simple example.
    Regarding your point about developing AI, sure, if the work isn't already being done or you adapt to CURRENT resources. Getting custom AI for repair drones is, in my humble opinion, both far off and not entirely necessary.
    Regarding pessimism versus realism, one of those things motivates me to adapt and help others adapt, and one of those things motivates people to sow discouragement. Let me be even more clear. Instead of shooting things down with random ass half-million dollar estimates, be honest about things as they are now.
    As for people expecting perfection, that is fucking life. It fucks up enough, don't use it to excuse not even trying.

    For fucks sake, I thought I was done with this crap when I reamed my parents out for stomping on my little brother's plans with their pessimism they also mistook for realism.
     
  28. GrindyGears Senior Engineer

    Messages:
    1,787
    But again, how much work is it to create a AI/bot that is capable of knowing it's size and what it can or cannot pass? Plus the suggestion isn't only specifically for repair, it's for everything under the sun. Each of the different tasks really requires a very different type of path finding, having it work in most cases, whether or not it's Roomba-level is aside the point.

    Maybe my point was a little lost here, unless you have some monolithic dreadnought, the amount of repairs you're liable to be doing is not much. spending the time to build and have keen design the bot system for it is an expensive luxury at best. If you're thinking "battle damage repairs" I'd say good fucking luck, having to try and replace completely destroyed components, and figure out what's broken or not makes the bot even more complex. And thats just touching on the repair bot, that's not including all of the other things it should do.

    Right, but as the suggestion implies, having robots to do all of these basic tasks, that's AI that has to do all of these things, making even a basic navigation AI to just do Roomba-level tasks is still no easy task.

    Now as I've said, I can't agree or disagree with the half a million prognosis, but having worked in R&D positions, I know money can disappear very quickly especially for complex things. I know I've spent the better part of $50,000 on a few days of attempting to design a [literally classified project] And not being an engineer at the time meant I was on the low end of the pay scale.

    A month of work for a team of programmers would cost a rather large amount.
     
    • Agree Agree x 1
    • Disagree Disagree x 1
  29. SpecFrigateBLK3 Senior Engineer

    Messages:
    1,133
    What tells the bot it can't fit and how? If you use a sensor to force a reroute it's at least less complex than... Whatever you have in mind. You're approaching from a software standpoint, it seems, while I look at it from the point of "hey, I've seen a drone turn with sensors." Each task may need a specific set of pathfinding parameters, but certain pathfinding problems can be hardwired. Regarding the ship in question, my hypothetical use case is a planetside or lunar station under possible meteor strike, with the player likely to be on the move elsewhere, or fixing turrets. In this case, critical equipment is the armor ceiling. You're right about the complexity of your hypothetical case, but clearly not all possibilities. Thus, my mantra is "simplify the problem."
    A repair drone could be as simple as a welder on top of a cargo box rolling around and fixing the ceiling with steel plates. Wall in front? Sensor turns it left till there's room to roll.
     
  30. GrindyGears Senior Engineer

    Messages:
    1,787
    You're talking about designing a drone, whereas from my understanding of the OP is more of an actual stand alone robot, that can potentially pilot a ship and be made to do any basic task. You can certainly do basic path finding via scripts and sensors, but that will only get you so far as far as I'm concerned. A repair drone (in this case) is not super useful if every time something slightly damages a block it takes 15 minutes to navigate a few hallways and an airlock or something.

    We're also still running into an issue where blocks are completely destroyed (like as you say struck by a meteor) having the drone be smart enough to replace that and make sure it has the material required is well beyond the average player, and is quite difficult to do from bot brain point of view.

    But that's not really what the OP is asking for afaik. That cargo box repair drone will only ever be just that. It won't likely be able to mine ores, or grind down a ship, or (as I don't want the for) controlling turrets.

    I'm all for simplifying the problem and making something that works. we can do what you mentioned in this paragraph right now if we felt so inclined, however I don't really think this is what we are discussing.
     
Thread Status:
This last post in this thread was made more than 31 days old.