Releases: Disk-Race-Games/AisOdysseyGame
Release list
[BETA] v0.3.0 - Chai arrays, for-each loops, and strong static typing
Thank you for trying out our game, it means the world to us. If you have any questions, please don't hesitate to reach out.
Hope to see what creative things you get up to using the Chai language :)
📋 Changelog
Combat
- Fixed all existing rounding errors. Finally, enemy and player stuff actually misses!
Chai
- Chai now has injected arrays of enemies! These can be iterated over through a
for (X in Y) {...}loops. - Add for-each loops!
- Added strong static typing for injected symbols. This new framework allows for the later addition of defining your own custom types, and making your code type-safe!
- This type safety also extends to iterating through arrays in a for-each loop, attaching type information to the loop identifier var.
- Added true class instancing in the back-end. Heap is now actually utilized.
- Currently, only injected symbols are initialized and stored in the heap.
- Next update will provide the ability for user-defined classes to be instantiated.
- In-game Chai guide still planned.
🍵 Example Chai Program
class Player {
function main() {
for (enemy in enemies) {
if (enemy.health > 20) {
print("Oh no!");
defrag(enemy);
}
else {
debugFor(enemy, 3);
}
}
function debugFor(enemyRef, howManyTimes) {
// for-each loop
for (i in range(howManyTimes)) {
debug(enemyRef);
}
// traditional for loop
for (var i = 0; i < howManyTimes; i = i + 1) {
debug(enemyRef);
}
}
}[BETA] v0.2.0 - Combat, items, function drops, and even a tutorial!
Thank you for trying out our game, it means the world to us. If you have any questions, please don't hesitate to reach out.
Hope to see what creative things you get up to using the Chai language :)
NOTE:
odyssey_linux_x11_x86_64_compatibility.zipis a possible fix for Chromebooks not running Vulkan properly. It is littered with visual bugs; please useodyssey_linux_x11.zipfirst before trying this build.
Chai
- Chai is a fully-fledged interpreted OO-programming language developed by Irii (Em/Robert Vargas) at DiskRace Games.
- It hosts a complete set of features including:
- Variables and class properties
- Functions and class methods
- Function calls with argument passing/parameter checks.
- Recursion
- While/Traditional For Loops
- If statements
- Local variables with a runtime call stack
- Binary, boolean, and inequality expression resolution with type casting (pending operator precedence)
- Symbols for your stats and enemies in battles are also injected into your environment!
- Soon ™️ to have arrays, for-each loops, and user-written class instancing :)
Tutorial
- The tutorial is continuing to evolve to be as dynamic and helpful as possible, and we are missing an in-game reference to the Chai programming language. In the meantime, please take a look at our Wiki page on how to play and code with Chai: https://github.com/Disk-Race-Games/AisOdysseyGame/wiki/How-To-Play
Key notes
- No arrays in this release. This is a planned feature that will be coming soon ™️. This will also launch with a
for-eachloop. - Class instancing is only for injected symbols (like Enemies in combat) for the time being. Instancing your own classes is a planned feature.
- Operator precedence is currently not implemented. This will be added in a future release.
- The boss room is unfinished. We are planning on adding a fully-fledged boss with it s own unique design, attack patterns, and intro animation.
Developers
@robertvargas-irq - Lead Developer, Music Composer, 3D Modeler
@Caborus - Developer, 2D Artist
@amarq30 - Developer
@danvez22NMSU - Developer
@Lenegrad - Developer