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

The future of the smart glasses. #515

Open
SirEndii opened this issue Sep 29, 2023 · 19 comments
Open

The future of the smart glasses. #515

SirEndii opened this issue Sep 29, 2023 · 19 comments
Labels
1.19x 1.20x bug Something isn't working enhancement New feature or request Priority-High
Milestone

Comments

@SirEndii
Copy link
Member

SirEndii commented Sep 29, 2023

Describe your idea

The upcoming 0.8 update is set to bring a significant transformation to our AR Glasses, to the extent that I've entirely replaced the old system with a new one and rebranded them as Smart Glasses.

I'm initiating this issue request to establish a centralized place for discussing the forthcoming developments and desired features for these glasses.

Furthermore, to enhance the centralization of our Smart Glasses' future, I will compile a list of all presently open issues related to Smart Glasses/AR Goggles:

Features:

Bugs (Since the old system is gone, these bugs should also be gone):

Features marked with (?) are just ideas which will not be 100% added to the game

When I finished a specific feature, I will post pictures and upload jars to test them

The progress for the 0.8 update is also "documented" via the commits on GitHub →Branch 0.8

@SirEndii SirEndii added bug Something isn't working enhancement New feature or request Priority-High 1.19x 1.20x labels Sep 29, 2023
@SirEndii SirEndii added this to the 0.8r milestone Sep 29, 2023
@PABessero
Copy link

About the coordinates system:

Will it be absolute (in world / MC coords)
or relative (either to the block the goggles are linked to, or the player that has the goggles)

Same question for the dimensions, at least for the AR part

@SirEndii
Copy link
Member Author

About the coordinates system:

Will it be absolute (in world / MC coords) or relative (either to the block the goggles are linked to, or the player that has the goggles)

Same question for the dimensions, at least for the AR part

Discussable

To retrieve player coords? Absolute and relative, the dimension would be an extra property you can retrieve from the glasses.
To retrieve coords from blocks/objects in the world? Also, probably both, but I would make it configurable to disable absolute coordinates

Note that there isn't a block anymore. So all coordinates would be relative to the player's eye position
I am gonna post some pictures in a minute

@SirEndii
Copy link
Member Author

SirEndii commented Sep 29, 2023

small preview

The glasses with three peripherals and the overlay module:

image

image

@zyxkad
Copy link
Collaborator

zyxkad commented Sep 29, 2023

I want the glasses can render 3D blocks if possible, so we can use computer to make 3D games. It maybe have to create another dimension. If the works are to heavy for you then nvm.

@SirEndii
Copy link
Member Author

That's a thing I will 99,9% add to the glasses. 🙂

@PalTheTaur
Copy link

For the 3D rendering, we would definitely need some way of rendering mass blocks instead of 1 by 1, though, the mention of 3D games by the person above, could maybe have a “VR mode” where it just is a whole different world and the computer is free to overwrite blocks and stuff, but that is definitely excessive.

@SirEndii
Copy link
Member Author

Yeah, that's such a thing I want to discuss when I start making the feature
How players think the endpoint should look like

@zyxkad
Copy link
Collaborator

zyxkad commented Sep 29, 2023

I opened an issue for it IntelligenceModding/Advanced-Peripherals-Features#3

@PalTheTaur
Copy link

PalTheTaur commented Sep 29, 2023

hey for the GUI peripheral idea, even without letting a whole custom GUI maker exist, A preset GUI based on some common vanilla and modded GUIs with some button events, and something like the inventory API would be a good way to atleast have a basic version, but a custom GUI would be killer.

Would also save me from having this janky thing I currently have set up in my world with ender chests mod.

@bmartin127
Copy link

will 1.18.2 have this new system?

@SirEndii
Copy link
Member Author

@bmartin127
If I have the motivation and time to backport this, yeah
I guess I will backport this, but I need to see how much work this acutally is.

@SirEndii SirEndii pinned this issue Dec 5, 2023
@getkirill
Copy link

can't wait for smart glasses to be added :)

@SirEndii
Copy link
Member Author

SirEndii commented Aug 3, 2024

Finally got some time to work on the glasses
Got object syncing to the client done and basic rendering

(This is a YouTube video, you can click on it)

Watch the video

SirEndii added a commit that referenced this issue Aug 3, 2024
… smart glasses. This is still a prototype and would not support other types of objects (like texts, circles or whatever we plan for the future)
@SirEndii
Copy link
Member Author

SirEndii commented Aug 3, 2024

This is my current test script
It deletes the objects that were created before(from another script)
Creates two with some different sizes and colors
Waits a second and then changes the color and size of the objects for testing

The objects are always in sync with the client. If one was updated via a function, it syncs the changes to the client and displays the change without deleting the old object and creating a new one. Essentially preventing flickering.

test = peripheral.wrap("back")

test.clear()
sleep(1)
panelOne = test.createPanel("one", {maxX = 160, maxY = 160})
panelTwo = test.createPanel("two", {opacity = 0.3, x = 500, y = 500, maxY = 40, maxX = 40, color = 0xFF8448})

sleep(1)
panelOne.setColor(0x003c9c)
panelTwo.setMaxX(300)

SirEndii added a commit that referenced this issue Aug 4, 2024
Implemented a system to register rendering object types for network sync and rendering on the client
SirEndii added a commit that referenced this issue Aug 4, 2024
SirEndii added a commit that referenced this issue Aug 5, 2024
SirEndii added a commit that referenced this issue Aug 5, 2024
SirEndii added a commit that referenced this issue Aug 6, 2024
… using the id as an integer. This greatly improves the performance by a huge factor allowing us to sync over 100k objects without any freezing.

Implemented the text renderer with a font size
SirEndii added a commit that referenced this issue Aug 8, 2024
@nmgix
Copy link

nmgix commented Nov 6, 2024

Would be cool to get barebone version of goggles before 0.8, for sure it would ruin joy of full 0.8 release, but i would be happy even w/ only ability to draw basic shapes lol.
Anyway, good job keeping up the good work👍

@SirEndii
Copy link
Member Author

SirEndii commented Nov 6, 2024

Sure
I will try to publish a small preview of the documentation and a working 0.8 build
But note that I constantly change the api or add and remove features

@nmgix
Copy link

nmgix commented Nov 6, 2024

You are trying to scare me with ability to draw my full base on my goggles. The only question is what happened to that tool that gave ability to convert "paint" images (.nfp) to cc:t compatible? Didnt find source code as documentation is quite old

@awesomebossdj7
Copy link

awesomebossdj7 commented Dec 2, 2024

are you going to add a entity sensor and a block scanner like plethora? you said you were planning on making smart glasses compatible with plethora scripts

@SirEndii
Copy link
Member Author

SirEndii commented Dec 2, 2024

I am unsure if I am even capable of adding plethora support
Currently everything is made from the ground up as a new api

The geo scanner will act as a block scanner since you can add peripherals to the glasses
And the environment detector can be used to detect entities

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1.19x 1.20x bug Something isn't working enhancement New feature or request Priority-High
Projects
Status: In Progress
Development

No branches or pull requests

8 participants