Revise the README

Closes #69.
This commit is contained in:
Fingercomp 2023-04-20 02:53:56 +07:00
parent b19c4e151c
commit afab87d1fb
No known key found for this signature in database
GPG Key ID: BBC71CEE45D86E37
8 changed files with 133 additions and 78 deletions

209
README.md
View File

@ -3,131 +3,186 @@
A desktop version of the renowned OpenComputers emulator Ocelot. A desktop version of the renowned OpenComputers emulator Ocelot.
[Download the latest build][download] / [mirror][download-mirror] [**Download** the latest build][download] / [mirror][download-mirror]
## Why ## Why
You might already be happy with your choice of an OC emulator; after all, there You might already be happy with your choice of an OC emulator;
is already a plenty of them. there is a plenty of them, after all.
So why would you want to reconsider your life choices now all of a sudden? Why would you want to reconsider your life choices now all of a sudden?
A fine question, indeed; perhaps, a list of features will persuade you. A fine question, indeed; perhaps, a list of features will persuade you.
### Powered by ocelot-brain ### Powered by ocelot-brain
At the heart of this emulator is [ocelot-brain][ocelot-brain] (uh, don't ask me), At the heart of this emulator is [ocelot-brain][ocelot-brain] (uh, don't ask me),
which is essentially the source code of OpenComputers stripped of everything which is essentially the source code of OpenComputers decoupled of everything
Minecraft-specific and packaged as a Scala library. Minecraft-specific and repurposed as a Scala library.
This makes Ocelot Desktop **the most accurate emulator** ever made. This makes Ocelot Desktop **the most accurate emulator** ever made.
Your programs will run on the same version of Lua as used by the mod and have Your programs will run on the Lua implementation used by the mod and exhibit
similar timings. similar timings.
The performance and memory constraints present in OC are also emulated. The performance and memory constraints present in OC are also emulated.
### Customizable setups ### Customizable setups
Computers can have the following components: Taylor your computer build to your needs!
We provide a variety of components to choose from:
- the 3 tiers of graphics cards - graphics cards
- all kinds of network cards (wired, wireless) - network cards (wired, wireless)
- a linked card - linked cards
- an internet card - internet cards
- a sound card (Computronics) - redstone cards (including the second tier!)
- a redstone card in the both tiers - data cards
- a data card (again, you can pick any of the three tiers)
- hard disks - hard disks
- a floppy disk (in T3+ computer cases only) - floppy disks (in T3+ computer cases only, just like in OpenComputers)
The choice is restricted by the tier of a computer case, just like in Feel limited by the vanilla cards?
OpenComputers, to avoid building impossible configurations. No problem — we've even integrated some components from popular addons!
Oh, did I forget to mention that Ocelot Desktop has both the CPUs and the APUs?
Memory can likewise be installed according to your needs.
If one computer is not enough, you can add another one. ![Addon showcase][addon-showcase]
Or two, or a thousand, as long as your host doesn't collapse under the load,
of course.
The network cards are there for a reason — these newly spawned machines can
communicate with each other.
And relays may help you manage the wired networks.
Or, instead of employing an army of computers, you might want to connect a dozen - **Computronics:**
of screens to a single machine, like in the movies. - `computer.beep()` does not excite your music sense enough?
No problem — we've got that covered, too. Check out the **sound card**'s synthesis engine,
or string notes together on a bunch of **note blocks**!
### Pretty graphical interface - You have privacy concerns?
An ultra-precision blast of the **self-destructing card** might save your day!
- If, on the contrary, you're the kind to violate the privacy of others,
we've got a **camera** that reads video data from a real webcam.
- Those who seem to find no color in their life may appreciate the
**colorful lamps**.
Their iridescent glow will provide comfort in the darkest hour.
And they won't desert you.
- **OpenFM:** for those lo-fi beats to chill and relax to while writing code.
We'll make sure your setups are grounded in reality
by having the maximum card tier in a slot depend on your computer case.
Oh, did I forget to mention Ocelot Desktop has APUs as well?
Explore the wonders of distributed computing by adding a couple of other
computers to your workspace.
(Or a thousand — if you think your host can handle this.)
Network cards allow these newly spawned machines to talk to each other.
And relays may prove useful to manage the wired networks.
Perhaps, instead of enlisting a computer army,
you want to attach a dozen of screens to a single machine
(as they do in the movies).
Well, no problem — we've got that covered, too.
### Gorgeous graphical interface
![GUI][gui] ![GUI][gui]
A slick interface allows you to customize the setup to your liking. Manage your screen real estate to avoid distractions.
Add more computers, organize the connections between components, build complex All nodes are draggable, as are windows.
setups, and manage your screen real estate to avoid distractions. And screen windows in particular are also resizeable —
click and drag the bottom-right corner if they take up too much space.
Or hold <kbd>Shift</kbd> and let the window consume it all.
Many additional options are hidden in the context menu — try hitting the ![Window scaling][window-scaling]
right mouse button on the various things.
For example, components will let you copy their address to the clipboard, and
right-clicking on the TPS counter on the bottom allows you to change the
simulation speed.
The emulator uses hardware acceleration to offload the daunting task of Many additional options are hidden in the context menus —
rendering its interface to a specialized device, so make sure you have a OpenGL try hitting the right mouse button on various things.
2.1-capable graphics card. For example, components will let you copy their address to the clipboard,
and right-clicking on the TPS counter (on the bottom right)
allows you to change the simulation speed.
![TPS rate menu][tps-menu]
Ocelot Desktop uses hardware acceleration to offload the daunting task of
rendering its interface to a special-purposed device (your GPU),
so make sure you have an **OpenGL 2.1-capable** graphics card.
(Though, honestly, it's harder to find one that isn't, really.)
### Persistable workspaces ### Persistable workspaces
It would be sad if, after all the hard work you put into adjusting the Imagine putting many hours into wiring things up only to have to do it all from
workspace, you have to do that again. scratch the next time you open the emulator.
That... would be sad and disappointing.
I mean, OpenComputers can persist its machines just fine, right? I mean, OpenComputers can persist its machines just fine, right?
By basing the emulator on its code, we've essentially inherited the ability Good news: by reusing its code, we've essentially inherited the ability
to save workspaces on the disk and load them afterwards. to save workspaces on the disk and load them afterwards!
Just in case, Ocelot Desktop will warn you if you smash the quit button without Just in case, Ocelot Desktop will warn you if you smash the quit button without
saving. saving.
We'd rather you didn't feel sad and disappointed.
### Cool features ### Cool features
![Performance graphs][graphs] ![Performance graphs][perf-graphs]
![Sound card GUI][sound-card] ![Sound card GUI][sound-card]
A few smaller features are worth mentioning, too: A few smaller features are worth mentioning, too:
- Screens are resizeable — drag the bottom-right corner. - Windows show the corresponding block's address by default.
- Windows are labeled with the corresponding block's address; however, you can However, you can relabel them: look for the option in the context menu.
set a custom label — look for an option in the context menu. - The button ![][drawer-button] at the bottom of a computer case window
- The button in a computer case window shows the performance graphs: shows performance graphs: the memory, processor time, and call budget.
the used memory, processor time and call budget. - Hold the <kbd>Ctrl</kbd> key while dragging blocks to snap them to the grid.
- Hold the Ctrl key while dragging blocks to have them snap to the grid.
## Download ## Download
Decided to give Ocelot Desktop a shot? [Download the latest build][download] / [mirror][download-mirror] Decided to give Ocelot Desktop a shot?
## How to build it? [**Download** the latest build][download] / [mirror][download-mirror]
## Hacking
Just import the project in your favorite IDE. Just import the project in your favorite IDE.
Make sure to have Scala and SBT installed (manually or through IDE). Make sure to have Scala and SBT installed (your IDE may assist you with that).
Ocelot Brain library is added as a Git submodule, so do not forget to fetch it too. We include [ocelot-brain][] as a Git submodule: don't forget to fetch it!
Something like `git submodule update --init --recursive` should do the trick.
Use `sbt run` to start Ocelot Desktop. Use `sbt assembly` to generate JAR file. ```sh
(It will appear at `target/scala-2.13/ocelot-desktop.jar` location.) $ git submodule update --init --recursive
```
If the compiler is complaining about missing BuildInfo class, or the version in To build from source and start Ocelot Desktop, type:
the window title / logs looks outdated, use `sbt buildInfo` to generate fresh class.
```sh
$ sbt run
```
If you want to get a JAR, use this:
```sh
$ sbt assembly
```
(You'll find it at `target/scala-2.13/ocelot-desktop.jar`.)
In case you see the compiler complain about `BuildInfo` or just want to refresh
the version displayed in the window title and the logs, run:
```sh
$ sbt buildInfo
```
## Credits ## Credits
- **LeshaInc**, the author and maintainer of Ocelot Desktop. - **LeshaInc:** the original author and maintainer of Ocelot Desktop.
- **Totoro**, the creator of ocelot-brain and ocelot-online. - **Totoro:** the creator of [ocelot-brain][] and [ocelot.online][ocelot-online].
- **bpm140**, who created marvelous Ocelot Desktop landing page. - **bpm140:** produced the marvelous Ocelot Desktop landing page.
- **rason**, who stirred the development at the critical moment. - **rason:** stirred the development at the critical moment!
- **NE0**, the bug extermination specialist. - **NE0:** the bug extermination specialist.
- **ECS**, who fearlessly jumped right into Scala jungle. - **ECS:** leaped fearlessly into the Scala jungle.
- **fingercomp**, who wrote this README. - **fingercomp:** wrote this README.
## See also ## See also
- [Ocelot Desktop][ocelot-desktop] web page (link to the latest build, FAQ) - The [Ocelot Desktop][ocelot-desktop] web page
- [ocelot.online][ocelot-online], a rudimentary web version of Ocelot (links to the latest build, FAQ).
- [ocelot-brain][ocelot-brain], the backend library of Ocelot Desktop - [ocelot.online][ocelot-online], a rudimentary web version of Ocelot.
- [ocelot-brain][], the backend library of Ocelot Desktop.
- [#cc.ru on IRC][irc] if you have any questions - [#cc.ru on IRC][irc] if you have any questions
(Russian, but we're fine with English too) (Russian, but we're fine with English too).
- [Discord][discord] if you prefer so (we will not judge) - Or [Discord][discord] if that's your fancy (we won't judge).
[banner]: https://i.imgur.com/OzkpQZv.png [banner]: ./assets/banner.png "The Ocelot banner"
[download]: https://cc-ru.gitlab.io/ocelot/ocelot-desktop/ocelot.jar [download]: https://cc-ru.gitlab.io/ocelot/ocelot-desktop/ocelot.jar
[download-mirror]: https://ocelot.fomalhaut.me/ocelot.jar [download-mirror]: https://ocelot.fomalhaut.me/ocelot.jar
[gui]: https://i.imgur.com/O4bF7I8.png [addon-showcase]: ./assets/addon-showcase.png "A workspace with colorful lamps and an OpenFM radio."
[graphs]: https://i.imgur.com/mG8UjhV.png [gui]: ./assets/gui.png "A screenshot of the GUI."
[sound-card]: https://i.imgur.com/gnh3D6N.png [window-scaling]: ./assets/window-scale.gif "Demonstrates the screen scaling."
[tps-menu]: ./assets/tps.png "The simulation speed menu (right-click on the TPS)."
[perf-graphs]: ./assets/perf-graphs.gif "A demo of performance graphs."
[sound-card]: ./assets/sound-card.gif "Shows the sound card UI while playing a melody."
[drawer-button]: ./sprites/buttons/BottomDrawerOpen.png
[ocelot-brain]: https://gitlab.com/cc-ru/ocelot/ocelot-brain [ocelot-brain]: https://gitlab.com/cc-ru/ocelot/ocelot-brain
[ocelot-online]: https://ocelot.fomalhaut.me/ [ocelot-online]: https://ocelot.fomalhaut.me/
[ocelot-desktop]: https://ocelot.fomalhaut.me/desktop/ [ocelot-desktop]: https://ocelot.fomalhaut.me/desktop/

BIN
assets/addon-showcase.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

BIN
assets/banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

BIN
assets/gui.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
assets/perf-graphs.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 KiB

BIN
assets/sound-card.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
assets/tps.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
assets/window-scale.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 KiB