commit 68d99d9b3f4bac90661e1c1bc4d796d14c1840ad Author: Zacharie Guet Date: Fri Aug 1 11:15:04 2025 +0200 #1 ajout des premiers fichiers diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..01cecab --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# Godot 4+ specific ignores +.godot/ +/android/ +.nomedia + +# Godot-specific ignores +.import/ +export.cfg +export_credentials.cfg + +# Imported translations (automatically generated from CSV files) +*.translation + +# Mono-specific ignores +.mono/ +data_*/ +mono_crash.*.json + +.vscode \ No newline at end of file diff --git a/common/.gitkeep b/common/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/entities/player/assets/sprites/robot.png b/entities/player/assets/sprites/robot.png new file mode 100644 index 0000000..07f14e7 Binary files /dev/null and b/entities/player/assets/sprites/robot.png differ diff --git a/entities/player/assets/sprites/robot.png.import b/entities/player/assets/sprites/robot.png.import new file mode 100644 index 0000000..dae6874 --- /dev/null +++ b/entities/player/assets/sprites/robot.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7ff87jniga5m" +path="res://.godot/imported/robot.png-17ad80b7e526843a55ea7e95e3e071cb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://entities/player/assets/sprites/robot.png" +dest_files=["res://.godot/imported/robot.png-17ad80b7e526843a55ea7e95e3e071cb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/entities/player/player.tscn b/entities/player/player.tscn new file mode 100644 index 0000000..2ae2236 --- /dev/null +++ b/entities/player/player.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://bgvbgeq46wee2"] + +[ext_resource type="Texture2D" uid="uid://c7ff87jniga5m" path="res://entities/player/assets/sprites/robot.png" id="1_symyc"] + +[node name="Player" type="Node2D"] + +[node name="Frame01" type="Sprite2D" parent="."] +scale = Vector2(0.179297, 0.179297) +texture = ExtResource("1_symyc") diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..9d8b7fa --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..3c4ae3b --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://duvusidiuik4p" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..9149c71 --- /dev/null +++ b/project.godot @@ -0,0 +1,16 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Seeding Planets" +run/main_scene="uid://c5bruelvqbm1k" +config/features=PackedStringArray("4.4", "Forward Plus") +config/icon="res://icon.svg" diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..378bebe --- /dev/null +++ b/readme.md @@ -0,0 +1,91 @@ +# Seeding Planets + +Seeding Planets (nom provisoire) est un jeu de gestion en Godot. + +## Installation + +### Outils à installer + +#### [Godot](https://godotengine.org/fr/) + +Moteur de jeu open source. L'[installation via steam](https://store.steampowered.com/app/404790/Godot_Engine/) est recommandée car elle permet une mise à jour automatique. + +#### [VSCodium](https://vscodium.com/) + +Editeur de fichier texte (alternative : [VSCode](https://code.visualstudio.com/)). Optionnel si vous n'avez pas vocation à écrire/modifier du code. + +#### [Git](https://git-scm.com/downloads) + +Utilitaire de gestion de version. C'est un outil assez avancé donc il est recommandé de lire un [tutoriel simple](https://about.gitlab.com/fr-fr/blog/what-is-git/). + +Par défaut, git s'utilise dans un terminal en ligne de commande, mais pour les débutants, une interface graphique est recommandée (comme [le plugin VSCode/VSCodium Git](https://open-vsx.org/extension/pinage404/git-extension-pack) ou [GitKraken](https://www.gitkraken.com/)) + +### Télécharger les sources + +Avec git, clonez le dépôt à l'URL `https://git.zacharie-guet.fr/zacharie/seeding-planets.git` quelque part sur votre ordinateur (avec la commande `git clone` sur le terminal, ou sur votre interface graphique git). + +### Configurer Godot + +Après l'ouverture de Godot, choisissez importer et chercher l'emplacement ou vous avez téléchargé les sources, puis validez. + +#### Godot et VSCode + +Pour éditer le code du jeu avec VSCodium, aller dans les paramètres de l'éditeur de Godot (Editeur en haut à gauche), puis cherchez la page "Editeur de texte -> Externe". Ici, cochez la case en haut à droite de la fenêtre et remplissez les champs comme suit. + +- Chemin d'exécution: `C:\Program Files\VSCodium\VSCodium.exe` (ou chemin de l'exécutable VSCode) +- Paramètre d'exécution: `{project} --goto {file}:{line}:{col}` +- Utiliser un éditeur externe: Activé + +## Arborescence du projet + +Les dossiers racines sont des rangements fonctionnels des différents objets du jeu. + +> Les fichiers et dossiers du jeu doivent être nommés en anglais, en minuscule et les mots séparés par des underscore "_" (exemple: `non_playable_character.gd`) + +``` +├── common/ # Utilitaires commun à plusieurs objets +├── entities/ # Entités (mobiles et/ou instanciables en plusieurs fois) +├── stages/ # Lieux (uniques) +├── Readme.md # Documentation +└── root.tscn # Scène principale +``` + +Puis, dans un dossier représentant un objet du jeu (`entities/player` par exemple), les sous dossiers rangent les différents objets techniques du jeu. + +``` +player/ +├── assets/ +│ ├── sprites/ +│ │ └── robot.png +│ └── sounds/ +├── scripts/ +│ └── player.gd # Script attaché à l'objet +└── player.tscn # Scène de l'objet +``` + +Des sous dossiers peuvent également représenter plusieurs version de l'objet. + +## Contribuer au projet + +Pour ajouter un ou plusieurs fichiers ou modifier du code dans le projet, suivez les procédure suivantes. + +> Les termes "branches" et "commits" sont relatifs au fonctionnement de Git, et les "tickets" sont des tâches que l'on retrouve dans le [Gitea](https://git.zacharie-guet.fr/zacharie/seeding-planets/issues). + +### Modification de fichiers textes ou rennomage de dossiers/fichiers + +1. Créez une branche dont le nom résume la modification. Les branches sont nommés en minuscule et avec des tirets "-" (exemple: `edit-jump-action`) +2. Après chaque modification conséquente, créer un ou plusieurs commits. Les noms des commits sont écrits en français et peuvent commencer par l'identifiant du ticket concernant la modification (exemple: `#5 augmentation de la distance du saut`) +3. Pousser votre branche (`git push` dans un terminal ou via interface git) +4. Créer une demande de modification dans Gitea + +### Ajout de fichiers ou modification de fichiers binaires (image, son) + +1. Placez vous sur la branche principale `main` +2. Après la modification conséquente, créer un commit. Les noms des commits sont écrits en français et peuvent commencer par l'identifiant du ticket concernant la modification (exemple: `#8 ajout des sprites des plantes`) +3. Pousser votre modification (`git push` dans un terminal ou via interface git) + +## Troubleshoot + +### Fenêtre "File have been modified outisde Godot" + +Si une fenêtre apparait avec marqué "Les fichiers suivants sont plus récents sur le disque", la majorité du temps il est plus sage de cliquer sur "Recharger depuis le disque dur". diff --git a/root.tscn b/root.tscn new file mode 100644 index 0000000..a419dd7 --- /dev/null +++ b/root.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://c5bruelvqbm1k"] + +[ext_resource type="PackedScene" uid="uid://tsi5j1uxppa4" path="res://stages/planet/planet.tscn" id="1_pyidc"] +[ext_resource type="PackedScene" uid="uid://bgvbgeq46wee2" path="res://entities/player/player.tscn" id="2_vvh5c"] + +[node name="Root" type="Node2D"] + +[node name="Planet" parent="." instance=ExtResource("1_pyidc")] +position = Vector2(543, 309) + +[node name="Player" parent="." instance=ExtResource("2_vvh5c")] +position = Vector2(530, 270) diff --git a/stages/planet/assets/textures/sol_gamejam_normal.png b/stages/planet/assets/textures/sol_gamejam_normal.png new file mode 100644 index 0000000..6342c7a Binary files /dev/null and b/stages/planet/assets/textures/sol_gamejam_normal.png differ diff --git a/stages/planet/assets/textures/sol_gamejam_normal.png.import b/stages/planet/assets/textures/sol_gamejam_normal.png.import new file mode 100644 index 0000000..f2f297b --- /dev/null +++ b/stages/planet/assets/textures/sol_gamejam_normal.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnrjnvceprxfn" +path="res://.godot/imported/sol_gamejam_normal.png-a56c3648b71b32f03d2bec4e03abf9bc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://stages/planet/assets/textures/sol_gamejam_normal.png" +dest_files=["res://.godot/imported/sol_gamejam_normal.png-a56c3648b71b32f03d2bec4e03abf9bc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/stages/planet/planet.tscn b/stages/planet/planet.tscn new file mode 100644 index 0000000..dc45d4c --- /dev/null +++ b/stages/planet/planet.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=3 uid="uid://tsi5j1uxppa4"] + +[ext_resource type="Texture2D" uid="uid://bnrjnvceprxfn" path="res://stages/planet/assets/textures/sol_gamejam_normal.png" id="1_wb4p4"] + +[node name="Planet" type="Node2D"] + +[node name="SolGamejamNormal" type="Sprite2D" parent="."] +texture = ExtResource("1_wb4p4")