Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

World Wrap Discussion #7

Open
Amaikokonut opened this issue Jun 16, 2021 · 8 comments
Open

World Wrap Discussion #7

Amaikokonut opened this issue Jun 16, 2021 · 8 comments
Labels
creature-fairness Something is unfair to creatures/not instinct-friendly performance this is slowing the game down

Comments

@Amaikokonut
Copy link
Member

Let's talk about the world wrap.

As noted in these two threads-- [1] [2] -- World Wrap is largely a very impressive smoke and mirrors effect, and it's hard to imagine C2 without it. But it is not without its problems-- resource intensiveness being the most obvious, but issues raised about creature-navigation-friendliness might be of most concern in this era.

So, what should we do about it?
What are the current issues with the world wrap?
Are there ways we can fix or improve or mitigate any of the issues?
Would we like the option to not have the world wrap at all?
Would we like to try to implement it any differently?

Discuss any and all of your thoughts and opinions!

@Amaikokonut Amaikokonut added performance this is slowing the game down creature-fairness Something is unfair to creatures/not instinct-friendly labels Jun 17, 2021
@the1whoscreamsiguess
Copy link
Contributor

World wrap is janky and doesn't always carry agents through properly, especially if they are tossed through the wrap point by the hand.

Also:

goodbye norn

Amaikokonut pushed a commit that referenced this issue Jun 20, 2021
Change trumpet detritus a little
@bedalton
Copy link
Contributor

World wrap fails when the game window is too wide, and the cursor passes the wrap boundary
Missing Wrap Agents
p

bedalton added a commit to bedalton/C2toDS-Refresh that referenced this issue Mar 22, 2022
World wrap was not wrapping left side onto right
Creatures-Developer-Network#7 (comment)

This update creates a wrap area equal to the size of the window. The wrap size changes as the game window is resized.

Initial construction of the wrap is delayed as eager construction caused right side panels to be placed at 0.00.

References Creatures-Developer-Network#7
@NeoDement
Copy link
Member

#85 #88 #96 #98 #102 all make changes to the world wrap that are intended to make it a bit less confusing for the hand and creatures. Here's a brief summary:

-Creatures can now walk through the wrap (before they were just walking in front of the cameras).
-Any objects a creature is focusing on will not go through the wrap until the creature looks away. This includes the pointer, although the pointer will immediately transport if the user left or right clicks.
-Creatures can now hear the hand and agent help system talking to them from the other side of the wrap.
-You can now hold a creatures hand and walk it through the wrap.
-The wrap now runs checks every single tick instead of every 10 ticks, but it is running less checks. Hopefully this results in a more consistent framerate.

More specifics can be found on the pull requests. It's not perfect, but it does feel a lot better. My PC is quite high spec though so the performance might be considerably worse. If anyone wants to test this (and compare it to older versions before #85), that would be appreciated.

@NeoDement
Copy link
Member

Of course, creatures still can't hear creatures through the wrap (and I see no way that could ever be fixed without directly modifying the creature talk scripts). So we very likely need to have some sort of configurator to keep everyone happy. I would like this to stay as the default though, I feel the world wrap is an invaluable part of the C1/C2 experience. Plus it never even worked properly in C2 so it's not like we lost much in translation.

@NeoDement
Copy link
Member

#102
-Creatures can now hear each other talking over the wrap.
-DS object of attention and norn indicators are now set to be visible to the camera while in the C2toDS metaroom. This means they don't disappear when the pointer goes over the wrap.

@NeoDement
Copy link
Member

NeoDement commented Jul 8, 2022

#108

Creatures can now fully interact with and understand the world wrap!

world wrap in action

-Creatures can now see objects over the wrap. This works by creating an invisible object with the same Category as the original, offset to the other side of the world. It even works for the pointer and creatures!

-Interactions with these Mirror objects will redirect to the same interactions on the original object. This is to account for objects that are near the wrap but can still be reached without the creature walking through.

-If a creature gets too close to a Mirror creature, the Mirror copy will move away from them slowly so that the creature keeps approaching until they cross the wrap and can interact with each other for real.
(this had to be done because creature to creature scripts are complex and can't be faked with a simp object)

-Creature voices can now be heard over the wrap (previously norns could hear them but the player couldn't hear the creature bibble).

-The pointer/objects are no longer prevented from going over the wrap if a creature has their attention on them, the copies fill the same role.

-The Selected Creature/Attention Indicators are no longer made visible everywhere in the C2toDS room. Instead, copies of them are created and offset to the opposite side of the world so the camera can always see them.

-Optimization. Having the world wrap installed in a world with 16 creatures with fast ticks enabled appears to be on average ~43 fps slower than not having it installed.

The game variable "C2toDS_WrapTickRate" can be tweaked to control how frequently the wrap tries to move objects through it and create mirror objects. The lower the number, the more accurate, but it comes with a performance cost.

@Amaikokonut
Copy link
Member Author

lord this is fantastic! This may be even be more functional than C2's own world wrap at this point, hah. Seriously, amazing work, I never dreamed the world wrap even could be this well-emulated.

At this point, are there many further concerns/todos with the world wrap? I'm wondering if we should close this issue and open smaller/more specific issues for individual concerns as they pop up, or continue discussing it here.

@NeoDement
Copy link
Member

Thanks!! There are a few small remaining bugs:

-The cameras don't always seem to appear correctly in fullscreen mode (left side ones were frequently missing for me but nothing ever went wrong in windowed mode)
-Sometimes two indicators can be seen when walking through the wrap
-I have a few ideas for optimization that I noted in the cos file, mostly about switching parts of the wrap off when no creatures/the pointer are around to see the thing go through

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
creature-fairness Something is unfair to creatures/not instinct-friendly performance this is slowing the game down
Projects
None yet
Development

No branches or pull requests

4 participants