Skip to content

CometEngine_2.0-RC1

Pre-release
Pre-release

Choose a tag to compare

@OriolCS2 OriolCS2 released this 28 Jan 22:54
· 6 commits to main since this release
2a274a2

[2.0-RC1] - 2026-01-28

Breaking Change

  • Removed C# scripting support. AngelScript is now the only supported scripting language.

Added

  • Project manager new functionalities:
    • Added a search bar to the top menu for finding projects.
    • Added "Scan" button to search for projects inside a folder recurive.
    • Added a favourite button for every project in order to show it at the top.
    • Added the current version of a project.
    • Added the last modification date for a project.
  • Each project now includes a "project.cometProject" file at its root to mark the folder as the project’s entry point.
  • Opening the engine when the scripts project does not compile now can trigger two new popups:
    • Just once when the engine is openend a popup saying that the scripts does not compile and that it should be fixed before anything else is triggered.
    • When the scripts now compile correctly (only once and just if the engine was opened when they did not compile correctly) a new popup saying that it is better to reload the project is triggered.
  • Support for playing videos:
    • VideoClip: New resource that can read video files.
    • VideoPlayer: New behaviour class that is used to display a video clip in some different modes.
  • The .fnt files now can be imported and used as BitmapFont to render using the BehaviourText.
  • Slider to modify the volume when previsualizing an audio on the AudioSample inspector.
  • Now a text box explaining what is happening is displayed at any collider inspector when the instanciable entity is selected instead of showing nothing.
  • Now in a CometEvent clicking at an entity that owns a callback will highlight it at the hierarchy.
  • Also a behaviour can be dropped inside a CometEvent and their Entity will be taken as reference.
  • Added the tag "Overriding" for the platform export options tab of the textures and texture atlas that are enabled.
  • The behaviour text now uses the kerning of the font.
  • Now the inspector of a Font shows its texture and all the available glyphs.
  • Some AudioEffect parameter:
    • AudioEffectEcho: filter.
    • AudioEffectReverb: width, damp, roomSize, freeze, wetMix.
  • Script logs are now shown in the console panel with their script path, function name, and line number. Double-clicking a log entry opens and focuses the corresponding code in the editor.
  • AssetIcon now always shows the icon, even if the asset is not loaded.
  • Scenes referenced in the inspector of a Script or CometObject are now automatically included in the build.
  • New metadata attributes:
    • TreeNode: Makes a group with all the fields that has the same tree node name and shows them as a tree.
    • Tab: Makes a group with all consecutive fields that has a Tab attribute and shows them with tabs.
  • The behaviour text now has a font by default.
  • Added a new (+) button in the Animation Event Inspector that allows adding a new event at the currently selected frame.
  • Added support for 9-sliced sprites using configurable borders to maintain correct aspect ratios. Borders have to be set using the SpriteEditor panel.
  • Added render modes for the SpriteRenderer and Image:
    • Simple: Renders the sprite normally (same as in previous versions).
    • Sliced: Uses the sprite’s borders for 9-sliced rendering, preventing distortion and preserving aspect ratio.
    • Tiled: Repeats the sprite using 9-sliced rendering, preserving the corners while tiling the edges and center.
  • Added an option to add a UI background panel when right-clicking the hierarchy.
  • New UI Behaviours added:
    • Raw Image: New behaviour that allows rendering a RenderTexture inside a Canvas.
    • RectMask: It allows to create a rect zone for the UI where only there it will be rendered.
    • Mask: Creates a mask based on the image attached to the same entity, allowing rendering only within that area.
    • HorizontalLayout: Organizes all children horizontally.
    • VerticalLayout: Organizes all children vertically.
    • GridLayout: Organizes all children into a grid.
    • LayoutElementConstraints: Defines the preferred, minimum, and flexible sizes of an element.
    • ContentSizeController: Adjusts the transform’s size to fit all its children.
    • ScrollRect: Allows a rect’s content to be scrolled inside another rect.
    • Scrollbar: Interactable bar that allows scrolling a ScrollRect.
    • Toggle: Interactable that maintains an on/off state.
    • ToggleGroup: Groups multiple toggles so they behave as a unified set.
    • Slider: Interactable that holds a bar with a value between the minimum and maximum.
    • InputField: Interactable that captures keyboard input to update a Text with what the user types.
    • UIParticleSystem: Allows rendering the entity’s particle system directly inside the canvas.
    • DropDown: Interactable that open a popup options menu when clicked.
  • The UI Interactable color transition now includes a “Use Scaled Time” property to determine whether the fade duration uses scaled time.
  • The UI Interactable color/sprite transition now takes by default the self image as a target.
  • Added “Ignore Mouse” property to CanvasGroup, allowing it and all its children to ignore mouse interactions.
  • Added "Mouse Filter" property to UI Graphics, allowing control over how mouse events interact with them:
    • PROPAGATE: Mouse events propagate upward until handled.
    • STOP: Mouse events are handled only by this entity.
    • IGNORE: Mouse completely ignores this graphic.
    • BLOCK: Mouse events stop when reaching this graphic.
  • Text now has a property to auto set the font size to the biggest possible.
  • Added sortingLayout and sortingLayoutOrder to the Canvas Screen Mode Camera.
  • Added sortingOrder to the Canvas Screen Mode Overlay.
  • Nested canvases can override sorting and be rendered independently from their parent canvas.
  • ShowNavigation option for selectables now saves the state when closing the app and recovers it when opening.
  • Added Get/SetPosition method at Window namesapce.
  • Added an options button to the instantiable entity header in the scene view, allowing changes to be saved or discarded.
  • New window configuration properties:
    • Initial Position Mode: An enumeration that defines how the initial position of the window is determined. The possible values are:
      • ABSOLUTE: The window position is set using the InitialPosition value.
      • CENTERED_PRIMARY_SCREEN: The window is centered on the primary display.
      • PRIMARY_SCREEN: The window position is set relative to the top-left corner of the primary display using the InitialPosition value.
      • CENTERED_OTHER_SCREEN: The window is centered on a non-primary display specified by InitialScreenIndex.
      • OTHER_SCREEN: The window position is set relative to the top-left corner of a non-primary display specified by InitialScreenIndex using the InitialPosition value.
      • CENTERED_SCREEN_WITH_MOUSE: The window is centered on the display where the mouse cursor is currently located.
      • SCREEN_WITH_MOUSE: The window position is set relative to the top-left corner of the display where the mouse cursor is currently located using the InitialPosition value.
    • Initial Position: Value specifying the X and Y coordinates for window placement, used in conjunction with certain InitialPositionMode settings.
    • Initial Screen Index: An integer specifying which display to use for positioning when certain InitialPositionMode settings are selected.
    • Always On Top: Flag that indicates whether the window should always stay on top of other windows.
    • Viewport Aspect Ratio: An enumeration that defines the aspect ratio of the game viewport.
      • Free Aspect: The viewport will resize freely.
      • 16:9, 4:3, 21:9, 16:10, 3:2, 5:4: The viewport will maintain the selected aspect ratio.
      • Custom: The viewport will maintain the custom aspect ratio defined in Custom Aspect Ratio.
    • Custom Aspect Ratio: Value specifying the custom width and height ratio when Viewport Aspect Ratio is set to Custom.
    • Keep Aspect Ratio On FullScreen: Flag that indicates if the aspect ratio should be maintained when in FullScreen mode.
    • Keep Aspect Ratio On FullScreen Desktop: Flag that indicates if the aspect ratio should be maintained when in FullScreenDesktop mode.
    • New SplashScreen settings: enable or disable the splash screen, change its size, and assign a new texture.
  • Closing the Editor while the SpriteEditor has unsaved changes now triggers a popup asking the user whether to save or discard them.
  • Added suport to Undo/Redo when editing an sprite in the sprite editor.
  • If the editor engine crashes, it will generate a .txt with the report of the crash.
  • The panel that displays information about the selected sprite in the SpriteEditor can now be minimized and maximized.
  • Added an option for the scene camera to simulate the culling view of another game camera.
  • AudioClip now has platform-independent properties, such as Streaming Enabled.
  • Creating a new project with the project manager now adds a basic gitignore with all files that Comet generates that should not be uploaded.

