Localized programming language Citrine

Let your dreams come to life! Easily create your own apps and games in your native language! Share with everyone on PC, mobile and game console.







Download Citrine Join on Patreon

It's really that simple!


Watch on Youtube!

How does it work?

HINT: New to programming in general? Check out the Citrine Manual for beginners and experienced programmers.


1. Sentences
Citrine reads programs from top to bottom, from the beginning of a sentence to the end. Each sentence ends with a period.

2. Variables
This is how you declare a variable in Citrine:

>> abc := 123.

3. Messages
You create a program by sending messages to objects (numbers, texts, booleans, sequences, etc.). The general notation is:

<object> <message>.

If the message has arguments, you mix them with the message as follows:

<object> <a>: <argument 1> <b>: <argument 2>

Here, a and b are both part of the same message. If a message consists of just a single character and there is also just one single argument (like with '+ 3') you may omit the colon.

4. Commas
You can chain multiple messages together. If a message has arguments, you must add a comma (,) if you want to send a follow-up message.

5. Tasks
You can group instructions by surrounding them with { and }. This creates a task. You can also send messages to tasks. For example you can send the message '* 3' to repeat a task 3 times.

{ :i ... } * 3.

At the beginning of the task you can add parameters (:i). With <- you return a response from a task. You can extend any object with new tasks by connecting them to a spefic message:

Number on: ['double'] do: {
    <- self * 2.
}.
Out write: 3 double, stop.

Cover of manual This guide is suitable for both beginners and advanced. Learn programming in a playful way with Citrine!

 

Manual | API

FAQ | Source code

 

Demo Game

level1 level2


An example game created with Citrine is Piccolo. In this game, you get into the role of a hotel bellboy who is in time suitcases have to deliver to impatient hotel guests. But beware! En route mag don't bump into the other hotel staff. Code/Graphics: Gabor de Mooij, Music: Bobby Babalas.

Piccolo Windows 1.1 (.exe)
Piccolo Linux 1.1 (.deb)
Piccolo Android 1.1 (.apk)
Piccolo MacOS 1.3b m1+ (.dmg)
Piccolo Source Code (.ctr)
Piccolo Manual (.pdf)
Piccolo PAD (.xml)

Looking for the old hit games that I created between 1994-2005?

 


Exportserver Beta

Drag your Citrine file to the box below to export!


Exporteer je eigen creatie naar Android, iOS, Windows, Linux, macOS, Steamdeck, Nintendo, Playstation, Xbox, Web/HTML5 en meer!

No access code yet? Become a member! As part of the Citrine-community you will get access to the export server. Membership is only € 5,- ($ 5) a month! Don't want to build an app yourself? Hire me!