Product Updates

Developer Update: Moddio Game Engine 2.1.5-2.1.7 Release

Thanks for all your patience as we catch up on blog posts. We’ve had several engine releases, so we’re going to summarize them into one announcement. Moddio Engine 2.1.5, 2.1.6 and 2.1.7 are all now available! If you haven’t already tried them out, there are a ton of new changes, including 3D. As always, we recommend you use the latest version of the engine in order to get the most up-to-date features and bug fixes. More details below:

What’s New in 2.1.5:

Editor

  • Creators can now add monthly subscriptions to your games. You can find this under “Roles” in the “Moderate” section. Customize your subscriptions so players can get special benefits.
  • Added keybindings support and tooltips
  • Improved editor responsiveness
  • Added additional brush sizes
  • Upon unit type change, its selected inventory slot index resets to 0
  • Added undo/redo to clearLayer

Engine

  • Added 3D (ThreeJS) renderer:
    • Orthographic camera
    • Tilemap layers rendered as voxels
    • Rendering entities: Unit, Item, Projectile
    • Name labels
    • Attribute bars
    • Spritesheet animation
    • Speed bubbles
    • Skybox
    • Billboard mode
    • Turned flat layers into Voxel layers
    • Particles
  • Added “Idle Mode” – Players can stay in games after they have closed the window. Data for the player persists in the game and players can return to the game at the same point when they left
  • [Bug fix]: Player-variable and player-attribute values were becoming undefined when updating player type
  • [Bug fix]: Added catch for value == 0
  • [Bug fix]: Made fixes for the debris layer or other empty/non tile layers
  • [Bug fix]: Animation is no longer restored to the default animation
  • [Bug fix]: Hiding attribute when “value greater than min value”
  • [Bug fix]: Player variables reset when changing player type
  • [Bug fix]: Item destructure was not synced between client and server
  • [Bug fix]: Made fixes to A* AI (contributed by PineappleBrain)

Scripts

  • Added scripts for map layers
  • Added changeLayerOpacity action
  • Added action playerCameraSetPitch and parameter getRegionByName
  • Added playMusicForPlayerAtTime (contributed by bruh9000)
  • Add getServerLifetime and getServerStartTime (contributed by bruh9000)
  • Added round variable (contributed by bruh9000)

UI

  • Improved error reports: Added error reports for getValue and calc error point to the right action
  • Added mobile app purchases
  • Added color themes for shops
  • Removed default selected tab from owned skins in shop
  • Removed the mobile button label if an ability has an icon
  • Removed Raid Alert
  • [Bug fix]: Made fixes for logged out shop users
  • [Bug fix]: Shop rendering issues and bugs after purchase was made

What’s New in 2.1.6:

Editor

  • [Bug fix] Region editor switch to cursor did not work as expected

Engine

  • Improved 3D camera rendering
    • Chat bubble improved to be closer to the unit
    • Floating text improved
    • Made WASD and AD movement more responsive
    • Added camera pan and rotate functionality in the 3D map editor
  • Added Lerp as a variable function which helps creators to save time when they want to find the midpoint or value in between provided values (contributed by PineappleBrain)
  • Added system for refreshing inventory
  • [Bug fix] Physics bodies were twice the expected size when using custom dimensions
  • [Bug fix] Made a fix for accepting trade when lose control of unit
  • [Bug fix] Replace setInterval with callback for box2dwasm.init()
  • [Bug fix] Fixed a cancel trade bug
  • [Bug fix] Fixed duplicate username bug (contributed by bruh9000)
  • [Bug fix] Force stream of max min that were ignored when loading persistent attribute data on server
  • [Bug fix] Fixed Client Side Prediction teleport bug
  • [Bug fix] Make all keyboard keys and mouse buttons released when the browser tab is inactive
  • [Bug fix] Item drop was in the wrong position
  • [Bug fix] Hide custom UI whenever leaving the Play tab

Scripts

  • Added playerPurchasesItem trigger (contributed by bruh9000)
  • Added addNumberElement (Add (Number) element into object) Action (contributed by tohodragon)
  • Added sign-function-variable (contributed by bruh9000)
  • Added ApplyImpulseOnEntityAngle (contributed by PineappleBrain)

UI

  • Added Item Trading – Players can trade items amongst themselves
    • Add this with the “make player initiate trade with player” action to your scripts
    • Check out an open-source demonstration of this feature here
  • Added more default shop colors and improved the skin shop UI
  • Added ID and class to Unit attribute center bar UI for easier customization (contributed by PineappleBrain)
  • [Bug fix] Overlay UIs bug fix and new items (contributed by PineappleBrain)
  • [Bug fix] Items with the same cellsheet were overwriting each other
  • [Bug fix] loadMapFromString now ignores AI players

What’s New in 2.1.7:

Editor

  • New Feature: Multi-map: Creators can now build “Worlds” that can be built and owned together with “Map” owners
    • World Owners can build “World” Entities
    • World Entities are inherited as read-only by Maps
    • World owners can add creators to build and own Maps within the World
    • Player data, such as items, skins, stats, etc, are persistent between Maps
    • Players can join and respawn in different maps
  • Made improvements to editor live sync
  • Allow adding/removing player and units from player and unit groups respectively
  • Added billboard event
  • Added convertNumberToLargeNotation (contributed by bruh9000)
  • Increase notation amounts (contributed by bruh9000)

Engine

  • Improved 3D:
    • Added relative movement control scheme
    • Improved crispness of in-game labels
    • Added rendering and editing for regions
    • Added pointerlock support (for FPS camera)
    • Added more attribute bar styling options
    • Added clothes rendering
    • Added billboard bodies
    • Added support for 3D models and animations
    • Added entity placement for 3D models
    • Allow attribute bars to be positioned above a unit
    • Improved map editing: preview, undo/redo, drag to draw, right click to copy tile, hide/show layer, clear layer, fill tool
    • [Bug fix] Names were sometimes disappearing
  • Particles:
    • Added new system for particles: Start/Stop actions, Rendering, Destroy logic to clean up unused emitters
    • Added rotation of particle emitters based on target entity
    • Reversed angle of rotation for particle emitter
  • Improved loading time for games
  • Added support for hideEntity and showEntity actions. When an entity is hidden, it will be non-interactable in the game, meaning it is not visible, its tick won’t execute, and its body will be removed. This is useful when handing unit death when player shouldn’t be able to see/control their dead unit
  • Call hide/show methods when moving items to/from backpack
  • Made several mobile performance improvements
  • Improved saving map and made tileID start from 1
  • Hide backpack items from Unit.pickUpItem()
  • Enable units with AI enables to flip to face target
  • [Bug fix] Client-side reconciliation was broken because onPing functions were tracking the wrong time
  • [Bug fix] When “effect” was streamed using streamUpdateData, any other updates such as “isHidden” or “attribute” that were part of the same streamUpdateData were ignored. For example, if there’s a unit that has an effect playing upon death, the other updates such as attribute updating to 0 were ignored
  • [Bug fix] Particle emitter should not be created if variable is psuedo-undefined function value
  • [Bug fix] Dropped bodied which did not have an offset would never go back to 0 offset
  • [Bug fix] Made fixes so that transparent parts of PNG textures are not shown in particles
  • [Bug fix] Made a fix for items that disappeared when hitting save and apply
  • [Bug fix] Fix items to to display based on state and backpack status
  • [Bug fix] Fixed invisible weapons when calling Unit.changeItem()
  • [Bug fix] Fixes for niche unit and item “show”/”hide”
  • [Bug fix] Visibility and tween fixes relating to “Unit.changeItem()”
  • [Bug fix] Fixed issues where Item.use() was not called on client

Scripts

UI

  • Added HTML joysticks and buttons to mobile to allow for improved creator customization and better responsiveness
  • Added Abilities cooldown
  • [Bug fix] Item hover descriptions were not working due to race conditions
  • [Bug fix] Phaser pallet was not loading with multiple tilesets
  • [Bug fix] Image resize issues in skin shop
  • [Bug fix] Fixed bug where ability buttons were loaded on mobile

Getting Started with 2.1.7:

If you haven’t already, go try the new version in your own games! Go to moddio-link-001.admin-1ea.workers.dev and select the game you’d like to change engine versions. Click on Editor > Game Settings >Engine tab. You will see a field labeled “Engine Version” and you can change this to “2.1.7” to try out the newest features listed above. New games will automatically be created using Engine Version 2.1.7.

Your Feedback Matters:

We value your input and feedback so that we can continue to improve our engine. Go try out the new engine version and share your thoughts on our Forums. Please report any bugs and include the engine version you’re using.

Thanks for all your support!