Giter Site home page Giter Site logo

qiskit-for-gamedev's Introduction

Qiskit for GameDev

This is a repo to put useful tools for making games using Qiskit, IBM's open source framework for making software for quantum computers. Codes used here were derived from works of James Weaver, Huang Junye and Asier Arranz.

There is also information here on using MicroQiskit, a minimal reimplementation of Qiskit in various programming languages.

Game engines

Game engines that have been used with Qiskit

  1. Pygame: native python open soure framework for making games.

  2. Unity: a very popular cross-platform game engine.

  3. Minetest: an open source Minecraft-like voxel game.

  4. Jupyter Wigets: Not really a game engine, but a way of implementing interactivity with Python.

Game engines that have been used with MicroQiskit

MicroQiskit can be used with all of the above, as well as the following.

  1. PICO-8: a fantasy console for making, sharing and playing tiny games and other computer programs. Very popular in game jams.

Game engines we will target in future

  1. Godot: a trending, free and open-source game engine.

How to use?

Tutorials on how to use the tools here will be added soon. Please check examples of the usage in the examples below.

Examples

Pygame

Unity

  • QPong-Unity: QPong rewritten in Unity, custom built for IBM Quantum Arcade machine.

Minetest

  • QiskitBlocks: Game that teaches quantum computing using Qiskit in a Minetest block world.

Jupyter Widgets

  • Jupyter Widget game engine: A simple game engine (and example game) that can be embedded in Jupyter notebooks and run the the IBM Quantum Experience.

PICO-8

  • Fredventure: A minimal PICO-8 game, with terrain generated by porting the single qubit algorithm explained here.

Other useful repo for making games with Qiskit

Making games in PewPew with Pygame and Qiskit:

qiskit-for-gamedev's People

Contributors

huangjunye avatar quantumjim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

qiskit-for-gamedev's Issues

Hardware support

Unity supports many hardware platform: Windows, Mac, Linux, Android, iOS.

For pygame there is PewPew.

For PICO-8, there is GameShell, etc.

Would be cool to support retro consoles such as gameboy. Not sure how feasible is that. One idea is to add HTTP in GBStudio.

Provide a generic cloud server for everyone to use

It would be great if we can provide a generic cloud server of Qiskit for everyone to use. I think IBM Q experience might already have that. If not, I can put this simple server on IBM Cloud and let other people use. I should use Greg’s account for higher memory and traffic

Architecture

Python native game engines (pygame, and perhaps Godot?) can call python methods directly.

Non-python game engines will use HTTP to call flask server hosting Qiskit. Perhaps ZeroMQ can be used in place of HTTP in future for faster communications

Cloud+WebGL

Should include tutorials for making WebGL games with python server hosting on cloud, such as IBM Cloud.

Supports for game engines

Need to wrap up existing repo for supports in pygame, Unity, and minetest.

Future support include:

  1. PICO-8
  2. Godot

Principles

The idea for this repo is make tools that supports actual Qiskit, not a stripe down version of it. The games should be able to run on an actual quantum computer, even though it will probably be run on a Qiskit simulator.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.