Skip to content

Vrixyz/backpack

Repository files navigation

Backpack

Inventory backend system for items from different games.

Pitch

I have a vision featuring multiple games impacting each others.

Games can be social beyond their limited scope:

My mom did beat the 6th level of her favorite match3 game, she was able to send me a skin for my favorite FPS!

My Friend hatched eggs in their clicker game, so I can spawn more dragons in my RTS.

Single players can find their value too:

I finished my exploration game and gained a garden to use in that other construction game!

I'm going to play this god-simulation game to add a few planets to my other galaxy-simulation game.

Getting started

Understand Backpack

Helpful documentations for the project:

🚧 Use Backpack 🚧

From source ?
  • Get the url of the Backpack server you connect to. 🚧 Official server WIP.
  • Use the admin interface to set up items and server to server communication
    • Sign up/Sign in with provided means (email/password or third party (github...))
    • Create an app
    • Create one or several item
    • You will use app's and items' IDs to develop your app which interact with those app/items.
Choose a strategy to update your items, see sequence diagram for more details

flowchart TD
    A[Backpack Authentication]
    LGC('lazy' Game client )
    B[Backpack API]
    SGC('secure' Game client)
    AE[Email/Password]
    AO["(WIP) other auth providers"]
    SG('secure' Game server)

    style LGC stroke:#ffff00,stroke-dasharray: 5 5

    style SGC stroke:#00ff00,stroke-dasharray: 5 5
    style SG stroke:#00ff00,stroke-dasharray: 5 5

    LGC--> A
    LGC --> B
    SGC --> A
    A --> AE
    A --> AO
    SGC --> SG
    SG --> B
Loading

  • Lazy: Clients call directly to Backpack, potentially enabling users to abuse forging requests.
  • Secure: Clients call to another logic server (which you are responsible of) to refill or use their items, those operations are done through server-server communication.

Trust

Items management

At the core of backpack is a trust system. as an app admin, you will trust any app you give rights to your items, to behave accordingly. There will be rights to limit the kind of operations apps can do on items, but logic is ultimately owned by the trusted app, so beware of who you trust, and how you trust.

A trusted app, who has been given rights to an unowned item, will trust its item's admin to let it use the item, and to be sensible when adding other items' rightholders.

DDOS

For now, It may be easy to DDOS Backpack, as it's possible technically to create thousands of accounts, apps, items... but I trust users to be responsible.

When the project is more mature, app limits