Add Web/WASM features #815
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
stale
wontfix
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gh-streetpea/chiaki-ng!815
Loading…
Reference in a new issue
No description provided.
Delete branch "CSystem77/main"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Chiaki-ng — Web / WASM
The goal of this project is to add a Web interface and an Electron client to Chiaki-ng, without modifying the core functionality of Chiaki-ng.
Building Chiaki-ng with WebAssembly
One of the first parts of the project consists of porting/building Chiaki-ng with WebAssembly (WASM), allowing its functionality to run directly in a Web environment.
This makes it possible to create a Web client capable of interacting with Chiaki-ng directly from a browser, without requiring the installation of the native client.
Web Client
A complete Web client has been developed around the WASM build.
Authentication System
An authentication system has been implemented, allowing users to connect to the service.
Virtual Controller
A virtual controller directly integrated into the browser has been added.
The system also includes a theme system, allowing the appearance of the controller and its interface to be customized.
Physical Controller Support
The Web client also supports using a controller connected to the user's device directly from the browser.
It is therefore possible to play from the Web using:
Stream Sharing
A streaming session can be shared through a simple link.
The sharing system can include different elements of the session:
This allows multiple users to participate in the same session.
Proxy
A proxy system has also been developed to facilitate remote connections.
Builds are available/planned for:
The goal is to allow remote connections without requiring ports to be opened on the console's network.
The proxy must be running on a machine located on the same local network as the console.
The proxy connects to the console locally and acts as a bridge between the console and the remote client.
This makes remote access easier when the user is behind NAT or cannot configure their router.
Integrated Documentation
The documentation has been integrated directly into the Web client.
The interface follows the Chiaki visual theme to maintain consistency with the original project.
The documentation is available directly from the interface without requiring users to consult external documentation.
Documentation:
https://streetpea.github.io/chiaki-ng/
Electron Client
In addition to the Web client, an Electron client has been developed.
It allows the project to be used as a desktop application while maintaining an architecture close to the Web client.
Keyboard / Mouse Redesign
The keyboard and mouse system has been completely redesigned to improve its use with both the Web and Electron clients.
The goal is to provide better keyboard/mouse input handling and a more consistent experience between the Web and Electron clients.
Multilingual Support
Support has been added for multiple languages:
The system has been designed to make it easier to add additional languages in the future.
Controller Support
The Electron client also supports physical controllers, allowing users to play directly from the desktop application.
Summary
In summary, Chiaki-ng remains the core of the project, and its original functionality has not been modified.
The development mainly adds a new layer allowing Chiaki-ng to be used in different environments.
The existing development versions of Chiaki-ng are not modified.
Added Features
Demo :
chiaki.csphere.fr/
Video
https://www.youtube.com/watch?v=oqji_qCdI4E
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.