1 (edited by Mistermind 2018-07-27 19:10:05)

Topic: Universal Fighting Engine 2.0 Beta

Finally, after 2 years in development UFE 2.0 is right around the corner!

The new version has been specially developed with backwards compatibility and online play in mind. If you already have a game published (or near release) this upgrade is perfect for you.
UFE 2.0 will not be replacing UFE 1.x. This version of the product is specially designed for large teams and developers that are serious with their investment. UFE 1.x will still be updated to accommodate to Unity's latest versions.

Universal Fighting Engine 2 Unity thread:
https://forum.unity.com/threads/univers … -2.541442/

The biggest addition to the engine is the new Netcode 2.0, which supports rollback and photon:
http://www.ufe3d.com/doku.php/global:netcode

Check the "What's Next" section in the link above for a hand full of extras coming soon (list might change according to time, priorities and feedback)

Give it a try, download the standalone here (Windows Build). To search for games select the "Online" option (US server).

UFE 2.0 PRO - $899 (available now)
- Core compiled
- Skype Support

UFE 2.0 Source - $1499 (available now)
- Open source
- Skype Support

UFE 2.0 Enterprise - $4500 (available now)
- Open source
- Skype Support
- Repository Access
- Unlimited Seats*

* UFE 2.0 Enterprise is a new kind of service specially designed for large teams. Instead of buying multiple copies for your team, buy this license instead. This is an addendum that replaces Section 2.3 in the standard Asset Store EULA:

END-USER is granted a license to install and use Assets on an unlimited number of computers provided that these computers are either all (i) physically located at a single physical location ("Site") belonging to END-USER, or (ii) laptops are employed at the same Site provided all such computers have appropriately licensed Unity software installed, and consequently, any Asset may only be used at particular Site or on computers assigned to END-USER's employees employed at the same Site and may only be moved to another Site subject to prior written approval from Licensor; provided, however, that for so long as the "UFE 2.0 Enterprise" Asset is categorized as a non-Editor Extension Asset, then END-USER is granted an enterprise license to install and use such UFE 2.0 Asset on an unlimited number of computers provided that these computers are either all (i) owned by END-USER or its affiliates and subsidiaries, or (ii) owned by subcontractors of END-USER working on the development, distribution, or marketing of END-USER’s electronic game and interactive media provided all such computers have appropriately licensed Unity software installed.

Feel free to contact me at mistermind@live.com for more details.

Like UFE? Please rate and review us on the Asset Store!
Questions about the Forum? Check out our Karma FAQ.

Re: Universal Fighting Engine 2.0 Beta

Yes!!!  I'ts finally here!  Take my money!!!

Re: Universal Fighting Engine 2.0 Beta

I have UFE:source + p2p + fuzz ai add ons.

How would upgrading work for me, would I get a free update to 2.0?

Share

Thumbs up Thumbs down

4 (edited by MrPonton 2018-04-29 12:02:19)

Re: Universal Fighting Engine 2.0 Beta

I'd be interested in learning if 2.0's input system allows for the directionals to be interpreted as button presses instead of only axes.

My desire is due to my system I'd prefer it if I can get the input system to function similar to buttons (or digital exclusive), as it makes it easier to calculate and handle diagonals and motion better than the existing axes method.

A use case example would be:
Press and hold forward
- Game recognizes forward is pressed and animates walking forward. Input display shows Forward icon.
While still holding forward, press and hold Down.
- Game recognizes Down + Forward is pressed and crouches. Input display shows Down-Forward icon
While still holding Down, release Forward.
- Game recognizes Forward has been released, remains crouching, and input display shows Down icon has been "pressed"

Current system doesn't recognize that Down has been pressed at the third step, and it doesn't show it in the input display. The user is forced to Hold Forward, Hold Down, Release both, then hold down. Due to the axes.

You can test my desired method by trying it with buttons, which do function in the way i'd want inputs to function.

Steviebops wrote:

I have UFE:source + p2p + fuzz ai add ons.

How would upgrading work for me, would I get a free update to 2.0?

Considering 1.x will still be updated. I presume that at this time MisterMind is not supporting an upgrade discount? And if I am wrong I apologize and would also be happy to see a discount applied for such a high buy-in cost.

Share

Thumbs up Thumbs down

Re: Universal Fighting Engine 2.0 Beta

MrPonton wrote:

Considering 1.x will still be updated. I presume that at this time MisterMind is not supporting an upgrade discount? And if I am wrong I apologize and would also be happy to see a discount applied for such a high buy-in cost.

Yes, when the product is available on the Asset Store you will be able to upgrade from 1.x to 2.0 (discount based on the version you have).

