tsunamayo / Starship-EVO

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

[New build - DEFAULT] 24w017a: Character Rendering, Hotfixes #5722

Open tsunamayo opened 2 months ago

tsunamayo commented 2 months ago

The character rendering logic has been refactored: it is now fully integrated to the batched renderer. It means it greatly reduce CPU time and improve GPU performance through culling. This is the first step toward bringing large amount of npc (crews, crowd or mobs) to the game.

Character lag when stopping walking at low fps is fixed.

Suggestion:

5704 Tank can now connect to more than one display

Hotfixes:

5712 Collisions with world items

5711 #5721 Ship locks direction when boosting from a standstill

5713 Tank UI setting is not saved correctly

ProPeach commented 2 months ago

Looks like the boost/crash bug #5709 could also be fixed with this patch? I haven't been able to test yet but it seems the same as the two you mention in the hotfixes.

Hearing about accommodations being made dor "large" numbers of crew is very exciting!

Crimson-Artist commented 2 months ago

If the game will be able to handle much more NPCs then do you think its possible we could get decorative NPCs as a building block? In other words NPCs that can be placed on an entity the same way we place blocks but they are just there to be decorative. Empyrean does this with NPC blocks that save to the blueprint so POIs look crowded but in reality its mostly "blocks".

tsunamayo commented 2 months ago

Okay I took this update down for the time being as they are some serious issues it seems.

tsunamayo commented 2 months ago

If the game will be able to handle much more NPCs then do you think its possible we could get decorative NPCs as a building block? In other words NPCs that can be placed on an entity the same way we place blocks but they are just there to be decorative. Empyrean does this with NPC blocks that save to the blueprint so POIs look crowded but in reality its mostly "blocks".

No sure to understand what Empyrion is doing, are those NPC fully animated and doing some pseudo-activity? My plan was always for the player to hire them at station or during random encounters. But you will have to have a bed and a locker to accommodate them, every 10 you will need an officer that will require a private room, and so on. This is why I would like to get this done before survival and (hopefully) more people get to play the game, as this impact how you will build your ship in survival.

surajnairpv commented 2 months ago

@tsunamayo in Empyrion they have a loop animation like standing and breathing or sitting and breathing, some of the blocks have 2 characters interacting with each other ( mostly bobbing head and some minor hand movements). All these animation take place at 1 spot, the character don't move away from that spot.

Horkas commented 2 months ago

@tsunamayo Essentially what the other two are saying, is that Empyrion has blocks you place like any normal one. Except it has 1-2 rigged npc characters playing an animation loop. They are not real npcs. They do not have AI, they do not have health or advanced collision etc. They are simply a block that happens to look like a human character that plays a simple looping animation.

Empyrion did this after trying to satisfy players desire to have crewed ships. But found that having npcs that can move around while the ship is moving? Will almost ALWAYS result in a very VERY bad time. Most game developers that have experimented with this concept have all unanimously concluded that its easier to just make "Npc stations". Aka, You put down a chair or marker where the npc will stand. It teleports there, and is locked into place. (Think about cars in GTA. You get in, are locked into place and cannot move under any circumstances until you exit the car.)

From a very old Dev-log of one of the founders of modern gaming, Insomniac, (Who made most of the tech that makes modern gaming possible like object culling, object instancing, and a few other now LONG standard engine practices.):

