Skip to content

Repository files navigation

Qyst logo

Qyst

A Myst-like point-and-click video game engine, written in C using SDL3.

The sole purpose of the engine is to display BMP images, play WAV sounds and MPEG-1 video, and have clickable hotspots -- so that you can make a point-and-click adventure game if you are creative enough!

Screenshot of Qyst v0.1

Prerequisites

Included libraries

Qyst make uses of

  • Dominic Szablewski's (phoboslab) PL_MPEG for playing MPEG-1 videos
  • rxi's log.c for logging

Make sure to clone the project using git clone --recursive to download them as well.

Editing

The Qyst executable expects, at the very minimum, a data/ directory containing a scenes.sexp S-Expressions file and a videos/intro.mpg file.

Modify the scenes.sexp file to start making your own game.

Limitations

The Qyst engine runs at a video resolution of 640×480, and ONLY supports .wav sounds and musics, .bmp images, and .mpg MPEG-1 videos.

As Qyst is licensed under the MIT license, you are free to edit the source code and allieviate those limitations to suit your needs.

Building

To build the project, simply run:

make

Or use the provided build script:

./build.sh

Running

Run the executable:

./qyst

Project Structure

  • src/: Source code and headers.
  • data/: Game assets (images, videos, sounds) and the scenes.sexp scene definitions file (S-Expressions).
  • external/: Single header external libraries

License

This project is licensed under the MIT License - see the LICENSE file for details.

The log.c library is copyright (c) 2020 rxi, under the MIT license.
The PL_MPEG library is from Dominic Szablewski, under the Public Domain?

The cursors are drawn by Kab Games, under CC BY 4.0.

About

A Myst-like video game engine. Currently very WIP!

Topics

Resources

Code of conduct

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages