Par curiosité, puis par passion, j'ai développé un jeu vidéo à l'aide des outils et frameworks habituellement utilisés dans des applications web.
Pas commun dites-vous ? Revenons ensemble sur la manière dont je m'y suis pris, les choix techniques et ce qui les a faits évoluer, les challenges et les compétences développées au cours de cette aventure.
Par Alexandre Dergham, Développeurs full-stack chez Xebia
Toutes les informations sur xebicon.fr
Tech4Exec - Etat de l’art et vulgarisation du Machine Learning
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développement web ?
1. @Xebiconfr #Xebicon18 @alxdergham
Build the future
Comment j'ai développé un jeu vidéo avec des outils de développement web ?
Alexandre Dergham, développeur full stack
25. @Xebiconfr #Xebicon18 @alxdergham
Conception technique : Au départ...
Service A
Controller 2
Controller 1
Service B
Service D
Service C
HTML
Directive X
Directive Y
Service E
Service F
Ecran Section d’écran Modèle
25
26. @Xebiconfr #Xebicon18 @alxdergham
Conception technique : … et maintenant
Service A
Composant 2
Composant 3
Composant 1
Service B
Service D
Service C
Ecran Section d’écran Modèle
Composant 4 Composant 5
26
Module X
Module Z
Module Y
Module D
37. @Xebiconfr #Xebicon18 @alxdergham
Challenges techniques : Gestion du son et événements
@Injectable()
export class AudioService {
public lastPlayedFXSource = new Subject<string>();
public lastPlayedFXChanged$ = this.lastPlayedFXSource.asObservable();
public playSound(fxPath: string): Promise<boolean> {
this.lastPlayedFXSource.next(fxPath);
}
}
37
38. @Xebiconfr #Xebicon18 @alxdergham
Challenges techniques : Gestion du son et événements
@Component({ … })
export class AudioFXComponent implements AfterViewInit, OnDestroy {
private subscription: Subscription;
constructor(private audioService: AudioService) {}
public ngAfterViewInit (): void {
this.subscription = this.audioService.lastPlayedFXChanged$.subscribe(
(currentSoundFX) => this.playSound(currentSoundFX));
}
38