# Jeux vidéo > Jeux vidéo (Discussions générales) > Le coin des développeurs >  [Jeu terminé] Punxel Agent: jeu de plateforme 2D avec des pixels et des pew pew!

## Louck

*Version: 1.10*
*Projet terminé*

*Cliquez ici pour télécharger le jeu*
*Vous devez posséder Java sur votre machine, afin d'y jouer*

Après avoir travaillé sur plein de petits projets (persos et pros) et après avoir regagné force, vigueur et motivation, je suis de nouveau prêt pour travailler sur un nouveau jeu.
J'ai prévu de réaliser le jeu suivant:


*Punxel Agent: Un jeu de plateforme en 2D, avec des flingues, des AI, et des pixels qui explosent comme dans les films de Michael Bay.*
Le joueur contrôlera un agent infiltré (ou presque), qui devra récupérer un artefact dans un milieu hostile. Et revenir à son point de départ, vivant.
Le jeu est prévu pour être difficile: L'agent devra affronter un certain nombre d'ennemis, sans checkpoint, et qu'avec trois points de vies. 

Néanmoins, l'adversaire ne fait confiance qu'à sa vue et qu'à ses oreilles. Le héros aura l'avantage de se déplacer discrètement dans le niveau et d'esquiver les regards mortels de ses ennemis... avant de les tuer avec une arme silencieuse ou avec son couteau fétiche.
Et lorsque le pas de trop est posé, le héros pourra toujours se rattraper avec ses armes bien plus mortels (et bien plus explosifs), avec ses accessoires et ses double sauts. En outre, le joueur pourra détruire le terrain afin de piéger ses adversaires ou pour créer de nouveaux passages.


En bref, le jeu sera surtout accès sur de l'action et du shoot, avec une petite touche d'infiltration (et une AI pas trop trop idiote. Enfin j'essaye  ::P: ).

Côté artistique, il faudra remercier (et je les remercie!) Uubu pour la pâte graphique et Bigju pour la partie musique  ::): .



*Point de vue technique-nik-nik*
Le jeu sera développé en Java 6 via mon propre moteur de jeu fait maison (qui a biiieenn évolué depuis mon premier jeu HATU), qui utilise la bibliothèque LWJGL (Minecraft, JMonkey...)

Pour ne pas rentrer trop dans les détails, le jeu:
- Sera jouable sous Windows, Linux et Mac.
- Sera en mode fenêtré 800x600 (pour diverses raisons, je n'ai pas encore pris le temps pour travailler sur l'option "résolution de l'écran" à fond, que cela soit vraiment "utile").
- Ne nécessitera pas une grosse configuration pour jouer à plus de 60FPS (pour de l'OpenGL et de la 2D, bon...).
- Se joue au clavier et à la manette.
- Sera en 2D et en solo seulement.
- Gratuit.


A très bientôt!

----------


## airman4

Y a pas de version jouable encore ?

et michael Bay ? sérieusement ?

Si c'est un syphon filter en 2d ca va roxxer !

----------


## Louck

Vu l'état actuel du jeu, il n'y a pas grand chose à voir (à part de jolies bugs et des blocs de couleurs qui bougent). Quand j'estimerai que le jeu est "jouable", je publierai publiquement une version alpha  ::): .
Sinon je ferais au moins une vidéo.

J'en dirais sûrement un peu plus dans une ou deux semaines.


EDIT: Pour l'instant, le nom provisoire du jeu est "Pixel Agent".

----------


## Louck

Petit update, j'ai pas mal avancé sur le projet, surtout à travailler sur l'AI du jeu.

Ci-dessous, un avant goût du gameplay (version pre-alpha. Ne pas faire attention aux graphismes).

----------


## yourykiki

Bien joué, l'IA a l'air sympa !

----------


## airman4

pas mal !!
ca donne des idées deja haha

Sinon bien joué l'anim du sang aussi.
Le tir en diagonal est un tir auto ?

----------


## Louck

Merci  ::): .

Non, c'est le joueur qui doit guider son tir (via les touches fléchés haut et bas). Il peut donc tirer droit, ou en diagonal haut et bas.
Il y a aussi un bouton pour marcher, un autre pour sauter et pour descendre les échelles, et un troisième pour tirer  ::): .

Vu comment j'avance, je risque d'avoir finis le core du jeu la semaine suivante.

----------


## Sahnvour

Sympa, ça a un petit côté _Thomas was alone_ version psychopathe pour l'instant  :^_^:

----------


## Poussin Joyeux

Sympa car j'aime bien les jeux où on peut détruire le décor  ::):

----------


## Septimium

Ca à l'air sympa tout ça  ::): 

Par contre, les niveaux sont générés aléatoirement, ou c'est du créé de toutes pièces ?

Et il serait pas plus simple de plutôt faire tirer le joueur sur l'endroit ou on vise avec la souris ?

----------


## Louck

Merci  ::): .

Je vais avoir finis avec le coeur du jeu en fin de cette semaine: Je dois encore améliorer la physique du jeu (explosions, chutes...) en plus d'implémenter le feu  :Bave: .

Par la suite, je vais m'attaquer au contenu du jeu et au développement du premier niveau, avant de publier une version alpha jouable  :;): .





> Par contre, les niveaux sont générés aléatoirement, ou c'est du créé de toutes pièces ?


Pour ce jeu, je préfère que les niveaux soient créés de toutes pièces. Il y a beaucoup de choses à gérer et à concevoir dans une map (chemins alternatives, objectif et fin de niveau, emplacement stratégique des ennemis, etc...) qu'il est difficile à réaliser via une génération procédurale.

Je ne prévois pas de créer beaucoup de niveaux pour ce jeu. Mais ils seront différents  ::): .





> Et il serait pas plus simple de plutôt faire tirer le joueur sur l'endroit ou on vise avec la souris ?


La souris aide beaucoup à viser. Mais cela permettrait au joueur de tirer *oû il veut et sans limite*. Pour un jeu de plateforme où le décor peut exploser, ca serait trop simple...
Je dois aussi adapter l'AI pour qu'il vise et tire comme le joueur. Ca deviendrait vite pénible d'affronter des aimbots  ::P: .

----------


## Louck

*Update 1 (15/07/2013)*

Après deux semaines de gros travail, j'ai finis de développer les derniers traits du gameplay de mon jeu. Il reste encore quelques éléments à peaufiner (voir à ajouter), mais c'est prévu dans le planning  :;): .

Globallement, dans le jeu:
 La caméra sera vue de côté et suivra les mouvements du joueur Le joueur contrôlera un protagoniste: déplacement gauche/droite, visé haut/milieu/bas (pour tirer), saut et double-saut, et marche discrète. Les personnages du jeu peuvent porter différentes armes, ramasser de nouvelles, et utiliser divers accessoires (dont des grenades et des flashbangs). Le joueur (et les ennemis) peuvent mourir de trois façons: par les balles, par la lame blanche, ou par la physique (chute, explosions, écrasement...). En outre, le joueur pourra détruire les bloques (qui peuvent être détruite, logique!), enflammer le terrain ou faire péter des explosifs (pour détruire d'autres bloques). L'IA sera intelligente (en théorie), réagissant aux bruits de pas et de tirs, et à la vue des corps et de ses ennemis. De plus, l'IA aura certains états: certains ennemis peuvent patrouiller, d'autres discuter avec ses collègues, certains écouter de la musique, etc etc...

En plus, je prévois des ennemis "un peu plus fort" (des boss), ainsi que des modes de jeu.


Autre sujet: je vais sûrement revoir mon point de vue sur les "missions" de mon jeu. Au final, le joueur devra chercher un objet dans le niveau et le ramener jusqu'à la fin de niveau, en vie. Il n'y aura donc pas de libération d'otages ou de désamorçage de bombes. Néanmoins le style de jeu reste intacte (avec plein de pixels!).
Si j'ai le temps, je vais probablement implémenter des événements (explosifs, pièges, appartement qui s'enflamme, etc...). Mais ce n'est pas ma priorité.


Pour finir, je vais travailler sur les armes et les accessoires du jeu durant les deux prochaines semaines. Le joueur pourra porter deux armes et un outil sur lui. Les armes peuvent être ramassés au sol, tir illimité (à voir pour des questions d'équilibrages). Les outils devront être choisis en début de niveau et seront en nombre limités.
Les ennemis seront différents par leurs comportements (endormis, en patrouille...) et par leurs armes.



_Image non fini, mais les avis sont toujours les bienvenus!_

----------


## airman4

Pas mal toute ces IA 
ca donne des idées.

Je vais tenter de mon coté un choix entre different type d'IA , en gros une IA typique droppée a chaque gameplay
ca peut etre casse gueule mais bizarrement peu de gens essayent cela.

sinon pas mal ton image , essaye d'etendre le fusil peut etre , histoire qu'on voit bien
La partie eclairée du casque n'est pas a droite ? et la foncée a gauche ?

----------


## Louck

Je suis un peu nul avec les shaders donc bon  ::P: .

Un autre essai du coup:

----------


## Uubu

Après avoir vu tes vidéos, j'ai étalé du gros pixel ! Le temps de peaufiner un peu, je viens de voir que tu t'y étais mis aussi. 
Je veux bien essayer de te faire la 2D, si ça te dit.  ::): 


De gauche à droite :
Les persos 1 et 2 sont en recherche (leur yeux volumineux indiquent la direction de leur regard). Le perso 3 (le héros) tire. Le 4 a mal, et le 5 n'a plus mal. Le 6 surprend le PJ. Le 7 est serein. Le 8 (le héros) bondit avec son couteau. Le 9 est comme le 7, mais bleu.

----------


## Louck

Waah c'est du super jolie tout ca  ::): . J'adore!

Par contre j'ai peur que le style détaillé de ces dessins n'entrent pas dans le style minimaliste du jeu. Mais vu que rien n'est fait, je peux tout ré-adapter de nouveau (tant que le gameplay est respecté).


Si tu es toujours partant pour m'aider, contact moi par MP. Je t'indiquerai toutes les animations possibles du jeu  ::):  (beaucoup sont de l'instantanées).

----------


## Uubu



----------


## Patate

C'est cool ça !

----------


## airman4

Tres long fusil ! ca marche bien pour moi !

----------


## Uubu

Content que ça vous plaise, merci.  :;):

----------


## Louck

*Update 2 (27/07/13)*

J'ai pas mal avancé pour cette deuxième update. J'ai principalement travaillé sur le contenu du jeu, dont les armes et les accessoires de nos protagonistes.

De façon plus détaillée, nous aurons côté arme:
*Le pistolet silencieux*: Précis, silencieux (wah bon?), mais qui possède une longue cadence de tir*Un pistolet mitrailleur silencieux* (le retour!): Beaucoup plus rapide à utiliser, toujours aussi silencieux, mais est moins précise et chauffe beaucoup plus rapidement (je vais en reparler).*Le fusil d’assaut*: C'est l'arme "principale" du jeu, celle que nous voyons dans les vidéos. C'est une des armes la moins précise mais qui offre une cadence de tir bien élevée, sans cramer.*Le fusil de chasse* (ou le fameux "shotgun"): Alternative au fusil d'assaut, elle crache plusieurs projectiles à chaque tir. Il est possible de tirer assez rapidement avec cette arme, mais elle chauffe et émet beaucoup de bruits.*Le lance-flamme*: Première arme "lourde", qui offre la possibilité de cramer très rapidement ses ennemis ainsi que le terrain, sur une courte portée. Où comment se faire plaisir à voir ses adversaires courir le feu aux fesses.*Le bazooka*: Une façon de se faire plaisir autre que par le feu: par l'explosion! La recharge est longue, chauffe et émet beaucoup de bruit (surtout par les explosions), mais offre la possibilité d'éclater le terrain en plusieurs morceaux et de propulser les bloques voisins. Bien visé, l'arme peut faire TRES mal contre une grosse bête.


Dans le jeu, il n'y a pas de gestion de munitions: Il est en théorie possible de tirer à l'infini, sans arrêt. Cependant, les armes peuvent chauffer: A un certain stade, l'arme deviendra inutilisable durant quelques secondes. Si bien utilisé (ne pas mitrailler comme un fou et pour rien), l'arme peut se refroidir rapidement. L'objectif est d'éviter les techniques de spam, qui sont un peu trop facile  :;): .


Du côté des accessoires, nous avons:
*La fameuse grenade*: Pas besoin de détailler plus. Elle fait le même travail que le bazooka: BOOM!*La seringue d'adrénaline*: Permet de récupérer un point de vie.*La cape* (nom provisoire): Le joueur pourra se dissimuler dans l'ombre et devenir entièrement invisible aux yeux de l'ennemi. Mais attention: L'ennemi ne voit pas, mais il peut toujours entendre les bruits de pas... Il est possible d'utiliser ses armes sous la cape, mais au risque de se dévoiler et de redevenir visible.*La plateforme transportable* (nom provisoire, encore): Notre héro pourra activer une plateforme volante, lui offrant une appuie supplémentaire pour atteindre des lieux encore plus élevés. Par contre, la plateforme n'est que temporaire et le joueur devra attendre un certain moment avant de la réactiver.


Avant de débuter le niveau, le joueur devra faire un choix parmi une sélection d'armes. Il sera possible de ramasser de nouvelles armes dans le jeu, sur certains cadavres ou dans certaines caisses. Le joueur devra aussi sélectionner un accessoire parmi les quatre proposés, mais contrairement aux armes, il ne sera pas possible de le changer en cours de niveau et ils sont limités en quantité.

Il reste encore quelques équilibrages à faire au niveau des armes et des accessoires. Mais pour l'instant, ca fonctionne  ::): .


