The Legend of Zelda: Oracle of Light

The Third Oracle game. o/

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Salut, moi c'est Quentin, 19 ans.

Je développe en C++ depuis maintenant 5 ans, et ça fait environ 6 ans que j'ai commencé à taper mon premier code.

Ce projet est quelque chose qui me tient vraiment à cœur, parce que j'ai passé des heures et des heures sur Oracle of Seasons et Oracle of Ages, que j'ai trouvé ces jeux géniaux, mais il manque une suite, ce que je me propose donc de faire.

Oracle of Light est encore un nom temporaire, le moteur lui même étant loin d'être terminé, j'ai juste choisi un nom simple pour en parler pendant le développement.

Genèse

Ça a commencé quand je développais avec MicroLua DS il y a 5 ans, j'avais commencé à créer un Zelda dans ce style avec un autre membre du forum, et j'avais abandonné suite aux limitations de l'époque de MicroLua.

Un peu plus tard j'avais appris le C++ pour le faire sur DS avec la libnds. Je m'y suis donc mis et chaque année j'avançais un peu plus dessus, entre d'autres projets, puis je laissais tomber par manque de temps.

Cette année, je me suis dit que j'avais plein de temps à mettre à profit, et donc, que je pourrais me mettre à fond sur Zelda en le reprenant sur PC.

Généralités et avancement

Pour l'instant, le moteur est encore en plein développement, mais ça avance plutôt vite.

Voilà les fonctionnalités que j'ai implémenté:

  • Système de maps, et de transitions inter-maps
  • Menu (seulement la première page, et sans le texte défilant)
  • Système de dialogue
  • Armes:
    • Épée fonctionnelle (il lui manque l'état "Tapping" quand elle est chargée et cogne contre des objets)
  • Objets de map:
    • Porte: Objet qui permet de téléporter le joueur d'une map à une autre
    • Buisson ou herbe: Bloc qui peut être coupé avec l'épée, et qui drop des items
    • Coffre
    • Bouton (peut changer les tiles de la map quand il est activé)
  • Monstres:
    • Octorok (quelques bugs subsistent encore, et il ne tire pas encore de projectiles)

Au niveau des graphismes, sons, et musiques, je me base sur Oracle of Ages pour le moment.

Screenshot:

Objectifs

Le but de ce jeu est de donner une suite à deux jeux qui ont bercé toute ma tendre enfance, The Legend of Zelda: Oracle of Seasons et The Legend of Zelda: Oracle of Ages.

Normalement, un troisième jeu devait sortir: The Legend of Zelda: Oracle of Secrets (même s'il aurait pas vraiment eu ce nom), mais finalement ils n'ont pas pu le sortir.

Je ne dis pas que j'arriverais au même niveau qu'aurait été Oracle of Secrets, mais je ferais tout mon possible pour m'en rapprocher le plus que je peux.

Outils utilisés

J'utilise la SDL2 (audio, inputs, etc…) et OpenGL (affichage).

Pourquoi la SDL2 ? Parce que j'aime cette bibliothèque, et qu'elle est aujourd'hui compatible avec Android et iOS.

Pourquoi OpenGL ? J'avais envie d'apprendre le nouveau pipeline (avec les shaders) et je me suis dit qu'en commençant avec la 2D je m'épargnerais beaucoup de prises de têtes (surtout au niveau des maths).

Pourquoi pas la SFML ? Pour les deux raisons énoncées juste au dessus.

Le projet et son originalité

Les jeux rétro sont souvent bien accueillis actuellement, surtout sur plateformes mobiles.

Je compte porter le jeu sur Android (OpenGL ES 2.0 du coup) une fois que le moteur sera terminé.

Recrutement

Je cherche des développeurs C++ qui sont au courant des nouveautés C++11, qui savent s'en servir, et qui ont au moins un minimum d'expérience dans le développement de jeux vidéos. Cependant, aucune expérience avec SDL2 ou OpenGL n'est requise.

Je recherche également des pixel artists, bruiteurs et compositeurs.

Si vous êtes intéressé par l'un des postes ci-dessus ou si vous pensez simplement pouvoir apporter votre contribution au projet, envoyez-moi un MP avec vos compétences, expériences, motivations, disponibilités et votre pseudo Skype ou votre adresse email.

Et le code ?

J'utilise un dépôt GitHub: https://github.com/Quent42340/ZeldaOOL

J'ai aussi ouvert un devblog où je parlerais du jeu, mais pas uniquement: http://blog.gnidmoo.tk

Statut du projet

La refactorisation est enfin terminée. Je pense que je vais commencer à bosser sur les projectiles des Octorok.

Édité par gnidmoo

Auteur du sujet

Je me permets de up pour préciser quelque chose qui me semblait important.

J'ai édité le premier message, en précisant que je ne demandais ni de connaissances en OpenGL, ni en SDL pour le développement, parce que c'est mon choix de libs et je ne veux pas l'imposer aux personnes qui rejoindraient le projet.

Cependant je demande quand même un minimum d'expérience en C++11 pour pouvoir comprendre le code actuel. (Lien utile: http://cpp.developpez.com/redaction/data/pages/users/gbdivers/cpp11/)

Salut Quent42340,

Je suis un grand fan de Zelda depuis que je suis haut comme 3 pommes. Personnellement, le jeu qui a marqué mon enfance à moi était Link's Awakening (<3). J'adore voir des projets amateurs autour de cet univers comme le tiens. Je vais donc le suivre de près.

A une époque, j'étais très actif dans la communauté Zelda et il existe un site, Zelda-Solarus, qui traite aussi bien de l'actualité Zelda que de leurs propres jeux amateurs. D'ailleurs, si tu n'y as pas joué, je te les conseil vraiment. Ils sont excellent.

Avec ces jeux, ils ont sorti un moteur plus ou moins orienté Zelda mais spécialisé dans les jeux rétros (vu 2D). Après la sortie de plusieurs jeux, ce moteur a fait ses preuves et je ne peux que te conseiller d'y jeter un coup d'oeil (même si ton code à toi semble bien avancé maintenant). Son plus gros avantage est qu'il est multi-plateforme et que j'aimerais bien testé ton jeu aussi (étant sur un Mac). ^^

Bon courage en tout cas, je suis ça de près !

PS : C'est très déroutant d'avoir choisis un nom de jeu dont les abréviations donnent OOT !

Édité par Andr0

+0 -0
Auteur du sujet

Salut Andr0,

Je connais effectivement Solarus, c'est vrai que c'est un très très bon moteur, et j'ai déjà jeté quelques coups d'œil au niveau du code, c'est vachement bien organisé.

Sinon tu peux compiler le jeu sur OS X actuellement, j'utilise un simple Makefile (je passe à CMake aujourd'hui, promis) et toutes les instructions sont dans le README sur le github. :)

Pour ce qui est du nom, j'avais pas vraiment d'idée au départ, donc j'ai choisi ça au hasard, et je me suis rendu compte qu'après que ça faisait "OOT"… Mais vu que ce n'est qu'un nom temporaire, je pense pas que ce soit si important que ça. :)

Staff

Joli !

J'ai testé et c'est très fidèlement reproduit on s'y croirait presque.

Sinon histoire d’apporter ma petite contribution, je crois qu'il manque un petit check. Lorsqu'on marche vers un mur, qu'on s'y colle et que le perso est dans le même axe, l'animation de "pousse" s'enclenche. Jusque là c'est très bien, mais ça le fait aussi lorsque l'on bouge avec l'épée chargée (désactivent l’épée). Je ne me souviens pas à ce point de la version originale mais je ne pense pas que c’était comme ça. (Et même si ça l’était il faudrait changer ça !)

Sinon très beau boulot ! Je t'aurais bien apporter mon aide, je suis moi même programmeur et mon langage favori est le C++, pour OpenGL et SDL aucun soucis la dessus non plus mais j'ai déjà deux autres projets en cours et trop peu de temps libre. Mais je suivrai l'avancement. ;)

