Ajouter un commentaire

Imagine Engine : un moteur de rendu 2D écrit en Swift pour les terminaux Apple

Par:
fredericmazue

ven, 13/10/2017 - 15:10

Imagine Engine est un projet naissant de moteur de rendu 2D pour programmer des jeux sur les plates-formes Apple.

Imagine Engine est écrit avec le langage Swift d'Apple et il se base sur Core Animation pour profiter de l'accélération matérielle. John Sundell, le créateur de ce moteur, le décrit comme performant, tout en étant plaisant à programmer.

Un jeu en Imagine Engine consiste en un ensemble de scènes, qui peuvent être un menu, un niveau de jeu, un écran 'Game over', etc. Instancier une scène est très simple :

let scene = Scene(size: Size(width: 500, height: 300))
scene.backgroundColor = .blue
game.scene = scene

Les objets actifs d'une scène sont des acteurs, que l'on peut déplacer, animer, etc. et qui sont doués d'une capacité de détection de collision. Voici un exemple de création d'un acteur animé, ajouté ensuite à une scène :

let player = Actor()
player.animation = Animation(name: "Running", frameCount: 5, frameDuration: 0.15)
player.velocity.dx = 50
scene.add(player)

Des méthodes des objets acteurs permettent d'agir sur eux (avec la méthode move pour les déplacer par exemple) mais un jeu Imagine Engine est aussi une affaire de programmation événementielle. Par exemple :

let player = Actor()
let enemy = Actor() 

player.events.collided(with: enemy).observe {

    // Game over

}

Plutôt que le sous-classement et la redéfinition de méthodes, John Sundell a préféré définr un mécanisme de plugin pour étendre les fonctionnalités de son moteur.

Imagine Engine est un projet ouvert, disponible sur GitHub. Il s'agit d'un projet naissant et l'auteur fait appel aux contributeurs pour enrichir et améliorer son moteur.

Pour allécher les geeks, John Sundell a posté sur Twitter une vidéo de démonstration d'un jeu créé avec Imagine Engine. Cliquez ici pour y accéder.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 M   M  X   X  ZZZZZ  M   M  RRRR  
MM MM X X Z MM MM R R
M M M X Z M M M RRRR
M M X X Z M M R R
M M X X ZZZZZ M M R RR