En plus d'avoir réalisé ces armes et outils, j'ai travaillé sur le tout premier niveau du jeu: Une maison! (originalité powa). La map est conçu, le niveau est jouable, mais il me reste à finaliser le système de mission (qui est, je rappelle: Chercher un objet, le récupérer, et aller au point d'extraction) et à appliquer les tilesets réalisés par notre super graphiste  ::): .

_
(Le niveau est prévu pour être bien plus grand que ca... si si !)_

Actuellement je corrige certains bugs du jeu (dont certains liés à l'AI) et j'affine mon moteur de jeu afin de le rendre moins indépendant du frame rate et pour rendre l'affichage du jeu plus fluide. De quoi réjouir ceux qui n'ont pas un très gros ordinateur  :;): . 

Pour conclure, une démo du jeu est prévue, en version alpha. Néanmoins nous sommes bien loin de publier une version jouable pour le public... sauf si vous voulez perdre des yeux et des doigts  :;): . Je miserai sa sortie dans 6 semaines environ (pour les plus optimises, dans 4 semaines), le temps de corriger les derniers problèmes, d'implémenter le reste du contenu, et d'ajouter les sons et les images au jeu  ::): .


A très bientôt!

----------


## Sahnvour

Woh pitain ça claque ! Joli boulot sur les graphismes et hâte de voir en action.

----------


## Poussin Joyeux

J'aime bien ce style graphique!
Mais donc, tout ce décor est en fait composé de petits blocs qui seront tous destructibles??? 
Ou bien tout sera destructible pixel par pixel? (pour le canapé, ça me semble compliqué de le représenter en différents blocs destructibles par exemple).

----------


## Louck

Pour être franc, "tous" ne sera pas destructible, pour des raisons de gameplay et technique (je n'ai pas un moteur très costaud pour la détection des collisions x)).
Mais surtout pour des raisons de gameplay: Tout détruire c'est fun, mais encore faut-il pouvoir accéder à l'objectif du niveau quand il n'y aura plus de plateforme. De plus, le joueur ne laissera aucune chance à l'AI d'agir s'il détruit tout le terrain, sans bouger de sa place.

Enfin dans la vidéo, tous les bloques se cassent instantanément. Ils seront beaucoup plus résistant dans la version finale (mais toujours aussi fragile).


Néanmoins je ferais en sorte de rendre destructible un maximum de bloque, sans rendre le gameplay injouable, pas intéressant, ou trop facile.
Certains éléments de décor (dont le canapé) ne sont que des décors de fond. Mais l'idée de les détruire aussi est pas mal. A voir plus tard  :;): .



Pour les prochaines semaines, je vais commencer à implémenter les sprites réalisés par le graphiste. Et probablement du son. Suite à cela, j'aurais une meilleure visibilité sur la date de sortie de la démo alpha du jeu  :;): .

----------


## Poussin Joyeux

Ok, c'est vrai que si on détruit tout et que tout le monde se retrouve sur le sol, ça perd son intérêt  ::P: 

Bon courage en tout cas et amuse toi bien à développer tout ça! 
C'est un jeu que je vais continuer de suivre attentivement (et qui progresse avec un bon rythme régulier apparemment!)  ::):

----------


## plantmann

J'ai une question de débutant en programmation de jeu vidéo (mais pas en programmation tout court, juste en jeu vidéo): comment tu "stock" tes niveaux? un fichier? en texte simple? ou "crypté" genre binaire/hexa/autre? et comment tu le lis/désérialise pour obtenir ton niveau en mémoire?

Je débute totalement en programmation de jeu (en C#/XNA via les tutos de LFS, j'ai juste fait la saison 1 pour l'instant, la réponse est peut-être dans la saison 2?) du coup pour le moment mes "essai" sont en dur, genre "si on en est au pixel 280 du scroling horizontal, afficher l'obstacle 22 et la vagues d'ennemis 35" (pour un jeu genre shmup), mais j'ai bien conscience que c'est tout pourri comme stratégie...

Question annexe: le choix du java, y a des raisons autres que "c'est un langage que je maitrise bien"?

----------


## deathdigger

Tu peux stocker tes niveaux dans un fichier xml (que tu cryptes si tu veux). Le côté sympa, c'est que c'est simple à faire et que tu peux faire un éditeur de niveau sans te prendre la tête  ::):

----------


## Louck

> comment tu "stock" tes niveaux? un fichier? en texte simple? ou "crypté" genre binaire/hexa/autre? et comment tu le lis/désérialise pour obtenir ton niveau en mémoire?


J'ai commencé à écrire un gros pavé, mais Chrome a décidé de tout planter  ::(: . Du coup je te fais une version simple.

J'ai deux fichiers: Un fichier ".map" qui contient les données graphiques du jeu (= le terrain du jeu, ses tiles, leurs positions, leurs configurations, etc...), et un fichier ".level" qui contient toutes les informations relatives au niveau du jeu (la position de départ du joueur, l'objective, la position des ennemis, leurs états, etc etc...). A partir du fichier .level, il est possible de connaitre le fichier .map à charger.

Le fichier .map est généré par un éditeur de terrain (totalement amateur mais open-source, je ne le recommande que pour son côté open-source  ::P: ), au format txt lisible.
Le fichier .level est un fichier xml que j'ai créé moi-même. Le jeu charge le niveau à travers ce fichier.


Pour lire/sauvegarder/serializer, j'utilise ca:
http://xstream.codehaus.org/
Une lib java que je recommande. C'est très simple à utiliser, il est possible de personnaliser le fichier xml généré comme nous le voulons, c'est juste génial.

Enfin, les fichiers sont lisibles, non cryptés. Le jeu ne sera pas commercialisé, ce n'est pas un jeu "pro", et ses ressources et codes seront libres d'accès. Il n'y a pas de grand intérêt de crypter tout ca.

J'espère avoir répondu à ta question. Si tu as besoin de plus de détails, n'hésite pas  ::): .





> "si on en est au pixel 280 du scroling horizontal, afficher l'obstacle 22 et la vagues d'ennemis 35" (pour un jeu genre shmup), mais j'ai bien conscience que c'est tout pourri comme stratégie...


Pas forcement pourris. C'est peux être la condition "au pixel 280" qui n'est pas top, mais tout dépend de ce que tu veux faire.
Moi j'aurais pris une notion "d'étape". Une fois dépassée, le jeu chargera les données liés à cette étape (à l'étape 280, on enclenche la vague #35 et l'obstacle #22). C'est à toi de voir à quel moment une étape est dépassée (après la fin d'une vague ? Une étape par 100 pixels ? par 10 secondes ?)





> le choix du java, y a des raisons autres que "c'est un langage que je maitrise bien"?


Pour faire très bref:
- J'utilise le Java car c'est le langage que j'apprécie le mieux (sans être un pro-java).
- Il y a une grosse communauté et de multiples outils/aides/biblio qui tournent autour de ce langage.
- C'est très simple de faire du multi-plateforme (et pour publier un jeu via navigateur).

Le langage Java (comme pour le C#) a bien des lacunes au niveau des performances (par rapport au C et au C++) pour divers raisons. Mais il y a des compensations non négligeables (et puis bon, nous n'avons plus des Pentium II dans nos bécanes).


Par contre, je ne dirais pas que je vais continuer à coder en Java pour mes prochains projets. Le LUA semble prometteur.

----------


## devn

> J
> J'ai deux fichiers: Un fichier ".map" qui contient les données graphiques du jeu (= le terrain du jeu, ses tiles, leurs positions, leurs configurations, etc...), et un fichier ".level" qui contient toutes les informations relatives au niveau du jeu (la position de départ du joueur, l'objective, la position des ennemis, leurs états, etc etc...). A partir du fichier .level, il est possible de connaitre le fichier .map à charger.


Quel est cet éditeur?

Moi j'utilise http://www.mapeditor.org/ pour mon jeu, mais je n'en suis pas entièrement satisfait...

----------


## Patate

Je pense que c'est un format à lui, un truc perso  ::):

----------


## Louck

C'est ca  ::): . C'est quelque chose de complètement perso.

D'ailleurs j'en ai fait grand user hier pour réaliser le premier niveau du jeu... Et je vais sûrement changer d'éditeur  ::ninja:: . (sûrement pour celui que tu proposes devn).

----------


## edenwars

Il me plait aussi ce projet.


Je vais le suivre de près.

----------


## Louck

*Update 3 (11/08/13)*
Pour cette troisième mise à jour, j'ai fait un peu de déco dans le jeu... d'un point de vue technique.


Du côté des graphismes, j'ai réussi à faire animer nos protagonistes, avec les sprites de notre graphiste Uubu. Ils peuvent marcher, courir, sauter, tirer, avoir un regard sournois... La base des bases!
Il manque encore quelques animations et des émoticônes pour rendre le tout très fluide et bien animé  ::): .

Pour animer tout ce beau monde, je ne voulais pas mélanger le code du gameplay avec le code d'animation. Je voulais rendre la chose totalement indépendante, afin de personnaliser et de maintenir le code avec plus de facilité. La deuxième chose que je souhaitais, c'est d'éviter de gros copier coller de codes  ::): .
La solution que j'ai choisie est de réutiliser la technique mise en place pour l'AI: les Behavior Trees (ou un "arbre de comportement")


Le BT (Behavior Trees) utilisé pour mon jeu est légèrement différente. Pour faire simple, mon BT est un arbre constitué de trois types de nœuds:
Un nœud *Sélection*: Celui qui liste les nœuds fils.Un nœud *Condition*: Si la condition du nœud est respecté (exemple: HP du joueur > 0), alors parcourir sa branche. Sinon, passer au noeud (frêre) suivant.Une feuille *Action*: Contient une méthode à exécuter (par une entité). Optionnellement, peut contenir une branche annexe à parcourir (en plus).

Le BT possède une fonction "select": L'arbre sera parcouru de gauche à droite, jusqu'à tomber sur une feuille (ou jusqu'à arriver au bout d'une branche). La fonction retourne la liste des feuilles "Action" qu'elle a rencontrée sur son chemin.
L'entité pourra alors exécuter les méthodes stockées dans ces feuilles.


Pour l'AI, le BT permet de réaliser un système logique et réactif.
Sinon, c'est un arbre qui est simple à maintenir, et qui évite les copier/coller de codes  ::): .

J'ai repris ce système pour réaliser les animations du jeu. Et dans un même temps, j'ai fait évoluer le moteur de mon jeu.




Du côté du son, Bigju m'a envoyé ses premiers travaux et m'a proposé l'idée de rendre la musique dynamique: Calme quand le joueur n'est pas repéré, et rapide quand il se fait attaquer.

J'ai mis en place son idée. J'ai eu néanmoins la malchance de tomber sur une petite bibliothèque qui ne pouvait streamer qu'une seule musique à la fois... :/. J'ai du revoir le code de l'auteur pour faire marcher plusieurs musiques.


Pour finir, j'ai finis de concevoir le tout premier niveau du jeu:


La maison est un peu vide pour l'instant et le niveau est prévu pour être facile.
J'ai pris beaucoup de temps pour réaliser ce niveau, pour faute d'un éditeur de map pas trop performant (je me répète ?). Je vais sûrement changer pour un nouveau éditeur pour les prochains niveaux.


Pour les prochaines semaines, je vais m'attaquer à l'interface du jeu (qui sera simple) et aux bruitages sonores (pew pew pew !). Suite à cela, il y aura une série de débogage.

Et enfin, je publie une démo du jeu  ::): . Mais il faudra patienter encore un peu.

----------


## MrShibby

Ça commence à vraiment prendre forme, c'est très sympa.

----------


## SeanRon

carton rouge pour les nuages. 
je pense pas qu'on les verra beaucoup, donc si tu veux pas t'embêter, un simple ciel dégradé suffira, un peu comme tu l'as fait au niveau des immeubles, par exmple.

Pour le reste c'est super, vivement la suite ^^

----------


## MrShibby

C'est vrai qu'en y regardant ça fait tapisserie de chambre d'enfant. Les enlever totalement je sais pas trop mais peut être qu'en essayant de les espacer faire un pattern un peu plus random ça donnerai mieux?

----------


## Louck

En effet, je l'avais un peu remarqué en dessinant la map  ::P: .
Dans le jeu, nous le remarquons moins vu que la caméra est de plus petite portée, et est beaucoup plus ciblé sur le protagoniste.

Je vais voir ca avec Uubu  :;): .


Si tout se passe bien, je ferais une nouvelle vidéo du jeu avec les derniers ajouts.

----------


## Uubu

Merci pour vos retours sur les graphismes, on va modifier ça.
Hésitez pas à critiquer les visuels, je suis preneur.  ::):

----------


## SeanRon

Un retour ? bah, les tiles et les sprites sont stylés. Et la carte affichée plus haut donne plutôt envie.

les escaliers font très massifs, peut-être trop. Est-ce qu'il ya une raison particulière ou c'est juste un choix arbitraire ?
J'espère aussi plus de sprites pour le mobilier destructible. Des canapés, des distributeurs de boissons, etc etc ....
De petits effets de lumières pourraient rajouter de la profondeur et de l'ambiance. Des spots, des néons clignotants, des enseignes, et d'autres trucs dans le genre.
bon courage et vivement la suite ^^

----------


## Louck

> les escaliers font très massifs, peut-être trop. Est-ce qu'il ya une raison particulière ou c'est juste un choix arbitraire ?


C'est mon choix "arbitraire" pour dire  ::): .
Techniquement, c'est surtout pour permettre à l'AI de ne pas trop jouer à l'idiot quand il doit monter les escaliers et échelles. C'est une "marge de manœuvre" si on veut.

Néanmoins je peux essayer de réduire la taille des escaliers. A voir  ::): .





> J'espère aussi plus de sprites pour le mobilier destructible. Des canapés, des distributeurs de boissons, etc etc ....
> De petits effets de lumières pourraient rajouter de la profondeur et de l'ambiance. Des spots, des néons clignotants, des enseignes, et d'autres trucs dans le genre.


Pour le mobilier destructible, c'est prévu mais pas prioritaire. Ca sera surtout lors de la période de "peaufinement"  :;): .

Par contre pour les lumières, mon moteur de jeu n'est pas encore capable de "bien" les gérer. Je peux appliquer quelques effets, mais pas quelque chose d'énormes malheureusement.
Je ne dis pas que les lumières sont difficiles à gérer sous OpenGL, mais pour arriver à un résultat convaincant et qui ne plombe pas les performances du jeu, il y a du travail  ::): .


Du coup je ne prévois pas de super effets de lumières et d'ombres pour ce jeu. Peux-être dans un projet futur, mais pas maintenant.

----------


## Poussin Joyeux

Une nouvelle vidéo! On veut une nouvelle vidéo!  ::P:

----------


## Louck

Suite à un long week-end, j'ai du faire une petite pause sur le développement du jeu.
Mais je reste toujours motivé, et je bosse à fond pour mettre en place les bruitages sonores  ::): .


(Interface non finalisé. Mais l'idée est là)


A la fin de cette semaine, la vidéo est toujours prévu. Mais ca sera une très courte vidéo de gameplay du jeu (un peu comme les premières vidéos du prototype... mais en un peu plus jolie  ::P: ). Etant encore en version alpha, je ne peux pas montrer de nombreuses choses, malheureusement..
Ensuite, j'annoncerai une date pour la démo du jeu (indice: ce n'est pas pour maintenant  ::P: ).

----------


## SeanRon

quand je pense qu'ils y en a qui font des kickstarters bien moins aboutis déjà.
Tu veux pas nous faire un kickstarter ? pour avoir la motivation (financière) de faire un jeu complet, avec divers niveaux, des boss, des armes à upgrades etc etc?
Si le prix reste correct, je suis sur que pas mal de canards soutiendront un projet indie issu de la communauté.

----------


## plantmann

Tiens, encore une question pour toi: à part HATU et ce projet, ça fait combien de temps que tu développes des jeux? Si ce sont tes 2 premiers, je suis wouaouh! (bon, je le suis quoi qu'il arrive)

----------


## Louck

> quand je pense qu'ils y en a qui font des kickstarters bien moins aboutis déjà.
> Tu veux pas nous faire un kickstarter ? pour avoir la motivation (financière) de faire un jeu complet, avec divers niveaux, des boss, des armes à upgrades etc etc?
> Si le prix reste correct, je suis sur que pas mal de canards soutiendront un projet indie issu de la communauté.


Merci  ::): .
Cependant mon but actuel n'est pas de vendre un jeu (même si je le voudrais).
En réalité, j'ai un très gros objectif, qui peut se conclure sur un jeu qui peut être commercialisé.


Actuellement, je cherche à développer un certain nombre de jeux. Pour chacun de ces jeux, je conçois un gameplay différent (simple ou complexe) et je fais évoluer mon moteur de jeu maison. Je cherche à me faire une petite expérience dans le développement des jeux, je tente des choses, j'essaye de mettre en place des trucs... Tout en essayant de faire un jeu pas trop dégueulasse.

Pour résumer ma méthode de travail: avant que je commence à développer un nouveau jeu, je définis un thème et un gameplay qui me plaisent, et je planifie le délai nécessaire pour réaliser ce jeu (en me basant que sur mon temps libre). Quand le délai n'est pas trop long, alors je commence à réaliser le prototype du jeu  ::): .

Une des contraintes pour ces projets est le délai. Je cherche à être dynamique et à m'expérimenter dans de nombreux domaines et genres, sur le court terme. J'ai plein de petites idées que j'aimerais tenter (un roguelike dans le monde du hacking, un hotline-miami-like avec une gestion de bande, un simulateur d'enquête, etc etc...).
Face à cette contrainte, je dois me focaliser sur le core et le gameplay du jeu. Du coup: le contenu, les graphismes et les sons du jeu seront vu au minimum (il ne faut pas s'attendre à un gameplay de 10h). 

Pour ce jeu de plateforme, la situation est assez exceptionnelle: A la base, je voulais faire du minimalisme avec des cubes et des sons 8bits. Si Uubu ne c'est pas proposé avec son super travail, le jeu ne serait pas aussi beau que maintenant  ::P: .


Globalement, je prévois de réaliser une dizaine de jeux (voir une vingtaine selon l'envie) de cette façon. Quand un de ces jeux est finis et est débogué, je passe à un autre.
Quand j'aurais finis avec mes expériences, alors je développerai un vrai et gros jeu  ::): . C'est mon objectif.





> Tiens, encore une question pour toi: à part HATU et ce projet, ça fait combien de temps que tu développes des jeux? Si ce sont tes 2 premiers, je suis wouaouh! (bon, je le suis quoi qu'il arrive)


Avant que je réalise HATU, j'ai déjà développé des petits trucs pas finis sous de nombreux logiciels (dont RPG Maker).

Depuis que je me suis mis à coder mes jeux, j'ai travaillé sur 3 projets:
HATU, un shoot'em up simple dans une arène.Un jeu de dauphin pour le concours "Make Something Horrible" de CPC.Un Tower-Defense qui se joue avec des cartes, dans un style cyberpunk. Le gameplay se réside sur la constitution du deck, composé de cartes "tours", "armes", et "cyber-action". Le joueur peut poser une carte sur le terrain afin de l'activer (pour créer une tour, pour s'équiper d'une arme, ou pour enclencher un événement/action). Il peut aussi fusionner les cartes entre-elles afin de faire évoluer la qualité/niveau de ces cartes et pour produire de jolies effets (exemple: une tour + lance-flamme: une tour qui crache du feu). Malheureusement j'ai du stopper le développement de ce projet pour cause d'une mauvaise gestion et d'un mauvais planning de ma part.. et suite à de nombreuses pauses :/. Je pense recommencer le développement de ce jeu, mais pas pour l'instant.

Et aujourd'hui, j'ai ce jeu de plateforme  ::): .


EDIT: Je ne cherche pas non plus à abandonner mes projets du jour au lendemain, après que je les ai finis. Je prend un moment avant de passer à autre chose  ::): .

----------


## Poussin Joyeux

C'est une bonne philosophie ça!

Et puis quand ton "vrai" jeu sera un succès, tu sortiras une compilation sur Steam avec tous les petits jeux que tu auras fait avant (comme le "Basement" des créateurs de Super Meat Boy  :;): )

----------


## Icebird

Je suis intéressé de savoir comment tu gère/vas gérer les animations des personnages.
Je suis en train de réfléchir à ce qu'il faut pour faire un side-scroller, et notamment le moteur d'animation.
Je part complètement de zéro, mais je souhaite surtout créer un moteur flexible et moddable. Pour l'instant, j'envisage un moteur capable de traiter un fichier entity contenant la liste de toutes les "actions" possibles, et les conditions pour chaque action.
Je recolle ici une partie de mon googleDoc où je suis en train de mettre çà en forme:

Side-Scroller Animation Engine

*Entity*: Contient une Sheet et plusieurs Actions
*Sheet*: image contenant toutes les frames possibles
*Actions*:
ActionName: nom de l'actionSpriteID: Identifiant de sprite dans le cas où l’entity est composée de plusieurs sprites.Frames: tableau listant la position dans la sheet de chaque frame de l’action.Offset: tableau listant l’offset par rapport au centre du perso à appliquer à chaque frame.StartCondition: quand est-ce que l’action se déclenche (si rien, il faut un appel direct à l’action pour la déclencher)StepCondition: quand passe-t-on à la frame suivanteBreakCondition: quand est-ce que on stop une boucle (si rien, on stop dès que la StartCondition n’est plus valable)Loop: action faite une seule fois, ou en boucle tant que la StartCondition est vraiePriority: Unique pour une SpriteID donnée, détermine quelle action prend effet si plusieurs StartCondition sont vraies.

Exemple:
IdleAction: Animation du perso quand il ne fait rien. Une frame toutes les 200 millisecondes
SpriteID: 1
Frames: tableau de 8 rectangles
Offset: tableau de 8 vector2d
StartCondition: Velocity.X == 0 && Velocity.Y == 0
StepCondition: TimeLapsed == 200
Loop: true
Priority: 0

WalkAction: Animation de marche. Une frame tous les 20 pixels parcourus
SpriteID: 1
Frames: tableau de 8 rectangles
Offset: tableau de 8 vector2d
StartCondition: Velocity.X>0
StepCondition: Distance.X>20
Loop: true
Priority:10

RunAction: Animation de course. Une frame tous les 30 pixels parcourus
SpriteID: 1
Frames: tableau de 8 rectangles
Offset: tableau de 8 vector2d
StartCondition: Velocity.X>30% MaxVelocity && Acceleration.X>0
StepCondition: Distance.X>30
Loop: true
Priority:11

BrakeAction: Animation du personnage qui freine en glissant sur le sol avec un petit nuage de poussière. Une frame tous les 10 pixels parcourus. Ne se déclenche que quand le perso arrête d’accélérer après avoir pris une vitesse de course, et ne s’arrête que quand la vitesse retombe à zero, ou qu’une autre animation prend le dessus (priorité basse).
SpriteID: 1
Frames: tableau de 2 rectangles
Offset: tableau de 2 vector2d
StartCondition: Velocity.X>30% MaxVelocity && Acceleration.X<=0
StepCondition:  Distance.X>10
BreakCondition: Velocity.X==0
Loop: true
Priority:1

PunchAction: Animation de coup de poing.
SpriteID: 1
Frames: tableau de 4 rectangles
Offset: tableau de 4 vector2d
StepCondition:  TimeLapsed == 50
Loop: false
Priority:20


Bon, peut-être que je suis complétement à coté de la plaque, ou que çà existe déjà et que c'est facilement trouvable/récupérable quelque part.
Mais dans tous les cas l'exercice me plait.
Donc, si tu a le temps, si tu pouvais m'expliquer en quelque mot comment tu envisage la chose?

----------


## devn

> Je suis en train de réfléchir à ce qu'il faut pour faire un side-scroller, et notamment le moteur d'animation.


Si tu ne veux pas te prendre la tête avec les animations et les spritesheets, j'utilise un format maison avec un éditeur graphique qui fait tout pour moi: http://devnewton.bci.im/projects/nanim

Il y a un exemple en java2d dans le code et tu peux consulter le code de mon jeu pour de l'opengl.

----------


## Tomaka17

> Je suis en train de réfléchir à ce qu'il faut pour faire un side-scroller, et notamment le moteur d'animation.


Ou sinon tu utilises Spine comme moi

----------


## Icebird

Je pense que je me suis mal exprimé.
Je ne cherche pas à créer moi-même des animations de toute pièce (je ne suis pas assez doué artistiquement pour çà).
J'ai récupéré des SpritesSheet contenant des séries d'animations, et je souhaite que mon programme les exploite correctement.
Donc c'est plus la gestion des différentes animations qui me pose problème. Quand faire tourner l'animation de marche? Et le faire à une vitesse adaptée à la vitesse actuelle de marche du perso. Enchainer naturellement sur l'animation de course. Et utiliser une petite animation où le perso glisse en freinant quand il veut s'arrêter en allant au-delà d'une certaine vitesse.
J'ai commencé à coder çà en dur, mais je trouve que çà fait beaucoup de redondances et des if en pagaille, et je me demandais si je ne pouvais pas créer un système qui gère çà différemment. Des fichiers contenant la liste des actions possibles et leur conditions, fourni à un moteur qui se charge de trier çà et de déterminer quelle frame de quelle action doit être affiché.

Bon, je suis en train de dérailler le sujet d'origine, désolé. En tout cas, voilà un exemple de ce que j’obtiens pour le moment (c'est ultra-ultra basique, je sais).
https://www.dropbox.com/s/yxc5v7gers...rojet%20-1.zip

----------


## devn

> Je pense que je me suis mal exprimé.
> Je ne cherche pas à créer moi-même des animations de toute pièce (je ne suis pas assez doué artistiquement pour çà).
> J'ai récupéré des SpritesSheet contenant des séries d'animations, et je souhaite que mon programme les exploite correctement.
> Donc c'est plus la gestion des différentes animations qui me pose problème. Quand faire tourner l'animation de marche? Et le faire à une vitesse adaptée à la vitesse actuelle de marche du perso. Enchainer naturellement sur l'animation de course. Et utiliser une petite animation où le perso glisse en freinant quand il veut s'arrêter en allant au-delà d'une certaine vitesse.
> J'ai commencé à coder çà en dur, mais je trouve que çà fait beaucoup de redondances et des if en pagaille, et je me demandais si je ne pouvais pas créer un système qui gère çà différemment. Des fichiers contenant la liste des actions possibles et leur conditions, fourni à un moteur qui se charge de trier çà et de déterminer quelle frame de quelle action doit être affiché.


Tu pourrais gérer ça avec des machines à états finis.

----------


## Louck

J'ai déjà une réponse à ta question, dans un précédent post: J'utilise les Tree Behaviors  ::): .

