###### tags: `S8` `Commun` `IL : Plateformes logicielles`
<style>
.table-center th, .table-center td {
text-align: center;
}
.row-around {
display: flex;
justify-content: space-around;
width: 100%;
}
</style>
# Plateformes logicielles C++
## Maquette
<div class="row-around">
<table class="table-center">
<thead>
<tr>
<th colspan="3">Horaires (h)</th>
</tr>
<tr>
<th>CM</th>
<th>TD</th>
<th>TP</th>
</tr>
</thead>
<tbody>
<tr>
<td>4</td>
<td>/</td>
<td>20</td>
</tr>
</tbody>
</table>
<table class="table-center">
<thead>
<tr>
<th colspan="3">Poids (%)</th>
</tr>
<tr>
<th>UE</th>
<th>CC</th>
<th>ET</th>
</tr>
</thead>
<tbody>
<tr>
<td>37.5</td>
<td>100</td>
<td>/</td>
</tr>
</tbody>
</table>
</div>
## QT
Blabla... voir diapos
## Infos
**Différence liste/vecteur**
- Liste : rapide en écriture, assez lent en lecture
- Vecteur : très lent en écriture, rapide en lecture
**Constantes**
`const retour fonction() const { }`
-> `const` avant l'accolade veut dire que toutes les variables utilisées dans la fonction sont des constantes (attributs, paramètres, nouvelles variables...). Aucune méthode/fonction qui n'est pas const ne peut être appelée au sein d'une méthode/fonction const.
-> `const` avant le retour spécifie que le retrour est une constante
`mutable` est très rarement utile. Utile pour les caches.
## Projet
Jeu sous QT sur un genre À DÉFINIR.
## Méthodes de game design
### Choix du projet
J'ai plus le nom, mais l'idée c'est que chacun propose 2-3 pitchs. Ensuite, on les présente, puis chacun discute dessus : ce qui est bien, ce qu'on aime moins, les problèmes qui semblent émerger, etc.
Ensuite, chacun vote pour les trois pitchs pour lesquels ils sont les plus chauds, et plus important ceux qu'ils ne veulent absolument pas faire. On rediscute, principalement en demandant pourquoi les personnes on dit non pour certains sujets : on vois si c'est justifié, réexplique, modifie, approfondie...
Les trois projets pour lesquels il y a le plus de personnes ok et (le moins de) personne contre sont retenus et développés.
Ensuite, on en choisie en seul en suivant le même principe de vote. Il ne doit pas y avoir une seule personne contre le choix final.
### Développement scénario
Bien définir l'univers et ses lois
Quel est le but du personnage principal ? (OBLIGATOIRE !!!)
Quelle est l'histoire (passé/background) du personnage principal ? Des personnages secondaires ?
Comment va évoluer le personnage principal ?
Quelles sont les forces du personnage principal ? Ses faiblesses ?
Qui est le "méchant" ? Son but ? Ses forces ? Ses faiblesses ?
(Mêmes questions pour les minions, sans forcément définir leur but)
### Développement game-play
Définition des méchaniques de jeux et des boucles associées
Utilisation de la méthode RGD (Rational Game Design) : établissement de difficulté pour chaque méchanique (paramètre atomique), en s'appyant sur "sans défi" et "impossible"
Définition des move-sets
Défnition des différents niveaux et de la navigation entre ces derniers (logique liant un niveau à celui qui suis)
Etc etc... (faut que je redemande / revois les détails) (mais de toute façon se sera design niveau bébés XD)
### Art direction
Bon, vu que personne fera des images je vais pas développer, sauf si ça vous intéresse x)
Mais l'idée de la direction artistique, c'est de déterminer les émotions qui veulent être passées
Ensuite on design les graphismes et le positionnement en conséquences (en pensant aussi à l'ergonomie)
Il faut bien penser qu'il faut que toutes les images se ressemblent suffisament pour qu'il y ai une logique graphique
Généralement, on se limite trois couleurs principales et trois polices différentes max.
Le mieux, c'est de s'inspirer de ce qui existe déjà, et de copiter XD
Des liens pour aller plus loin :
- [Signification des couleurs (eng)](https://www.incredibleart.org/lessons/middle/color2.htm)
- [Vidéo expliquant comment faire un bon chara design (eng)](https://www.youtube.com/watch?v=8wm9ti-gzLM)
- [Vidéo expliquant comment designer les tenus de ses persos (eng)](https://www.youtube.com/watch?v=CjiKlLE3NuI)