Salut tous le monde !
En même temps que de comprendre tous les mécanismes de l'éditeur (Je suis entrain d'apprendre à concevoir les scripts, mais olala, c'est hardcore ça ! ^^), je fais mon propre monde à côté, que j'ai nommé "La prison d'Andors".
Alors ici, il sera pas question dès le début de récolter de bonnes armes et de bonnes armures, mais plutôt de fuir, en résolvant des énigmes basiques en début de partie. Pourqui fuir ? Parce que les gardiens de la prison sont tout simplement immortel.
Ajouté au faites de fuir, le fait d'esquiver les monstres... le but étant de stresser le joueur, sans oublier qu'il faut fouiller partout afin de découvrir des secrets, qui comportent maintes potions et clés.
Cependant, s'échapper de la prison en elle-même n'est pas difficile, car au final, qu'est-ce que la Prison d'Andors ? Est-ce le bâtiment en lui-même... où est-ce bien plus que ça ?
Une fois sortit de la prison, des gardiens encore plus puissants seront sur votre chemin.
Note : Vous devrez quand même combattre certains ennemis, hein ^^ Mais ici, le principal n'est pas le système de leveling, en général vous devrez fuir et éviter les monstres, mon but étant vraiment de vous stresser, ni plus ni moins.
Voici quelques images...
Parce que la prison...
...est bien plus grande qu'on ne le pense...
Pour terminer, sachez que j'ajouterais souvent des textes (Via un script basique), afin de mettre en route une sorte d'histoire. Ce texte représentera "vous", le joueur, qui sera entrain de se parler à lui même quoi ^^
Pour l'instant, 6 secrets ont déjà été fait. Quelques énigmes aussi. Actuellement j'ai 6 cartes, et je travaille d'arrache pied afin de vous concevoir un beau mode bien corsé.
Et dernière chose : Si vous ne prenez pas le temps de fouiller les environs, vous mourrez, ainsi ^^
J"ai hâte de pouvoir essayer
Eh bien ça m'a l'air d'être un projet ambitieux, je te souhaite bonne chance et j'espère que tu garderas ta motivation jusqu'au bout pour qu'on puisse en profiter.
Merci
J'ajouterais des images au fur et à mesure^^
Pour le moment, je bloque malheureusement sur certaines énigmes que j'aimerais faire, à cause de scripts assez costaud à réaliser !
Mais merci !
Ca à l'air classe, ambitieux en tout cas.
Joli boulot au fait pour le tuto sur l'éditeur, je jetterais un œil à l'éditeur quand j'aurais complètement retourné le jeu. Les scripts c'est en ruby façon RPG maker ? En tout cas bon courage pour la suite, je suis chaud pour tester si t'as besoin de retour
Je m'y connais pas, en script :x
Mais en gros, voilà ce qu'il faut faire pour avoir par exemple une énigme avec des plaques de pression, à faire descendre dans un certain ordre pour ouvrir une porte... :
counter_name = "hidden_path_counter_1"
reset_plate_name = "path_reset_1"
door_name = "hidden_path_door_1"
destination = {level=2, x=17, y=18, facing=2}
silent = 1
punish = 1
function checkPath(trigger)
local plate_check = {"pressure_plate_hidden_2","pressure_plate_hidden_
3","pressure_plate_hidden_4","pressure_plate_hidde
n_5","pressure_plate_hidden_6","pressure_plate_hid
den_7","pressure_plate_hidden_8","pressure_plate_h
idden_12","pressure_plate_hidden_11","pressure_pla
te_hidden_10","pressure_plate_hidden_8","pressure_
plate_hidden_9"}
local plate_fake = {"pressure_plate_hidden_13"}
if initialisation == 1 then
local unique_plate_check = removeDuplicates(plate_check)
local unique_plate_fake = removeDuplicates(plate_fake)
for i=1,#unique_plate_check do
local plate_entity = findEntity(unique_plate_check[i])
if plate_entity == nil then
print(unique_plate_check[i] .. " is missing")
break
else
plate_entity:setTriggeredByParty(true)
plate_entity:setTriggeredByMonster(false)
plate_entity:setTriggeredByItem(false)
plate_entity:setActivateOnce(false)
plate_entity:addConnector("activate",self.id,"chec
kPath")
local tele_name = plate_entity.id .. "_tele"
local tele_entity = findEntity(tele_name)
if tele_entity ~= nil then
print(tele_name .. " already exists")
else
spawn("teleporter",plate_entity.level,plate_entity
.x,plate_entity.y,plate_entity.facing,tele_name)
:setTeleportTarget(destination.x,destination.y,des
tination.facing,destination.level)
:deactivate()
if silent == 1 then
findEntity(tele_name):setInvisible(true):setHideLi
ght(true):setSilent(true):setScreenFlash(false)
end
end
end
end
for i=1,#unique_plate_fake do
local fake_entity = findEntity(unique_plate_fake[i])
if fake_entity == nil then
print(unique_plate_fake[i] .. " is missing")
break
else
fake_entity:setTriggeredByParty(true)
fake_entity:setTriggeredByMonster(false)
fake_entity:setTriggeredByItem(false)
fake_entity:setActivateOnce(false)
fake_entity:addConnector("activate",self.id,"check
Path")
local tele_name = fake_entity.id .. "_tele"
local tele_entity = findEntity(tele_name)
if tele_entity ~= nil then
print(tele_name .. " already exists")
else
spawn("teleporter",fake_entity.level,fake_entity.x
,fake_entity.y,fake_entity.facing,tele_name)
:setTeleportTarget(destination.x,destination.y,des
tination.facing,destination.level)
:deactivate()
if silent == 1 then
findEntity(tele_name):setInvisible(true):setHideLi
ght(true):setSilent(true):setScreenFlash(false)
end
end
end
end
if findEntity(reset_plate_name) ~= nil then
print(reset_plate_name .. " already exists in dungeon")
else
spawn("pressure_plate_hidden",destination.level,de
stination.x,destination.y,destination.facing,reset
_plate_name)
:setTriggeredByParty(true)
:setTriggeredByMonster(false)
:setTriggeredByItem(false)
:setActivateOnce(false)
:addConnector("activate",self.id,"destroyTele")
end
end
local range = #plate_check
local counter_entity = findEntity(counter_name)
local door_entity = findEntity(door_name)
if counter_entity == nil then
spawn("counter",self.level,self.x,self.y,self.faci
ng,counter_name)
:setInitialValue(range)
:setValue(range)
:addConnector("activate",door_entity.id,"open")
:addConnector("deactivate",door_entity.id,"close")
end
local counter_entity = findEntity(counter_name)
local plate_index = range + 1 - counter_entity:getValue()
if trigger ~= nil then
if trigger.id == plate_check[plate_index] then
counter_entity:decrement()
else
counter_entity:reset()
if punish == 1 then
spawn("poison_cloud",destination.level,destination
.x,destination.y,destination.facing)
end
activated_tele = trigger.id .. "_tele"
local tele_entity = findEntity(activated_tele)
if tele_entity ~= nil then
tele_entity:activate()
else
print(activated_tele .. " is missing. Internal script error")
end
-- spawn("teleporter",party.level,party.x,party.y,par
ty.facing,"temp_teleport")
-- :setTeleportTarget(destination.x,destination.y,des
tination.facing,destination.level)
end
end
if initialisation == 1 then
initialisation = 0
end
end
function destroyTele()
local tele_entity = findEntity(activated_tele)
if tele_entity ~= nil then
tele_entity:deactivate()
end
end
function isInTable(table, element)
for _,value in pairs(table) do
if value == element then
return true
end
end
return false
end
function removeDuplicates(t)
local t2 = {}
local idx = 1
for k,v in pairs(t) do
if not isInTable(t2,v) then
t2[idx] = v
idx = idx+1
end
end
return t2
end
initialisation = 1
activated_tele = ""
checkPath()
Tu m'as coupé l'envie de faire des donjons avec des énigmes là
En tout cas ça ressemble à du Ruby (j'y connais rien non plus) sur RPG maker je me contentais de télécharger des scripts déjà finis, comme 99 % des gens d'ailleurs.
Faut vraiment s'y connaître pour se lancer dans la création de script personnalisé.
Disons que ça, c'est un script "basique" pour faire l'énigme que j'ai dis ci-dessus ^^
Après, ils te disent ce qu'il faut changer dans le script (ID des plaques de pression, de la porte) afin que ça fonctionne dans le donjon. C'est super bien expliqué, mais en anglais ^^
et bien moi je teste
De nouvelles images
(Pourquoi ne pas faire le monde sur plusieurs étages ?)
(Comme vous pouvez le constater, il y a un soucis dans l'éditeur au niveau du texte. Il n'accepte pas les accents...)
(Une petite balaaaaade en forêêêt...)
(L'immortel gardien des ruines vous surveille...)
Dès que ton donjon est sortit je l'essaiearai
C'est une bonne idée ! une autre approche du monde de Grimrock.. La fuite ! On ne sera que bien plus stressé!
En revanche tu parles de combat ponctuels... C a d? Il n'y aura pas que des gardiens ?
Effectivement ^^ Tu auras tout de même des secrets comportants de bons matos (cape qui donne de la vitalité, etc). Mais dans l'ensemble, ce sera la fuite.
Par exemple, les monstres qu'on rencontre au début du jeu, dans la forêt (les sortes d'arbres), ils seront facilement tuables. Mais en général, le combat devra être évité !
Quand je dis "gardien", ici, je parle bien des gros balèzes qui te chargent dessus, comme sur la photo ^^ Où encore des squelettes, etc.
Bref, tu verras !
Actuellement ça fais 2 jours que je suis sur la même map (omg le nombre de choses que j'ai mise dessus, elle lag un peu ^^).
Pour finir, je diviserais mon "mod" (carte) en plusieurs chapitres.
Par exemple:
Chapitre 1 - L'évasion
Chapitre 2 - S'échapper de la forêt
Chapitre 3 - Trouver un bateau
Chapitre 4 - Prendre les clés du seigneur squelette
Chapitre 5 - ...
Le tout accompagné d'un son personnalisé et d'un petit texte que vous, le joueur, direz pendant l'aventure. Ainsi, ça fera une histoire divisée en plusieurs chapitres !
Alors, au programme:
-De nouvelles musiques
-De nouveaux boss
-L'utilisation de l'éditeur afin de varier beaucoup plus les décors, surtout !
Bonne chance, ça donne envie
J'ai toujours eu envie de jouer à une map plus centrée sur l'exploration que le combat
Merci !
Effectivement, je mise beaucoup sur l'exploration
D'ailleurs j'ai conçu une carte, qui sera en faites... une sorte de monde "imaginaire", qui sera l'endroit où le joueur pourra se téléporter suivant:
-Le chapitre qu'il souhaite (De 1 à 10)
-La partie du chapitre
Et il débloquera au fur et à mesure ces téléporteurs. Ce sera en quelque sorte une sélection de niveau.
Nouvelle image de la forêt de Shlipak:
Pas mal
Tu mise vraiment sur la verticalité j'ai l'impression, fini les map plates
Oui, c'est le but recherché !
Rendre les décors aussi variés et beau que possible
Je compte même rajouter de nouvelles textes. Les faire, je peux. En revanche, les ajouter in-game... s'avère autre chose !
Tiens, une autre idée que j'appliquerais ce soir, dans les salles où le joueur pourra se téléporter suivant le chapitre et la partie du chapitre, il y aura également une salle dédiée aux nombres de "secrets" par chapitre.
Je m'explique : imaginons, dans la Forêt de Shlipak, il y aie un total de 7 secrets à trouver. A chaque fois que le joueur aura trouver une secret, une lampe s'activera dans la salle de la sélection de chapitre. Ainsi, le but recherché sera de dire par exemple au joueur: tu as trouvé 4 secrets sur 7. J'utiliserais les plates-formes qui permettent de faire voler le gros cube, comme source de lumière. Bref, ça va être génial, j'en parlerais un peut mieux demain.
De nouvelles textures* (Merci la fonction éditer, qui n'existe pas).
A, et j'oubliais d'indiqué que j'ai rajoutés pas mal de nouveaux sons et de nouvelles musiques, actuellement ! J'essayerais de faire une vidéo, cependant elle sera muette, ce sera à titre d'exemple ^^
J'arrive déjà bientôt à mon premier boss, muahaha. Et j'ai même pu ajouter deux nouvelles armes !