Skip to content

Releases: DragonflyClient/client

Performance Update July 2020

27 Jul 12:07
Compare
Choose a tag to compare

This release has its focus on improving the overall performance when playing with Dragonfly.

Performance improvements

A new options section named Performance has been created to allow the users to customize the performance optimizations by Dragonfly.

Font quality

The font quality option has been moved from the User Interface section to the Performance section. It specifies the factor that the size of the glyphs (the different characters) is multiplied with before they are drawn. A higher value results in a higher font quality in the user interface. However, higher-quality fonts also means more effort for Dragonfly to drawn & render the glyphs which can result in performance issues, so be careful when adjusting this setting.

A quick example
If the client needs a specific font with the size if 19 it multiplies this size by the font quality factor, draws the glyphs, and scales them down to the original size of 19 when rendering them in a user interface.

Chunk update speed

Assuming the default Minecraft behavior, when joining a server, the chunks (parts of the world with a size of 16x16x16 blocks) are downloaded and the blocks are rendered in the client (called a chunk update). Since there can be a lot of chunk updates that are processed at the same time, this can result in performance issues and frame freezes, especially when running around and updating more chunks around you. To reduce the performance loss by this issue you can specify a delay between every chunk update, which relieves the client and distributes the updates over a longer time.

There are two "Chunk Renderer Workers" which run in parallel and process the chunk updates. After every chunk update, the delay is applied only in the worker that processed it. This means that with a delay of 5 ms and 2 workers, there are 2 chunk updates every 5 ms. To improve clarity and intelligibility, users specify the speed rather than the delay in the options. Below you find every selectable choice with the delay.

  • Slower: 50 ms
  • Slow: 40 ms
  • Normal: 30 ms
  • Fast: 20 ms
  • Faster: 10 ms (selected by default)
  • Realtime: no delay

Use scaled font renderers

Before this update, a new font renderer with new glyphs had been created for every size of a font. If this option is enabled (which is the default) this behavior is changed. Instead of creating new font renderers, old ones are re-used and the glyphs are scaled down during the rendering process (similar to the font quality). When a new font renderer is required, the client searches for existing font renderers with greater size and calculates the scale factor that must be applied to the greater one to achieve the size of the smaller one. Since this process is a lot faster, we advise you to keep this option enabled as it heavily improves the loading time of user interfaces. However, this option can make text-size transitions (like in the InputTextField) less smooth.

Save glyphs

The glyphs (mentioned above) that are required to create a new font renderer are drawn when a new one is created by the client. These glyphs are drawn onto an image so in the end, there is an image with all available characters that the font renderer can draw. To save performance, these images can be saved on your device. When they are needed by the client, Dragonfly reads the images from the disk instead of re-creating them. The images are saved in the %MINECRAFT_HOME%/dragonfly/glyphs/ directory. This directory should take less than 5 MB of disk space.

Screenshot utilities

The screenshot utility have been released to the stable channel after being tested in the early access channel for more than one week. When enabled (Mod Options → Client → Screenshot utilities) they provide useful actions after taking a screenshot.

  • Save - By default the screenshots are not stored on your device and are lost after Dragonfly has been closed. To permanently save the screenshot in your %MINECRAFT_HOME%/screenshots directory, use this action.
  • Open - Opens the screenshot in your default photo viewer. In order to do so, it is stored in the temporary %MINECRAFT_HOME%/temp directory, which is being deleted when closing Dragonfly.
  • Copy - Copies the screenshot to your clipboard allowing you to paste it anywhere.
  • Upload - Uploads the screenshot to Imgur. Please note that the Imgur API limits the uploads to their platform and the upload can take some time depending on your internet connection speed.

Updates

In the main menu, the name of the update is now shown below the version number and a link to the release notes was added to the top right of the screen.

Alpha Key Update

01 Jul 17:56
Compare
Choose a tag to compare

This release brings a key-system to Dragonfly which requires the user to enter a valid key before playing with Dragonfly.

Compatibility Notes

Since this release changed the name of several important directories, resources and even the version name, it is very important to use the latest installer from our website for the client to work properly!

Alpha Key System

This section describes the visible and invisible (running on the backend) processes of the key system and additional information about the behavior and implementation.

Valid Keys

A valid alpha key has the format XXXXXX-XXXXXXXX-XXXXXXXX-XXXXXX and contains only uppercase letters and numbers. An example would be 7B8CZP-T8HV8QHW-XWQC92ZT-QSJV81.

Generating Keys

Alpha keys can only be generated by the Dragonfly team using the Inception Cloud API Services. They are free to give keys to as many users as they want and also have no limitation in generating them.

Obtaining Keys

Like mentioned above, you can obtain alpha keys from any (high-ranked) Dragonfly team member. To get in contact with our team, please visit our Discord server. At the time of writing, we do not allow users to apply on our website, but since this can change in the future, consider visiting our website or follow us on Twitter to stay up-to-date.

Redeeming Keys

When launching Dragonfly without a key stored the client will ask you to enter a key. After confirming the key its format is validated and the Dragonfly backend is contacted in order to verify the key. If the key is valid it will be attached to your device by generating a unique machine identifier based on your hardware. After attaching a key to a specific machine, it can no longer be redeemed no matter on which device! Now the key is stored on your local machine and validated on every client startup. Only the machine that the key is attached to can validate it. If the stored key was deleted, it cannot be attached to your machine again, so it is worthless.

Validating Keys

When launching Dragonfly with a correctly formatted stored key the client will validate that the key exists and that it is attached to the current device. If everything is OK, no further action is required to be taken. On the other hand, if an error occurs, you will not be able to launch Dragonfly. It is worth trying to re-validate the key by restarting Dragonfly. Since Dragonfly is not activated without a valid key, you will have to obtain a new key if the validation still fails.

Storing Keys

Once a key is attached to your machine by Dragonfly, it is stored in a file. This file is located at %MINECRAFT_HOME%\dragonfly\alpha.key. Please DO NOT modify this file since it can break the key-storage and can make your attached key worthless. If this file is broken, contains an incorrectly formatted, or an invalid key, Dragonfly will require you to enter a new key on the next startup!

Client Brand Rename

We continued our effort on renaming the client from Inception Cloud Minecraft Mod to Dragonfly.

Icons

This released updated all icons (main menu, taskbar, Discord Rich Presence) to the new Dragonfly logo.

Colors

The background color of the main menu has been updated to match the changed logo. Other colors still remain in the previous design ("Cloud Palette") but will be updated with the UI Rework coming in the next release.

Launcher Profile

The latest installer (v1.2) updated the Minecraft launcher profile and name to match the new brand.

Directories

All directories that contain files related to Dragonfly have been renamed.

Version

The version has been renamed from ICMinecraftMod to Dragonfly-1.8.8.

Graphics Engine Wrapper

04 Jun 20:15
Compare
Choose a tag to compare

In this release, a Graphics Engine Wrapper has been implemented supporting features like animations, widgets and text fields.

Graphics Engine

The Graphics Engine allows the developer to easily create UIs based on Widgets. These widgets can have a state and can be animated.

Primitive Widgets

There are 6 primitive Widgets:

  • Arc
  • Circle
  • Filled Circle (extends Circle)
  • Line
  • Rectangle
  • Text Renderer

Assembled Widgets

Multiple widgets can be assembled in order to create a new widget. These widgets are called Assembled Widgets. There are currently 2 of them:

  • Rounded Rectangle
  • Text Field

Structure

In order to provide type-safe implementations of different features and animations, all widgets are built up on a base structure. There are 7 interfaces that specify how the widget behaves:

  • Align
  • Color
  • Dimension
  • Draw (implemented in every widget)
  • Outline
  • Position
  • Size

Animations

Animations are grouped in three categories: in, out and alter. While the alter-animations only modify the state of the widget, the in- and out-animations change the visibility state of the widget. There are currently 3 animations:

  • [in] FloatAnimationIn
  • [out] FloatAnimationOut
  • [alter] MorphAnimation (provides a smooth transition between two widgets of the same type)

Sequences

In order to provide fluent transitions between two values of the same type, we introduced sequences. These sequences interpolate between two values and can even have easing functions. While the default sequence is not bound to a type, there are two implemented sequences:

  • DoubleSequence
  • WidgetColorSequence

Font

All stuff that is related to drawing text on the screen has been moved to the font package. A new class called WidgetFont has been introduced that holds a font that can be rendered.

Debug Mode

The graphics engine also contains a debug mode, that helps developers build UIs for the mod. It can be activated with Ctrl + Alt + Shift + ..

Features

  • Added multiple choice option entries to the Mod Options UI
  • Option sliders can now be controlled with the arrow keys

Design

  • Added an About Screen: it can be accessed from the Main and Ingame Menu

Development

  • Since Kotlin isn't interoperable with Lombok, it has been removed from the classpath.

Issues

  • Transitions are now thread-safe
  • Removed an offset appearing when using the borderless window mode
  • Enabled logging when launched from the Minecraft launcher
  • Fixed the about screen causing the game to crash when below a certain size
  • Fixed chat closing animation
  • Increased the delay between the firing of Discord Rich Presence Callbacks (to 10 seconds)

Mod Options

14 Apr 10:53
Compare
Choose a tag to compare
Mod Options Pre-release
Pre-release

In this release, the Mod Options UI has been published with some additional features.

Mod Options

A new user interface called the "Mod Options UI" has been added.

  • Accessible from the Main Menu and the Ingame Menu
  • Contains a scrollable list with entries for options that can be modified by the user
  • Entry types:
    • Boolean
    • Range Double
    • Range Int
  • Specific options may require a reload or something else to apply. Therefore, these options can be saved externally what means that they will be applied when the user presses the "Save and Exit" button in the menu. To indicate this, a save icon appears next to the option name when the current value doesn't match the applied value.
  • All values that aren't externally saved, will be applied immediatly when changing the entry's state. (When using a slider, this will hapen when the user releases the mouse)
  • The icon in the bottom right of the screen allows to reload the Minecraft Mod while in-game. (Delay of 1000ms)

Features

The following features have been added and can be controlled in the Mod Options UI:

  • Windowed Fullscreen
  • Zoom Field of View
  • Zoom Sensitivity

The following features have been available before and can now be controlled in the Mod Options UI:

  • Font Quality
  • Scoreboard Title
  • Scoreboard Background
  • Scoreboard Scores
  • Zoom Animation

The following features have been added and cannot be controlled in the Mod Options UI (so far):

  • Asynchronous Screenshots

Design

The Design of the Ingame Menu has changed a little bit:

  • The "Back to Hub" button has been replaced with a "Mod Options" button
  • When in a Singleplayer World, the "Options" button shares the its with the "Share to LAN" button

Issues

The following issues have been fixed:

  • Last server Quick Action wasn't updated properly without restarting the game
  • When trying to close the ingame menu, the cursor was hidden and could no longer interact with the buttons

Mod Options UI Structure

For everyone who is interested: that's how the Mod Options UI is structured.

  • ModOptionsUI [GuiScreen]
    • BluePaletteButton (Save and Exit) [GuiButton]
    • ImageBUtton (Reload) [GuiButton]
    • UIList [GuiSlot]
      • OptionsSection
        • TitleEntry (Section Title) [UIListEntry]
        • OptionEntry (Section Options) [UIListEntry]

          OptionEntryBoolean
          OptionEntryRangeDouble
          OptionEntryRangeInt