# Sardonyx ## What is Sardonyx? TODO [ecs]: https://en.wikipedia.org/wiki/Entity–component–system [ron]: https://github.com/ron-rs/ron [amethyst]: https://amethyst.rs ## Why Sardonyx? Sardonyx is a fork of the game engine: [Amethyst][amethyst]. Building a home automation platform on-top of a game engine allows for a really robust and fast smart home system. Because Amethyst is based over a very powerful and parallel [ECS][ecs] called Specs. This allows Sardonyx to be truly multi-threaded. Sardonyx provides clean and reusable code for your automation's and data structures. This allows Sardonyx users to easily share useful components, making it easy to create your own customized smart home hub. [ECS][ecs] architecture allows your automation system to cleanly separate data and behaviour. ## Features TODO ## Usage TODO ## Getting started ### Before you begin This repository uses Git LFS for some files used in examples. If you intend to run the examples, make sure you have LFS installed in your system before you clone. You can download it and read the installation instructions at [Git LFS home page](https://git-lfs.github.com/). ## Dependencies If you are compiling on Linux, make sure to install the dependencies below. ### Arch Linux ``` $ pacman -Sy grep gcc pkgconfig openssl alsa-lib cmake make python3 freetype2 awk libxcb ``` ### Debian/Ubuntu ``` # apt install gcc pkg-config openssl libasound2-dev cmake build-essential python3 libfreetype6-dev libexpat1-dev libxcb-composite0-dev libssl-dev libx11-dev ``` ### Fedora ``` # dnf install pkgconfig gcc openssl-devel alsa-lib-devel cmake make gcc-c++ freetype-devel expat-devel libxcb-devel libX11-devel ``` ### openSUSE ``` # zypper install gcc pkg-config libopenssl-devel alsa-devel cmake gcc-c++ python3 freetype2-devel libexpat-devel libxcb-devel ``` ### Other See your distribution-specific installation process for the equivalent dependencies. **Please note that you need to have a functional graphics driver installed. If you get a panic about the renderer unable to create the context when trying to run an example, a faulty driver installation could be the issue.** ## Building Documentation TODO ## Questions/Help TODO ## License This project is based on the Rust game engine [Amethyst](https://amethyst.rs). Thanks to the [amethyst development community](https://amethyst.rs/team) for all your hard work! Sardonyx is free and open source software distributed under the terms of both the [MIT License][lm] and the [Apache License 2.0][la]. [lm]: docs/LICENSE-MIT [la]: docs/LICENSE-APACHE Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.