playMaker

Author Topic: 1.8 final release?  (Read 31471 times)

joepalos

  • Playmaker Newbie
  • *
  • Posts: 28
1.8 final release?
« on: March 21, 2015, 07:24:55 PM »
Any idea on when 1.8 is coming? Been "coming soon" for so long now...

play_edu

  • Full Member
  • ***
  • Posts: 116
Re: 1.8 final release?
« Reply #1 on: March 31, 2015, 11:58:58 PM »
+1

jeanfabre

  • Administrator
  • Hero Member
  • *****
  • Posts: 15594
  • Official Playmaker Support
Re: 1.8 final release?
« Reply #2 on: April 01, 2015, 03:44:51 AM »
Hi,

Yep. There is still a lot to fix and test. So I would simply not expect it any time soon. at least not this month I guess.

 Bye,

Jean

wheretheidivides

  • Sr. Member
  • ****
  • Posts: 496
Re: 1.8 final release?
« Reply #3 on: April 01, 2015, 11:01:12 PM »
Could you make sure one can change the names of global variables?????

sebaslive

  • Hero Member
  • *****
  • Posts: 572
    • Frame Tale Studios
Re: 1.8 final release?
« Reply #4 on: April 01, 2015, 11:43:00 PM »
Could you make sure one can change the names of global variables?????

This would be helpful BUT also, a suggestion that has been passed on to me to help your game run faster is to not use global variables. But I agree with your changes
All my VR games use Steam VR Playmaker Toolkit: http://u3d.as/u20
And Oculus Touch Playmaker Toolkit: http://u3d.as/QT5


Follow me @sebasRez

jeanfabre

  • Administrator
  • Hero Member
  • *****
  • Posts: 15594
  • Official Playmaker Support
Re: 1.8 final release?
« Reply #5 on: April 02, 2015, 09:17:05 AM »
Hi,

 Who told you it would be faster? using global variables has no impact on performances. At least, I have no hard evidence with a profiler. Too many global variables is a sign of bad design, and you should avoid it of course, but do not create performance issues.

as for renaming global variables, I'd like this to be included but it's unlikely I am afraid, maybe Alex is working on it, but I don't think it's currently in beta.


 Bye,

 Jean

wheretheidivides

  • Sr. Member
  • ****
  • Posts: 496
Re: 1.8 final release?
« Reply #6 on: April 02, 2015, 11:13:12 AM »
"Too many global variables is a sign of bad design, and you should avoid it of course, but do not create performance issues."


I get where you all are saying this, but...there are things that NEED to be global.  Some things should be global and some should be local.  I have a big list of global variables because they need to be used in different FSMs in different scenes.

jeanfabre

  • Administrator
  • Hero Member
  • *****
  • Posts: 15594
  • Official Playmaker Support
Re: 1.8 final release?
« Reply #7 on: April 03, 2015, 01:09:11 AM »
Hi,

 This is not the only way to carry out data from scene to scene. You can flag a GameObject as "dontdestroyOnLoad", tag if "MyGlobals" and on each scene fsm can find gameObject using this tag, and then use "Get Fsm XXX" to get to the various local fsmvariables on that GameObject.

 This technic is the preferred technic if you have large feature that persists over your game, like score manager, progress, player manager, etc. Moreover, I usually send a global event with the "global" data I want to set and let this manager deal with storing and maybe saving it either online with complex internet protocoles or trigger a series other actions necessary everytime this particular value changes. If you think in terms of Global, then there are also global actions to take, and so combining all of this into a proper Manager will make everything a lot simpler and flexible.

 PlayerPrefs is also a great way to make data persists throughout your game with the added benefit of persisting between sessions too, so that's powerful too, mandatory actually for, things like saving the best scores or current situation to resume properly on the next session. But PlayerPref should only be get and set few times, not in the gameloop as this is not as fast as built in variables in PlayMaker.

 And then you have global variables. Sooo simple to implement!! so yes, totally make use of them, they are here for that, but just don't go crazy with them. It's important to keep sanity.

 Bye,

 Jean

sebaslive

  • Hero Member
  • *****
  • Posts: 572
    • Frame Tale Studios
Re: 1.8 final release?
« Reply #8 on: April 03, 2015, 07:58:55 AM »
Awesome post Jean, thank your for telling us your workflow. There should be a thread with just master workflows that are pinned for people to see because this is truly gold.
All my VR games use Steam VR Playmaker Toolkit: http://u3d.as/u20
And Oculus Touch Playmaker Toolkit: http://u3d.as/QT5


Follow me @sebasRez

wheretheidivides

  • Sr. Member
  • ****
  • Posts: 496
Re: 1.8 final release?
« Reply #9 on: April 04, 2015, 01:35:18 AM »
This is not the only way to carry out data from scene to scene. You can flag a GameObject as "dontdestroyOnLoad", tag if "MyGlobals" and on each scene fsm can find gameObject using this tag, and then use "Get Fsm XXX" to get to the various local fsmvariables on that GameObject.

 This technic is the preferred technic if you have large feature that persists over your game, like score manager, progress, player manager, etc. Moreover, I usually send a global event with the "global" data I want to set and let this manager deal with storing and maybe saving it either online with complex internet protocoles or trigger a series other actions necessary everytime this particular value changes. If you think in terms of Global, then there are also global actions to take, and so combining all of this into a proper Manager will make everything a lot simpler and flexible.


Do what now???  I don't follow,

jeanfabre

  • Administrator
  • Hero Member
  • *****
  • Posts: 15594
  • Official Playmaker Support
Re: 1.8 final release?
« Reply #10 on: April 07, 2015, 03:38:02 AM »
Hi,

 Well, you'll be using this manager throughout your features around your game.

For this, you'll be using "Get fsm xxx" targeting this manager and you'll be getting whatever value from it.

So let's say we have a score manager. and we dont' want this to be a global. so we have a "__SCORE_MANAGER__" gameobject, with a "Score Manager" fsm, with a variables "Score".

 everytime your player pick a star, you will fire an event "PLAYER / PICK / STAR". you broadcast it, you don't care of anything else. the star destroy itself and it doesn't care about scoring.

 the "Score Manager" fsm catches this "PLAYER / PICK / STAR", and add 10 to its score variable. then it fires a event "SCORE / HAS UPDATED", and you PASS the score value to the event data. now your UI text showing the score can catch this and update. it simply gets the int value from the event info and update the text.

no global involved, everyone sticks to its purpose and doesn't care about how other managers features work.

If you have an fsm that was just created and did not get any events and needs to know the score. it can simply find the "__SCORE_MANAGER__" ( best using Unity tags, and do it once only for each fsm). Then use GetFsmInt targeting the fsm and variable on that gameobject.

just one more note, on the star pick up. you can go all the way and have many different stars with different weight for scoring, one would socre +10, but another one could score +50. don't hardcode this in the score manager, instead two solutions:

1: pass this value in the event "PLAYER / PICK / STAR" then the score manager check for that and adds whatever what passed with this event.
2: The star send that event "PLAYER / PICK / STAR". The score manager catches it and get the gameobject who sent this event and use "getFsmxxx" to get what ever values it needs from the star GameObject.

 The second approach is SOO powerful, because if you create strict conventions between objects, you can then interface with them. if you agree that each pick up items will have an fsm named "Pickup" with a "score" int value, then your game can grow and have more and more different pickup items, the score system will work and do not care about the diversity of pickups.

If you can master this kind of dance, you'll be creating very rich systems in no time.

Bye,

 Jean

wheretheidivides

  • Sr. Member
  • ****
  • Posts: 496
Re: 1.8 final release?
« Reply #11 on: April 07, 2015, 11:48:06 AM »
Very interesting.  Seems logical.  Maybe I'll try that out sometime.

However, the 1 big advantage of global variables it that you can't be on any scene building it and everything works.  You don't have to start on a bootstrapper, go though the menus and all to get to the level you are working at.  Also, it's a lot simpler to implement.  It's good we have options to choose which way to do things.

jeanfabre

  • Administrator
  • Hero Member
  • *****
  • Posts: 15594
  • Official Playmaker Support
Re: 1.8 final release?
« Reply #12 on: April 28, 2015, 03:13:20 AM »
Hi,

 Yep, globals makes it a lot easier on that front.

 For keeping data and make it survive scenes loading, I use "singletons", a prefab that I set to "Don't destroy on load", and I tag it with a unique tag for that specific manager so that it's easy to find it just by tag when something needs it. This way I have actually a global manager, which not only store data but also do work and dispatch actions throughought the game.

Bye,

 Jean


polygon

  • Playmaker Newbie
  • *
  • Posts: 18
Re: 1.8 final release?
« Reply #13 on: May 03, 2015, 09:20:10 AM »
Hi,

are there any news regarding the final release for Playmaker 1.8?  :)

Best regards,
Daniel

mweyna

  • Full Member
  • ***
  • Posts: 242
Re: 1.8 final release?
« Reply #14 on: May 05, 2015, 03:40:17 PM »
Bump.