Like UFE? Please rate and review us on the Asset Store!
Questions about the Forum? Check out our Karma FAQ.

Re: Universal Fighting Engine 2.0 Beta

Do you have a price-plan for those of us upgrading yet?

Share

Thumbs up +3 Thumbs down

Re: Universal Fighting Engine 2.0 Beta

I'm definitely interested in the upgrade pricing, especially for those who have invested a lot of time in making games with this.

And 1500 is A LOT for a single person... especially if I need certain changes to be added and it will require a source version to make those changes.

8 (edited by AlexarahX 2018-05-16 16:02:17)

Re: Universal Fighting Engine 2.0 Beta

Awesome news MisterMind! But will you still be implementing any new features for UFE 1.x when you release an update for it or will UFE 1.x only have just compatibility updates for newer versions of Unity?

Share

Thumbs up Thumbs down

Re: Universal Fighting Engine 2.0 Beta

AlexarahX wrote:

Awesome news MisterMind! But will you still be implementing any new features for UFE 1.x when you release an update for it or will UFE 1.x only have just compatibility updates for newer versions of Unity?

Yes. If a feature released on UFE 2.0 is not too complex to adapt, I'll update both.

Like UFE? Please rate and review us on the Asset Store!
Questions about the Forum? Check out our Karma FAQ.

Re: Universal Fighting Engine 2.0 Beta

Mistermind wrote:
AlexarahX wrote:

Awesome news MisterMind! But will you still be implementing any new features for UFE 1.x when you release an update for it or will UFE 1.x only have just compatibility updates for newer versions of Unity?

Yes. If a feature released on UFE 2.0 is not too complex to adapt to 1.x I'll update both.

That's awesome thanks for not leaving UFE 1.x high and dry in terms of new features! smile

Share

Thumbs up +1 Thumbs down

Re: Universal Fighting Engine 2.0 Beta

Hmm I see that you released UFE 1.8.6 Source MisterMind but on my Sellfy account it still says UFE 1.8.5 Source. I've waited a couple of days and the download link for UFE Source on my Sellfy account hasn't shown the update.

Share

Thumbs up 0 Thumbs down

Re: Universal Fighting Engine 2.0 Beta

AlexarahX wrote:

Hmm I see that you released UFE 1.8.6 Source MisterMind but on my Sellfy account it still says UFE 1.8.5 Source. I've waited a couple of days and the download link for UFE Source on my Sellfy account hasn't shown the update.

Its updated now. For future reference, please make a new topic (instead of replying to unrelated topics).

Like UFE? Please rate and review us on the Asset Store!
Questions about the Forum? Check out our Karma FAQ.

13 (edited by immortalfray 2018-05-31 10:52:09)

Re: Universal Fighting Engine 2.0 Beta

So with the new 2.0 coming out, how will network play affect the personal changes I've made to the core of ufe?  I'm very novice when it comes to network code so I'm training up in prep for 2.0.  Will I be able to use the core changes I've made and have them come across the net?  Mainly I've added image effects to moves and powsr/speed multipliers as well as a dynamic power guage.

Re: Universal Fighting Engine 2.0 Beta

immortalfray wrote:

So with the new 2.0 coming out, how will network play affect the personal changes I've made to the core of ufe?  I'm very novice when it comes to network code so I'm training up in prep for 2.0.  Will I be able to use the core changes I've made and have them come across the net?  Mainly I've added image effects to moves and powsr/speed multipliers as well as a dynamic power guage.

Good question. I'll try to answer the best I can.

Say you have a multiplier that changes the damage of attacks based on the remaining life points. Before, you had something like this:

public class ControlsScript : MonoBehaviour {
(...)
    public float afkTimer;
    public int airJuggleHits;
    public AirRecoveryType airRecoveryType;
    public bool applyRootMotion;
    public bool blockStunned;
    public float comboDamage;
    public float dmgMultiplier; // Your variable
(...)

    private bool DamageMe(float damage){
(...)
        dmgMultiplier = 1 + ((opInfo.lifePoints - opInfo.currentLifePoints)/100);
        myInfo.currentLifePoints -= damage * dmgMultiplier;
        if (myInfo.currentLifePoints < 0) myInfo.currentLifePoints = 0;
        UFE.SetLifePoints(myInfo.currentLifePoints, myInfo);
(...)
    }
}

It will now look like this:

public class ControlsScript : MonoBehaviour {
(...)
    public Fix64 afkTimer;
    public int airJuggleHits;
    public AirRecoveryType airRecoveryType;
    public bool applyRootMotion;
    public bool blockStunned;
    public Fix64 comboDamage;
    public Fix64 dmgMultiplier; // Your variable
(...)