Changed

  • Editor font now is OpenSans. It is bigger and clearer.
  • Project manager moved stuff:
    • Button "New" and "Import" have been moved to the top menu bar.
    • Button "Delete Missing" has been moved to the bottom utility bar.
    • Version has been moved to the top right menu bar.
  • The popup "InstanciableEntity has been modified" its title has been renamed to "InstanciableEntity modified".
  • Right-clicking an animation event on the timeline now shows individual options for each event instead of only removing all events at the current frame.
  • The Sprite Editor tool gizmo now uses an improved handler.
  • The default button texture has been updated to one with rounded borders.
  • Behaviour image now has by default a white quad as a sprite.
  • Creating a UI Behaviour via right-click on the hierarchy will now look for an existing canvas, or create one if none is found, and then create the entity there.
  • Clicking in the scene now cycles through overlapping objects one by one, instead of always selecting the first one.
  • The Canvas and CanvasGroup options under the Inspector’s “UI” → “Add Behaviour” menu have been moved to the “Layout” category. The same change applies to the Main Menu Bar under “Behaviour”.
  • The UI interfaces IBeginDragAction, IDragAction, IEndDragAction, IPointerClickAction, IPointerDownAction, IPointerEnterAction, IPointerExitAction, IPointerUpAction and IPointerUpOutsideAction now its method receives a PointerEvent parameter that contains information about the event.
  • FullScreenMode SIZE has been renamed to WINDOWED.
  • The AudioClip Preload Data property is now platform-independent, allowing it to be configured per platform.

