/qprocgen

Using quantum computing in procedural generation of a map

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

Contributors

  • Ghulame Mujtaba Arbi
  • Bernard Lebeko Poulo
  • Eric Ndirangu
  • Coral Featherstone

Procedural generation using quantum computing

(This is a hackathon project sprint project done in the Qiskit Camp Africa 2019) In computing, procedural generation is a method of creating data algorithmically as opposed to manually, typically through a combination of human-generated assets and algorithms coupled with computer-generated randomness and processing power. In computer graphics, it is commonly used to create textures and 3D models.

Map Generation: A map requires values over a 2d or 3d grid. It forms the space that a player occupies and interacts with. This will form the basis of what the layout would be.

Perlin noise is a procedural texture primitive, a type of gradient noise used by visual effects artists to increase the appearance of realism in computer graphics. The function has a pseudo-random appearance, yet all of its visual details are the same size. This property allows it to be readily controllable; multiple scaled copies of Perlin noise can be inserted into mathematical expressions to create a great variety of procedural textures.

We used the following link to come up with a perlin algorithm for generating our map. Here is the link: https://flafla2.github.io/2014/08/09/perlinnoise.html

Technologies used

  • Qiskit - For quantum computing. link: https://qiskit.org/. You can follow the instructions here to install the required software packages, or here if you prefer watching a video.
  • Jupyter notebook
  • Python

Applications

Quantum computation is a new architecture for computing. From this project it has shown that once full-scale, fault-tolerant quantum computation is realized, it will provide a wide range of new algorithms to solve various problems in many different areas. These will provide significant reduction in computational complexity compared to algorithms for standard computers. For games, this means that many more different tasks will be acheivable within the timescale of a loading screen.

Acknowledgments

  • This project was developed for "Qiskit Camp Africa" which was held from December 11-14, 2019. We could like to thank the organisers of this event.
  • We would also like to thank Ken Nixon who provided support and direction during the event.