    private bool DamageMe(Fix64 damage){
(...)
        dmgMultiplier = 1 + ((opInfo.lifePoints - opInfo.currentLifePoints)/100);
        myInfo.currentLifePoints -= damage * dmgMultiplier;
        if (myInfo.currentLifePoints < 0) myInfo.currentLifePoints = 0;
        UFE.SetLifePoints(myInfo.currentLifePoints, myInfo);
(...)
    }
}

In the example above, the only big difference is that you must recast the value from float to Fix64. Now let's say you need dmgMultiplier to be tracked in case of a rollback. In that case you can track by 2 different means: Auto Tracking and Manual Tracking.

Auto Tracking
Its the simplest way, but it consumes more CPU. To use it, under the Rollback Netcode options, toggle "Track UFE Variables" and add the RecordVar attribute to your custom variable:

[RecordVar] public Fix64 dmgMultiplier;

Manual Tracking
More complicated but has 0 impact on the CPU.
To use it, first we need to open UFE\Scripts\Netcode\NetworkCore\FluxStateTracker.cs and find nearby variables to where you are casting dmgMultiplier. Following the example above, you would need to do the following:

(...)
protected static void LoadCharacterState(FluxStates.CharacterState state, int player) {
(...)
        controlsScript.blockStunned = state.blockStunned;
        controlsScript.comboDamage = state.comboDamage;
        controlsScript.dmgMultiplier = state.dmgMultiplier; // Your variable
(...)
}

(...)
protected static FluxStates.CharacterState SaveCharacterState(int player) {
(...)
        state.blockStunned = controlsScript.blockStunned;
        state.comboDamage = controlsScript.comboDamage;
        state.dmgMultiplier = controlsScript.dmgMultiplier; // Your variable
(...)
}

Now open UFE\Scripts\Netcode\GameState\FluxStates.cs and add the casting for the new state variable:

(...)
public struct CharacterState {
(...)
        public bool blockStunned;
        public Fix64 comboDamage;
        public Fix64 dmgMultiplier; // Your variable
(...)
}

Doing this will ensure your variable is tracked and deterministic on all machines.

Now, on a side note, if you have added a new option in one of the editors, remember that aside from casting it to Fix64, you also need to change how the editor reads it:

Before:

moveInfo.elementalDmg = EditorGUILayout.FloatField("Elemental Damage:", moveInfo.elementalDmg);

After:

moveInfo._elementalDmg = EditorGUILayout.FloatField("Elemental Damage:", (float)moveInfo._elementalDmg);

To carry the values from your previous project to UFE 2.0, instead of replacing the casting, create a new variable below your previous one and add the prefix "_". Now add the following to UFE\Editor\UFEUpgrade.cs and run the update:

(...)
private static void SpecialMoveUpdate(MoveInfo move) {
        if (move == null) return;
        move.version = 2f;
        move._elementalDmg = move.elementalDmg; // Your variable
(...)
}
Like UFE? Please rate and review us on the Asset Store!
Questions about the Forum? Check out our Karma FAQ.

Re: Universal Fighting Engine 2.0 Beta

Mistermind wrote:
immortalfray wrote:

So with the new 2.0 coming out, how will network play affect the personal changes I've made to the core of ufe?  I'm very novice when it comes to network code so I'm training up in prep for 2.0.  Will I be able to use the core changes I've made and have them come across the net?  Mainly I've added image effects to moves and powsr/speed multipliers as well as a dynamic power guage.

Good question. I'll try to answer the best I can.

Say you have a multiplier that changes the damage of attacks based on the remaining life points. Before, you had something like this:

public class ControlsScript : MonoBehaviour {
(...)
    public float afkTimer;
    public int airJuggleHits;
    public AirRecoveryType airRecoveryType;
    public bool applyRootMotion;
    public bool blockStunned;
    public float comboDamage;
    public float dmgMultiplier; // Your variable
(...)

    private bool DamageMe(float damage){
(...)
        dmgMultiplier = 1 + ((opInfo.lifePoints - opInfo.currentLifePoints)/100);
        myInfo.currentLifePoints -= damage * dmgMultiplier;
        if (myInfo.currentLifePoints < 0) myInfo.currentLifePoints = 0;
        UFE.SetLifePoints(myInfo.currentLifePoints, myInfo);
(...)
    }
}

It will now look like this:

