Skip to content

Purpose & Objective

Kameron Brooks edited this page Aug 17, 2019 · 1 revision

CCL Objective

CCL gives you the ability to run external code in your application after release. This kind of functionality is useful for a variety of things in applications and games. A few uses are:

  • Custom event handling
  • User content generation
  • A user facing programming language that adds custom functionality to your app/game.
  • Applications can execute code sent to them from a server. (this is analogous to your browser executing javascript sent over from a web server.)

The initial motivation for this idea came from a physics simulator called Algodoo. In Algodoo, you could write custom code that would run when event listeners were called. You would write them in a language called, Thyme. This functionality was so powerful that you could use the physics simulator to do all kinds of interesting things. I once even built a computer in Algodoo, complete with external storage, runnable programs and peripherals. (In a physics simulator!)

The point is that, applications that have the ability to execute code that is created after release have the ability to have their functionally extended far beyond what was intended.

Why Base this Language on C?

This language was designed primarily with Unity integration in mind. As a unity plugin, most Unity developers will be familiar with C# which is definitely in the C family. It also borrows a few notes from javascript. (which is also a lot like c in its own right)

I wanted to take C# and javascript, and strip out a lot of functionality. I did not want the language to be able to dynamically allocate objects/variables at run time. (they are created when the script is "compiled")

Also sentiment I suppose...