Adventure Game Studio | Forums

Community => Adventure Related Talk & Chat => Topic started by: Monsieur OUXX on 27 May 2020, 12:44

Title: Ron Gilbert's "Delores" source code released on github
Post by: Monsieur OUXX on 27 May 2020, 12:44
What the what now?

https://grumpygamer.com/delores_dev

Ron Gilbert had previously released his engine for Thimbleweed park.
Now he has released the source code for a mini-game ("Delores") based on the engine.

I haven't investigated exactly what it means in terms of ready-to-use adventure game engine, or if there's a catch, but holy Molly!
Title: Re: Ron Gilbert's "Delores" source code released on github
Post by: Crimson Wizard on 27 May 2020, 13:44
Do I understand correctly that there's no engine sources, and the engine is available as a compiled executable that can run game data, such as this "Delores" source?

PS. "Delores" scripts are fun to read and compare to what could've been in AGS :)
Spoiler: ShowHide

Code: Text
  1. actorTurnTo(delores, DIR_BACK)
  2. sayLine(SAY(11889,"Ok, here goes."))
  3. breaktime(0.25)
  4. breakwhiletalking(delores)
  5. playAnimation(delores, "drinking_start")
  6. breakwhileanimating(delores)
  7. delores.sid <- playSoundAt(SOUNDID(drinking), delores)
  8. playAnimation(delores, "drinking_loop", LOOPING)
  9. breakwhilesound(delores.sid)
  10. breaktime(5.5)
  11. playAnimation(delores, "drinking_end")
  12. breakwhileanimating(delores)
  13. actorFace(delores, DIR_RIGHT)
  14. actorCostume(delores, "DeloresVomitAnimation")
  15. playAnimation(delores, "vomit")
  16. breaktime(0.5)
  17. delores.sid = playSoundAt(SOUNDID(vomit), delores)
  18. sayLine(randomfrom(SAY(11890,"*huurrrll*"),
  19.                    SAY(11891,"*bleeeuuurrrggghh*"),
  20.                    SAY(11892,"*raaaaaallllllllllffff*")))
  21. breakwhileanimating(delores)
  22. actorCostume(delores, "DeloresAnimation")
  23. breaktime(1)
  24. sayLine(SAY(11893,"*sigh*"))
  25. breaktime(2)
  26. actorTurnTo(delores, DIR_FRONT)
  27. sayLine(SAY(11894,"I feel better now."))
  28.  
Title: Re: Ron Gilbert's "Delores" source code released on github
Post by: Monsieur OUXX on 27 May 2020, 14:57
Do I understand correctly that there's no engine sources, and the engine is available as a compiled executable that can run game data, such as this "Delores" source?

Yes. But considering it's bleeding edge technology, the tradeoff is pretty good I'd say ;)
The only tricks are : 1) No commercial use. Only hobby use (I'm fine with that ;) ) 2) The tools are rather raw. Especially to import graphics and such. But they're good enough.

That being said I don't intend on switching to that engine, but I'm convinced that it would be totally feasible.
Title: Re: Ron Gilbert's "Delores" source code released on github
Post by: eri0o on 01 Jun 2020, 00:21
Interesting stuff. There is more info in the forums too (https://forums.thimbleweedpark.com/c/delores-engine/). I haven't read yet and did only a quick pass through the files on GitHub.


Animations
https://github.com/grumpygamer/DeloresDev/blob/master/Animation/ChuckieAnimation.json
I noticed frames are named? My guess is they use the image and the map in json files here (https://github.com/grumpygamer/DeloresDev/blob/master/SpriteSheets/Chuckie.json).
Then some build process runs some script that apparently cut so that the sheet is the name of the folder and the frame is the name of the png (https://github.com/grumpygamer/DeloresDev/tree/master/Images/Chuckie).
And also it's possible to add offset to frames apparently.

Debug Tools
Debug tools are made using Dear ImGui!!!
Spoiler: ShowHide
(https://i.imgur.com/AJ74SJ7.png)


Room design
https://github.com/grumpygamer/DeloresDev/blob/master/Wimpy/AStreet.wimpy
Apparently they are described in wimpy files. The walkable areas are described in polygons, there's a layer for lights. Also the room supports parallax layers.

Scripts and dialogs
https://github.com/grumpygamer/DeloresDev/blob/master/Scripts/
Apparently game logic is coded in dinky files (https://github.com/grumpygamer/DeloresDev/blob/master/Scripts/Defines.dinky). Including rooms logic (https://github.com/grumpygamer/DeloresDev/blob/master/Scripts/Rooms/Bathroom.dinky). Meanwhile dialogs are coded in yack files (https://github.com/grumpygamer/DeloresDev/blob/master/Scripts/Yacks/Dave.yack) which are a simplified version of Ink scripts.

Sound
https://github.com/grumpygamer/DeloresDev/tree/master/Sounds
Sound is using FMOD "apparently". More stuff from FMOD here (https://github.com/grumpygamer/DeloresDev/tree/master/Source/FMODSound).

Translations files
https://github.com/grumpygamer/DeloresDev/blob/master/Data/Translations_en.tsv
It appears there are IDs for the texts instead of text as keys.