Source of Tales

Participate in the creation of a new world.

News

» 30 May 2023 - Early Access and Stellar Login!

An initial early access release of Source of Tales is now available for Windows, Linux and Android! At the same time, it is now possible to log into the game using a Stellar Wallet (Albedo) instead of using a username + password.

The login screen, featuring a “Login with Stellar” button

Source of Tales is Back

The revival of this project was triggered by a grant from the Stellar Development Foundation as part of the Stellar Community Fund #10. The goal of this project was to integrate Stellar Blockchain as a way to login into the game as well as to use it to store character data. You can read more details about the initial plan and the benefits this could bring at Tales on Stellar.

Unfortunately, I have so far only managed to implement Stellar-based login as an alternative to using a username + password. Reviving this project after 10 years took way more time than I had anticipated and so did working towards the first official release.

But the result is a persistent online game that can be easily tried out on most major platforms in early-access form (hopefully we can cover macOS and possibly iOS soon as well). The project welcomes new contributors, who have the chance to see their improvements go live almost immediately!

Regarding the SCF #10 grant, we think the additions to enable Stellar for login will provide a good base for further integration of the Stellar Blockchain and are looking forward to persueing this in the near future.

Implementing Stellar Login

Since we didn’t want to be in a position to manage security sensitive data in the server or client, we’ve chosen to implement Stellar login based on external wallets. The most common Stellar wallets are browser-based and the first one we chose to integrate is the Albedo wallet. Albedo stood out as the simplest option for the user, since it does not require installing anything, not even a browser extension.

Introducing the Stellar Bridge

Our client is written in Qt/C++ and the manaserv server is also written in C++, so it was not immediately obvious how to interact with a browser wallet. We’ve chosen to introduce a NodeJS based server, the Mana Stellar Bridge. The Stellar Login page sends the login result to this bridge, which the bridge will verify before forwarding it to manaserv.

The remaining problem is that manaserv needs to know which of its connected clients authenticated with a particular Stellar public key. For this, we’ve introduced a randomly generated token. manaserv generates this token when a client connects and sends it to the client. The client opens the Stellar Login page with the token as a parameter. After calling the Albedo public key API, the public key, token and signature are sent to the Stellar Bridge, and from there to manaserv. In the end, manaserv can identify the account by the Stellar public key and the client using the token, and the login succeeds.

Changes to manaserv

Two new dependencies were added to manaserv for communication with the Stellar Bridge: uWebSockets for the connection and RapidJSON for parsing the message with the token.

Previously manaserv required a user to have a unique email address. When a user uses Stellar login, their email remains empty, which required a database change that allows the email field to be NULL.

Changes to the Website

The Stellar login page was added. I’ve also added a Privacy Policy and a page about account deletion, as required for publishing the client on Google Play.

Changes to the Client

A “Login with Stellar” button was added that would request the login URL Added Stellar Login button that opens URL in browser.

To make the flow a little more user-friendly, I’ve also added a page which the client shows while waiting for the user to authenticate themselves in the browser.

Further Stellar Integration

This is where I could take the Stellar integration with the funds we requested. Unfortunately I vastly underestimated the effort, but I think we’re on a good track with the introduction of the Mana Stellar Bridge. As a NodeJS server connected to manaserv, the bridge is the perfect place to build out the interaction with the Stellar Blockchain based on the official JS Stellar SDK.

Contributors Welcome

If this project sparks your interest, you’re welcome to join our team. Whether it is the Stellar integration or the game in general, please join the development and contribute to the code, the content, or even the design. We’d love to hear from you!

» 01 Nov 2013 - Tales for Tizen

This week, I was interviewed by Jarosław Staniek from the Qt for Tizen team about the new Qt-based client we’ve been working on.

Source of Tales is now fully playable with this new mobile-oriented client and we’re working on entering the Tizen App Challenge with it. This was a great opportunity for us to focus on making the game playable on mobile phones and tablets. We’re one of the first projects to use Qt for Tizen.

Due to some large changes on the server side, the old SDL-based client is no longer compatible. If you are interested in trying out the new client, please follow the updated instructions about how to get it compiled. It is not very suitable for playing on a desktop PC though, but that is something we hope to improve in the future.

» 18 Feb 2013 - We won!

We won the grand prize of the Liberated Pixel Cup! This project was started as an entry of this cup. Today the judging results got released!

We would like to thank everyone who made the Liberated Pixel cup possible. This includes:

Thorbjørn Lindeijer - Worked a lot at the engine, i.e. client and server software. Always an eye on gameplay issues. All OK in the machines room!

Erik Schilling - Put his hands at everything where it was required. This also includes client and server software and lots of game scripting. Somebody had an overview?

Felix Stadthaus - Mapping and fixes in the quest scripting, minor client hacks. Quality knows his name ;)

Jessica Tölke - For the awesome NPC dialogues and quest and content work in general. Kind people they are!

Stefan Beller - Did a lot balancing work and fixed all kind of issues everywhere. A lot of detail work!

Przemysław Grzywacz - Did most of our amazing maps. What a lovely world!

Those did also contributions:

Chuck Miller did a great commit on the client side to have a better look and feel for NPC dialogs.

Baŝto and Postremus who worked on hairstyles.

Tom Leese created this website using Jekyll!

Join us on our server: testing.manasource.org (it is in the server list!). We have some trouble with it lately. But we hope to be able to update it to latest code soon and resolve those issues!

Have fun playing and a big thanks to everybody again!

» 20 Aug 2012 - Review of our game by Nushio

Nushio started to review all of the Liberated Pixel Cup entries. He already reviewed us! Check out the review here: http://k3rnel.net/2012/08/16/lpc-game-review-lurking-patrol-comrades/.

» 06 Aug 2012 - So it begins...

We started this game as an entry of the Liberated Pixel Cup (http://lpc.opengameart.org/). This contest was divided into two phases. First the art phase and second the code phase. During the art phase the graphics you can see in our game were done. Later, in the code phase, this game was created. Back then this game was called “Lurking Patrol Comrades”. Shortly after end of the cup we had the time to think about a better name. We are now called “Source of Tales”.