tsunamayo / Starship-EVO

Welcome to Starship EVO bug tracking repo !
114 stars 17 forks source link

[Question/Concern] NPC Crew Mechanics Questions #3389

Open ZachZent opened 3 years ago

ZachZent commented 3 years ago

To start I personally really do want NPC crew. It makes the ships and game feel more full, it is a good way to balance a lack of players in future multiplayer servers, promotes building interiors, and basic crew management (FTL style) is enjoyable. However this topic was talked about in the Discord recently and it brought up some concerns that I would like to get your thoughts on.

Based on what you have said in the past, NPCs will only be able to pathfind on blocks, only be able to detect block “walls”, only able to use the prefab doors, and would need to use the transporter to go in and out of ships. This has brought up concerns that to accommodate for the NPCs, you will need to build around the limitations which can seriously hinder any sort of creative notion a player might have. Custom doors for example are some of the most popular uses of child entities, and yet NPCs wouldn’t be able to use them. And if boarding is included, the NPCs wouldn’t be able to detect them. So theoretically you can put custom doors outside of your bridge and NPC’s would never be able to enter. The amount of effort needed for AI to recognize bricks and custom doors in a player designed ship sounds astronomical if it is even possible in the first place. All that leads to one extremely damming failure, forced creativity limitation.

In the current competition of “outlaw ships,” virtually all are near 100% bricks inside and out meaning that NPCs wouldn’t be able to function in any of them. If you needed NPCs to be able to move around for a ship to function, players would have to sacrifice their creative vision to accommodate for the crew. This is forced creativity limitation, stopping players from building their vision to have a fully functional ship. The undeniably greatest strength currently and will probably always be SEVO’s greatest strength even when more gameplay elements are added is its creative potential. There are so many amazing ships both inside and out that are simply impossible in any other (current) game. If players are forced either through gameplay mechanics or extreme gameplay disadvantage to sacrifice creativity just for their ship to function, very few will be happy. There would need a NPC compatible ship category and only those would be able to be used in survival except for one crew (player) ships. The game would lose its greatest advantage and the building would just become Starmade again as players would have to ditch using bricks and highly detailing to allow for NPCs to function.

image Vor - https://steamcommunity.com/sharedfiles/filedetails/?id=2319543675

image Tiki - https://steamcommunity.com/sharedfiles/filedetails/?id=2319533239

I really hope for NPCs in the future, but frankly I’m second guessing the sacrifices needed for this feature to function as well as the many exploits that come from it. A single custom door stopping NPCs from going though to prevent boarding for example. As much as I want NPCs, I do not want to sacrifice what makes this game unique from the rest. And considering Dwarf’s ship being NPC compatible and of no offense to him as he is a good builder, that ship can mostly be done in StarMade with few changes. Just a few exterior detailing changes and it being a little less clean.

Now this doesn’t mean NPCs and AI can’t be in the game, I have a few thoughts I’ll leave out for the sake of brevity, but happy to discuss. Well brevity in my case being not two more paragraphs. The question I, and by extension others that added their opinions during the various Discord conversations, have is what is your intentions with AI and NPCs? Is your plan to continue on what you have already stated in this sort of half measure blocks only pathfinding? Is there future plans to include brick ships, custom doors, and other custom player made builds, or is it still just uncertain with a general direction on where to go? I’m no programmer, but it is safe to say that any sort of complicated NPC system with pathfinding while accommodating for the amount of customizability that players have, are, and will continue to use would be extremely difficult.

TIKIRobo commented 3 years ago

One small note for custom doors is that volumetric sensors/laser sensors could be used to make doors AI friendly as then they wouldn't have to try and find and use a player made button

ProPeach commented 3 years ago

In the past when NPC pathfinding has been talked about, I read "block based only" as "voxel grid only", a little bit like the surface area calculation for heat. I might be wrong in this, but that would mean NPCs could still walk around fine in a brick built interior as long as the brick floors are on the block grid, as they would likely have to be to fit in with the blast doors. This doesn't fix many problems though as it might be tough to think about for newer players, and a voxel with only one brick in would count as "full".

Either way, I think a bit of clarity in how these things could work (it's probably still a WIP) would really help

zorozeenee commented 3 years ago

i really hope they dont require npcs for you to fire your turrets

tsunamayo commented 3 years ago

So yes pathfinding would have to be voxel based for many reasons. Also I think I would have to simplify the collision model and make it voxel based. I cant just guarantee total building freedom, add gameplay, and make something that run on the potato PC tons of player are playing on. I have to make trade-off unfortunately. Some other people are pushing to make km long ships ect ect. If this game stays as a pure freedom builder I can find a new job, it will never sell enough. I have to ship gameplay and add features, and that means unfortunately it will restrict building freedom. I am doing my best but there is no other way around that fact. I still think at the end you will still have 10x more freedom compared to other games. You will just need to make sure to leave 1m wide unobstructed corridor for your crew to move around, use builtins door (if you want doors), that doesnt seems like the end of the world. I would add a tool to show where to crew can go. As for dwarf ships he went low on brick because that is what I specifically asked ;). I need fast ships for NPCs, you dont really get to see interior anyway. There is tons of amazing ships out there, but unfortunately not well suited for being solid NPCs ships. Door is also for air-tightness reason and performance. Boarding will auto-balance itself, if your ship is hard to board it means it hard to have your own crew inside. But honestly crew is still far far away. I got to have the basic career loop first. Cheers

