Wave Engine Hammerhead Shark (2.1.0) has been released today and we’re happy to show you all the things we have been improved since our last version. From all of our work, the next new features stands out from the rest:
- New profile system.
- Visual Editor Offline mode.
- Project Upgrader Tool.
- Spine upgrade.
- TileMap upgrade.
- iOS Storyboard support.
- Static entities on Visual Editor.
- Non-serializable entities.
New profile system
Thinking about multiplatform projects when we need different settings to different types of project we’ve developed a completed new profile system for Wave Engine and fully integrated with our Visual Editor. For example, we can have two profiles for the Android platform, one of them with textures in higher resolution. That can be achieved with this new system.
More information in this article.
Visual Editor Offline mode
Now Visual Editor can work offline if you’ve already logged in. Once you log in, you can use our editor with not internet access during a period of time of about 1 week.
However take in mind that if you create a new project, the Nuget package download will fail so you won’t be able to build the solution.
New Project Upgrader Tool
Listening to our community we decided to help developers to upgrade their Wave Engine projects from old versions to the latest ones.
That upgrade is automatic and will occur just loading the project in our Visual Editor. A dialog will appear letting you know that the upgrade is about to take place and will ask for user confirmation.
After this, the project will be upgraded to the current Wave version. This includes all the compatibility issues so this will save a lot of time to the developers.
In fact, Wave Engine Hammerhead Shark has introduced some changes that force the project to be upgraded, like:
- Updated .winfo file format, to add support to the new profile system.
- Updated .weproj file format, to allow the user to set up its own profiles.
We will keep updating this tool for future releases.
Updated Spine version
Wave Engine Hammerhead Shark has updated its Spine extension to the 3.0.8 version. In addition, we’ve fixed several issues and added new features in our integration like:
- Opacity and color support.
- Origin error fix.
- Spine Events support.
- Spine binary file format (.skel) support.
- Drag&Drop. Now you can drag a .skel asset from the editor to the Visual Editor viewport and a Spine entity will be created.
- Bounding rectangle problem fixed.
Updated Tiled Map version
- File format update.
- Layer offset support.
- Image layers support.
iOS Storyboard support.
Wave Engine now allows being integrated into a Storyboard Control in iOS platform and embed Wave into an iOS application and draw it into a UIView. This opens a lot of possibilities in your iOS applications.
Static entities in Visual Editor
In Wave Engine, an entity can be declared as static when it won’t change or move. It’s interesting because WaveEngine internally batches all static entities using the same shader, painting all of them at once. This feature was added time ago in the engine, but now it can be used into Visual Editor and it’s useful when we need to draw lot of copies of the same object (trees forests, columns in a temple, etc..)
To enable/disable this just check/uncheck the IsStatic checkbox on the EntityDetails panel when an entity is selected.
This new version allows declaring entity as non-serializable by code. Sometimes we want to create a component which creates some entities in the Initialize() method. For example, we want to create a factory that populates a scene with other entities according to some parameters (random asteroid field for example).
If we do that, we risk populating the Visual Editor with non-desired entities. To avoid that, we can:
- Create the entities in the Update() method of a Behavior. This is not a good solution because forces the user to convert simple components to behaviors with just one useful Update call.
- Set those created entities as non-serializable by setting its IsSerializable property to false. This is what we’ve done in Wave Hammerhead Shark.
newEntity.IsSerializable = false;