Custom programming interpreter for ZSharp (Z#), a custom game programming language I made
Custom programming interpreter for ZSharp (Z#), a custom game programming language I made
Z-Sharp is no longer in development! This project was never meant to go beyond the scope of a simple thing I could make pong in, yet people continue to ask for features and fixes, and I continue to oblige. So sadly, even though this was a cool project in which I learned a lot, it will be ending now. I will eventually make some docs and standards for the syntax, and will still leave this repository open. This way anybody can make their own interpreter or compiler for it. I will also still accept pull requests for any changes to this repository.
Z-Sharp is a custom programming language I made because I don't like c++ very much (Z-Sharp's interpreter is written in c++ though). Z-Sharp scripts have the file extension .ZS. The base syntax and formatting I would say is quite similar to C# or Python, but differs as task complexity increases. It also has support for graphics using SDL2.
Before using Z#: There is no documentation, strings barely work, performance isn't great, the syntax is very specific, and most errors just cause it to crash without warning. I am just a single developer working on this during my free time; between school, other projects, and YouTube. Z-Sharp will most likely never be finished, since it was really supposed to end when the video was published about it. If you are trying to use a common programming language feature, ask yourself this: Is this feature required to play pong? If not, then most likely that feature has not been implemented yet. I initially only made the language so I could create pong and make a video about it, so it really is the bare minimum.
Downloading or installing is very simple, here is how depending on your version and operating system:
ZSharp-Win-Installer.zip.ZSharp-Win-Installer.zip and open the unzipped folder.ZSharp-Setup.exe. Run it, and follow the setup instructions.MS Visual Runtime and MSVC C++ Redistribute are installed. You can download them here from Microsoft> ./ZSharp.exe ./Pong-Example-Project/script.zsPong-Example-Project. It is a single script called script.zs, and you can open it with any of the methods above. It is also located on the releases page.If you don't want to install ZSharp on your device, or you want easier acces to the executable and .DLLs, another version is provided called
ZS_Win_Base_Raw.zip. This just contains all of the files the installer puts on your computer.
SDL2, SDL2 Image, SDL2 TTF Commands for apt and pacman below:$ sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev$ sudo pacman -S sdl2 sdl2_image sdl2_ttfZSharp-Linux.zip.ZSharp-Linux.zip and open the unzipped folder.ZSharp. Any time you want to execute a script, this is the program that will be used. You can use it like so:$ ./ZSharp ./Pong-Example-Project/script.zsPong-Example-Project. It is a single script called script.zs, and you can open it with any of the methods above.…Here is how to use graphics:
…Currently, ZSharp is VERY strict with formatting, and can throw an error if you forget to put a space somewhere. Also, speaking of errors, if your code has any it will show in the console. Errors are colored red, and warnings are colored yellow. A line number will also usually be provided. This is Not the line relative to the documents beginning, but rather the functions beginning. Example:
ERROR: line 5 in function MainThis is the 5th line inside of Main.
func Main()
{
// line 1
// line 2
// line 3
// line 4
int g = "s"
// ^ above line is the error, since it is line 5
}I am planning to change how error reporting works to report the document line number as well, but this is how it is for now.
No open issues yet, or sync has not completed.