Kaiser-Indrasil commented 3 years ago

But honestly crew is still far far away.

True, but most of us want to design our ships with the NPC crew in mind. We're here for the long run ;)

BrickMacklin commented 3 years ago

Will NPCs be absolutely necessary? I'm not designing my ships around them and want them to still be useable in some fashion

tsunamayo commented 3 years ago

@Kaiser-Indrasil yes true, I am amazed and thankful on how you guy are still sticking with me, it really keep the fire burning! So yeah for sure interior wise keep it aligned to the voxel grid, keep 1m wide and 2m high corridor and use the basic door. Of course bed will have to be a dedicated block (likely 1mx1mx2m), and maybe table? But that should be easy to migrate.

tsunamayo commented 3 years ago

@BrickMacklin so I think I will provide a way to use the ship in full auto. That will be mainly for turrets. Maybe a specific Upgrade chip? You will just loose some potential, as crew would boost ship stats depending on their level.

BrickMacklin commented 3 years ago

Much appreciated thanks Tsuna

ultrak2k commented 3 years ago

the hallway requirements seem good to me tsuna, hallway and room requirements don't seem to harsh imo, if prepared for you can build around them and still make something really nice but how would fighters work if they need bricks, and airtightness might become a thing? - if airtightness is a thing, and I assume it's not comparable with bricks, would npcs need a space suit to pilot fighters or something

ZachZent commented 3 years ago

Same with the brick ships that people make (and will always make, usually between 0m and 30m before switching to majority blocks)

ZachZent commented 3 years ago

I will stick with the game no matter what (totally not sunk cost from my big investment) but the worry comes more from having the carrot of creative freedom that we already have. Custom doors, intricate hallways, etc. image This is a build from misteropie. Looks like it works right? It is actually 0.25 bricks above the voxel by design. Additionally the lighting fixture would mean that the voxel would be "filled" thus NPCs wouldn't be able to go in it. Assuming that a brick inside the voxel means the voxel is filled.

There are other ways to have NPCs while allowing creative freedom. On player ships, you would have basically animated "computer blocks" of NPCs sitting at their station. Still have the NPC hiring and leveling systems of Avorion and FTL respectively, but they wouldn't be able to move around. As for the argument that it stops players from building interiors, there will be players who put all the needed NPC stuff next the bridge anyway. This doesn't mean there need be no NPC moving about in game. For in game ships and stations, they can be made to be completely NPC compatible as the builders will be alright with the restrictions. They will be able to move around and do stuff.

In the end it doesn't matter that much as you said, it is a long way away

tsunamayo commented 3 years ago

@ultrak2k yeah for small fighter no need for crew to be moving, just like todays fighters. @ZachZent smaller shuttle might be trickier, it depends on how it was built. Like dwarf I would say no issue, but of course with brick only and super cramped built that might not work. On your example room I cant know for sure just yet if that would work or not, it is too dependent on the implementation. The problem is that light on the side is not an issue in this case, but if it where in the middle of the room it would. Not sure if the algo will deal with this at this point. Cheers

5URG3 commented 3 years ago

I think some of the issues with using the prefab door come from the model of the door, it's too big.

@tsunamayo can we get a 250mm depth door with the same tech as the current prefab door? Also, can we get it in three types:

1: Centred to a 1m block 2: Offset by 250mm 3: Offset by 500mm (This is basically the same as the prefab hatch, but a sliding door.)

I found I can do block based floors without much issue, but interior walls made of bricks are very useful. Unless the ship has a simple pathway through all the rooms instead of a dedicated corridor linking them, using blocks for walls is awkward, especially at the shuttle/corvette scale.

ProPeach commented 3 years ago

I don't mind the prefab doors, but their model could be improved a little if they are to be made as standard for all NPC compatible ships. Namely their frames, I find them to be a little bit too thick which makes it more awkward for the player and future NPCs to fit through. Maybe half their thickness?

Blast Doors I'm sure you're tired of me asking for thinner frames, what with this and the canopies so sorry about that 😄

In other news, I hope you have a very Merry Christmas Tsuna! You've made fantastic progress this year, and you deserve a lovely break

tsunamayo commented 3 years ago

@5URG3 hum thats a lot of variants... I guess the best would be a smaller one that can be offseted in depth... @ProPeach Thanks a lot, amazing 3d model as usual mate! Merry xmas to all of you too guys!

cloudrambler commented 3 years ago

@tsunamayo Would it be possible to provide a door variant that was visually just a frame (or pair of frames) with a gap between them wide enough for a layer of bricks. It would have to conform to the same placement rules as a standard door. Players could then make their own custom door panel models & mechanisms, with the operation triggered by the door frame (as if it were a button). Then any NPCs would interact with the door frame in the same way they would use a standard door. Perhaps this could even be a check option for a normal door; to make the moving panel invisible and allow the door to link with a mechanism.

I would also like to understand how the voxel pathfinding method might work with multiple levels / decks within larger ships. Clearly lifts will have the same challenges as custom doors, though a "standard" lift could be useful. My main question however is what methods could we anticipate as being likely options in a basic arrangement? Can we use ramps, stairs, or ladders for NPCs? Or will they use the jump pads, and if so, what are the limits on how those can be implemented?