(This dialog is about a shooting section of their game, Ratchet and clank, that takes place on a moving train that fly's around the level.) A video example of the level: Starts at the 8:00 mark: https://www.youtube.com/watch?v=FNG6iafLxVE&t=543s

"When we made the train part of the level, we didn't understand just what exactly we where getting ourselves into. When you are programing npcs to work, you are assuming they are standing on a solid platform that never moves. The moment that what they are standing on starts moving? EVERYTHING breaks. The bullet projectiles break, the animations break, the game engine tick rate can't keep up, the ai's aiming breaks, the camera follow speed cant keep up, etc. EVERYTHING BREAKS! So we had to, for this one and only section of the game, re-design entire parts of the game engine to handle that one scene. So rather than break the whole game, we instanced it, and that's why there is a loading screen when you board the train. Its the engine loading custom rules for that section only."

Granted, this is a VERY old game by todays standards, and now days things might be allot different. But the fundamentals are the same. If you plan on adding npcs to your ships? You most likely will not be able to have them moving around at all. Especially during flight. To have them even being able to move on the ship AT ALL would mean the ship must be forced to park in a "Solid state", aka, the ship cannot move or be moved in any way by physics or collision. When turned off, it is fundamentally a solid rock. When the player enters the pilot seat, all the npcs would instantly teleport to their assigned stations. Otherwise they will glitch out into space as you fly, trying to keep up with the game engines tick rate.

I'm not saying its impossible to have moving npcs/players on flying ships. But the hassle might not be worth it.

Sorry for the random wall of text. XD How I feel every time I post something lol: https://www.youtube.com/watch?v=U6YX_lFRDo8

tsunamayo commented 2 months ago

The build is up again, with some character locomotion improvement.

Crimson-Artist commented 2 months ago

@tsunamayo Have you thought about maybe a system where NPCs move around ships while on rails? Instead of the AI just wonderering their way around a ship based on where they need to go players can help by placing down something that will guide them along the right path. I had this idea to use the decal system to make AI pathways since player creations will make it nearly impossible for the AI to just figure it out on their own. The system would also use the Tag tool which seems to only be used for mission scripting atm. AI pathways 2 AI pathways 1

Dwarf-LordPangolin commented 2 months ago

My plan was always for the player to hire them at station or during random encounters. But you will have to have a bed and a locker to accommodate them, every 10 you will need an officer that will require a private room, and so on. This is why I would like to get this done before survival and (hopefully) more people get to play the game, as this impact how you will build your ship in survival.

That sounds amazing, and honestly what a lot of people have dreamed of having in a voxel building game for a while. I'm sure more people will be playing the game as it gets more stuff to do.

tsunamayo commented 2 months ago

@Horkas Hold my 🍺

tsunamayo commented 2 months ago

@Horkas but that sounds interesting, do you have the page where he talks about that? What his name? I already deal with parenting and walking at high speed inside a ship (at several km/s), but to be fair I dont deal with physics yet, but it is planned if I want to add a day/night cycle, where planets needs to rotate.

tsunamayo commented 2 months ago

@Crimson-Artist In the worst case I will add player-authored waypoints. But I will try to generate those myself and have a pathfinding routine use them. Thankfully pathfinding is a very well researched area in video game, so hopefully I can make this works.

Horkas commented 2 months ago

@tsunamayo Unfortunately, the video I mentioned in particular is lost to time it seems. I think they took the series down because they where talking and reviewing the HD remaster of the game, which they did not have a part in. But they still have their older videos up showing the original gameplay.

Their YouTube channel and the first of their commentary videos of a MASSIVE series of videos of them talking about their time making all of the original Ratchet and clank games: https://www.youtube.com/watch?v=lUwIYfykyss

(Funny note: In that video I linked, they actually mention briefly another level in which the players are fighting on moving platforms, and are grateful they did not have to make that level. XD) The level they where happy to not have to work on: https://www.youtube.com/watch?v=DKJ5DZAaxiI starting at 3:21

Unlike the first level shown, where the mountains and backdrops are all moving on their own, while the level itself is stationary, the trucks on the other hand are actually racing along a very long and windy track, going in a big figure 8 motion until the player triggers a ..... The name escapes me... Load zone? Progression trigger? Which triggers the trucks to finish their loop and end at the boss arena.

Horkas commented 2 months ago

@Crimson-Artist The funny thing about your post, is that what you are suggesting is almost EXACTLY what modern AI does to path find. The AI handler code will literally plot out points to move to, with a white line as the path they follow, all automatically. The code will scan the local surfaces and plot a path of shortest distance usually.

However, having doors or objects they have to interact with? Boy howdy, that's when it gets really REALLY rough to tackle. (Exact reason why fallout/skyrim npcs struggle so much with getting stuck on quests that have them use a computer or door lock.)

The less they have to interact with things on their path. The better. Doors should be able to open or close simply by being within proximity to the door itself. Having them have to trigger a button to do it? Would amplify the headache and work load of making that AI 100X.

Auto pathing breaks on allot of games because the developers just designed the pathing poorly, to be honest. (Not putting in correct height variables on the npcs collision detection sphere/box to allow npcs to path over small objects, npc collision sphere/box for detecting if they have hit something being too wide/far in-front of them, not having fail-safes like short distance teleports to the plotted points if unable to move for more than 8 seconds, etc.)