Voici un zelda fan make sur le Blender Game Engine. Une majorité du développement à été fait avec du Python.
A zelda fan made with Blender Game Engine. I used more 80% python. This game is in development and you can help.
Video dated August 16, 2014 : Zelda Awakening in Blender Game
Video dated January 18, 2016 : Zelda In Blender game - Fight test
Video dated February 17, 2016 : Zelda in blender game Update 17-03-2016
LINUX/UNIX - XUbuntu 64 bits
- Graphisme2D/Texture : Gimp
- Modélisation, Texturage, Animations : Blender 3D
- Moteur de jeu : BGE
- Langage de programmation : Python
You must install pygame into your Blender version if you want play with joystick. For me i have Blender 2.76 and i set pygame module at :
blender_2.76
\2.76
\python
\lib
\python3.4
You download, build and install pygame for python3.x, and after copy the pygame librairie which are on this folder
/usr/local/include/python3.x/pygame
Paste into
blender_2.76/2.76/python/lib/python3.4/pygame
Help Links:
Ask Ubuntu - Install pygame 3.0
I haven't packed textures and other files in blends files. If blends can't find ressources, please check into File menu "External Data > Missing Files".
On utilise le dictionnaire globalDict pour stocker les valeurs pendant le fonctionnement du jeu et pour sauvegarder des parties. Lors du premier lancement d'une partie, on initialise le dictionnaire.
Le dictionnaire est utilisé pour l'inventaire, le status du joueur, les enclencheurs dans les niveaux, etc.
Quand je parle d'enclencheur, il sagit bien entendu des objets interactifs tel que les coffres, les portes, etc.
Les contrôles peuvent s'effectuer à partir d'une manette ou d'un clavier. Afin de pouvoir utiliser la manette veuillez être sûr d'avoir pygame intégré dans le BGE.
Afin de pouvoir jouer sans pygame, un fichier conf.txt situé à la racine de projet contient les configuration du jeu. Veuillez preciser l'utilisation du joystick (pygame)
0 pour desactiver et 1 pour activer
- Deplacements : Arrow Keys | Joystick analogique
- Z Button (Targeting mode) : W | R2
- A Button : X | Left Button
- Attack Button : C | Bottom Button
Le repertoire dx_ge
contient les scripts python nécessaire au fonctionnement du gestionnaire.
Il suffit à partir du script manager.py
de renseigner la commande à utiliser.
Un etat commence par une majuscule, chaque syllabe commence par une majuscule
Exemple: MonEtat
Les fonctionnalités des etats commence par une miniscule, chaque syllabe qui suit la premère devront commencer par une majuscule
Exemple: maFonction
- Ajouter un état au joueur :
create_player_state MonEtat
- Ajouter une fonctionnalité à un etat au joueur :
player_state:add:MonEtat:maFonction
Exemple:
python manager.py create_player_state Ledge
python manager.py player_state:add:Ledge:grapLedge
Les coffres sont des objets groupés linké dans les niveaux. Afin de déterminer l'attribut 'objectID' et key' d'un coffre, on l'ajoute à partir d'un Empty object a l'aide leCoffre = scene.addObject('monCoffre', own)
. Etant donné que cette fonction retourne l'object instancié il suffit juste de le récuperer comme montré précedement et lui affecter les attributs tel que:
leCoffre['objectID'] = monId
Graçe a cette méthode on peut assigner l'id d'un objet à partir de constantes qu'on aura définie à l'initialisation du jeu.
Note: L'attribut 'objectID' référence l'objet qu'il contient et 'key' permet d'identifier si le coffre à déjà été ouvert
Il sagit de la même méthode que pour les coffres, on ajoute les portes l'aide de scene.addObject
, ainsi il est possible de déterminer quelle clef permet d'ouvrir la porte instancié (si il sagit bien d'une porte verrouillé)
Remarque: Graçe a cette méthode, on peut aussi savoir si la porte à déjà été ouverte a l'aide d'un attribut 'key' (comme pour le coffre)
- Path Follow (Suit un chemin, comme pour changer de map)
- Système de dialogue
- Système de menu
- Gestion de logic.globalDict pour charger les données à chaque transition de map
- Intégration pygame.joystick pour detecter les manettes
- Rotation de joueur adapté au joystick et à la camera
- Rotation caméra libre avec le joystick droit
- Début du Z-Targeting
- Amélioration de l'armature du joueur et certaines animations on été améliorés (il en reste encore) par luky que je remerci sur la passage
- Sort de l'eau à partir d'un corniche ou du sol
- Re-Développement de la gestion des steps sounds (Bruitage des pieds au sol)
- Interaction avec des pancartes (Affiche une messageBox)
- Curseur du viseur ajouter, situé sur la scene HUD, position adapté aux coordonnées de l'objet ciblé dans la scene du joueur. (Utilisation de la methode getScreenPosition(monObjet) de la class KX_Camera)
- Système d'attaque
- Système Hits
- Strike Effect
- MiniMap (premier test)
- Fichier de configuration (Desactiver l'utilisation de pygame par exemple)
- Système d'équipement (Boucliers, Epees)
- Système Push des blocs
- Coffre au trésor
- Amélioration du GrapLedge
- Système d'esquive
- Génération d'objet sur les herbes coupées
- GameOver
- Gestionnaire du projet developpé en python [Bêta]
- Le fall down lorsque le joueur est coincé
- Finir/Refaire les animations courantes du personnage
-
Pendant l'etat de fall, il se peut que le personnage reste coinçé dans le sol ou un mur
-
Pendant la visée, le joueur ne detecte pas l'eau
-
Je n'ai pas encore gerer le TAP dans les bouttons du joystick
-
Pendant la jump attack, comme pour fall risque d'être coincée
-
Bug de collision
-
Camera qui tremble selon sa position (gestion des obstacles non stable)
-
Animation du haut qui risque de buger (Non arreté au changement de certain etat)
-
Pour certaine personne, problème de contrôle sur le personnage (Personnage qui cours tout seul suite à un problème d'evenement)
Notes: Il y a des animations à refaire (Suite à la modification de l'armature)
- Schartier Isaac (Chef de projet - Développeur - Texture - Animations - Modélisation - Déssinateur, Scenario)
- Henri Nourel (Collaborateur)
- Lucky (Animations 3D)
- Derys Onapin (Déssinateur, Scenario)
All contained owned by Nintendo (Characters, Story, etc.) reserved to it