Ce livre s'adresse aux développeurs qui souhaitent acquérir des compétences dans le domaine de la conception logicielle en utilisant les patrons de conception (design patterns). L'approche suivie dans ce livre pour atteindre cet objectif est celle de la réalisation d'un jeu vidéo, développé à l'aide du langage Java. Seules des connaissances de base en programmation objet sont requises pour bien démarrer la lecture de ce livre.
Le...
Ce livre s'adresse aux développeurs qui souhaitent acquérir des compétences dans le domaine de la conception logicielle en utilisant les patrons de conception (design patterns). L'approche suivie dans ce livre pour atteindre cet objectif est celle de la réalisation d'un jeu vidéo, développé à l'aide du langage Java. Seules des connaissances de base en programmation objet sont requises pour bien démarrer la lecture de ce livre.
Le lecteur commence par découvrir le travail de conception, nécessaire avant de débuter le développement proprement dit, puis étudie plus précisément la manière de représenter l'ensemble des données utiles à la réalisation de l'application (classes, conteneurs...). L'auteur présente ensuite la notion d'interface utilisateur (en 2D et en 3D) pour le développement de l'affichage puis la mise en place du moteur du jeu vidéo (déplacements, animations, règles du jeu…). Les derniers chapitres sont ensuite consacrés à l'intégration de l'intelligence artificielle et au développement des fonctionnalités pour le jeu en réseau.
Les notions étudiées dans ce livre sont introduites et mises en œuvre pas à pas, des plus élémentaires au plus complexes, et permettent au lecteur d'acquérir la pratique nécessaire pour éviter les pièges usuels liés au développement d'une application d'envergure. L'auteur propose également une série d'exercices avec corrigés pour illustrer les différentes techniques étudiées.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.
Les chapitres du livre :
Avant-propos – Concevoir une application d'envergure – Représenter l'état du jeu – Interface utilisateur – Moteur de jeu – Intelligence artificielle – Exécution concurrente et réseaux
1. Séparer Moteur de règles et Interfaceutilisateur
a. Échanges entre les acteurs
b. Thread du moteur de règles
c. Transférer les commandes (Double Tampon)
d. Mise à disposition du moteur et de l’état(Patron Observateur)
e. Cacher les notifications
2. Paralléliser les traitements
a. Appels asynchrones (Patrons Observateur et Futur)
b. Patron Pool de threads
c. Patron Producteur/Consommateur
d. Parallélisation Minimax
3. Exercices
a. Exercice 1.3.1 : Paralléliser larecherche exhaustive de collisions
b. Exercice 1.3.2 : Paralléliser larecherche indexée de collisions
4. Développement du jeu vidéo :exécution concurrente
Communication réseau
1. Notions essentielles
a. Couches réseau
b. Ethernet
c. IP (Internet Protocol)
d. UDP (User Datagram Protocol)
e. TCP (Transmission Control Protocol)
f. HTTP (Hypertext Transfer Protocol)
g. API Web REST (Representational State Transfer)
h. Formats de données
2. Implanter des services web
a. Créer un serveur HTTP
b. En-têtes HTTP et format des données
c. Produire du JSON (Patrons Fabrique et Constructeur)
d. Méthode HTTP et Client
e. Service GET
f. Service POST
3. Exercices
a. Exercice 2.3.1 : Créer un chat avecdes sockets
b. Exercice 2.3.2 : Implanter un mini serveurHTTP
Jeu en réseau
1. Principes
2. Sérialiser les commandes
a. Sérialisation
b. Désérialisation
3. Rassembler les joueurs
a. Définition du service
b. Implantation des services
c. Gestionnaire de services
d. Serveur de services
e. Requêtes depuis les clients
f. Menus graphiques et requêtes réseau
4. Jeu multijoueur
a. Implantation côté serveur
b. Implantation côté client
c. Améliorations
5. Exercices
a. Exercice 3.5.1 : Multijoueur avec UDP
b. Exercice 3.5.2 : Multijoueur sans étatlocal
6. Développement du jeu vidéo :jeu en réseau
Solutions des exercices
1. Exercice 1.3.1 : Paralléliser larecherche exhaustive de collisions
2. Exercice 1.3.2 : Paralléliser larecherche indexée de collisions
3. Exercice 2.3.1 : Créer un chat avecdes sockets
4. Exercice 2.3.2 : Implanter un mini serveurHTTP
5. Exercice 3.5.1 : Multijoueur avec UDP
6. Exercice 3.5.2 : Multijoueur sans étatlocal
Philippe GOSSELIN
Professeur des Universités à l'Ensea, Philippe-Henri Gosselin y est depuis plusieurs années responsable de la filière "Informatique et Système". Au sein de cette filière de spécialisation de dernière année d'ingénieur, il a mis en place une pédagogie par projet pour permettre aux étudiants de développer leurs compétences en informatique, autant sur le plan technique que méthodologique. A travers cet ouvrage, il a à cœur de proposer au lecteur une version étendue et généralisée de ces enseignements, qui ont fait leurs preuves auprès des étudiants.