Combat avec Ink

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

Combat avec Ink

Messagepar tvisarl le Dim Avr 22, 2018 12:49 pm

Bonjour,

A ma connaissance il n'est pas possible de réaliser un jeu de combat genre D&D avec Ink, totalement infoutu de lire et afficher des variables numériques. Enfin, c'était comme ça il y a deux mois. Ah, et puis j'oubliais : traitement élémentaire des nombres aléatoires ( en générer un compris entre N1 et N2 ).

Ce qui me confirme dans mon idée que ce n'est absolument pas un outil conçu pour la fiction interactive. Par contre il peut s'interfacer facilement avec d'autres outils ( ex: Unity ) qui prendront en charge ce genre de "détails" mais multiplieront au moins par 10 si ce n'est par 100 l'investissement nécessaire ( collaboration de documentalistes et de graphistes, etc. ). Ce n'est pas un outil pour indépendants.
C'est d'ailleurs pour cela que je reste sur Inform.

Je me trompe ?
tvisarl
Celui qui attend à l'affût
 
Messages: 137
Inscription: Sam Juin 18, 2016 9:20 am

Re: Combat avec Ink

Messagepar Natrium le Dim Avr 22, 2018 10:50 pm

Pour afficher des variables :

Code: Tout sélectionner
VAR attaque = 10

Vous avez {attaque} points d'attaque.

Pour les nombres aléatoires (ici entre 1 et 10) :

Code: Tout sélectionner
VAR attaque = 0

~ attaque = RANDOM(1, 10)
Vous avez {attaque} points d'attaque.

Mais c'est vrai que cette fonction pour avoir des entiers aléatoires n'est documentée nulle part (je suis tombé dessus dans une discussion sur GitHub).

Donc je pense qu'il est tout à fait possible de coder un RPG avec plein de stats et de combats avec ink. Ce n'est en revanche pas forcément le langage le plus approprié, effectivement. Ink, c'est plutôt fait pour des histoires avec beaucoup d'embranchement et de recombinaisons. Mais ça reste quand même possible de l'utiliser pour un jeu de combat (mais je pense que ça ne serait pas drôle de coder des armes ou des objets, à moins peut-être d'utiliser une intégration dans un moteur de jeu).

C'est vrai qu'apprendre Unity, ce serait un peu lourd, mais il n'y aurait pas forcément besoin de graphistes : tout peut rester textuel. Mais dans ce cas, le mieux est d'utiliser l'intégration en JavaScript, ce sera beaucoup plus facile (et le rendu du texte sera plus beau).

