Skip to content

A fantasy-console style graphics library for OCaml

License

Notifications You must be signed in to change notification settings

bximbo/Claudius

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claudius - A fantasy retro computer library.

Claudius started out trying to be a functional library that works like a fantasy console system like TIC-80or PICO-8: A way to do some retro-style demo graphics progeramming but in OCaml rather than in LUA. In its current form it doesn't do nearly as much as those fantasy consoles, instead just concentrating on enabling you to make graphical demos, and lacks things like audio, expressive input support, sprite editors and so forth. But if your goal is to enter something like Tiny Code Christmas or Genuary, then Claudius is designed for that use case.

Using Claudius

Claudius is a library for OCaml to do retro-style graphics, and so you need to create a new project that uses Cladius. But because Claudius isn't currently in Opam, you'll need to add it into your project using a vendor directory:

$ dune init proj myprogram
$ cd myprogram
$ mkdir vendor
$ cd vendor
$ echo "(vendored_dirs *)" > dune
$ git clone https://github.com/claidiusFX/claudius.git
$ cd ..

Docs

There are odoc documentation for most of Claudius. You can build that documentation with:

$ dune build @doc
$ open _build/default/_doc/_html/index.html

Or you can use whatever browser directly to open that index file.

Requirements

Claudius has been tested under macOS, Linux, and Windows via WSL, and requires that you have SDL 2 installed.

It requires OCaml 5 or newer (see here for installation instructions), and relies on tsdl for talking to SDL, and ounit2 for unit tests.

Troubleshooting

Some users running programs built with Claudius on Ubuntu via WSL may experience a segmentation fault causing the SDL window to crash. It can be fixed with adding the following environment variable before running your program. In your terminal enter the following commands:

$ export LIBGL_ALWAYS_SOFTWARE=1
$ dune exec myprogram

If you are using bash, you can add the above environment variable to your bashrc file:

$ echo 'export LIBGL_ALWAYS_SOFTWARE=1' >> ~/.bashrc
$ source ~/.bashrc
$ dune exec myprogram

About

A fantasy-console style graphics library for OCaml

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • OCaml 99.5%
  • Dune 0.5%