DragonRuby Game Toolkit 3.0 Release Candidate


Version 3.0 is at the release candidate stage! Here is the changelog for the release:

3.0 Change Log

[Note] Don’t panic or be afraid to upgrade.

This is a major release of DragonRuby Game Toolkit. It supports Ruby 3.0 language features and contains apis that are anywhere from 30% to 200% faster.

Even though there are breaking changes, the exceptions that may occur should be fairly straightforward to fix. If you need help, come to the DragonRuby Discord Server and we’ll help you upgrade.

[Samples]

  • A new 3D sample app has been added that shows how to perform Matrix transforms: The sample app is located at ./samples/99_genre_3d/03_yaw_pitch_roll/.
  • A Performance based sample app has been added that shows how to use Struct: The sample app is located at ./samples/09_performance/01_sprites_as_struct/.

[Support]

  • Labels can support larger font sizes.
  • Structs can be used with args.outputs.
  • gtk.benchmark is a bit more accurate.
  • Added gtk.docs_benchmark.
  • Moved ./exceptions and ./console_history.txt under ./logs.
  • Rendering performance improved for OpenEntity.

[MAJOR]

  • [BREAKING] Arithmetic and comparison operations no longer attempt to coerce/infer types. You will receive exceptions because of this. General troubleshooting tips for these exceptions:

    1. Carefully read the backtrace for Exceptions that are thrown (come to our Discord if you need help).
    2. Make sure all references to args.state have been initialized to a default value.
    3. Audit Int/Float operations to make sure they are operating on variables that have been initialized with a default value.
    4. Audit String operations to make sure they are operating on variables that have been initialized with a default value.
    5. Audit Enumerable operations to make sure they are operating on variables that have been initialized to a default value. Special thanks to erquint@discord, leviondiscord@discord, and danhealy@discord for continuing to raise debugging concerns with respect to arithmetic/implicit coercion.
  • [SAFE] Ruby 3.0 language features are now available. The new syntax should be compatible with Ruby 2.0.

  • [SAFE] Except to see anywhere from 20% to 200% boost in performance overall.

  • [BREAKING] DragonRuby’s “Level 1” Runtime has been updated to mRuby 3.0. This is a major release of DragonRuby Game Toolkit. The breaking changes should be minimal, but unfortunately do exist. Please report issues in our Discord and we will get them resolved right away: http://discord.dragonruby.org (mention @amirrajan).

    A special thank you to podo@discord, hiro_r_b@discord, kfischer_okarin@discord, and leviondiscord@discord for troubleshooting.

    A full explanation of DragonRuby’s Multilevel Runtime Architecture can be found here. Please read through it so you have a better understanding of how DragonRuby is different than other Ruby runtimes. It’s VERY IMPORTANT to educate yourself on these differentiators. Especially if you find yourself being asked: “Why are you using Ruby to build games? Ruby is slow.”

  • [SAFE] [DIVERGENT] DragonRuby’s Runtime returns a Float for integer division (retaining mRuby 2.x behavior). In mRuby 3.0, 1/2 would return 0 (Int). In the DragonRuby Runtime, 1/2 returns 0.5 (Float). Use Numeric#idiv for integer division.

  • [SAFE] [DIVERGENT] DragonRuby’s Runtime retained rand generation algorithms from mRuby 2.0. Incorporating 3.0’s RNG algorithm would have resulted in unnecessary breaking changes that would have invalidated replays of existing games.

  • [SAFE] [DIVERGENT] Hash in most cases will not discriminate between Float and Int keys (where the number after the decimal point is 0). This was existing mRuby 2.0 behavior and was retained within this major release to avoid unnecessary breaking changes related to key lookup.

[Bugfix]

  • args.inputs.mouse.wheel reports the correct direction on non Mac machines.
  • dragonruby-httpd works with Chrome.
  • Crashes related to unsupported Korean keyboard events on MacOS have been resolved. Thank you podo@discord for troubleshooting.

Files

dragonruby-gtk-macos.zip 61 MB
Version 95 Oct 16, 2021
dragonruby-gtk-linux-amd64.zip 58 MB
Version 95 Oct 16, 2021
dragonruby-gtk-linux-raspberrypi.zip 58 MB
Version 87 Oct 16, 2021
dragonruby-gtk-windows-amd64.zip 58 MB
Version 95 Oct 16, 2021

Get DragonRuby Game Toolkit

Buy Now$48.00 USD or more

Comments

Log in with itch.io to leave a comment.

(+1)

Great upgrade! Thanks and keep the awesome work!