On ne peut pas vraiment comparer Inform et ink. Faire un RPG dans Inform sera vraisemblablement plus facile puisqu'Inform est conçu autour d'un modèle de monde et d'objets. Mais porter une histoire ink complexe en Inform serait un véritable cauchemar (points de rassemblements, tunnels, fils) en plus d'être désagréable à écrire (parce que je trouve la syntaxe d'ink hyperclaire).

tvisarl a écrit:Ce qui me confirme dans mon idée que ce n'est absolument pas un outil conçu pour la fiction interactive.

Ta définition de fiction interactive ne doit pas être très large... On peut très bien utiliser ink pour faire une simple histoire interactive purement textuelle, sans combat. C'est ce qui fait la force d'ink, je trouve : on peut aussi bien l'utiliser tel quel ou l'intégrer à un moteur de jeu plus puissant.


Donc je dirais que tout dépend de ce que tu veux faire. J'ai un projet ink en cours (j'ai beaucoup trop de projets :(), et jamais je ne considérerai le faire avec Inform !

Si tu as des questions plus précise sur ink, n'hésite pas !
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1071
Inscription: Mar Oct 04, 2011 11:18 pm

Re: Combat avec Ink

Messagepar tvisarl le Lun Avr 23, 2018 7:52 am

Très très intéressant, merci !

Inform comence à faire son âge, comme on dit, et les rumeurs des blogs disent qu'il est de moins en moins maintenu. Donc...

As-tu l'intention de faire un tutoriel sur les listes dans Ink?
tvisarl
Celui qui attend à l'affût
 
Messages: 137
Inscription: Sam Juin 18, 2016 9:20 am

Re: Combat avec Ink

Messagepar Natrium le Lun Avr 23, 2018 7:04 pm

En fait, Inform n'est pas mort ! Graham Nelson, son créateur, va parler de son avancement lors d'un petit événement un juin. J'ai vraiment hâte de savoir ce qu'il va dire ! Mais c'est vrai que niveau communication ce n'est pas top en ce moment.

En tout cas, je ne pense pas qu'il faille choisir ink juste parce que des rumeurs disent qu'Inform est abandonné. En plus, le souhait de Graham Nelson est de rendre Inform open source quand le code sera plus propre, donc si un jour il décide d'abandonner, je pense qu'il le fera pour que n'importe qui puisse le reprendre.

Pour ce qui est des listes dans ink, c'est vraisemblablement prévu. Il ne reste que ça et les threads à couvrir je pense. Mais ces sujets sont un peu plus compliqués et je n'ai pas trop utilisé ces fonctionnalités, il faut que je réfléchisse à quand je vais les faire.
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1071
Inscription: Mar Oct 04, 2011 11:18 pm

Re: Combat avec Ink

Messagepar Natrium le Mer Mai 09, 2018 8:08 pm

Inkle a partagé ce lien sur Twitter :

https://github.com/nbush/ink_roguelike

Il s'agit d'une sorte de mini-roguelike écrit en ink. Il n'y a apparemment pas de combat, mais il y a quand même une génération rudimentaire des niveaux, et une gestion d'objets et d'événements aléatoires. Peut-être que ça pourrait t'intéresser !
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1071
Inscription: Mar Oct 04, 2011 11:18 pm

Re: Combat avec Ink

Messagepar tvisarl le Sam Mai 12, 2018 7:37 am

Ça peut, merci.
Mais pour tout dire j'ai besoin de deux ou trois scènes de combat pour ma "Tombe dans la Campagne" et j'en ai déjà écrit une ! Avec Ink ! Et ça marche !
Comme je suis un perfectionniste, je suis en train de ré-écrire avec Ink "Lanista" ( Tu sais, ce vieil exemple de combat sous I7 ) en le rebaptisant astucieusement "Gladiator" pour qu'on ne voie pas que c'est la même chose. Et je fais ça avec des listes... Dans quelques jours, disons fin de la semaine prochaine, je devrais pouvoir mettre ça sur votre site, au cas où ça intéresserait quelqu'un.

En tous cas voilà déjà un petit test de listes :
Code: Tout sélectionner
// Deux listes de base.

LIST cuisine = (table), (tabouret), escabeau, (buffet)
LIST salon = sofa, tapis

cuisine = {cuisine}
salon = {salon}
Meubles dans la cuisine = {LIST_COUNT(cuisine)}

// Test présence tabouret dans cuisine.

VAR meuble = tabouret

{cuisine? tabouret:
    Le tabouret est dans la cuisine.
- else:
    Le tabouret n'est pas dans la cuisine.
}

// Test présence escabeau dans cuisine.

~ meuble = escabeau

{cuisine? escabeau:
    L'escabeau est dans la cuisine.
- else:
    L'escabeau n'est pas dans la cuisine.
}

// On met un escabeau dans le salon.

~ salon += escabeau

salon = {salon}

// Troisième meuble dans la cuisine.

Troisième meuble liste cuisine = {cuisine(3)}

// Pas possible : VAR Kitchen = cuisine

// Mais ça, ça l'est !

VAR Kitchen = 0
~ Kitchen = cuisine
{Kitchen}

-> END


Et pour te donner une idée, voilà le genre de choses que donne ma scène de combat. Rien d'original, mais ça marche. Très bien, même. Mais il faut raffiner tout ça, d'où "Gladiator".

Code: Tout sélectionner
Il lève sa faucille. Voyant que la menace est sérieuse vous sortez rapidement votre lampe torche, bien décidé à vous en servir comme d'une massue.

Vous vous observez quelques instants.

La faucille s'abat en sifflant.

Vous êtes touché, subissant 5 points de dommage.

Il vous reste 95 points de vie.

Vous donnez un grand coup de votre lampe torche.

Il réussit à éviter votre coup.

Il frappe de sa faucille.

Vous esquivez.

Vous donnez un grand coup de votre lampe torche.

Vous l'avez touché, lui causant 8 points de dommage. Une gerbe d'étincelles apparaît à l'endroit du coup !

Il lui reste 42 points de vie.
tvisarl
Celui qui attend à l'affût
 
Messages: 137
Inscription: Sam Juin 18, 2016 9:20 am


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron