Cree School

Learn Cree the Fun Way!

Cree School is a game that helps you learn Cree!

This game has quizzes for a bunch of subjects to help learn Cree ie. Nouns, Pronouns, Plurals, and Verb Conjugation.

The game also has built-in modding support to add new quizzes. This can be for either new Cree quizzes, or make your own for an Indigenous language you know!

This is not intended to teach you Cree, but rather a supplementary resource to practice Duolingo-style!

Made by William Swindler, if you have any issues reach out at wswindle@ualberta.ca!

Download

To install, download the file. These links will take you to MediaFire, where the file is hosted. Some systems might warn you it cannot check for malware when you download, don't worry! That's normal and intended to keep your computer safe, however it is quite overzelous! Just allow the download anyway. The file will be a ".zip" folder, unzip it and to run, follow the instructions in "information.txt"

Download Beta 1.2.1 now!

Modding (Optional)

To create a data pack, follow the following steps! A basic understanding of json is assumed, but looking at the example you can download should help!

  1. Go into Settings, Game Settings, and enable "Custom Content"
  2. Open the root folder and go into "data_packs" if it does not exist, create it.
  3. Create a folder, its name should be its "source name" the internal id for the data pack.
  4. Go into the folder and create "datapack.json" this will define important elements of the data pack.
  5. "datapack.json" needs "source_name" which should be the same as the folder name, "name" which is the name of the pack, "author" which is your name!
  6. "datapack.json" also needs "information" which needs "made_for" the version of the game it is made for, and can optionally define "version" and "website".
  7. Run the game and your data pack will be loaded.
  8. Add content to your data pack.
  9. Finally, when you are finished, zip the folder up for distribution!

Download an example data pack here.

To create a quiz, follow the following steps!

  1. Create a folder in your data pack folder called "quizzes".
  2. Create a json file, it can be named whatever, the game internally uses "quiz_{quiz number}_data.json".
  3. The quiz file requires "type" which can be "random_multiple_choice", "four_choices", "this_or_that", or "verb_conjugation". Which type is used affects what data will be required.
  4. Next, it requires "id" which is the quiz id. It must be "quiz.{quiz number}".
  5. Next, it requires "name" which is a translation key.
  6. Next, it requires "questions" which is an array of questions.
  7. Creating a question requires "question" which is a translation key for the question, "answer" which is the answer id, and "has_syllabics" which is a boolean that will handle any questions that use Latin + non-Latin alphabets.
  8. If the type is "verb_conjugation", questions also require "suffix" and "prefix" which are integers pointing to the morpheme to conjugate a verb. "prefix" can be -1 to disable its requirement.
  9. A question can also have "icon" which points to a texture that will appear below the question.
  10. After questions is the answers. These depend on the type.
  11. If the type is "random_multiple_choice" or "verb_conjugation" it is an array of answers.
  12. If the type is "four_choices" it requires four objects, "answer_1", "answer_2", "answer_3", and "answer_4".
  13. If the type is "this_or_that" it requires two objects, "answer_1" and "answer_2".
  14. However an answer is made, it requires "id" which is the answer id a question will reference, "answer" a translation key for the answer, and "has_syllabics" which is a boolean that will handle any questions that use Latin + non-Latin alphabets.
  15. An answer can also have "sound" which points to a sound that will appear as a pronunciation box next to the answer.
  16. If the type is "verb_conjugation" it also requires an array of "morphemes".
  17. A morpheme takes in "is_suffix" which is a boolean that will either put it in the "suffix" or "prefix" category for verb conjugation.
  18. Next a morpheme takes in "name" which is a translation key.
  19. Final a morpheme takes in "rule" which applies various things to a base infinitive. If it is not required it can be "none". To add a letter to the infinitive, start with "+" then the letter, "/" means when, and "v" is the only valid one and will apply if the morpheme is followed by a vowel. It will add before the infinitive if it a prefix and after if it is a suffix. If a letter is replaced start with ">", the letter to be replaced with, "/" then when, only "l" is currently valid, which is last. Then, "/" and the later to be replaced.
  20. After answers and/or morphemes, "next_quiz" is optional to create a quick link to the next quiz, which takes in the "id" field of the quiz it links to.

Download an example data pack above that contains all example quizzes.

To create a translation file, follow the following steps!

  1. In your data pack folder create "translations.json" and a folder called "lang".
  2. "translations.json" should be an array. To create a translation for a valid language, add "file" which points to a file in the "lang" folder and "code" which defines the language it is for. Currently, only "en_us" is valid.
  3. In "lang" folder create "{language code}.json" and in it you can put all translation strings and their translations.

Download an example data pack above that contains an example lang.

To add a texture, follow the following steps!

  1. In your data pack folder create "textures.json" and a folder called "textures".
  2. "textures.json" should be an array. To create a texture, add "{texture_name}" which points to a file in the "textures" folder. It should be a ".png" though the "textures.json" decleration should not have neither the "textures/" path nor ".png" extension.
  3. In "textures" folder put your desired texture.

Download an example data pack above that contains an example texture.

To add a sound, follow the following steps!

  1. In your data pack folder create "sounds.json" and a folder called "sounds".
  2. "sounds.json" should be an array. To create a sound, add "{sound_name}" which points to a file in the "sounds" folder. It should be a ".ogg" though the "sounds.json" decleration should not have neither the "sounds/" path nor ".ogg" extension.
  3. In "sounds" folder put your desired sound.

Download an example data pack above that contains an example sound.