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:
- Carefully read the
backtrace
forExceptions
that are thrown (come to our Discord if you need help). - Make sure all references to
args.state
have been initialized to a default value. - Audit
Int/Float
operations to make sure they are operating on variables that have been initialized with a default value. - Audit
String
operations to make sure they are operating on variables that have been initialized with a default value. - 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.
- Carefully read the
-
[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 return0 (Int)
. In the DragonRuby Runtime,1/2
returns0.5 (Float)
. UseNumeric#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 betweenFloat
andInt
keys (where the number after the decimal point is0
). 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
Get DragonRuby Game Toolkit
DragonRuby Game Toolkit
An intuitive 2D game engine. Fast, cross-platform, tiny, hot loaded.
Status | Released |
Category | Tool |
Author | DragonRuby |
Tags | 2D, dragonruby, Game engine, Moddable, ruby |
More posts
- DragonRuby Hits v6.032 days ago
- 2023 Year End ReviewDec 25, 2023
- Mid-year Update: Quacks, Steam Distribution, Sound Synthesis, and Pixel ArraysJun 08, 2023
- DragonRuby 2023 RoadmapFeb 11, 2023
- DragonRuby + Steam DeckNov 12, 2022
- 3.0 RTM, Oculus VR, Indie Tier, and Black Friday DiscountsNov 22, 2021
- Oculus Quest and DragonRubyNov 10, 2021
- DragonRuby Game Toolkit 3.0 GM ReleasedOct 24, 2021
- Beta 2 released for DragonRuby Game Toolkit 3.0Oct 05, 2021
Comments
Log in with itch.io to leave a comment.
Great upgrade! Thanks and keep the awesome work!