# Canard PC & Canardpc.com > Nos Autres Rubriques > [Jeux Indépendants] The Loving Cube Engine

## volatileDove

Je suis sûr que vous aimez les cubes. Tout le monde aime les cubes. Les rubik cubes, le cube fitness decathlon, Cube le film, les cubes de rangement Ikea, ...
 Moi aussi j'aime les cubes. Et c'est pour montrer mon amour que j'ai commencé le Loving Cube Engine, un projet réalisé pendant mes heures perdues. C'est à la fois un jeu et un moteur de jeu, avec des tas de cubes mignons tout pleins. 

Le jeu en lui-même est un petit jeu de plateforme, il faut 15  minutes pour en arriver à bout, mais j'ai l'intention de le rendre  beaucoup plus long. Son évolution future n'est pas encore clairement  définie, même si à priori il devrait s'agir in fine d'un jeu d'aventure  et d'exploration dans un monde vaste, un peu comme Knytt mais en 3D.

Le moteur, initialement crée pour le jeu, se révéle désormais  suffisamment complet pour éventuellement servir à vous (oui vous  lecteurs !), qui avez toujours révé de créer un jeu vidéo.
Précisément,   modifier le jeu consiste à :

 Modifier le monde avec l'éditeur 3D temps réel intégré (en lançant le  jeu et en appuyant sur 'A'). Modifier éventuellement le script de  configuration du jeu world.lua, en codant quelques trucs dans le  language de programmation lua. 

Pour parler technique, le bouzin met la patée au CryEngine 3 est fait from scratch, en C++,  avec visual studio, opengl, openal, glm, lua, et un peu de glut/alut  pour faciliter la chose. Le moteur est boosté aux vertex buffer objects  pour une grande distance d'affichage, et le monde 3D peut avoir  théoriquement une taille de plusieurs milliards de kilomètres cube (bon  non en vrai pour le moment il risque de saturer votre disque dur et  votre  mémoire vive au bout de quelques kilomètres cubes si vous mettez trop de  trucs dedans). Il tourne sous Windows, et sous Linux quand je trouve  une seconde pour le recompiler.

Evidemment certains calomnieurs vont me dire qu'un moteur avec des cubes, ça  existe déjà avec Minecraft ou Atmosphir.   Mais je dirais qu'ils se posent sur des créneaux différents. Minecraft  est différent (sans ombres, ni rajouts possible d'objets 3D, mais  multijoueur, et browser-based), Atmosphir est fait par une équipe  entière et probablement cher, et puis probablement pas fait pour faire  des paysages très étendus.

Toute critique et idées d'évolutions bienvenues, enjoy !

Voir la news (1 image, 0 vidéo )

----------


## Conan3D

Faut que je teste ça.

Et Cube 3 > All

----------


## [dT] Moustik

Need more screenshots, please !  :Bave:

----------


## Septa

Il y a fez aussi mais c'est plus spécialisé... Et il me semble avoir déjà vu un projet de jeu de plateforme "hardcore" en 3D simpliste avec des cubes sur tigs.  ::ninja:: 

Mais j'aime beaucoup ce qu'on peut faire avec de la 3D simple mais "moderne". Faudra que je jette un oeil.

----------


## Mug Bubule

Ya des ombres dans minecraft  ::ninja:: .

----------


## ducon

C’est le même qui a fait Cube et Sauerbraten ?

----------


## BuzzerMan

Petite question de curiosité : tu utilises quelle version de OpenGL ? Parce que je galère un peu à choisir à partir de laquelle me baser pour un projet...
Et dans la vidéo de l'éditeur, il y a un calcul des ombres qui est fait. Tu as pas d'ombre calculée directement ? C'est pas une critique, c'est plutôt pour savoir comment tu fais ^^.
Sinon bon boulot, c'est balèse de mener ce genre de projet tout seul, trop pour moi...

----------


## Tazztcha

Cube, je t'inférieures à trois! 

Je vais tester ça de ce pas.

----------


## volatileDove

> Ya des ombres dans minecraft .


Ach zut ... oui mais mes ombres sont plus précises  ::ninja:: 




> Petite question de curiosité : tu utilises quelle version de OpenGL ?


Je sais plus, 1.3 je crois ... mais j'utilise juste tout ce qui est standard et existe sûrement depuis la 1.0 (sauf l'extension Vertex Buffer Object). Ceci étant je ne conseille pas forcément de faire comme moi, et surtout je déconseille fortement glut, que j'ai commencé à utiliser pour des raisons historiques (je conseillerais plutôt SDL ou SFML).