Removed

  • Some AudioEffect parameters:
    • AudioEffectEcho: dryMix.
    • AudioEffectReverb: referenceLF, gain, roomRolloffFactor, decayTime, decayHFRatio, reflectionsLevel, reflectionsDelay, wetLevel, dryLevel, reverbDelay, diffusion, density, referenceHF.
  • Some AudioEffects: Chorus, Compressor, Fader.
  • Removed the support for the external code editor for VisualStudio. Now VSCode is the only one supported.
  • Removed the "version.cometVersion" file from the "Library" folder.
  • Selectable SpriteTransition no longer includes the Normal Sprite property, as the normal state now uses the attached image by default.
  • Canvas Screen Mode sortingOrder property has been removed.

Fixed

  • Default input bindings for UI Left and Right for controller were inverted.
  • Switching the window to fullscreen or fullscreendesktop made it impossible to exit it.
  • Executing CometEngine with a console on Windows now will show the logs.
  • Modifying a canvas with the screen space render mode was causing a crash when an undo action was performed.
  • Behaviour text now can render characters with accents correctly.
  • Copying and pasting a canvas that had ScaleWithScreenSizeScaleMode was causing a crash.
  • Closing Comet with a copied canvas in the cache that had a camera attached on the WorldSpace or ScreenSpace was causing a crash.
  • Closing Comet with a copied script behaviour after play and stop a game was causing a crash.
  • Cameras that were rendering to a render texture were rendering to the game view as well.
  • Once an AudioMixerGrup was set to an AudioSource, it was not possible to remove it again.
  • Changing the 'Max Size' of a texture with no RGBA format in its inspector to a size that is smaller than the original was causing the texture to lose its alpha.
  • Some fonts were not positioned correctly when rendering them using the BehaviourText.
  • When using the search in the panel project sometimes textures appeared black.
  • If the pc crashed (blue windows) while CometEngine was opened, the next time Comet is opened it crashes.
  • Selecting a tile and setting the desired tile object via the inspector was not rendering correctly the tile.
  • The properties for the PanelAnimatorTimline that were from a script where not showing the name of the behaviour.
  • When the InputWrapper script was deleted using the internal CometEngine filesystem or an external one and then on the ProjectSettings/Input was indicating that the InputWrapper already existed.
  • The popup "InstanciableEntity modified" now its text fits correctly.
  • Importing a folder that already exists, now will overwrite file per file and import them again.
  • Clicking a mixer or a layout at the project was not focusing the correct one at the mixer panel.
  • Custom shaders were not able to use sprite renderer sprite texture.
  • Closing Comet while playmode was active caused the current scenes to be saved as the last opened. As a result, the next time Comet started, those scenes were reopened instead of the original ones from before entering playmode.
  • Tilemap brushes are now disabled when the panel is hidden.
  • Dropping a texture with single sprite mode to the inspector script field variable was not reacting. Now it is possible to set it.
  • Inspector script sprite fields now correctly accept textures in single sprite mode (previously dropping them had no effect).
  • The renaming input box for sub-assets was incorrectly positioned at the start of the next asset.
  • The renaming resource input box sometimes never disappeared, depending on the first action after requesting the rename.
  • An animator state node was sometimes not deselected when another item was selected, requiring a double-click to select it again.
  • Using the AssetIcon attribute on a Texture or Sprite field for a CometObject displayed the icon in the project file nodes as expected, but if later it was set to null, the icon remained visible.
  • TextEditor was not capturing the keyboard so it was impossible to write.
  • Animator nodes showing animation progress no longer grow in size.
  • Scripts dropped onto hierarchy entities that are not selected now correctly attach even when another entity is selected.
  • Dropping a script onto an entity in the hierarchy was deselecting everything.
  • When the window was in fulldesktop mode and the focus was gained/lost then it turned to black for one second.
  • The pref directory was not working on Linux.
  • Default build platform was always windows, now the default platform is the platform where Comet is running on.
  • Joysticks and hapatic were not working on linux.
  • Switching from fullscreen to windowed mode could cause parts of the screen that were outside the new resolution to retain old frame data instead of being properly cleared to black.
  • Filtering a resource by type in the project panel could cause multiple resource types to appear selected at once.
  • Filtering by instantiable entities in the project panel did not detect any, even when they were present.
  • Undoing after modifying a Rect Transform was not restoring the entity to its correct position.
  • Undoing after deleting an entity could crash the engine.
  • Adding a canvas to a entity when that entity was already inside another canvas was scaling the current entity incorrectly.
  • Nested canvases were not rendering according to their hierarchy, which sometimes caused incorrect render layouts.
  • Nested canvases are now refreshed and adjusted correctly when the main canvas changes its render mode.
  • Editing a draggable number field with the mouse, confirming with Enter, and then editing a different field caused Undo to revert both edits instead of just the last one.
  • Disabling a CanvasGroup now stops applying its properties.
  • Fixed some issues when rendering a text with truncate activated.
  • Huge performance improvements when moving a RectTransform within large hierarchies.
  • Fixed an issue where adding an AudioListener after some audios had already started caused them to still be inaudible.
  • Fixed an issue where opening a prefab containing UI elements would not render them.
  • Loading scenes asynchronously could sometimes duplicate some entities.
  • Double-clicking a folder in the Project panel would select another file or folder occupying the same position after entering it.
  • Fixed error of Pivot/Center and Bounds transformation tool for sprite renderers when using the tool if that sprite had a pivot.
  • Launching the engine using a shortcut (such as the Windows taskbar) could cause unexpected behavior.
  • Closing the engine while Play Mode was active with the Play view maximized caused it to remain maximized the next time the engine was opened.
  • Selected entities and resources were sometimes deselected unexpectedly.
  • World Canvases were not sorted as expected.