public class ControlsScript : MonoBehaviour {
(...)
    public FP afkTimer;
    public int airJuggleHits;
    public AirRecoveryType airRecoveryType;
    public bool applyRootMotion;
    public bool blockStunned;
    public FP comboDamage;
    public FP dmgMultiplier; // Your variable
(...)

    private bool DamageMe(FP damage){
(...)
        dmgMultiplier = 1 + ((opInfo.lifePoints - opInfo.currentLifePoints)/100);
        myInfo.currentLifePoints -= damage * dmgMultiplier;
        if (myInfo.currentLifePoints < 0) myInfo.currentLifePoints = 0;
        UFE.SetLifePoints(myInfo.currentLifePoints, myInfo);
(...)
    }
}

In the example above, the only big difference is that you must recast the value from float to FP. Now let's say you need dmgMultiplier to be tracked in case of a rollback. In that case you can track by 2 different means: Auto Tracking and Manual Tracking.

Auto Tracking
Its the simplest way, but it consumes more CPU. To use it, under the Rollback Netcode options, toggle "Track UFE Variables" and add the RecordVar attribute to your custom variable:

[RecordVar] public FP dmgMultiplier;

Manual Tracking
More complicated but has 0 impact on the CPU.
To use it, first we need to open UFE\Scripts\Netcode\NetworkCore\FluxStateTracker.cs and find nearby variables to where you are casting dmgMultiplier. Following the example above, you would need to do the following:

(...)
protected static void LoadCharacterState(FluxStates.CharacterState state, int player) {
(...)
        controlsScript.blockStunned = state.blockStunned;
        controlsScript.comboDamage = state.comboDamage;
        controlsScript.dmgMultiplier = state.dmgMultiplier; // Your variable
(...)
}

(...)
protected static FluxStates.CharacterState SaveCharacterState(int player) {
(...)
        state.blockStunned = controlsScript.blockStunned;
        state.comboDamage = controlsScript.comboDamage;
        state.dmgMultiplier = controlsScript.dmgMultiplier; // Your variable
(...)
}

Now open UFE\Scripts\Netcode\GameState\FluxStates.cs and add the casting for the new state variable:

(...)
public struct CharacterState {
(...)
        public bool blockStunned;
        public FP comboDamage;
        public FP dmgMultiplier; // Your variable
(...)
}

Doing this will ensure your variable is tracked and deterministic on all machines.

Now, on a side note, if you have added a new option in one of the editors, remember that aside from casting it to FP, you also need to change how the editor reads it:

Before:

moveInfo.elementalDmg = EditorGUILayout.FloatField("Elemental Damage:", moveInfo.elementalDmg);

After:

moveInfo._elementalDmg = EditorGUILayout.FloatField("Elemental Damage:", (float)moveInfo._elementalDmg);

To carry the values from your previous project to UFE 2.0, instead of replacing the casting, create a new variable below your previous one and add the prefix "_". Now add the following to UFE\Editor\UFEUpgrade.cs and run the update:

(...)
private static void SpecialMoveUpdate(MoveInfo move) {
        if (move == null) return;
        move.version = 2f;
        move._elementalDmg = move.elementalDmg; // Your variable
(...)
}

I see what you mean thank you.  I can't wait for 2.0 to drop and see what it's capable of

16 (edited by KRGraphics 2018-06-07 18:30:20)

Re: Universal Fighting Engine 2.0 Beta

I also hope 2.0 fixes the issue where because levels are dependent on prefabs, you can't use reflection probes or Advanced GI (Which has frustrated me the most about your asset). And it requires source to add the ability to load the .unity file (which most unity games do), that has EVERYTHING I set, including the UFE camera.

I do understand it's to keep the build size small... but I have a lot of per level settings and visual effects (and post effects) that I would end up scripting to load on camera whenever the level loads.

Re: Universal Fighting Engine 2.0 Beta

KRGraphics wrote:

I also hope 2.0 fixes the issue where because levels are dependent on prefabs, you can't use reflection probes or Advanced GI (Which has frustrated me the most about your asset). And it requires source to add the ability to load the .unity file (which most unity games do), that has EVERYTHING I set, including the UFE camera.

I do understand it's to keep the build size small... but I have a lot of per level settings and visual effects (and post effects) that I would end up scripting to load on camera whenever the level loads.


Have you checked out this topic


It's a working solution to load everything you need in a separate scene.

Share

Thumbs up +1 Thumbs down

Re: Universal Fighting Engine 2.0 Beta

Steviebops wrote:
KRGraphics wrote:

I also hope 2.0 fixes the issue where because levels are dependent on prefabs, you can't use reflection probes or Advanced GI (Which has frustrated me the most about your asset). And it requires source to add the ability to load the .unity file (which most unity games do), that has EVERYTHING I set, including the UFE camera.