Bonne continuation. (ça y est j'ai la musique dans la tête…)

Édité par Glordim

GoldenPanic est disponible en Beta ! Ne ratez pas sa review hebdomadaire chaque jeudi !

+0 -0

Je connais effectivement Solarus, c'est vrai que c'est un très très bon moteur, et j'ai déjà jeté quelques coups d'œil au niveau du code, c'est vachement bien organisé.

Quent42340

Tiens, je serais intéressé de savoir pourquoi tu n'as pas utilisé ce moteur si tu en penses autant de bien ?

Sinon tu peux compiler le jeu sur OS X actuellement, j'utilise un simple Makefile (je passe à CMake aujourd'hui, promis) et toutes les instructions sont dans le README sur le github. :)

Quent42340

Alors, à l'occassion, je prendrais le temps d'installer toutes tes dépendances pour tester ton jeu !

Pour ce qui est du nom, j'avais pas vraiment d'idée au départ, donc j'ai choisi ça au hasard, et je me suis rendu compte qu'après que ça faisait "OOT"… Mais vu que ce n'est qu'un nom temporaire, je pense pas que ce soit si important que ça. :)

Quent42340

Il n'y a aucun problème. Tu choisis le nom que tu vais mais ça fait bizarre quand même. ^^

+0 -0
Auteur du sujet

Joli !

J'ai testé et c'est très fidèlement reproduit on s'y croirait presque.

Sinon histoire d’apporter ma petite contribution, je crois qu'il manque un petit check. Lorsqu'on marche vers > un mur, qu'on s'y colle et que le perso est dans le même axe, l'animation de "pousse" s'enclenche. Jusque là c'est très bien, mais ça le fait aussi lorsque l'on bouge avec l'épée chargée (désactivent l’épée). Je ne me souviens pas à ce point de la version originale mais je ne pense pas que c’était comme ça. (Et même si ça l’était il faudrait changer ça !)

Sinon très beau boulot ! Je t'aurais bien apporter mon aide, je suis moi même programmeur et mon langage favori est le C++, pour OpenGL et SDL aucun soucis la dessus non plus mais j'ai déjà deux autres projets en cours et trop peu de temps libre. Mais je suivrai l'avancement. ;)

Bonne continuation. (ça y est j'ai la musique dans la tête…)

Loptr

Merci. :)

Pour ce qui est de l'animation de "pousse", c'est parce que j'ai pas implémenté la dernière partie de l'épée, quand elle tape contre un mur, donc c'est normal, je le ferais plus tard. :)

En fait pas mal de trucs ne sont pas exactement comme les jeux originaux, mais ils le seront dès que je pourrais le faire. :)

Je connais effectivement Solarus, c'est vrai que c'est un très très bon moteur, et j'ai déjà jeté quelques coups d'œil au niveau du code, c'est vachement bien organisé.

Quent42340

Tiens, je serais intéressé de savoir pourquoi tu n'as pas utilisé ce moteur si tu en penses autant de bien ?

Andr0

Parce que je ne le pense pas adapté pour reproduire le comportement des Oracle of étant donné qu'il se base sur ALTTP, et puis j'avais envie d'écrire le mien. :p

Sinon tu peux compiler le jeu sur OS X actuellement, j'utilise un simple Makefile (je passe à CMake aujourd'hui, promis) et toutes les instructions sont dans le README sur le github. :)

Quent42340

Alors, à l'occassion, je prendrais le temps d'installer toutes tes dépendances pour tester ton jeu !

Andr0

Les seules dépendances sont CMake, OpenGL, SDL (+ mixer, image). Sinon il y a déjà une version compilée pour Windows (qui tourne bien sur wine aussi, mais sans son chez moi). :)

Édité par gnidmoo

Auteur du sujet

Bon, vu que ça fait à peu près un mois, je vais donner quelques nouvelles.

Comme je l'ai écrit dans le sujet, je suis actuellement en pleine réécriture, du coup j'avance pas vraiment, mais une fois cette dernière terminée (ça devrait plus prendre très longtemps pour arriver au même point où j'étais) je vais avancer bien plus vite, du coup j'aurais certainement l'occasion de mettre à jour souvent la partie "Statut du projet" pour que vous soyez toujours au courant de ce sur quoi je suis entrain de bosser, et de ce sur quoi je compte bosser après.

Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte