Skip to content

Releases: Disk-Race-Games/AisOdysseyGame

[BETA] v0.3.0 - Chai arrays, for-each loops, and strong static typing

Choose a tag to compare

@raspberry-varg raspberry-varg released this 20 Jan 23:22
e27b963

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!

Choose a tag to compare

@raspberry-varg raspberry-varg released this 09 Dec 05:07
8c3cc32

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.zip is a possible fix for Chromebooks not running Vulkan properly. It is littered with visual bugs; please use odyssey_linux_x11.zip first 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

Key notes

  • No arrays in this release. This is a planned feature that will be coming soon ™️. This will also launch with a for-each loop.
  • 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