/CNV-spec

A specification of the scripting language (CNV) used in PIKLib engine by Aidem Media

Primary LanguageC#

CNV-spec

An unofficial specification (find an official one, I dare you) of the so-called Cnv language.

The language has been used in the PIKLib (later: BlooMoo) engine in the Polish series of point-and-clicked games named "Przygody Reksia". The series (as well as the engine) was made by Aidem Media (currently: BoomBit). Due to character license expiring, the games are no longer distributed (since January 2016).

Why C#?

  1. Describing an interface using a well-known language means there exists a convenient tool like docfx or even doxygen to do the job smoothly in a standardized way.
  2. C# is kinda similar to Cnv thanks to it being an object-oriented language and having its class members divided into fields/properties, methods and events. However, there's a downside to be resolved yet: Cnv allows for a method and a property to share a name while C# doesn't.

How it is done

  1. All scripts from the series have been decoded and organized into a repository (a private one because making it public would of course be a copyright infringement).
  2. The scripts have been grepped heavily to extract all useful information like types, properties, methods and signals (events) available.
  3. The resulting list of symbols have been organized into C# code with no documentation.
  4. The documentation is slowly being re-created by checking the usage context of found symbols and observing the behavior of the original games after modifying their scripts.

The project has been hosted on Google Sheets so far, but it should be more readable and open to collaboration here.