De façon plus détaillé, j'ai un objet "Animation" qui contient une liste de sprites et les règles d'exécutions de cette animation (si c'est une boucle, délai avant de passer au sprite suivant, etc etc...). 
J'ai aussi un objet "Animator" ( :Cigare: ) qui stock et gère toutes les animations d'une entité. J'ai codé une fonction dans cet Animator pour qu'il exécute une (ou plusieurs) animation.

Ensuite j'ai une classe singleton qui a deux boulots à réaliser pour chaque protagoniste du jeu: 
 - Générer l'animator (et les animations et ses sprites) pour un protagoniste donné.
 - Générer un TB (Tree Behaviors) pour ce protagoniste.

Toutes les 100ms (arbitraire), je parcours ce TB afin de déterminer le ou les animations à exécuter.
Globalement, j'ai des conditions très simples du genre: "Est-ce que l'entité regarde à gauche?", "Est-ce qu'il marche ou il court ?", "Est-il dans l'air ?",  etc etc...
Et au bout de chacune de ces conditions, il y a soit d'autres conditions... soit une action: Exécuter la nouvelle animation  ::): . Je vérifie au préalable si cette animation n'est pas déjà en cours d'exécution (sinon ca serait très con);

Pour me simplifier la vie, j'ai aussi des actions un peu bâtardes qui récupèrent les sprites d'une animation et lui appliquent un certain effet. Par exemple pour la condition "Est-ce que l'entité regarde à gauche?", j'applique un effet de miroir sur les sprites de la prochaine animation.


Cependant, ce n'est pas "la" meilleure solution, imho. Les TB aident beaucoup pour éviter les invasions de "IF", mais ca ne peut pas gérer toutes les animations possibles...
Par exemple: Il est difficile de déterminer la condition a tester dans le cas où le joueur tire à l'instant T. Dans ce cas, j'ai du invoquer l'animation du tir dans le code de l'arme (malheureusement).


Je ne sais pas si je suis bien clair. N'hésites pas à me poser des questions  ::): .

----------


## Uubu

::):

----------


## Patate

Sympa  ::):  Ca devient bizarre au bout de quelques secondes le bras qui ne bouge pas vu que l'image est fixe  ::P:

----------


## Uubu

Attention tout ceci est une "pré-alpha-version-prototypeuse" !  ::ninja::

----------


## Icebird

> J'ai déjà une réponse à ta question, dans un précédent post: J'utilise les Tree Behaviors .
> 
> De façon plus détaillé, j'ai un objet "Animation" qui contient une liste de sprites et les règles d'exécutions de cette animation (si c'est une boucle, délai avant de passer au sprite suivant, etc etc...). 
> J'ai aussi un objet "Animator" () qui stock et gère toutes les animations d'une entité. J'ai codé une fonction dans cet Animator pour qu'il exécute une (ou plusieurs) animation.
> 
> Ensuite j'ai une classe singleton qui a deux boulots à réaliser pour chaque protagoniste du jeu: 
>  - Générer l'animator (et les animations et ses sprites) pour un protagoniste donné.
>  - Générer un TB (Tree Behaviors) pour ce protagoniste.
> 
> ...


Ta réponse me conviens très bien, c'est typiquement le genre de truc que j'essayais de concevoir.
Du coup je continue à réfléchir à mon truc, merci pour les infos.

----------


## Louck

*Update 4 (25/08/13)*
 

Yeah  ::lol:: .
Je n'ai pas grand chose à dire pour ces deux semaines. A l'exception de ces deux vidéos  ::): .
J'ai beaucoup bossé ces semaines pour intégrer les sons dans le jeu (bruit de pas, tirs, etc...). Je n'ai pas implémenté tous les sons encore, mais il y a de quoi faire pour la démo.
J'ai aussi retouché à l'interface et à la caméra du jeu... ainsi qu'une petite séance de débogage  ::): .

Les deux prochaines semaines risquent d'être chargé pour ma part (pour divers raisons). Je ne promet pas de grosses nouveautés du coup :s.


Par contre, je prévois la démo pour le *7 octobre*, w00t!.

L'attente risque d'être encore longue malheureusement (et désolé pour cela). Mais c'est le temps nécessaire pour mettre en place ce qu'il faut pour la démo (animations, victoire/game over..) ainsi que de corriger les bugs majeurs... sur mon temps libre.
Je tenterai tout de même de respecter le délai  :;): .

----------


## Vader_666

C'est vraiment super sympa !
Félicitation à tous !  :;):

----------


## Louck

Merci  ::): .

Au vue de la démo, nous pouvons remarquer que la durée du niveau est d'une minute en moyenne.


Il est à préciser que ce niveau est le tout premier niveau du jeu, et le plus simple. A partir du niveau 3, la difficulté du jeu sera relevé eà la hausse, offrant plus d'obstacles et bien plus d'ennemis (ainsi qu'un plus grand terrain de jeu)  ::): . 



Et même s'il n'y aura que 10 niveaux dans ce jeu, il sera possible de les rejouer dans un niveau de difficulté encore plus élevé (ou dans un autre mode de jeu.. mais chut  :;): ). 

Enfin, à la fin d'une partie, le jeu note le joueur et lui offre des médailles selon la façon dont il a joué cette partie (tous les ennemis sont morts, pas repéré une seule fois, niveau terminé rapidement, etc...).

Si le temps le permet, je mettrai en place des niveaux/modes bonus pour les joueurs qui auront récupéré un certain nombre de médailles  :;): .

----------


## Uubu

Merci ! Content que ça vous plaise.  ::lol:: 

  ::siffle::

----------


## Louck

Je fais actuellement une petite pause sur le développement du jeu, pour des raisons IRL (et pour tester un nouveau moteur de jeu... pour un prochain jeu  ::P: ). Je reprendrais le code la semaine prochaine  ::): .

La date de la démo n'est pas repoussée.

----------


## Patate

En tout cas, joli boulot  ::):

----------


## Logan

Mais .. mais .. je découvre cette perle que maintenant moi !  ::o: 

Le concept m'a l'air génial, les graphs sont tout meugnons, la musique des vidéos est terrible.

Et connaissant notre ami Luck et son légendaire skill du travail bien fait (Forsaken sur NS2 :bave ), je n'ai qu'une envie, c'est de tâter çà moi-même. Vivement la démo !

----------


## Louck

*Update 5 (8/09/13)*
Semaine très occupé de mon côté IRL. Je n'ai malheureusement pas pu avancer de beaucoup durant cette 5ème session  ::|: .
Tout de même, j'ai pu prendre le temps corriger quelques bugs du jeu et ajouter les derniers sprites réalisés par notre cher Uubu.




Comme indiqué plus haut, j'ai fait des recherches pour un nouveau moteur de jeu (vu que mon moteur de jeu commence à devenir une usine à vapeur qui tente de réinventer la roue). Les recherches sont concluants.. mais ca sera pour un prochain jeu  :;): .


Il y aura un léger retard sur le jeu, mais je vais tenter de tenir le délai. Ce retard n'impact pas la date de sortie de la démo (dans presque un mois!).
Pour les deux prochaines semaines, ca va être une grosse session de déboguage, pour une démo propre et jouable  ::): .

En attendant, si vous avez des idées pour le jeu, je reste ouvert aux propositions. Même si le planning et la conception du jeu sont fixés, je prévois pas mal de petites choses en plus afin de rendre le jeu plus intéressant  :;): .

A bientôt!

----------


## SeanRon

> En attendant, si vous avez des idées pour le jeu, je reste ouvert aux propositions.


ok. assies-toi.

je propose un éditeur de niveaux.  ::ninja::  

avec un mini-site communautaire pour partager ses créations et tester/noter celles des autres  ::lol::

----------


## Trehan

Hello !

Très sympathique comme petit jeu ! Et vraiment intéressant de voir son évolution.




> Les recherches sont concluants.. mais ca sera pour un prochain jeu


Par pure curiosité tu à choisi quel moteur pour remplacer le tien ? J'ai fait pas mal de recherches de ce coté là pour un petit projet et j'avais à chaque fois l'impression de tomber sur des usines à gaz...

----------


## Louck

> je propose un éditeur de niveaux.  
> avec un mini-site communautaire pour partager ses créations et tester/noter celles des autres




Plus précisément, je vais changer d'éditeur de niveau pour quelque chose de plus gros et plus simple d'utilisation. N'importe qui pourra l'utiliser  ::): .
Je ne vais pas promettre un éditeur de niveau type pour Punxel Agent, qui sera pur user-friendly. Cela prendrai beaucoup de temps et je préfère me focaliser sur le jeu que sur ses outils (pour l'instant).
Cependant j'indiquerai les logiciels que j'ai utilisé pour réaliser le niveau, les tilesets que j'ai utilisé, des exemples, des tutos si nécessaire, et rouler jeunesse  ::): .

En bref, c'est possible (il manque juste une interface à réaliser pour charger les niveaux customs). Mais la réalisation d'un niveau du jeu ne sera pas user-friendly.



Je répond à la question du moteur plus tard, avec des détails  :;):  (et quand les sites des API remarcheront, grrr).

----------


## SeanRon

peu-être que Tiles Map Editor conviendra. Regarde le système de calques et d'export, qui sont vraiment pratiques, comparé a d'autres editeurs du même genre.

http://www.mapeditor.org/

----------


## Louck

> Par pure curiosité tu à choisi quel moteur pour remplacer le tien ?


Avant de répondre, il faut comprendre mon contexte: Mon moteur de jeu est fait maison à partir de l'API LWJGL (http://www.lwjgl.org). Toute la gestion des entités, le moteur physique, les tests de collisions, l'affichage des pixels et le son, c'est de moi.
Mon moteur doit bien avoir 3 ans et je continue encore de le faire évoluer. Mais depuis un moment, je suis à une étape où je ne fais que des optimisations et des modifications de plus en plus techniques. J'évolue "un peu trop" mon moteur de jeu, ce dernier se transforme en usine à gaz, et les phases de refactoring deviennent de plus en plus fréquentes.

Aujourd'hui, je suis un peu fatigué de réinventer la roue. Je veux repartir de 0, avec pour objectif de me focaliser plus sur le code du jeu (logique, règle du jeu, etc etc..) et de moins toucher au moteur. Les partie très techniques du moteur seront gérée par des API/bibliothèques dédiées.


Après plusieurs recherche, mon prochain moteur de jeu utilisera les solutions suivantes:
*LibGDX* (http://libgdx.badlogicgames.com): Une grosse bibliothèque dédié au développement de jeux en Java, multi-plateforme (HTML5, Android, Desktop), fonctionnant autour de LWJGL. Il gère toute la partie technique d'un moteur de jeu (affichage, sons...) et offre pas mal d'outils aux développeurs (SpriteBatcher, Box2D, TextureLoader, etc...). Néanmoins, il n'offre pas tout ce qui fait un moteur de jeu. Par exemple, il manque la gestion des entités...*Artemis* (http://gamadu.com/artemis): Un système d'entités à base de composants et de systèmes (dans le principe du DOD - Data Oriented Design). Ce framework est simple d'utilisation (sa conception est assez naïve, basique) et permet de mieux maintenir son code.*Box2D* (intégré dans LibGDX): Pour le moteur physique. C'est une API performant (si on sait bien le maîtriser  ::P: ) qui se chargera de la partie la plus chiante d'un moteur de jeu, avec le sourire.

J'ai fait quelques tests avec ces bibliothèques, et le résultat est assez concluant  ::): . Néanmoins, je vais devoir re-coder certaines choses (le système de map et de pathfinding, par exemple, l'AI, etc...).

A voir sur la longue si mes choix ne seront pas mauvaise  ::P: .





> peu-être que Tiles Map Editor conviendra.


C'est ce que j'ai prévu  :;): . Surtout qu'il est très simple pour charger les fichiers maps générés par cet outil. Ca va être facile à implémenter pour mon jeu.

----------


## devn

J'en suis arrivé aux mêmes conclusions pour les choix technos! Par contre pour box2d, je n'ai pas encore trouvé comment émulé un gameplay de plateformer "normal" (cad sans que le héro se déplace comme une savonnette).

----------


## Louck

Ah les joies de la physique  ::): .
Perso, je vérifie si le protagoniste ne se déplace pas ou s'il marche dans une autre direction. Dans ces cas, je "stabilise" la vélocité du protagoniste à grande vitesse (en lui appliquant une vélocité inverse), jusqu'à tomber à 0. C'est une sorte de friction, qui s'applique durant un dixième de seconde.
Ainsi, les protagonistes n'auront pas l'impression de s’arrêter net tel un mur, et ils ne glisseront pas sur 100m  ::): .


Si vous avez d'autres idées, je suis ouvert. J'en liste déjà trois  :;): .

----------


## devn

> Ah les joies de la physique .
> Perso, je vérifie si le protagoniste ne se déplace pas ou s'il marche dans une autre direction. Dans ces cas, je "stabilise" la vélocité du protagoniste à grande vitesse (en lui appliquant une vélocité inverse), jusqu'à tomber à 0. C'est une sorte de friction, qui s'applique durant un dixième de seconde.
> Ainsi, les protagonistes n'auront pas l'impression de s’arrêter net tel un mur, et ils ne glisseront pas sur 100m .


Ça doit bien marcher si tu es capable de détecter quand le protagoniste est au sol.

----------


## Louck

C'est assez facile de savoir si un protagoniste est en l'air ou au sol  :;): .


Deuxième niveau en cours de réalisation. Il y a encore beaucoup de choses à changer, mais le niveau ressemblera à ca  ::): .

Et je confirme l'édition de map pour le jeu  :;): .

----------


## devn

> C'est assez facile de savoir si un protagoniste est en l'air ou au sol .


Pas quand la gravité tourne!

----------


## Louck

Ah en effet, c'est un autre défit  ::P: .


*Update 6 (22/09/13)*

Déjà 3 mois de passé  ::o: . Et il reste encore du chemin à faire  ::): .

Durant ces deux semaines, j'ai essayé de récupérer le retard de mes précédentes sessions... en déboguant à fond le jeu.
Je suis assez content de mon travail: J'ai pu corriger un gros problème avec mon moteur physique/collision (les caisses traversées le décor...), optimisé le système de particules, et corriger mon système de pathfinding.
Et il n'y a plus de lignes noires  ::lol:: .


J'ai aussi travaillé sur une nouvelle "feature" pour le jeu... qui est la possibilité de *jouer sur des niveaux customs* (qui donc, ce n'est pas une idée de moi ?  ::P: ).
Techniquement, l'éditeur de map sera Tiled (http://www.mapeditor.org/). L'outil est très facile à comprendre et à utiliser. 
Le jeu sera accompagné des niveaux classiques, de maps "exemples" (avec les tilesets intégrées), ainsi que d'un tutorial qui explique la création de map pour le jeu Punxel Agent.

Je ne promet pas que la création de map sera très simple. Mais je fournirais les outils nécessaires afin d'en réaliser  :;): .



La démo est toujours prévu dans 2 semaines. Entre-temps, je corrige les derniers bugs possibles du jeu, je compile ce qu'il faut.. et rouler jeunesse!
La démo aura deux niveaux jouables. Et ses maps seront éditables sous Tiled  :;): .


A très bientôt!

----------


## yourykiki

Cool ! 

Juste par curiosité, t'as fait comment pour les lignes noires ? (s'il s'agit bien des lignes qui apparaissent de temps en temps entre 2 quads)

----------


## Louck

Le problème vient du Texture Filtering... et des variables flottants.
Sous OpenGL, tu as deux principaux filtres (en excluant les autres possibilités): GL_NEAREST et GL_LINEAR.

Le premier est le filtre "par défaut", qui ne lisse pas les contours (perte de détails en dézoom, aliasing quand on zoom), mais qui traite la texture très rapidement.
Le filtre GL_LINEAR essaye de lisser les textures (= anti-aliasing). Si je ne me trompe pas, ce filtre fait une sorte de moyenne des couleurs sur deux pixels aux alentours.


Néanmoins, ce genre de lissage passe difficilement sur certaines grosses textures, et j'utilise des variables de type flottants... qui sont réputées pour ne pas être précis.


Du coup, j'ai du mettre en place une petite bidouille: Je ne demande pas à "OpenGL" de dessiner l'intégralité de ma texture. J'ai réduit la largeur/hauteur des textures d'un pixel, afin d'appliquer une sorte de marge d'erreur (de 2%) pour les calculs flottants. La texture ne sera pas affiché parfaitement, mais les lignes noirs ne sont plus présents (et les images sont lissées!).


Il existe d'autres solutions sous OpenGL pour corriger ce problème. Mais là, c'est la faute de mon moteur maison.
Vivement que je passe à un vrai moteur, d'ailleurs  ::P: .

----------


## devn

Les lignes noires, ce n'est pas un coup de clamping? Normalement, les paramètres suivants devraient suffire à les enlever:

            GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL12.GL_CLAMP_TO_EDGE);
            GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL12.GL_CLAMP_TO_EDGE);

----------


## yourykiki

Je pense que c'est effectivement lié au clamping. J'ai rencontré le même problème mais je ne l'ai pas traité faute de solution propre. J'avais pas vu les GL_CLAMP_TO_EDGE qui me semble approprié !

Merci à vous 2 pour les infos.

----------


## Louck

C'est la solution classique (et que je conseille), mais qui ne marchait pas dans mon cas  ::P: .
Comme je le précise, je manipule des Float avec de nombreuses décimales. J'aurais pu utilisé des type Double, mais la lib OpenGL comprend surtout le Float.


Ma solution n'est pas non plus mauvaise pour mon jeu. Les textures ne sont pas saccadés malgré la faible perte en détail  ::): .
A savoir aussi, c'est que je ne vais plus utiliser mon moteur maison pour les prochaines jeux. Du coup je le formate spécifiquement pour Punxel Agent, sans gêne.


Sinon: Je prendrais le temps pour intégrer une interface pour modifier les commandes du jeu, pour la démo. J'essayerai de faire quelque chose de très simple.

----------


## Cuthalion

T'as pensé à désactiver le mip mapping sur tes textures pour éviter les "bleeding edges" ?  Normalement si tu désactives le filtering et le mip mapping tu devrais pas avoir de soucis.

Un petit lien qui peut t'être utile : http://gregs-blog.com/2008/01/17/ope...ers-explained/

----------


## Louck

J'irais jeter un oeil  ::): . Ma contrainte est que j'applique un zoome sur la scène (glScale pour tout), et que j'ai besoin d'un minimum d'anti-aliasing, au risque de se péter la rétine avec de gros pixels qui sautent (et qui ne vont pas du tout avec le style graphique du jeu).

----------


## Louck

La démo est prévu pour ce week-end. Nous sommes entrain de faire les derniers tests et corrections afin de publier une version propre  ::): .

Suite à cela, il y aura un gros travail sur la réalisation des niveaux du jeu (et probablement une revue de l'interface). J'ai sous-estimé le travail pour réaliser ces niveaux. Du coup si je souhaite publier le jeu pour Décembre, je ne promet pas que le jeu contiendra au moins 10 niveaux avec des boss  ::|: .

Pour palier ce manque, je travail un peu plus sur l'interface des maps customs. Si la démo fonctionne bien et que des joueurs sont intéressés pour réaliser des maps avant la version finale, je peux fournir les outils et les tutos nécessaires  ::): .

----------


## yourykiki

Il y a quelques années, lorsque j'ai développé Red Isle, j'ai passé autant de temps à créer le moteur qu'à faire les niveaux du premier "environnement" (premier paquet de tuile). A l'époque je n'aurais jamais parié sur une telle répartition ! Mais au final, si on veut des niveaux au challenge intéressant, ça prend du temps. J'avais aussi été obligé d'abandonner 2 ou 3 niveaux parce que c'était pas super cohérent. C'est pour ça que depuis, je lorgne pas mal sur la génération de contenu (mais ce sujet est un puits sans fond !)

Tout ça pour dire que ce n'est pas trop étonnant. J'ai vu que tiled offre la possibilité de d'automatiser certaines taches du mapping, c'est compliqué à mettre en place ou ca ne fait finalement pas gagner tant de temps que ca ?

----------


## Louck

En effet.
J'ai l'avantage de planifier et d'estimer mon temps de travail. Vu que c'est mon quatrième projet, je ne tombe pas encore juste et je sous-estime trop ("quoi, l'ajout d'un système d'animation optimisé ? bon allez, 2h de dev!"  ::P: ). Il y a des erreurs, mais je progresse de cette façon  ::): .

Je sens que ca va être très fun quand je vais repartir de 0 pour le prochain jeu  ::P: .





> Tout ça pour dire que ce n'est pas trop étonnant. J'ai vu que tiled offre la possibilité de d'automatiser certaines taches du mapping, c'est compliqué à mettre en place ou ca ne fait finalement pas gagner tant de temps que ca ?


Le système d'automatisation, c'est un outil pour aider le mapper. Mais cela nécessite un certain travail de préparation avant (surtout avec le tileset).

Perso, je ne fais pas attention à ca: Je ne vais pas réaliser beaucoup de maps et j'essaye au mieux de faire varier le terrain de jeu (afin d'avoir des maps variées). Du coup il y aura plusieurs tilesets pour peu de maps, les règles pour réaliser les maps changent souvent... 
En bref, ca prendrai trop de temps pour rien de configurer l'automatisation à chaque édition de map  ::): .

----------


## Louck

Démo (et son tutorial d'édition de maps) dans 48h environ  :;): .

----------


## Logan

:Bave:

----------


## Toastation

Aaahh ze le veux

----------


## Louck

Plus précisément, ca sera plus vers 22h, vu que j'ai des invités aujourd'hui x).
Mais pour rassurer la troupe: La version est prête, mais il me manque à faire un message explicatif et l'uploader.

A toute  ::P: .

----------


## Toastation

Snurf  ::sad::

----------


## Septimium

J'hallucine le gars comment il privilégie l'IRL a CPC quoi  ::(:

----------


## Louck

Bon, j'arrête de retarder encore le bousin  ::P: .

- Lien démo mort -


Désolé encore pour le retard, j'avais pas mal d'imprévus IRL que j'ai du repousser  ::sad:: .

Pour jouer au jeu, il faut avoir installer la dernière version de JAVA (ou avoir au moins JAVA 6).
http://www.java.com/fr/download/

Pour lancer le jeu, il faut simplement double-cliquer sur le fichier *PunxelAgent.jar* ou *PunxelAgent.bat*.


Je tiens à préciser: Cette version est une version alpha (presque béta). Certains bugs sont présents, et ca manque de contenu et de peaufinement (le niveau 2 sera revu).
Mais le coeur du gameplay est là  ::): .

Pour finir: Pour ceux qui veulent éditer des maps pour le jeu, un tutorial est accessible dans le dossier "doc" du jeu!


Ce soir, je ne suis pas super en forme pour faire un compte-rendu de mes deux semaines. Je le ferais une prochaine fois  ::P: .
Amusez vous bien  :;): .


PS: Et n'hésitez pas de m'harceler en cas de problèmes  :;): .

----------


## Toastation

A moua

----------


## yourykiki

Cool, je vais tester la démo !

----------


## C4nard

L'IA est suffisament violente pour ne pas permettre de faire n'importe quoi (presque trop violente  ::P: ) et du coup c'est assez sympa à jouer !

----------


## Toastation

Il y a un petit bug graphique sur ma CG apparemment. Sur mon PC portable il y une sorte de "flou" visuel qui n'est pas sur mon PC de bureau. Je pense que ça vient de la faible qualité de ma CG sur mon pc portable (c'est un chipset Intel)

----------


## Poussin Joyeux

Bien sympa la demo!  ::): 

J'ai pris plaisir à y jouer et à tenter/retenter/reretenter les deux niveaux (gameplay, graphismes, musique qui change dynamiquement, tout est sympa!)

Pas de souci à signaler de mon côté une fois les touches du clavier modifiées  ::P:

----------


## yourykiki

Bien amusant,

Les touches de base ne sont pas pratique mais comme on peut les changer, cela ne pose pas de problème. Dans le jeu, j'ai mis un moment avant de comprendre comment on descend les escaliers :0) Un seul soucis mais c'est peut être voulu, quand on regarde en bas on ne peut plus sauter. Du coup, si on veut tirer de par derrière une caisse, il faut sauter avant de regarder en bas. L'IA est efficace (et rapide), même si on peut coincer un ennemi en étant perché à un endroit où il ne peut pas sauter.

Les caisses ça fait mal ! J'ai pas trop fait attention, mais après coup je me dis qu'il doit y avoir moyen d’aplatir les ennemis

Je vais jeter un œil aux niveaux customs maintenant

----------


## yourykiki

J'ai vu qu'il est question d'un bon paquet de layer pour constituer les niveaux, dont 3 pour la zone jouable. Je me demandais si les foreground/background du décor se déplacent à la même vitesse que les layers de la zone jouable ?

Est-ce que tous les layers sont utilisés dans punxel agent ou toutes ces couches sont le maximum fourni par ton moteur et que dans punxel agent seuls les 3 couches de la zone jouable + 1 background sont nécessaires ?

----------


## Louck

Merci pour vos retours  ::): .




> L'IA est suffisament violente pour ne pas permettre de faire n'importe quoi (presque trop violente ) et du coup c'est assez sympa à jouer !


Je vais sûrement revoir la difficulté de l'IA à la baisse, afin de ne pas trop pénaliser le style "bourrin" au style "discret".
Ca restera toujours aussi difficile bien sûr. Mais pour les premiers niveaux, ils sont anormalement difficiles  ::P: .





> Il y a un petit bug graphique sur ma CG apparemment. Sur mon PC portable il y une sorte de "flou" visuel qui n'est pas sur mon PC de bureau. Je pense que ça vient de la faible qualité de ma CG sur mon pc portable (c'est un chipset Intel)


Etrange. Tu peux me faire un copie d'écran  s'il te palit ?
Le portable de mon boulot est aussi sur un chipset Intel mais il marche bien.





> Les touches de base ne sont pas pratique mais comme on peut les changer, cela ne pose pas de problème.


C'est sûrement le point noir du jeu (même après avoir changé les touches, j'ai eu quelques retours négatives à ce sujet). Je vais retravailler cette partie ergonomique dans la version finale du jeu, quitte à rajouter d'autres touches.





> J'ai vu qu'il est question d'un bon paquet de layer pour constituer les niveaux, dont 3 pour la zone jouable. Je me demandais si les foreground/background du décor se déplacent à la même vitesse que les layers de la zone jouable ?


TOUTES les 7 couches sont affichés par le moteur du jeu. Le but est de permettre au mapper de faire des maps détaillés et sans contraintes.
Il ne peut pas avoir plus de couches.

Maintenant, il n'est pas obligé de travailler sur les 7 couches du jeu. Le mapper peut très bien supprimé les calques qu'il ne souhaite pas utiliser.
Mais lorsqu'il en rajoute ou modifie l'ordre d'un calque sous Tiled, cela n'aura aucun effet dans le jeu. Le jeu charge les calques selon la propriété "layer" fixée sur ces derniers.

Sinon, les foreground/background se déplacent à la même vitesse.



EDIT: Bon je m'attaque aux niveaux du jeu  ::P: .

----------


## yourykiki

J'ai regardé un peu plus en détail pour les maps custom. J'ai essayé d'en faire tourner une, le tout sous linux ! Pour Linux aucun soucis, j'ai repris les librairie native de LWJGL de ton projet HATU et ca tourne nickel. Avec la dernière version de LWJGL, ca fait planter la machine virtuelle java. Si certain sont intéressé pour lancer la démo sous linux, je pourrais expliquer.

Sinon pour les maps custom, avec Tiled pas de soucis, il a l'air chouette cet éditeur. Après il faut s'approprier les tilesets, mais normal. Les ennemis sont à ajouter via le fichier .lvl, pas de soucis c'est bien expliqué. Il manque peut être l'origine et l'orientation des coordonnées x,y. Je pense que le 0,0 est en haut à gauche, qu'en allant une case sur la droite on fait +1 sur X et en allant une case vers le bas on fait +1 sur y.