I do understand it's to keep the build size small... but I have a lot of per level settings and visual effects (and post effects) that I would end up scripting to load on camera whenever the level loads.


Have you checked out this topic


It's a working solution to load everything you need in a separate scene.

I'll take a look

Re: Universal Fighting Engine 2.0 Beta

We've made serious changes to UFE like adding destructible environments the ability to walk on uneven terrains. All we really want is the online multiplayer installment. Will UFE 1.X get the multiplayer update or will that just be for 2.0? I think you answered this question but I will ask anyway, if I've already paid for UFE source will I get a discount for the source version of 2.0? Last question is are you guys still on schedule for your July release of the update?

Re: Universal Fighting Engine 2.0 Beta

chameleoncreations wrote:

We've made serious changes to UFE like adding destructible environments the ability to walk on uneven terrains. All we really want is the online multiplayer installment.

You will need to study the implementation and apply the changes to your code as you see fit. As described in the netcode page, all usage of floats, vectors and any physic related methods are now using a new variable type. If you know what you are doing and have enough knowledge around C#, it's very much doable.

chameleoncreations wrote:

Will UFE 1.X get the multiplayer update or will that just be for 2.0?

Just 2.0


chameleoncreations wrote:

I think you answered this question but I will ask anyway, if I've already paid for UFE source will I get a discount for the source version of 2.0?

Yes. Much like the upgrade options on the Asset Store, you pay the difference in price between versions.
Example: If you bought UFE Bundle ($299) you will pay $1200 for UFE 2.0 Source.

chameleoncreations wrote:

Last question is are you guys still on schedule for your July release of the update?

Yes, but since I need a bit more feedback before releasing it, this is how it's gonna go:
The beta version of UFE 2 Source will be available next Monday by email request through Paypal invoice. If you want a discount send me the invoice number of your previous purchase. Once UFE 2.0 is available on the Asset Store I'll provide every customer that paid this way a free copy from the store.

The Pro version might suffer some delay, but hopefully it will come out before the end of July.

Like UFE? Please rate and review us on the Asset Store!
Questions about the Forum? Check out our Karma FAQ.

Re: Universal Fighting Engine 2.0 Beta

I know we can patch version 1.x to support Steviebops' implementation, but is it confirmed that v2.0 integrates z-axis movement?

Share

Thumbs up Thumbs down

Re: Universal Fighting Engine 2.0 Beta

jllabelle51 wrote:

I know we can patch version 1.x to support Steviebops' implementation, but is it confirmed that v2.0 integrates z-axis movement?

Not yet.
Adding that feature in a user friendly environment on top of what UFE already offers will take some time, but if you already developed your own solutions, integration is possible.

Like UFE? Please rate and review us on the Asset Store!
Questions about the Forum? Check out our Karma FAQ.

Re: Universal Fighting Engine 2.0 Beta

Mistermind wrote:
jllabelle51 wrote:

I know we can patch version 1.x to support Steviebops' implementation, but is it confirmed that v2.0 integrates z-axis movement?

Not yet.
Adding that feature in a user friendly environment on top of what UFE already offers will take some time, but if you already developed your own solutions, integration is possible.


I'll have a look into it, but it's going to take some time to get the money together to upgrade to 2.0, then work out how z-axis can be put it.

Share

Thumbs up Thumbs down

Re: Universal Fighting Engine 2.0 Beta

I saw the price for it, now if this is built on top of unity I think it might have been best to start off at $300-$400 for Pro, then $500-$650, Enterprise $800-$900. I understand that you guys put in a lot of work, but if it is built on unity & correct me if I'm wrong & its not a stand alone engine, its gonna be seen as over priced. Now starting it at $300-$350 in my opinion makes more sense that it's price point starts at pro version of the previous version of the engine that way those that paid for the bundle version would pay for this version & treat it as an upgrade for bundle buyers only  with a discount of $20-$25 would make more sense & lead to more sales of it from current users of the previous version. Starting it so high will limit its earl adaption rate & even buy new users as they will start questioning why is a unity add on so expensive. Just a thought

Share

Thumbs up 0 Thumbs down

Re: Universal Fighting Engine 2.0 Beta

Also I think for the enterprise you should include a monthly charge for customer support such as $15-$30 a month for error reports & coding issues, while for a more direct, customizing, & modifying a project for development should be $50-$100 a month this way those that are serous but need help on their project will be able to have direct help from UFE developers, also this will help fuel the updates of the engine

Share

Thumbs up +1 Thumbs down