For those who do not want to join the
discord server and ask questions here's an update:
Currently, it is being worked on the last piece of Game-Editor2. A custom C99-compatible interpreter by virtue of which handling game logic will be possible and easily accessible.
As of 27.03.2023 quite a lot of work has been made - over 15,000 lines of code + a helper library that is very useful on its own.
The toughest and most sophisticated features are almost completed, that is:
- A code processor (equipollent to the GCC preprocessor)
- Stack machine and a bytecode compiler
- The declaration's spiral parser
- Modified recursive-descent expression evaluator
- Diagnostic Messaging System (error/warning messages are nearly identical to those issued by GCC)
- Fully-featured variable declarations and initializations.
The preprocessor, the variables, and the expressions are the foundation of all programming languages and I am always trying to write the most efficient code possible.
Most work has already been done, but when the expression evaluator is fully completed, the rest will be straightforward since most language features, constraints, rules (such as grammar), and implementation details orbit around expressions.
(I admit I did mess up once, to slightly implement features in the wrong order, forcing me to write a lot of extra code and also burn an entire source file)
A few words on the performance.
I am quite convinced my system will have the fastest runtime speeds compared to... well, the functionally non-existent competition of free, fully-featured, C99-compatible interpreters.
The virtual compilation (bytecode compiler) is fast too, but the runtime opcode execution engine is reasonably more important as it is what affects the performance during game testing.
Will it be faster than python?
Yes, no and I don't know.
Let me explain, Python is a language that is optimized and created to be interpreted and C is not. Without getting too much into the technical details, C is much slower to understand by a computer program.
Yet, python receives a lot of hate for being too slow, so what does this mean for my GCI?
I don't know. The way I implemented it, I don't see any reason for the runtime to affect performance significantly whatsoever. In fact, I think it will be possible to program your game WHILE the game is running.
Moreover, the interpreter's runtime performance doesn't even matter that much, because the final compiled game, will not ship with the interpreter at all - all the code will be compiled into the executable itself.
Anyway, I also have a lot of absolutely fantastic and exciting ideas about the IDE, but I don't want to share too much here