Skip to content

SerVB/korjector

Repository files navigation

Korjector

korjector

License JetBrains incubator project Building Testing

logo

Korjector is a KorGE game engine-based multiplatform client for Projector. An internal JetBrains Hackathon 2021 project to demonstrate that a Projector client can be created in less than 48 hours for any OS that supports decent canvas 2D API.

demonstration demonstration

Installation

If you want to build a project from the source, you should run the following commands

git clone https://github.com/SerVB/korjector.git
cd korjector
./gradlew build

also, you can download the latest release here or on google drive

Running

Run a Projector server, for example, via Docker:

docker pull registry.jetbrains.team/p/prj/containers/projector-idea-c
docker run --rm -p 8887:8887 -it registry.jetbrains.team/p/prj/containers/projector-idea-c

Worked with this projector version

After it, run this client.

./gradlew runJvm  # for Linux/Mac
.\gradlew.bat runJvm  # for Windows 

This will open a Java-based app locally. You can edit the URL (defaults to a locally launched Projector server) and connect to the server.

For some reason, the client hangs after some time of running, and it was no luck to debug it during the hackathon.

Also, KorGE allows compiling to JS (Web), Native, Android, and iOS targets, but we weren't able to handle them during the hackathon.

However, it's possible to install the app on iOS:

./gradlew iosBuildSimulatorDebug # Creates an APP file
./gradlew installIosSimulatorDebug # Installs an APP file in the simulator
./gradlew runIosSimulatorDebug # Runs the APP in the simulator

And Android:

./gradlew installAndroidDebug # Installs an APK in all the connected devices
./gradlew runAndroidEmulatorDebug # Runs the application in an emulator

Supported features

  • Specify URL of the server before a connection
  • Rendering of windows (basic shapes, images, fonts). Expect some rendering glitches: we still have them few in the original Projector
  • Decorations of windows
  • Mouse input
  • Ping (currently logged to the console)

Unsupported features

We didn't have much time to implement all the features available in the original Projector web client, but it should be doable after some efforts.

  • Keyboard input
  • Clipboard sync between the client and the server
  • Markdown preview
  • Speculative typing prototype
  • Resizing the whole window in real time (you can resize the window to the desired size before the connection though)
  • HiDPI

License

This project MIT licensed.