> Tu as pas d'ombre calculée directement ?


Directement tu veux dire temps réel ? Non c'est des ombres statiques. C'est juste du code custom, pour fortement simplifier une double boucle qui calcule les ombres de chaque cube sur chaque cube. C'est donc lent mais ça marche, et une fois que c'est calculé, je rajoute des polygones noirs semi-transparents en surimpression sur les cubes (en essayant d'optimiser là où je peux).

----------


## Zenkibou

Un moteur avec des cubes avec un éditeur ingame, ça me rappelle très fortement le moteur "cube" non?

http://cubeengine.com
http://sauerbraten.org

(sauf que ici c'est pas un FPS  ::):  )

----------


## Akajouman

Ça m'a l'air pas mal, mais pas super beau...

----------


## MrPapillon

Des milliards de kms je crois pas, tu seras niqué par le Z-buffer et le far plane. Sauf si t'as prévu le coup. Sinon pour les collisions, tu devrais tester avec une sphère au lieu d'un point, ça change presque rien.

----------


## Gédéon-Groichémoi

Bein moi, ça ne me fait pas mal aux yeux.Et puis si y'a moyen de s'amuser, qu'importe le flacon, pourvu qu'on ait l'ivresse, hein. En tout cas, je vais essayer ça.

----------


## gros_bidule

Franchement, continues comme ça, c'est du bon boulot. Beaucoup aimeraient avoir le courage pour aller jusqu'au bout et sortir un truc à voir, un truc qui marche, seulement ce n'est pas facile, on est vite tenté de se dire "ouaip trop la classe, je vais me lancer dans un Sim City" pour abandonner avant même d'avoir finit de télécharger un SDK.
Donc continues, continues, et continues  ::): 
Et je sais pas... fais nous in Worms 3D basique où l'on pourrait construire n'importe quelle map, ce serait le pied  ::):  Ton jeu est original à sa façon, et il y a vraiment moyen d'en faire plein de trucs fendards. Ha tiens, un Marble Madness geantttttt, ouiiiii je le veuuuuuux, ça serait le pied, rhaaaaa !

----------


## deeeg

Aucun rapport avec Melli?

----------


## gros_bidule

Hmmmmm pas du tout le même moteur (Unreal/Mapping prêt à l'emploi vs moteur maison), et ... si je comprends bien, pas le même objectif  :;):

----------


## Vinnythetrue

Honnêtement moi aussi je trouve l'image moche et ça ne me donne pas envie d'aller plus loin. Mais je suis un connard, c'est beaucoup de taff, bravo pour ton courage, passé et à venir  :;): .

Par contre, j'ai pas bien saisi, c'est quoi la motivation ? L'apprentissage ? Parce que arrêtez-moi si je me trompe, mais un moteur 3D standard ça peut aussi afficher un univers composé de cubes. Ton truc est super optimisé de la mort pour les cubes ?

----------


## volatileDove

> Des milliards de kms je crois pas, tu seras niqué par le Z-buffer et le  far plane. Sauf si t'as prévu le coup. Sinon pour les collisions, tu  devrais tester avec une sphère au lieu d'un point, ça change presque  rien.


Ah non je voulais juste dire des milliards de km (cubes! donc en fait juste des milliers de km) avec en plus un brouillard, et un chargement au fur et à mesure, comme dans morrowind quoi (et encore pour le moment y a le souci que certaines informations concernant les emplacements des cubes sont encore chargées au démarrage).
Oui la collision est un peu rudimentaire.  ::rolleyes:: 




> Ton truc est super optimisé de la mort pour les cubes ?


C'est l'idée de départ (pas forcément réussie), mais aussi que ça permet d'éditer un monde très facilement. Dans l'Unreal Engine si tu veux poser des cubes les uns à côté des autres, j'imagine que t'en as pour la nuit. Et puis oui c'est aussi par passion.




> moche


La prochaine version (demain) aura de nouveaux mondes aux styles différents avec de plus beaux screenshots et de plus belles textures. Pour le reste je suis pas graphiste, mais je tenterai de corriger ça.

----------


## Kweh

Un système de skins ce serait le pied  :Bave: 
Y'a moyen de faire un tas de trucs avec ce genre de moteur, en tous cas moi j'ai hâte de voir comment ça va évoluer  ::):

----------


## volatileDove

Kweh, j'aime bien ton skin  ::): 

La nouvelle version est dispo, avec 4 mondes :
- le monde précédent pas changé, finissable
- le monde des cartons, finissable
- le monde des iles, avec une fin, mais je sais pas encore si on peut y arriver   ::rolleyes::  [edit: si, on peut]
- un ptit monde de test

----------


## botu

J'aime beaucoup les concepts de ce genre. Je trouve que l'idee donnee plus haut de faire un worms like est une tres bonne idee!  ::wub::  ::wub:: 

Si tu as besoin d'en peu d'aide, je suis partant !

Ce sur quoi je bosse pour mon plaisir actuellement : 
http://forum.unity3d.com/viewtopic.p...=asc&start=270

----------


## xemwox

C'est sur que la version d'avant est pas super belle, mais c'est trop prenant. Je viens de passer 20 minutes à essayer d'escalader une pile de cubes que j'ai faite. Je sais pas, je trouve ça jouissif, c'est comme de l'escalade, sauf qu'au bout d'un moment on voit plus le sol ::P: . Le seul truc qu me gène vraiment, c'est le perso.

----------


## adam0509

On dirais le moteur de half-life 1  :;): 


Respect pour ce qui est du coding, je sais que c'est pas fastoche.

----------


## prosper_perimé

C'est génial comme projet ! 

Il y a aussi peut ètre des similitudes avec le prototype de Sonic :
http://www.youtube.com/watch?v=wzvS_...eature=related

Peut ètre qu'on pourrait customiser le jeu dans ce sens ?? avec du fisheye , des bonus , la gravité qui s'inverse ...
Ca serait exellent !  ::wub:: 

[edit]:
_(désolé , revoici des majuscules )_

----------


## Raphi Le Sobre

Une autre idée géniale: Customiser tes phrases avec des majuscules !
Je t'assure, ça serait excellent (et super sympa de ta part)  ::wub::  !

Edit: Merci  :;):

----------


## volatileDove

Une nouvelle mise à jour pour les linuxiens, enjoy! 
Le projet avance plus lentement en raison de mon état d'esprit actuel, mais ne vous inquiétez pas il n'est pas mort.  :Cigare:

----------


## volatileDove

Nouvelle màj* 0.27* : au menu, surtout des améliorations de textures et une amélioration de la collision.  :;): 

Edit: * 0.28* : surtout pour linux

Edit: * 0.29*

----------


## Gring

ça me rappelle un peu le moteur de Tomb Raider premier du nom.

Sinon, si tu développais un algo de raycasting pour n'afficher que les cubes visibles, ça multiplierait le frame rate par au moins 500.

Ce qui serait vraiment dément, ça serait une distance de vue infinie, les cubes lointains seraient fusionnés avec une méthode de type Gauss ou Lanczos, mais en 3D.

----------


## volatileDove

Pour le raycasting ... j'étais pas assez renseigné dessus j'avoue. Mais j'ai l'impression qu'avec cet algo, on peut pas regarder en haut et en bas avec la caméra. Fusionner les cubes lointains, j'y ai pensé, mais finalement ça a pas été la priorité.

Sinon la version est maintenant la  0.37 , ça va vite en fait, y a des tas de nouveaux trucs  ! comme les ombres calculées à la volée, les boules qui font des jolies explosions dans le décor, des nouveaux mondes dont certains un peu plus détaillés (grâce à moultes optimisations), et un worms3D-like rudimentaire à deux joueurs où il faut envoyer l'autre joueur dans la flotte.  ::rolleyes::

----------


## volatileDove

Moultes mises à jours, c'est maintenant la version 0.50 !
Bon je me rend compte que comme j'ai interrompu le développement pendant un moment, depuis Minecraft a pris de l'ampleur, ainsi qu'un paquet de jeux cubes-based mais bon ... l'idée et le but restent sensiblement différents.

Au menu des tas d'améliorations internes du moteur, et pour ce qui est visible de prime abord, il y a une refonte du rendu des cubes, qui ont maintenant du relief : de l'herbe mais aussi des rebords arrondis.

(Cf la video suivante faite un peu à l'arrache, quand j'ai le temps je refais un truc plus présentable)



Maintenant que j'ai pas mal bossé sur le moteur, la prochaine évolution devrait être de partir véritablement sur un jeu d'exploration dans des environnements vastes.

----------


## Rom1

Beau boulot  :;):

----------


## ghost297

Petite question de curiosité : tu utilises quelle version de OpenGL ? Parce que je galère un peu à choisir à partir de laquelle me baser pour un projet...
Et dans la vidéo de l'éditeur, il y a un calcul des ombres qui est fait. Tu as pas d'ombre calculée directement ? C'est pas une critique, c'est plutôt pour savoir comment tu fais ^^.
Sinon bon boulot, c'est balèse de mener ce genre de projet tout seul, trop pour moi...

----------

