KuestNodal quest editor
The application could now know where the player is inside the world. And thanx to a small JS hack it could also know where player makes some specific action.
The application is built around four main blocks, the quest editor, a frontend, a backend, and a greasemonkey script :
Blocks description :
- Editor : Allows to create a kuest through a nodal editor
- Frontend : Displays the quests created by the community
- Backend : Authenticate the users via OAuth, saves their created quests, and their progressions on played quests
Editor :This is from far the biggest piece of the project.
It allows to anyone to create quests by, basically, connecting nodes together. Each node can be a dialogue or an item that the player will get or will have to use on a specific place. Above that there are many other options to allow the player to make choices, to display events only at specific moments, play sounds, earn/spend money, etc...
The editor also allows to add/edit/remove characters and objects and provides a "debugging" tool to test our quests' logic without having to play it in real conditions which would be a nightmare.
Watch how the editor works to create a simple quest :
Frontend :The frontend simply lists all the quest created by the community.
It has 4 main parts which are :
- A welcome screen explaining the application before authenticating the user via OAuth
- The quest's list with a search engine
- The list of quest played by the current user and their progression
- A quest's details with possibility to start playing it
Backend :It simply exposes some services to save a quest from the editor to the DataBase as well as the players progressions while they are playing a quest. It also exposes two services to search and load quests as they are actually loaded through AJAX on the frontend. Finally it manages the OAuth authentication and redirections.
Greasemonkey :This is the "key" part of the project as it is what makes a quest playable right from the game's page.
It actually includes a flash module right under the game. It also grabs some information from the DOM's page like the current user ID and names as well as a the 3D coordinates of a specific user action that can be done in game.