Skip to main content

Accounting 1 vs Accounting 2 — différences réelles

But de cette page

ACC1 et ACC2 utilisent le même framework By Module/Accounting. Cette page documente uniquement leurs différences concrètes afin de savoir si une modification doit être faite dans byModule/acc_base, dans les deux jeux, ou seulement dans un GameSpecific.

Résumé rapide

  ACC1 ACC2
Contexte métier Entreprise spécialisée dans la vente de piscines. Entreprise spécialisée dans la vente de café et de machines à café.
Objectif pédagogique présenté à l'étudiant Compléter un cycle comptable. Compléter un cycle comptable.
Framework By Module + acc_base. By Module + acc_base.
Server utils GameSpecificUtilsAcc1 hérite de GameSpecificUtilsAccBase. GameSpecificUtilsAcc2 hérite de GameSpecificUtilsAccBase.
StaticData Unity StaticDataAcc1 : seulement GameUid ACC1. StaticDataAcc2 : seulement GameUid ACC2.
Skin / scènes Acc1Skin + scènes/prefabs ACC1. Acc2Skin + scènes/prefabs ACC2.
Petite caisse Pas de ModulePettyCashScenarioPages game-specific. Module/scénario Petite caisse présent.
Tutoriels game-specific Plusieurs scripts/prefabs dédiés ACC1. Pas d'équivalent dans le dossier ACC2 actuel.

Ce qui est réellement commun

La majorité de la logique n'est pas dupliquée entre ACC1 et ACC2.

flowchart TD
BM[By Module commun] --> BASE[acc_base]
BASE --> A1[acc1 wrappers + data]
BASE --> A2[acc2 wrappers + data]

Les moteurs suivants sont communs :

  • Create Module Type Data;
  • Answer Key;
  • Grading;
  • Reassemble/results;
  • BillFactory et classes de bills;
  • Inventory;
  • immobilisations;
  • contrats;
  • régularisations;
  • UI data-driven By Module;
  • contextes Accounting;
  • formules;
  • utils Accounting de acc_base.

Règle : si une règle comptable doit fonctionner dans ACC1 et ACC2, commencer par chercher dans _utils/by_module ou acc_base. Ne pas copier la même fonction dans acc1_utils.js et acc2_utils.js.

Différence serveur : très mince

acc1_utils.js vs acc2_utils.js

Les deux fichiers sont actuellement structurellement identiques :

  • ils héritent de GameSpecificUtilsAccBase;
  • ils fournissent seulement le GameUid correspondant;
  • ils exposent utilsAccGameSpecific.

Autrement dit, il n'existe actuellement aucune grosse règle métier ACC1-only ou ACC2-only dans ces fichiers.

Wrappers Cloud Scripts

Les commandes suivantes existent des deux côtés sous des noms préfixés ACC1/ACC2 :

  • answer_key_module;
  • change_module_item_index;
  • change_module_sort_index;
  • change_module_visibility;
  • create_team;
  • custom_command;
  • generate_new_good_decisions;
  • generate_results;
  • get_new_good_decisions;
  • reopen_module;
  • set_correction_mode_off.

Les wrappers font essentiellement :

  1. include des utils communs;
  2. include de acc1_utils ou acc2_utils;
  3. include de la commande acc_base correspondante.

Alias historique uniquement ACC1

ACC1 contient en plus :

acc1_module_sort_name.js

Ce fichier ne contient qu'un include de /acc_base/command/acc_base_change_module_sort_index. Il s'agit donc d'un alias/wrapper historique, pas d'un moteur distinct. Ne pas reproduire cet alias côté ACC2 sans besoin de compatibilité réel.

Différences de static data

Les différences importantes vivent principalement dans :

  • Assets/GameSpecific/acc1/Resources/data_acc1/;
  • Assets/GameSpecific/acc2/Resources/data_acc2/.

Données qui diffèrent fortement

Dataset Pourquoi il diffère
companies.json Univers d'entreprises/fournisseurs/clients différent.
partners.json Partenaires et identités propres au scénario métier.
products.json Piscines et produits associés vs café/machines/produits associés.
services.json Services adaptés à l'entreprise simulée.
textes FR/EN Noms, contexte, pièces justificatives, scénario et modules propres au jeu.

Données actuellement communes ou quasi identiques

Le diff actuel ne montre pas de différence de contenu significative dans :

  • conditions.json;
  • employees.json;
  • salaries.json.

Ne pas en déduire qu'elles doivent rester identiques pour toujours. Simplement, dans l'état actuel du dépôt, elles ne portent pas la différence principale ACC1/ACC2.

