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 :
- include des utils communs;
- include de
acc1_utilsouacc2_utils; - include de la commande
acc_basecorrespondante.
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”
- Tester ACC1 et ACC2 si la logique est dans
acc_baseou By Module. - Tester au moins un dataset produit/service propre à chaque jeu.
- Tester le ScenarioPage du module dans les deux jeux.
- Vérifier les textes dans les deux
data_acc*. - Vérifier que le code n'utilise pas accidentellement
ACC1en dur. - Vérifier les tutoriels ACC1 si l'UI touchée est ciblée par un
TutorialUIObject. - Tester Petite caisse dans ACC2 si la modification touche bills/checks/journal général/ledger.
- Tester correction/Answer Key/Grading dans les deux.