Skip to content
/ soulinq Public
forked from areeq-hasan/soulinq

SOULINQ is a realtime two-player 2D platformer where players with entangled souls must navigate a world bombarded by cosmic rays attempting to observe their souls. The world is rife with inner fire capable of evolving their shared soul state. The goal is to be observed as alive.

Notifications You must be signed in to change notification settings

tgag17/soulinq

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SOULINQ

screen_soulinq

The Idea

SOULINQ A realtime two-player 2D platformer where players with entangled souls must navigate a world bombarded by cosmic rays attempting to observe their souls. The world is rife with inner fire capable of evolving their shared soul state. The goal is to be observed as alive.

Player Mechanics

The two players spawn in a jungle world, procedurally generated using quantum randomness, where they can move around using <WASD>, jump using <SPACE>, and attack using the left-mouse button. The souls of the two players are represented as qubits in a 2-qubit quantum circuit, where $|0\rangle$ represents death and $|1\rangle$ represents life. Their shared soul state is initialized to a state $\frac1{N}(\alpha|00\rangle+\beta|11\rangle)$ such that $\alpha\gg\beta$; specifically $\alpha=0.9$ and $\beta=\sqrt{1-0.9^2}\approx0.436$. In this state, being observed by a cosmic ray would collapse both souls to the death state with high probability.

Inner Fire Mechanics (1QB Gates)

Players can evolve their soul state by consuming inner fire, which are scattered across the map in a distribution generated using quantum randomness. Consuming inner fire acts the quantum gate denoted above the item on the player's soul. There are five rarities of inner fire:

  1. Common — Gray (46%) {Rx(theta) where $0 &lt; |\theta| &lt; \frac\pi8$}
  2. Uncommon — Green (30%) {Rx(theta) where $\frac\pi8 \leq |\theta| &lt; \frac\pi4$}
  3. Rare — Orange (15%) {Rx(theta) where $\frac\pi4 \leq |\theta| &lt; \frac\pi2$}
  4. Epic — Purple (8%) {Z, H}
  5. Legendary — Gold (1%) {X, Y}

Combat Mechanics (2QB Gates)

If the players attack each other, an RX gate controlled on the offender's soul and targetted on the defender's soul is enacted on the shared soul system. The damage dealt i.e. the angle of rotation is proportional to the offender's probability of being measured alive, and the defender has a defense modifier proportional to the defender's probability of being measured alive.

An additional weapon exists on the map that can be used once per game to act a SWAP gate on the shared soul system, effectively swapping the souls of the players.

Cosmics Rays (Measurement)

Cosmic rays spawn from the sky and chase the players. Their frequency is weighted by quantum randomness, and, as the game progresses, they move faster and track the player more accurately. When a cosmic ray comes in contact with a player, their soul is observed and its possible superposition collapses to either dead or alive. The end-game condition is the collapse of both players' souls, and a player wins if their souls is observed as alive. Note that the collapse of a single player's soul is not sufficient to determine their final state since the other player can resurrect/kill them by applying 2QB gates.

Gameplay Strategies

Players could adopt to play using a variety of strategies from collaborative ($|11\rangle$) to competitive ($|01\rangle$, $|10\rangle$) to spiteful ($|00\rangle$). Furthermore, the legendary gates and the swap weapon can allow for counterintuitive strategies attempting to raise the probability of the other player's soul being measured as alive before amplitudes and jumping into a laser immediately.

Implementation

The game is implemented using a Flask web server and a Unity game client. The two game clients stores the shared soul state and sends requests to the web server to simulate the soul state circuit and update the probabilities. Progress has been made on cosmic rays, combat, inner fire distribution, and map generation but was unable to make it into the final build. We hope to keep working on these aspects of the game.

About

SOULINQ is a realtime two-player 2D platformer where players with entangled souls must navigate a world bombarded by cosmic rays attempting to observe their souls. The world is rife with inner fire capable of evolving their shared soul state. The goal is to be observed as alive.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 97.4%
  • Python 2.6%