ACC1 : particularités actuelles

Contexte métier

Les textes présentent ACC1 comme une entreprise spécialisée dans la vente de piscines. L'étudiant travaille au département de comptabilité et doit compléter un cycle comptable.

Tutoriels game-specific

Le dossier Assets/GameSpecific/acc1/src/ contient plusieurs composants absents du dossier ACC2 :

  • AccGeneralTutorials.cs;
  • GenericAcc1Tutorial.cs;
  • GenericAcc1TutorialNoModules.cs;
  • TutorialButtonAcc1Async.cs;
  • TutorialButtonAcc1Sync.cs;
  • TutorialPopupControlAcc1Async.cs;
  • TutorialPopupControlAcc1Sync.cs;
  • prefabs TutorialPopupControlAcc1*.

Ces tutoriels couvrent notamment navigation générale, correction, pratique, fin summative, téléchargement/impression des pièces, deuxième fenêtre et report aux grands livres.

Assets visuels

ACC1 possède des images et animations liées notamment aux immobilisations/services : electricity, equipment, furnishings, hardware, internet, rolling stock, telecom.

ACC2 : particularités actuelles

Contexte métier

Les textes présentent ACC2 comme une entreprise spécialisée dans la vente de café et de machines à café. L'objectif reste de compléter un cycle comptable.

Module Petite caisse

ACC2 contient explicitement :

  • ModulePettyCashScenarioPages.asset;
  • textes module_petty_cash, petty_cash_journal, petty_cash_form;
  • pièces de petite caisse : création, renflouement, retraits, déclaration;
  • entreprises de convenience/maintenance/mail/florist/stationery;
  • contenu régional QC/ON/NB/PE pour ces partenaires.

Important : le moteur Petty Cash lui-même vit dans le framework commun By Module/Accounting. La différence ACC2 est surtout que son contenu/configuration l'utilise explicitement.

Assets visuels

ACC2 possède un univers visuel distinct : clients, personnages, café, barcode, corkboard, etc.

ScenarioPages

Les deux jeux partagent pratiquement le même ensemble de ScenarioPages Accounting :

  • Accounting Cycle;
  • Accounting Journal;
  • General Journal;
  • Auxiliary Journals / Ledgers;
  • Taxes;
  • Income Taxes / Employer Income Taxes;
  • Regularizations;
  • Financial Statements;
  • Closure;
  • Balance Sheet.

ACC2 ajoute actuellement le scénario Petty Cash. Plusieurs assets homologues ont aussi de petites différences de contenu/références, donc ne pas remplacer automatiquement un asset ACC1 par son homologue ACC2.

Scenes, skins et UI root

ACC1 ACC2
Acc1Student.unity Acc2Student.unity
Acc1Teacher.unity Acc2Teacher.unity
MainControlStudentAcc1.prefab MainControlStudentAcc2.prefab
MainControlTeacherAcc1.prefab MainControlTeacherAcc2.prefab
Acc1Skin.asset Acc2Skin.asset
Doozy graphs ACC1 Doozy graphs ACC2

Quand modifier seulement ACC1 ou ACC2 ?

Modification Où la faire
Nouvelle règle comptable générique acc_base ou By Module commun.
Nouveau type de bill générique Pipeline Bills commun.
Nouveau partenaire/produit/service propre au café ACC2 static data.
Nouveau partenaire/produit/service propre aux piscines ACC1 static data.
Nouveau module pédagogique utilisable par les deux By Module shared + textes/scenario game-specific nécessaires.
Nouvelle mécanique Petty Cash générique By Module/acc_base; puis activer/configurer là où nécessaire.
Modification du tutoriel général ACC1 actuel GameSpecific ACC1.
Simple changement visuel Skin/prefab/scene du jeu concerné.

Checklist avant de considérer une feature “Accounting compatible”

  1. Tester ACC1 et ACC2 si la logique est dans acc_base ou By Module.
  2. Tester au moins un dataset produit/service propre à chaque jeu.
  3. Tester le ScenarioPage du module dans les deux jeux.
  4. Vérifier les textes dans les deux data_acc*.
  5. Vérifier que le code n'utilise pas accidentellement ACC1 en dur.
  6. Vérifier les tutoriels ACC1 si l'UI touchée est ciblée par un TutorialUIObject.
  7. Tester Petite caisse dans ACC2 si la modification touche bills/checks/journal général/ledger.
  8. Tester correction/Answer Key/Grading dans les deux.

Pages de documentation à lire avec celle-ci