Thanks for taking the time to contribute! Before getting started:
- Please make sure to read this document carefully.
- Discuss the changes you wish to make by creating a new issue.
Gameeky is a learning tool in the shape of a game engine. It's not a professional game engine. Therefore, its primary goal is to provide a better learning experience for programming, arts and other STEAM skills. It's not a goal to provide an efficient nor professional game development process. You can read more about this project rationale here.
If you're looking for a tool to create professional video games, I highly recommend the Godot game engine.
There are plenty of ways to contribute to this project. To mention a few:
- Code refactors and bug fixes.
- Design improved tools for a better experience.
- Translate this project to your language.
- Create new thematic packs to allow more diverse types of games.
- Write tutorials and guides to help educators and learners to take advantage of this project.
If you like the project, but just don't have time to contribute, there are other ways to support it:
- Share this project on social media.
- Refer this project to educators.
- Use this project in your classroom.
This project follows the GNOME Code of Conduct. Please, follow it in all your interactions. In a nutshell:
- Be friendly. Use welcoming and inclusive language.
- Be empathetic. Be respectful of differing viewpoints and experiences.
- Be respectful. When we disagree, we do so in a polite and constructive manner.
- Be considerate. Remember that decisions are often a difficult choice between competing priorities.
- Be patient and generous. If someone asks for help it is because they need it.
- Try to be concise. Read the discussion before commenting.
The following is the recommended way for getting started:
- Fork the project.
- Install GNOME Builder from Flathub
- Open Builder and select "Clone Repository..."
- Clone
https://github.com/YOUR_USERNAME/Gameeky.git
- Press the Run ▶ button
The process is well explained in this article, so you can simply follow these instructions to create pull requests.
The only request is that you organize your commits in a way that makes sense. Please, do not send a single commit with too many changes.
Additionally, you can add your name to the list of contributors in a separate commit.
All the user interfaces were built with Cambalache. Therefore, it's the recommended tool for manipulating the UI files of this project.
Gameeky requires that both the user interface and the beginner's guide are translated. To translate the user interface to a new language, see po/README.md.
To translate the beginner's guide, see docs/README.md.
This project comes with automated tests that you can run, even before you submit your changes. Simply run these commands on the terminal:
# Fedora requirements
$ sudo dnf install meson desktop-file-utils appstream python3-black python3-pyflakes python3-mypy python3-pytest python3-pytest-timeout python3-gobject gtk4-devel
$ cd Gameeky
$ meson setup _test --prefix $PWD/usr
$ cd _test
$ ninja install
$ meson test
To run on windows, install msys2 and follow the instructions to set up a development environment. Once the setup is done, install the following dependencies:
$ pacman -Suy
$ pacman -S git mingw-w64-ucrt-x86_64-meson mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-python3 mingw-w64-ucrt-x86_64-python3-gobject mingw-w64-ucrt-x86_64-libadwaita mingw-w64-ucrt-x86_64-gstreamer mingw-w64-ucrt-x86_64-gst-plugins-good mingw-w64-ucrt-x86_64-gtksourceview5 mingw-w64-ucrt-x86_64-librsvg mingw-w64-ucrt-x86_64-desktop-file-utils
Additionally, download and copy pandoc.exe
to msys2/usr/bin
.
Lastly, make sure to copy gettext ITS files from msys2/ucrt64/share/gettext/its
to msys2/usr/share/gettext/its
.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.