Ensuite, soit j'ai raté un truc, soit c'est pas implémenté ou encore il y a un bug car je n'ai pas le menu "autre carte" qui s'affiche dans le jeu comme indiqué dans le doc.
Du coup, j'ai remplacé le contenu du fichier 1house.lvl pour le faire pointer sur le fichier mapBase.tmx. Et cool, ca lance la map custom ! C'est un contournement, mais ca permet de tester le mapping !

Pour finir, le fichier mapBase.lvl par défaut place le joueur trop base du coup il ne s'affiche pas, il suffit de remonter son "y" au même niveau que les ennemis (y=25 de mémoire) et on a la base custom qui tourne pour de vrai.

GG en tout cas, il y a quelques bugs mais pour une démo alpha on peut s'amuser et commencer à mapper  ::): 

Je vais pouvoir bidouiller =)

----------


## Louck

> Du coup, j'ai remplacé le contenu du fichier 1house.lvl pour le faire pointer sur le fichier mapBase.tmx. Et cool, ca lance la map custom ! C'est un contournement, mais ca permet de tester le mapping !


J'ai oublié de vous informer de ce possible contournement.
Mais oui, cette méthode marche très bien, comme renommer nos fichiers en "1house.lvl" et "1house.tmx" pour jouer sur son niveau custom  ::): .

Pour l'histoire de l'option "autre maps" dans le tutoriel, c'est uniquement dans la version finale.


Pour le reste, j'essayerai de mieux informer les joueurs (surtout pour l'histoire de la position des tiles)  ::): .
J'avais aussi prévu une version pour Linux, mais j'ai (encore) oublié d'intégrer les natives.

Si vous avez des maps à proposer pour le jeu, je peux les intégrer pour la version finale!

----------


## Louck

Le projet avance toujours bien, on n'est pas encore mort (et heureusement  ::P: ) malgré les occupations à gauche et à droite de chacun.

J'ai bien pris en compte les retours sur la démo. Je ferais une nouvelle session de débogage en Décembre avant de publier la version finale  :;): .
Mais pour l'instant, nous peaufinons (bien), nous réalisons des maps, et nous dessinons les menus du jeu.

Je donnerai plus de détails à la fin de ce week-end, dont une liste des possibles niveaux du jeu  :;): .

----------


## Louck

Bon j'ai un peu de retard avec mon Update  ::P: .

*Update 8 (05/09/13)*

Depuis la démo, nous travaillons sur les nouveaux niveaux du jeu, nous retravaillons les précédents niveaux, et nous corrigeons plein de petites choses.
Durant les prochains mois, le travail se résumera à ca: Peaufiner, peaufiner, des niveaux, peaufiner, et corriger. Jusqu'à maintenant, j'ai corrigé au moins une soixantaine de bugs. Il reste encore un bon paquet  ::P: .

J'ai retravaillé un peu les commandes du jeu, en proposant plus de boutons (dont un toggle pour la marche/course, un pour mettre en pause le jeu, etc...). Il risque d'avoir beaucoup de commandes, mais le joueur n'aura besoin que de 3 boutons (et des touches déplacements/visés) pour jouer 80% du niveau  :;): .

Du côté des petites nouveautés, la couleur des ennemis dépendra de leurs armes (vert pour ceux qui portent un shotgun, rouge pour ceux qui utilisent le lance-flamme, etc...) et ils auront un visage "personnalisé": Certains de ces protagonistes porteront un chapeau, d'autres porteront des lunettes... voir certains auront une moustache!  ::): 


Du côté des mauvaises nouvelles, j'ai prévu d'abandonner le mode "agent" (= difficulté du jeu élevé). Afin de rendre ce mode de jeu intéressant et unique, il fallait revoir la conception de chaque niveau et les adapter pour ce mode... Ce qui représente un très gros travail. Ajouter des ennemis au niveau ou les rendre plus résistants et plus agressifs ne sont pas de très bonnes solutions.
Néanmoins, j'ai eu l'idée d'un autre mode de jeu, beaucoup plus intéressant... Je vous en informerai très bientôt  :;): .


L'autre mauvaise nouvelle est que j'ai du tronquer la liste des niveaux. Il n'y aura plus que 8 niveaux dans la version finale du jeu, au lieu de 10, afin de respecter le délai fixé.
Le nom de ces 8 niveaux sont les suivants:
 Maison Appartement Entrepôt Sous-terrain Pont Tours Motel (à confirmer) Plateformes-Bio (à confirmer)

Les 6 premiers niveaux sont déjà conçu. Il manque juste la touche graphique du maître Uubu et des tests  :;): .




A très bientôt!

----------


## Louck

*Update 10 (05/11/13)*

Yo!
Durant cette courte session, et malgré les quelques signes de fatigues, nous continuons à concevoir les niveaux et à peaufiner le jeu  ::): .
Le travail à réaliser est toujours de taille. Je vais sûrement revoir ma vision du "peaufinement" d'un jeu (même s'il n'est pas mal) pour mes prochains projets  ::P: .
Mais bref.. Nous nous motivons!


De mon côté, j'ai finis de mettre en place le système "d'achievement" (ou de médailles). Pour rappel: A la fin d'une mission, selon la façon dont la partie c'est déroulée, le joueur obtiendra une ou plusieurs médailles. Le joueur devra récolter un certain nombre de médailles afin de passer aux niveaux suivants.

Pour obtenir une médaille, il faut, au choix:
Finir le niveau (simplement!).Tuer tous les ennemis du niveau.Finir le niveau sans blessures (le joueur peut se soigner).Finir le niveau sans se faire repérer.Finir le niveau dans un court délai.Avoir dépassé un certain score dans "le nouveau mode de jeu" (voir plus bas pour plus d'infos)

Au début, le joueur n'aura besoin que d'un très faible nombre de médailles pour accéder aux premiers niveaux du jeu.
Cependant, à partir d'un certain point, il sera nécessaire de rejouer certains niveaux pour récolter les médailles manquantes, pour accéder à des niveaux encore plus difficiles  ::): .


Et pour ceux qui ont récoltés un bon nombre de médailles, ils pourront rejouer les niveaux dans un nouveau mode de jeu: le mode *Boxagedon* !

Le mode Boxagedon est un mode de jeu de type "endurance", dans lequel le joueur devra survivre le plus longtemps possibles aux attaques ennemis, ainsi qu'aux chutes de caisses (qui proviennent du ciel).
En début de partie, le joueur n'aura que quelques secondes pour se réfugier à l'intérieur d'un bâtiment (et de se protéger des caisses qui peuvent exploser sa tronche) et de se préparer à l'apparition massive de ses némésis, qui vont le pourchasser jusqu'à la mort.

Même si le style de ce mode se révèle être très "explosif", le joueur pourra toujours fuir et se cacher de ses ennemis, avant de les prendre par surprise avec son pistolet silencieux.


Ce mode de jeu est optionnel. Il n'est pas obligatoire de le jouer afin d'obtenir les derniers médailles pour accéder aux derniers niveaux du jeu. C'est un mode de jeu "fun", très rapide à jouer, et qui peut proposer un challenge différent aux joueurs  :;): .


En plus de ce mode, je suis entrain de rééquilibrer les armes du jeu. Le fusil d'assaut (l'arme de base) est actuellement l'arme la plus économique ET la plus rapide... malgré sa faible précision.
Je souhaite que les autres armes du jeu puissent être une bonne alternative lors des gros affrontements  :;): .


A très bientôt!

----------


## Uubu

Est-ce que les caisses vont s'empiler façon tetris ?

----------


## Louck

Ahah  ::P: .
Non, ils explosent au contact du sol ou d'un personnage. Je n'ai pas encore codé la chose, mais ils détruisent les tiles destructibles (et non les indestructibles).

Du coup si le joueur souhaite se protéger, ca ne sera pas en-dessous d'un plafond qui peut partir en miette très rapidement.
D'ailleurs, je vais forcer le joueur de bouger de sa place très souvent, de ne pas camper 24/24 dans une même place: En plus de la chute des caisses, l'ennemi pourra le pourchasser, et des packs de soins apparaîtront aléatoirement dans le niveau (et qui sont nécessaires pour la survie).

----------


## yourykiki

Alors, toujours dans les clous ?

----------


## Louck

*Update 11 (18/11/13)*
Nous sommes toujours vivant  ::P: . Mais vu que le boulot se résume à des corrections, il n'y avait pas grand chose de concret à montrer (en plus que le topic ne bougeait pas trop).

Pour faire bref, sur ces deux semaines, j'ai peaufiné les armes (le lance-flamme et le bazooka sont prêts  :;): ), le mode Boxagedon est en place (il reste encore 2/3 choses à régler), et les 4 premiers niveaux du jeu sont terminés, au propre.

Du côté des artistes, d'autres thèmes/musiques viendront, et l'UI du jeu est en cours de réalisation  ::): .


Oh d'ailleurs, pour vos oreilles et vos yeux:
https://soundcloud.com/detotox/punxe...-theme/s-n7eMa

+ Extrait d'un niveau du jeu:



De mon côté, j'entre dans la phase "débogage de masse". A part 2/3 exceptions (faire le niveau 8, une interface...), j'aurais moins en moins de choses à montrer pour les prochaines semaines. Malheureusement.

Je profite de ce dernier message pour préciser le jeu ne sortira finalement pas fin Décembre, mais plutôt début/mi Janvier. Principalement à cause de Nöel et des congés (enfin!), mais aussi pour pouvoir s'offrir 2 semaines de tests complets... et sûrement d'un niveau 9  :;): .


A très bientôt!

----------


## Louck

*Update 12 (6/12/13)*
Nous ne sommes pas encore mort! Mais nous travaillons sur les derniers éléments du jeu  ::P: .
Pas de grosses nouveautés, à part qu'on peaufine à fond le jeu et que je corrige/équilibre les derniers éléments.
La petite mauvaise nouvelle de la semaine est qu'il n'y aura pas, au final, de niveau 9. Ca sera le niveau 8 qui aura le statut de "niveau-final-super-grand-et-super-dur"  ::P: .

Une version sera envoyée à quelques personnes fin Décembre afin de déceler les derniers points noirs avant de le publier à tous pour mi Janvier  ::): .




A très bientôt!

----------


## Louck

Un moment que je n'ai pas mis à jour ce topic  ::P: .

Le projet s'approche de sa fin. Il manque 2 bricoles à régler et c'est parfait  ::): .

D'ailleurs, j'annonce:

*Vendredi 24 Janvier*
La date de sortie du jeu.

Si j'annonce aussi tardivement, c'est faute de mes 2 semaines de congés (bien mérités, niah niah niah!) et pour avoir un peu de temps pour faire les tests (et le débogage qui suit, en cas de gros pépins).

Si tout se passe bien, je peux raccourcir d'une semaine la date de sortie.


Pendant ce temps, *je cherche des volontaires pour les tests*. Je recherche en priorité ceux qui ont un Linux ou/et un Mac.
La seule chose que je demande à ceux qui testeront le jeu est de me répondre à quelques questions toutes connes (si le jeu plante, difficulté, etc etc...).

Si intéressé, merci de m'envoyer un MP sur ce forum  ::): .
J’enverrai une version "pre-release" le 25 ou 26 décembre.


A très bientôt!

----------


## Louck

Yop!
De retour des congés, je suis entrain de lire les retours des testeurs, et je vais débuter une nouvelle (mais dernière) session de débogage... avant la ligne d'arrivée  ::): .
Il y a pas mal de boulots. Mais le jeu est toujours prévu pour le *Vendredi 24 Janvier*.

Soit dans trois semaines  ::): .

A très bientôt!

----------


## Louck

Petit update!
Je remercie les testeurs pour leurs retours  ::): .
Depuis, j'ai simplifié l'accès aux niveaux supérieurs (= moins de badges requis), j'ai réduis la difficulté de certains niveaux (surtout le premier niveau), et j'ai revu le mode Boxagedon (en rendant les ennemis plus agressifs).

Actuellement, il ne me reste plus qu'à mettre en place un mini-tutorial. et quelques bugs mineurs.
Normalement, tout sera finis pour ce week-end. Mais je vais réaliser un dernier test la semaine prochaine afin de m'assurer que tout est ok  ::): .


A côté, je jette un oeil sur Unity... pour un prochain projet.

----------


## Louck

Le jeu est terminé!
Mais comme prévu, je test une dernière fois le jeu (avec les membres de l'équipe), afin de corriger les possibles plantages  ::P: . Ca ne devrait pas être trop long.


Du coup, j'avance la date de sortie au:
*Mercredi 22 Janvier*
(oui, encore 4 jours  ::P: ).

A bientôt  ::): .

----------


## Poussin Joyeux

> Le jeu est terminé!
> Mais comme prévu, je test une dernière fois le jeu (avec les membres de l'équipe), afin de corriger les possibles plantages . Ca ne devrait pas être trop long.
> 
> Du coup, j'avance la date de sortie au:
> *Mercredi 22 Janvier*
> (oui, encore 4 jours ).
> 
> A bientôt .


Pour une fois qu'un jeu sort en avance!  :;): 

Bravo en tout cas pour avoir mené ton projet jusqu'au bout (et j'ai hâte de jouer à la version finale!  ::): )

----------


## Uubu

Le projet d'après :



D'autres en MP.  :tired:

----------


## Louck

Chut  ::ninja:: .

Le jeu sort donc demain. Je pense faire le déploiement à midi (et régler les problèmes le soir, s'il y a  ::P: ).
A dans 24h  :;): .

----------


## Louck

*Télécharger le jeu Punxel Agent*

Tadam!
Après plus de 7 mois de développement, voici la bête  ::): .

