DOME - Moteur minimaliste orienté design
Un framework confortable pour le développement de jeux qui fusionne SDL2 et le langage de script Wren, écrit en C.
Pour plus d'informations sur l'utilisation de DOME et pour démarrer, lisez la documentation ici.
Comment utiliser
Télécharger
Vous pouvez télécharger des binaires prêts pour la production à partir de notre page Versions. C'est la méthode recommandée pour une distribution et un développement facile.
Installer via Brew
Alternativement, si Homebrew est installé (Mac OS X, Linux et WSL), vous pouvez installer DOME à l'aide des commandes suivantes :
> brew tap domeengine/tap
> brew install dome
Construire
Enfin, si vous souhaitez construire DOME vous-même, pour apporter des modifications ou pour d'autres raisons, suivez plutôt ces instructions.
Assurez-vous d'abord que les bibliothèques SDL2 partagées sont installées sur votre système, puis pour créer, exécutez :
Cela créera un exécutable nommé ./dome
(sous Mac OS X et Linux) et ./dome-x32.exe
ou ./dome-x64.exe
.
Courir
Exécutez ./dome [gamefile.wren]
pour exécuter votre jeu. Si votre fichier initial s'appelle main.wren
, il suffit d'exécuter ./dome
pour l'exécuter. Remplacez dome
par votre nom binaire construit si nécessaire.
Les bases
Le point d'entrée de votre jeu doit contenir une variable Game
qui contient au moins les méthodes init()
, update()
et draw(_)
.
import "input" for Keyboard
import "graphics" for Canvas, Color
class Main {
construct new () {}
init () {
_x = 10
_y = 10
_w = 5
_h = 5
}
update () {
if ( Keyboard . isKeyDown ( "left" )) {
_x = _x - 1
}
if ( Keyboard . isKeyDown ( "right" )) {
_x = _x + 1
}
if ( Keyboard . isKeyDown ( "up" )) {
_y = _y - 1
}
if ( Keyboard . isKeyDown ( "down" )) {
_y = _y + 1
}
}
draw ( alpha ) {
Canvas . cls ()
var color = Color . rgb ( 171 , 82 , 54 )
Canvas . rectfill ( _x , _y , _w , _h , color)
}
}
var Game = Main . new ()
Modules
DOME offre les fonctionnalités suivantes, et bien plus encore :
- Graphique
- Toile
- Rectifier
- Indiquer
- Cercle
- Ellipses
- Lignes
- Triangles
- Couleur
- ImageData (alias Bitmap)
- Dessinez des sprites chargés à partir de fichiers (png)
- Prise en charge des feuilles de sprite
- Saisir
- Clavier
- Souris
- Manettes de jeu
- Système de fichiers
- Lecture et écriture de fichiers
- Audio (fichiers stéréo et mono OGG, MP3, FLAC et WAV)
- Collections (types abstraits)
- Ensemble
- File d'attente
- Empiler
- File d'attente prioritaire
- Plugins natifs (permettant d'accéder à toutes sortes de fonctionnalités !)
FAIRE
Vous pouvez suivre mes progrès dans la mise en œuvre de DOME sur mon Twitter.
- Graphique
- Mode de rendu 3D potentiel ?
- IO
- Accès au réseau
- UDP
- Client HTTP (peut-être)
- Sandboxing de sécurité (peut-être)
Dépendances
DOME dépend actuellement de quelques bibliothèques pour réaliser ses fonctions.
- Wren (déjà inclus dans le dépôt du projet)
- SDL2 (version 2.26.3. Si vous l'installez à partir des sources, vous souhaiterez créer des bibliothèques partagées/dynamiques.)
- utf8.h
- image_stb
- stb_image_write
- stb_truetype
- stb_vorbis
- microtar
- optparse
- jo_gif
- petit répertoire
- ABC_fifo (un FIFO de répartition de threads/tâches SPMC que j'ai écrit pour ce projet)
- mkdirp
- où est-ce que tu es
- dr_mp3
- dr_flac
Hormis SDL2, toutes les autres dépendances sont intégrées. DOME aspire à être à la fois minimaliste et multiplateforme, il dépend donc du moins de composants externes possible.
Remerciements
- Bob Nystrom pour avoir créé Wren et m'avoir inspiré à créer des jeux, grâce aux Game Programming Patterns
- Un merci spécial à lqdev pour le logo fantastique !
- Glenn Fiedler pour les ressources les plus référencées sur les boucles de jeu, la physique et les réseaux dans les jeux
- Casey Muratori pour avoir créé Handmade Hero, une ressource d'inspiration et éducative qui rend ce projet possible.
- La police intégrée vient d'ici.
- Sean Barrett pour plusieurs bibliothèques
- rxi pour microtar
- Neil Henning pour utf8.h
- Chris Wellons pour optparse et pdjson
- cxong pour tinydir
- Jon Olick pour jo_gif
- Stephen Mathieson pour mkdirp
- Gregory Pakosz pour Whereami
- David Reid pour dr_flac et dr_mp3
Exemples de ressources de jeu
- Des exemples de jeu et de graphiques sont dérivés de ce fantastique didacticiel PICO-8.
- Le thème pour piano d'Aerith (res/AerisPiano.ogg) de Tanner Helland est disponible sous licence CC BY-SA 3.0 : Lien
- Game Over Theme (res/music.wav) de Doppelganger est disponible sous licence CC BY-SA 3.0 : Lien
- La police "Memory" est fournie par Eeve Somepx et est disponible sur leur patreon ici sous une licence de bon sens.