Projet de mi-session - "Course à obstacle" (travail individuel)
Exemple d'interface de jeu..
Description
Le but du projet est de réaliser une "course à obstacles" sous forme de jeu 2D en C# avec Unity.
Exemple: Demo Astéroïdes.
Votre jeu devrait avoir les mêmes fonctionnalités de base que cet exemple. Toutefois, vous devez y apporter quelques variantes de votre choix ( thématique, interface graphique, fonctions supplémentaires, etc. ).
Remarques importantes:
Ce travail est strictement individuel.
Dans ce projet, vous n'êtes pas autorisé à utiliser du code dont vous n'êtes pas l'auteur, excepté si il s'agit de code tiré des exemples réalisés en classe ou du site du cours de Jeu Vidéo 3.
Vous ne devez en aucun cas partager votre code avec un autre élève.
En aucun cas vous n'êtes autorisés pour ce travail à utiliser des scripts ou assets provenant du Asset Store de Unity.
Projet de départ
Pas de fichier de départ pour ce projet: Vous pouvez cependant débuter avec le fichier gabarit utilisé habituellement en cours.
Date de remise sur remise.cstj.qc.ca:
- Groupe 101→ Mardi 28 octobre(heure limite: 23h59)
- Groupe 102→ Jeudi 30 octobre (heure limite: 23h59)
- Groupe 103→ Vendredi 31 octobre(heure limite: 23h59)
Veuillez noter que la journée de la remise en tant que tel, je ne répondrai à aucune question concernant le projet.
ATTENTION! Ce projet est strictement individuel (pas de travail d'équipe ni de collaboration autorisés).
Fichiers à remettre:
Vous devez remettre sur remise.cstj.qc.ca votre dossier de projet Unity portant votre matricule comme nom et compressé en .zip
Pondération
Ce projet de mi-session vaut 30% de la note finale du cours.
Exigences techniques
- Le projet doit être en mode 2D
- Ratio de scène 16:9, orientation paysage: Utilisez le gabarit usuel comme projet de départ
- Un objet contrôlé par le clavier ( ex: vaisseau, auto, etc. ) de haut en bas ou de droite à gauche ( minimum )
- Des obstacles mobiles ( ex: astéroïdes) d'aspects variés ( sprite, grosseur, vitesse, couleur, etc. ) et déterminés au hasard
- Un affichage de pointage ( en fonction des bonus attrapés ). Au choix, votre pointage peut tenir compte en plus d'un nombre d'obstacles franchis, ou d'étapes atteintes durant le jeu
- Un nombre de vies/essais limité (typiquement 3 vies)
- Détection des collisions avec effets simples mais appropriés ( ex: explosion, désintégration, étourdissement, etc. )
- Navigation de base:
- Écran d'intro, avec le titre du jeu, votre nom et les instructions nécessaires ( touches de jeu à utiliser... )
- Écran de Jeu
- Écran (ou message superposé) de fin de partie
- Tout le texte utilisé dans votre projet et visible à l'éxécution doit être en français ( incluant le titre du jeu lui-même ) et sans fautes!
- Sonorisation de base: De la musique (en boucle) ou des bruits d'ambiance et quelques effets appropriés ( explosions, bonus, etc. )
- Les éléments de jeu peuvent être réalisés par vous ( Photoshop, Illustrator, Animate, Audition, etc. ) et/ou vous pouvez utiliser des éléments libres de droits provenants du site OpenGameArt.org ( et seulement de ce site! ).
- Si vous utilisez des éléments de jeu provenant du site OpenGameArt.org, vous devez l'indiquer dans un fichier texte placé dans le dossier sprites de vos assets ET vous devez le mentionner clairement sur l'écran d'ouverture du jeu.
- Respectez les normes de nomenclature vues en classe.
- Pour ce travail, vous devez commenter votre code (voir les notes de cours à ce sujet).
Évaluation (sur 30)
Ce projet compte pour 30% de votre note finale. Son évaluation est répartie ainsi:
40% critères généraux:
- 10% - Qualité graphique ( sprites / animations / effets visuels )
- 10% - Qualité des effets sonores
- 10% - Organisation de la hiérarchie et des assets ( noms des objets et sprites, élimination des éléments superflus, etc. )
- 10% - Jouabilité / Originalité
60% critères de programmation:
- 5% - Respect de la nomenclature établie ( noms de variables / constantes / propriétés / classes / etc. )
- 15% - Bonne utilisation des scripts ( bonne organisation / communications efficaces entre les objets )
- 5% - Respect de l'encapsulation ( private / public / getter / setter )
- 20% - Qualité du code ( bonne syntaxe / code concis / répétitions inutiles évitées )
- 5% - Code "au dur" évité ( valeurs dynamiques et non numériques autant que possible )
- 10% - Code bien organisé et commenté de façon suffisante et pertinente
Bonus applicables:
- Ajout de fonctionnalité:
- Tir de projectiles avec effets appropriés (Bonus de 5%)
- Bonus ou malus temporaires (vitesse accrue, invulnérabilité, ralentissement, etc.) (Bonus de 5%)
- Création graphique:
- La majorité des sprites ont été créés par vous et sont intégrés harmonieusement au projet (Bonus de 5%)
Pénalités applicables:
- Code non-fonctionnel :
- Ne s'exécute pas du tout (-10%)
- S'exécute initialement, mais bloque de façon majeure ou "plante" éventuellement. (-5%)
- Exigences techniques non-respectées
- Pour chaque critère du devis significatif non respecté (-5%)
- Jouabilité problématique :
- Jeux presque impossible à jouer (trop rapide/lent, mauvais contrôles, etc.) (-5%)
- Mauvaise ergonomie (absence d'indication des touches à utiliser, boutons non-réactifs, etc.) (-5%)
- Mauvaise qualité de la langue ( jusqu'à -10% )
- Problèmes dans la remise :
- Retard (-10% / jour)
- Fichiers manquants (-5%)