Je posterai un post-mortem dans une ou deux semaines, selon le temps que j'aurais.


Cette version est jouable sur Windows, Linux, et Mac.
Java doit être installé sur le poste afin de pouvoir y jouer: http://www.java.com/fr/download/

Je vous conseille de jeter un oeil aux commandes du jeu avant de débuter une partie  ::): .
Le jeu est jouable avec une manette via l'application JoyToKey ou Xpadder.


N'hésitez pas à m'envoyer des messages en cas de problèmes ou d'injouabilités  :;): .

Bon jeu!

----------


## olaf

Bravo!
Je suis une quiche magistrale, mais c'est vraiment réussi.

----------


## bbd

Je viens de tester, bravo les gars ! Par contre je polyote à mort avec les touches, il va falloir que j'utilise gamepadcompanion (je suis sur Mac).

----------


## Poussin Joyeux

Super! Je viens d'y jouer un peu et c'est vraiment sympa (une fois le mapping des touches modifié  :;): ). Plutôt difficile pour moi qui fonçait dans le tas au début mais ça s'apprend vite  ::P:  

Merci et bravo!!!

----------


## deathdigger

GG pour le taff, le seul truc qui manque, c'est effectivement de pouvoir jouer à la manette directement  ::):

----------


## Louck

Merci les gars  :;): .




> c'est effectivement de pouvoir jouer à la manette directement


Il y a pas mal de points techniques que je souhaiterais revoir avec ce jeu (dont ca, le moteur physique et les options du jeu).
Mais vu que j'ai un peu marre de réinventer la roue, j'ai décidé de laisser la main à... Unity... pour ce genre de chose  ::P: .

----------


## devn

Le site du jeu renvoie 403 forbidden: http://sourceforge.net/projects/punxelagent

----------


## Louck

C'est l'ancien lien, il y a eu une merde au niveau des droits...
Il faudra passer par là maintenant: http://sourceforge.net/projects/punxelagentt  (un "t" en plus)

----------


## Lyanoward

J'ai suivi le topic depuis quelques mois, et félicitation pour avoir mené à bien ton projet  ::): .
Je suis impatient de lire ton retour d'expérience.

----------


## ackboo

Le jeu est vachement bien, c'est mignon, c'est super bien programmé, c'est propre, la musique est excellente. Ca ressemble un peu à un Mark of the Ninja. Pour un jeu d'amateur et gratos, c'est vraiment du boulot de qualité. Des contrôles au gamepad amélioreraient beaucoup la maniabilité (au clavier c'est chaud).

----------


## airman4

Bravo pour le jeu !
Il faut que je le teste

----------


## Hideo

J'ai rapidement lancé ça aussi, je vais aller voir ca de plus près dès que possible  :;):

----------


## Ymnargue

J'ai lancé aussi et j'ai pas mal traîné sur le premier level. C'est franchement bien réussi !
Bravo à tous !

Et quelle musique !

---------- Post added at 23h52 ---------- Previous post was at 23h46 ----------

Je ne sais pas je suis aveugle, mais j'aimerais bien pouvoir atteindre les options en étant dans une partie.
C'est possible ? J'ai l'impression qu'il faut forcément revenir à l'écran titre pour toucher aux options.

----------


## Louck

Merci  ::): . Ca fait plaisir.

Dès que le temps le permet, je développerai un patch afin de régler certains soucis de l'interface, réduire (légèrement) la difficulté du jeu, et de mettre en place ce qu'il faut pour jouer avec une manette.
Si vous rencontrez des bugs avec le jeu, même mineurs, c'est maintenant qu'il faut me spammer  ::P: .


Au sujet de la musique:
https://soundcloud.com/detotox/sets/punxel-agent

----------


## Yuccaman

J'ai suivi le sujet du coin de l'oeil , bravo pour avoir mené le projet à terme. 
J'ai hâte de tester la version finale ce week end.

----------


## devn

> C'est l'ancien lien, il y a eu une merde au niveau des droits...
> Il faudra passer par là maintenant: http://sourceforge.net/projects/punxelagentt  (un "t" en plus)


Merci! Tu ne distribues pas/plus les sources? Je me rajouterais bien la gestion des pads!

----------


## deathdigger

> Le jeu est vachement bien, c'est mignon, c'est super bien programmé, c'est propre, la musique est excellente. Ca ressemble un peu à un Mark of the Ninja. Pour un jeu d'amateur et gratos, c'est vraiment du boulot de qualité. Des contrôles au gamepad amélioreraient beaucoup la maniabilité (au clavier c'est chaud).


saucisse/10 dans le prochain CPC !

----------


## Louck

Ahah  :^_^: 




> Merci! Tu ne distribues pas/plus les sources? Je me rajouterais bien la gestion des pads!


Oh si si, je vais mettre à disposition les sources du projet, même si c'est moche à voir (avec des optimisations à la con de partout)  ::P: .

Je le ferrais en même temps que le patch. Je m'occupe du pad  :;): .

----------


## devn

> Je m'occupe du pad .


Si tu cherches un peu d'inspiration, j'ai une petite lib pour gérer la GUI de mes jeux et notamment la configuration des pads: http://git.bci.im/jnuit/

Ce n'est pas encore documenté, mais ça peut aider, car il y a pas mal de pièges quand on veut gérer les pads, notamment les axes:

- ils n'ont pas tous les mêmes "dead zone".
- certains sont inversés.
- certains ne sont pas analogiques (dpad sur les manettes xbox).
- les axes 0 et 1 ne sont pas toujours gauche/droite et bas/haut. C'est notamment le cas sur mon stick arcade...

----------


## Louck

Ok cool, je vais jeter un oeil sur ce truc  ::): .
Tu as des exemples d'utilisation de cette bibliothèque ?

----------


## devn

Je l'utilise pour Ned et les maki. Le code source est là. Les classes intéressantes sont:

- https://github.com/devnewton/nedetle...eControls.java => la déclaration des actions possibles dans le jeu (se déplacer, afficher le menu principal...).
- https://github.com/devnewton/nedetle.../MainMenu.java => le menu principal et les menus de configuration.
- https://github.com/devnewton/nedetle...putSystem.java => la gestion des actions dans le jeu.

----------


## Louck

Yo!

Je confirme donc qu'il y aura un petit patch pour Punxel Agent  ::): .

Le patch ajoutera le support de la manette de jeu. Je ne prévois pas un truc exceptionnel (je n'ai pas 9000 manettes pour tester  ::P: ) mais le nécessaire pour que ca fonctionne.
Je vais revoir aussi les réflexes de l'ennemi, qui est un peu trop grand en l'état. Les ennemis resteront toujours aussi violents.
Je vais essayer de grossir la difficulté du mode Boxagedon, entre temps  ::): .
Il y aura aussi quelques corrections, à gauche et à droite, mais sans importances  ::): . Les défauts de la physique du jeu ne seront pas corrigés par contre: je dois revoir tout le moteur du jeu pour ca.


Le patch n'apportera que des corrections, pas de contenus.
Pour les curieux et les créatifs, il est possible de créer des niveaux customs. Toutes les infos sont dans le dossier "doc" du jeu  :;): .


PS: Oublié de préciser, mais je vais être fort occupé durant ces semaines. Je vais mettre un peu de temps pour sortir ce patch :/.

----------


## Louck

Yo!

Je recherche au moins deux joueurs qui peuvent sacrifier leurs manettes de jeux sur le patch de Punxel Agent.
Je prévois le "mini-test" pour vendredi. Ca ne sera pas un test trop long: juste voir si la fonctionnalité bug ou non, et si c'est fun de jouer avec  ::): .

En dehors de ca, je suis fort occupé ces derniers temps. Il faudra attendre encore un peu pour le patch (et le post-mortem). :/.

----------


## Tildidoum

Je suis pas sûr d'être là (ça dépend vendredi vers quand ?) et les plateformers c'est un peu ma bête noire (aka je suis une quille) ... 
M'enfin si vous avez toujours besoin de gens à ce moment là envoie un mp  ::):

----------


## Louck

Pour l'instant, personne c'est proposé  ::P: .
Vendredi, c'est plutôt en soirée. Après je peux attendre la réponse le lendemain. Mais plus tôt je l'ai, mieux c'est  ::): .

----------


## yourykiki

Je t'aurais bien aidé, surtout que j'ai plusieurs manettes différentes en stock, mais je ne suis pas sur d'être dispo ce soir. Si tu n'es pas pressé je peux tester dans le week end.

----------


## Tildidoum

Bon bah dispo si jamais ! 
(par contre j'ai qu'une manette xbox)

----------


## Louck

Mail envoyé  ::P: .

----------


## Tildidoum

Bon ben avec un pad xbox ça marche nickel ! A choisir je le préfère au clavier.
Seul bémol c'est la touche A qui n'est pas bindable, parce que c'est la touche qui doit être utilisé par défaut je suppose ?

Et je suis toujours une quille en plateformer. Je meurs tout le temps mais ça me fait marrer, c'est bon signe  ::P:

----------


## Louck

Oui, je n'ai pas encore trouvé un moyen pour définir proprement le bouton "action" dans les menus. Par défaut, c'est les boutons "1" et "3"  ::): .
M'enfin, je tenterais quelque chose à ce niveau.

----------


## Uubu

C'est super fun à la manette ! :s'poil:

----------


## Mortis Ghost

Hello moi je veux bien tester aussi si besoin est, je possède une manette et c'est une de mes plus grandes fiertés.

----------


## Louck

Envoyé  :;): .

D'ailleurs j'ai profité de ce petit patch pour ajouter une petite surprise  ::P: .

----------


## Mortis Ghost

J'ai joué et je t'ai fait un rapport complet par MP !

----------


## Louck

Merci  :;): .

J'ai bientôt finis de réaliser le patch. Cependant j'ai une semaine de chargé et il faut que je fasse quelques tests.
Ca sera dispo pour le 7 mars, sûrement au soir  ::): .

J'essaye de retravailler le mode Boxagedon pour faire quelque chose de correct, mais je commence à me dire que c'étais une mauvaise idée de l'avoir implémenté... Dommage :/.
Je donnerais plus de détails sur ce patch le moment voulu.

----------


## Tom Lauda

Salut ! ça fait un moment que je traine sur le fofo, sans jamais avoir posté jusqu'à présent. (moi timide  ::ninja::  )
ça fait 2-3 jours que je joue à Punxel Agent et sérieux, j'adore ! Je me marre, les ennemis sont bien retors, les niveaux bien foutus, les graphismes sympa, les musiques aussi... bref, je m'éclate! Sérieux, bravo les mecs, vous assurez comme des chacals des steppes du sud-est de l'asie centrale ! (au passage, les commandes au clavier sont nickel pour moi. Je ne ressent pas le besoin d'un pad.)

----------


## Louck

De rien  ::): .

La nouvelle version est en cours de test, afin de vérifier si rien ne plante.
La date du vendredi est maintenue  :;): .

Je ferais un petit "patch note" le jour d'avant.

----------


## Louck

Un peu en retard sur le patch note, mais voila le détail  ::P: .



> - Ajout du support manette de jeu
> - Ajout du "fusil d'or": 7ème arme qui ne peut être gagné que sous une certaine condition et avec de la chance, en tuant les ennemis. Je vous laisse chercher .
> - L'IA est beaucoup moins réactive...
> - ... mais elle le deviendra de plus en plus au fur et à mesure des niveaux.
> - Nerf des accessoires: Limitation fixée à 2 (au lieu de 3) et ajout d'un délai de récupération de 3 secondes.
> - Modification de l'interface des options.
> - Correction de la roquette (du bazooka) qui ne tuait pas directement l'ennemi.
> - ... et bien d'autres corrections, dont l'orthographe.



J'avais promis de modifier le mode Boxagedon afin de le rendre plus difficile. Mais après avoir implémenté plusieurs solutions diverses et variés (le niveau en feu, un pseudo-fantôme qui poursuit le joueur, etc etc...), les résultats n'étaient pas très intéressants... ou ces solutions étaient facilement contournables :/.

En bref, le vrai problème de ce mod est de le faire fonctionner sur des maps qui ne sont pas totalement adaptées. Vraiment dommage :/.


A ce soir pour le lien  :;): .

----------


## Louck

Tadam!
La V1.10, avec le support de la manette et le fusil d'or  ::lol:: .

*https://sourceforge.net/projects/pun...0.zip/download*

C'est la version complète du jeu, il n'est pas nécessaire de télécharger la v1.00 pour pouvoir y jouer  ::): .

Votre sauvegarde (le fichier save/save.xml) est conservée si vous écrasé le répertoire du jeu par sa nouvelle version  ::): .
Seul les touches du clavier sont réinitialisées.

Bon jeu!

----------


## Diwydiant

Depuis la période de ton magnifique serveur Machete je n'ai pas eu l'occasion de suivre tes projets avec beaucoup d'assiduité, mais j'attendais le patch "manette" pour toucher à ce Graal ludique...

Bravo à toi, ainsi qu'aux beaux et valeureux Canards ayant permis la naissance de ce jeu.

 :;): 

Je fais un petit retour ce week-end, si je peux...

----------


## Tom Lauda

Yop ! J'ai trouvé un bug ! Assez gênant puisqu'il concerne l'assignation des touches. Je en sais pas exactement ce qu'il se passe, mais une fois en jeu, les touches ne correspondent plus à celles que j'avais assigné, ni à celles de départ. (en fait au départ, aucune n'est assignée quand on entre dans le menu).

EDIT : autant pour moi, c'est de ma faute, j'ai utilisé le fichier de config de la version 1.0 et ça va pas du tout ^^ Ceci dit, il y a quand même des trucs bizarres. Je ne peux pas réassigner la touche F par exemple.

----------


## Louck

Le seul fichier qui fonctionne avec la V1.1 c'est le fichier save.xml dans le répertoire save.
Pour les commandes, il fallait que je mette à jour le système afin de prendre en compte la manette de jeu. 

Essayes en décompressant la nouvelle version dans un répertoire à part ?

----------


## Louck

Dernière update du projet.... pour son petit *Post Mortem*  ::): .
N'étant pas un très grand bavard, je vais surtout pointer les éléments importants de ce projet.


Globalement, le projet c'est très bien passé, sur beaucoup de points. Il y a eu bien sûr quelques difficultés et un peu de lassitude sur la fin du projet (depuis Décembre), mais la motivation a toujours été là.

Le projet est née après que j'ai joué à la version alpha de... Bro Force. J'ai bien aimé le concept simple de ce jeu et je voulais faire quelque chose dans le même principe, à ma sauce.
Au final, mon jeu a moins de testostérones et moins d'explosions. Mais il reste cool... à mon avis  ::): .


*What went well:*
Une des choses qui m'a énormément aidé sur ce projet, c'est le fait de travailler avec une équipe compétente ET motivée. Pour être franc, j'ai adoré travailler avec Uubu et Bigju (malgré certains retards  ::P: ) et c'est assez rare de trouver des personnes qui te suivent jusqu'au bout. Sans eux, le projet ne serait pas aussi classe (et je n'aurais probablement pas finis à temps).

L'autre point positif de ce projet est que j'ai planifié mon travail: Je savais où j'allais, ce que je faisais, et ce qu'il restait à faire. C'est une source de motivation très sous-estimée.
Bien sûr, cela implique de gérer son temps et de réfléchir/concevoir avant de s'attaquer au développement du jeu. Mais grâce à cette pratique, j'ai pu me faire une idée de "l'importance" du projet (en temps de dévs) et d'avoir une meilleure vision de son évolution.
Sérieusement, cette méthode de travail est très bête, mais peut sauver des projets. Merci Excel  ::P: .

Enfin, le fait de développer un jeu "simple" - ni très original, ni très complexe - n'est pas quelque chose d'ennuyant. J'ai du concevoir un système de particule, une IA pas trop idiote, j'ai intégré l'éditeur de map Tiled, et j'ai développé plein de petits trucs. C'est une bonne expérience pour moi  ::): .


*What went wrong:*
Le plus gros problème que j'ai eu avec ce projet, est que j'ai "trop" travaillé, souvent bêtement, et pour divers raisons:

- Quand j'ai planifié le développement de Punxel Agent, j'ai supposé que je travaillerai X temps par semaine... hors ce X était trop élevé. Après trois mois de développement, j'avais du mal à suivre mon planning... et je commençais à me fatiguer :/. Mais je suis quelqu'un de têtu, qui veut finir les projets en temps et en heures.

- J'ai voulu ajouter des fonctionnalités supplémentaires (et facultatives) au jeu, dont le mode Boxagedon. Mais leurs implémentations prennent beaucoup de temps.... le genre de temps qui peut servir à réaliser des niveaux supplémentaires ou à peaufiner les niveaux existants. Le pire est que mon mode de jeu est, au final, mal réalisé :/.

- J'ai voulu réutiliser et maintenir mon propre moteur de jeu. C'étais voulu, je voulais m'amuser avec mon moteur chérie.
Mais cela m'a coûté deux mois de développement (minimum) et il avait beaucoup de lacunes... outch.

Conséquences: Je n'avais plus le temps pour diversifier les ennemis du jeu et pour peaufiner la difficulté des niveaux. Dommage.


*What is next:*
J'arrête de développer en Java avec la bibliothèque LWJGL. Pas que je n'aime plus ce langage, mais parce que je n'ai plus envie de maintenir un moteur de jeu (qui prend ééénoorrmméément de temps).
Ainsi, je change de cap... et je vais faire mumuse avec Unity  ::P: .

Je vais sûrement recommencer à faire des jeux. Sûrement de plus petites tailles, pour m’entraîner sur les nouveaux outils.
Mais ma finalité est de pouvoir réaliser "mon jeu", qui sera commercialisé. Et si possible, avec la même équipe qui roxx  :;): .



A la prochaine!

EDIT: Désolé pour les fautes à l'avance.

----------


## Uubu

:Cigare:

----------


## Poussin Joyeux

> ...
> 
> Le projet est née après que j'ai joué à la version alpha de... Bro Force. J'ai bien aimé le concept simple de ce jeu et je voulais faire quelque chose dans le même principe, à ma sauce...


C'est marrant car moi j'ai joué à ton jeu avant de jouer à BroForce. Et lorsque j'ai commencé à jouer à BroForce, j'ai tout de suite pensé à ton jeu! Donc mission accomplie  ::P: 

Et bon courage avec Unity! J'espère que tu ne seras pas frustré de ne plus pouvoir tout contrôler, avantage que tu avais avec ton moteur de jeu. 
Allez, dans 6 mois, tu nous écris que finalement, pour ton nouveau projet de jeu, tu es reparti de ton moteur de jeu maison actuel!  :;): 

En tout cas, jeu sympa, topic sympa et conclusion sympa!  ::):

----------


## Voltrek

Cool le post-mortem, très intéressant.

Et félicitation à toute l'équipe pour être allé au bout d'un projet qui ne me paraît pas si simple.  :;):

----------


## Louck

> Et bon courage avec Unity! J'espère que tu ne seras pas frustré de ne plus pouvoir tout contrôler, avantage que tu avais avec ton moteur de jeu.


J'ai déjà fais mumuse un peu avec Unity, j'ai déjà réalisé des prototypes (dont un qui servira pour un prochain jeu  :;): ).
Sérieusement, je peux reproduire Punxel Agent sous Unity, en moins bugués et en bien plus rapidement. Il y aura bien sûr 2 ou 3 petites choses à remanier, mais ce n'est rien face à ce qu'Unity offre.

Avant, j'avais le même avis concernant ces frameworks: j'avais peur que je sois limité sur le développement de mes jeux. J'ai beau être quelqu'un de pessimiste et qui aime bien coder, mais Unity a réussi à me convaincre sans difficultés.

Le gros problème, c'est les licences. Mais il est possible de faire quelque chose de très sympa avec la version gratuite  ::): .


Bref, peux-être que tu as raison et qu'Unity restreint bien plus que ce que je crois. Mais vu que je n'ai pas l'attention de réaliser des jeux extrêmement techniques, il y a peu de chance que je sois bloqué  ::): .
Wait & see!

----------


## Tildidoum

Hey cool le "post-mortem", c'est intéressant à lire !

J'en profite, ça fait un moment que j'avais envie de te poser des questions concernant la distribution de ton jeu.

Après si t'as pas envie de donner ce genre d'infos c'est ton droit, en plus c'est pas tellement l'habitude dans le JV de communiquer ce genre de trucs ...  ::P: 
Pi je sais que c'était pas forcément l'objectif, mais est-ce que tu l'as mis à disposition sur l'une ou l'autre plateforme, est-ce que tu as cherché à en faire la promotion en dehors de ce thread, comment ça se passe, tout ça tout ça ?

----------


## Bigju

C'était très gratifiant de travailler sur ce projet, même si effectivement je n'ai pas livré les sons aussi rapidement que je l'aurais souhaité. Ceci dit maintenant que je suis habitué au rythme de tout le monde, je pense que je pourrai travailler de façon plus fluide sur les éventuels projets futurs, et ça sera avec plaisir.
C'est pas la première fois que je travaille sur un jeu vidéo, par contre c'est la première fois que je travaille avec sur un projet aussi abouti dans sa finalisation (d'autres sont encore en cours donc ça compte pas, pour les autres canards avec qui je bosse et qui pourraient se vexer  ::ninja:: ), avec un dev qui sait où il va, et qui a aussi un certain détachement par rapport à la critique sur mon travail et qui n'hésite pas à me donner des avis nets (positifs ou non) sur celui-ci, ce qui est d'une grande aide. On va droit au but et ça c'est bien. 
En plus les retours sont hautement positifs donc c'est encore mieux.  ::P:

----------


## Louck

> Pi je sais que c'était pas forcément l'objectif, mais est-ce que tu l'as mis à disposition sur l'une ou l'autre plateforme, est-ce que tu as cherché à en faire la promotion en dehors de ce thread, comment ça se passe, tout ça tout ça ?


C'est simple: on se démerde  ::lol:: .

Plus sérieusement, vu que je n'ai pas pour but de commercialiser ce projet, je le présente uniquement sur des sites/forums où je suis sûr que j'aurais des retours (qui sont plus intéressants que le nombre de téléchargement).
Et vu que le public visé n'est que français (seul langue du jeu), il n'y a pas beaucoup de sites  ::P: .

Sinon, je ne suis pas un expert pour faire "vendre" un jeu. Je tente plusieurs méthodes et approches (news fréquents, démos, image/vidéo/média, etc...), mais je n'ai pas la solution miracle. Je présente simplement le projet sur un forum, je met à jour les infos, et j'espère avoir des retours (ou des avis, même négatifs).
La prochaine fois, je tente de rendre accessible mes jeux sur navigateur (merci Unity) afin de toucher un peu plus de monde.

----------


## Tildidoum

Oké d'acc  ::): 
Et tu as songé à l'envoyer à des sites proposant des bundles ? 

J'avoue que je connais mal ce domaine, mais j'ai l'impression que t'as un truc suffisamment carré et fun pour tenter le coup non ?
J'dis ptet de la merde mais ça me paraît pas improbable...

Oké c'était pas le but de le commercialiser, m'enfin à part du temps pour faire une traduction en anglais, t'as pas grand chose à perdre !

----------


## Louck

> J'avoue que je connais mal ce domaine, mais j'ai l'impression que t'as un truc suffisamment carré et fun pour tenter le coup non ?


J'ai une exigence assez importante pour vouloir commercialiser un jeu. Je ne bosse pas en mode "faire 10 mini-jeux par an pour gratter le plus de fric sur l'app store"  :;): .

Par exemple, si je voulais commercialiser Punxel Agent, ce que j'aurais fais:
- Revoir tous les niveaux afin de proposer un challenge varié et une monté en difficulté plus intéressante. J'entend par là des ennemis plus diversifiés, de nouveaux obstacles (caisses explosives ?), des objectifs différents, des boss, etc...
- BEAUCOUP plus de contenus, genre 20 niveaux, beaucoup plus d'armes (dont des armes de mélées) et d'accessoires.
- Un mode multi, surtout coopératif.

Et bien d'autres idées à la con.
En bref, je veux rendre le jeu encore plus dynamique. Il y a de quoi faire pour un "Punxel Agent 2".

Mais j'ai un projet beaucoup plus gros en tête. Petite indice: FTL + Guns or Icarus





> Et tu as songé à l'envoyer à des sites proposant des bundles ?


Je ne me suis pas posé la question. Je ne sais pas trop comment ca marche ce système.

----------


## Hideo

> Petite indice: FTL + Guns or Icarus


 ::O:   ::O:   ::O:   ::O: 
: OhMygad :
 :Bave:   :Bave:   :Bave:   :Bave:

----------


## Louck

J'en reparlerai au moment voulu, avec beaucoup plus de détails. Pour l'instant, je suis à la phase "entrainement sous Unity"  :;): .

----------


## devn

> Le gros problème, c'est les licences. Mais il est possible de faire quelque chose de très sympa avec la version gratuite .!


Tu as regardé jmonkey ou ardor3d? Ce sont des concurrents de Unity, moins connus, mais sous licences libres.

----------


## Impossiburu

Je n'ai joué que récemment à ton jeu (en fait je l'avais téléchargé au moment de la news, et finalement j'ai décompressé l'archive et lancé le programme en mode "c'est quoi ce truc déjà ?", un jour où j'errais dans mon dossier de téléchargement). Bref, tout ça pour rejoindre l'avis général et dire que le jeu est vraiment bien foutu sous tous les aspects (qu'il soit question du gameplay, des graphismes, des sons, des musiques).

Tu prévoyais de rendre disponible le code source, à ce que j'ai vu. C'est déjà fait ? Ça m'intéresserai de voir comment ça marche.

Merci et bonne chance pour la suite !  :;):

----------


## Louck

Merci  ::): 
En effet j'ai oublié de mettre a disposition le code dource du jeu.
Etant en vacance (au portugal) je ne peux pas le faire dans l'immediat. Mais dans une semaine environ, et si je m'en souviens, ca sera bon  ::): .

.... Quand sourceforge ne plantera plus chez moi  :tired:

----------


## Louck

Voila, suite à un rappel, j'ai commité le code source du jeu sur Sourceforge.
https://sourceforge.net/p/punxelagentt/trunk/

J'ai fais quelques modifications entre temps, il y a sûrement des trucs moches ou un manque de commentaire (vu que je suis passé sur Unity maintenant  ::P: ).
Bonne fouille!

----------


## aggelon

C'est toujours instructif et enrichissant de regarder la manière de coder des autres  ::): 

Merci monsieur  :;):

----------


## Gwargl

Merci beaucoup !

----------


## Impossiburu

Hey, merci !
Je n'ai que survolé ton code pour l'instant, et ça m'a l'air bien rangé.  :;):

----------


## Louck

Je m'organise assez bien  ::P: .

----------


## morfMik

J'ai installé le jeu,décompressé l'archive zip et executé _PunxelAgent_ mais rien ne se passe si ce n'est qu' un bref écran noir apparait avec quelques lignes de codes;mais RIEN NE SE PASSE meme si j'attends quelques minutes. ::sad:: 
Auriez vous une solution ?

----------


## Logan

Tu as bien installé Java ?

----------


## Louck

Peux tu nous dire ce que dit les lignes de codes ? (ou fait un un imprim' écran).

----------

