playMaker

Author Topic: examples of organizing complex projects?  (Read 2716 times)

justifun

  • 1.2 Beta
  • Sr. Member
  • *
  • Posts: 280
examples of organizing complex projects?
« on: February 03, 2015, 04:25:17 PM »
Does anyone have any good examples or videos of how good practices for organizing larger more complex games using playmaker?


Lane

  • Administrator
  • Hero Member
  • *****
  • Posts: 2511
  • Mender of the past
    • Cleverous
Re: examples of organizing complex projects?
« Reply #1 on: February 03, 2015, 06:49:56 PM »
What do you mean here, local internal FSM organization or bigger management of projects so that they are easier to maintain?
Products by Cleverous
|| Vault Core : Database
|| Vault Inventory : Multiplayer Inventory
|| Vault Attributes : Character Stats
|| That Hurt! : Dmg Floaties
|| Quinn : 3D

justifun

  • 1.2 Beta
  • Sr. Member
  • *
  • Posts: 280
Re: examples of organizing complex projects?
« Reply #2 on: February 03, 2015, 06:54:07 PM »
FSM management, separating mechanics intelligently, organizing tons of variables etc.

I remember a long time ago someone talking about creating "managers" that handle all FSMs related to a specific mechanic, and all other FSMs would refer to that instead of having the same FSM in each object.  Useful stuff like that.

Jean referred to something once that he does where he keeps all of his variables in a data store?  sounded useful, but not sure what he meant by that. 

basically any tips for the best ways to keep things organized.




blackant

  • Hero Member
  • *****
  • Posts: 521
  • http://blackantmaster.com
    • blackantmaster.com
Re: examples of organizing complex projects?
« Reply #3 on: February 04, 2015, 03:57:12 AM »
this is not an easy part, but you may easily tweek your fsm by cutting some actions and pasting them on other FSM when you think it needs only one instance, or when it's a loop used by many objects...

you'll get it with time and efforts.

Lane

  • Administrator
  • Hero Member
  • *****
  • Posts: 2511
  • Mender of the past
    • Cleverous
Re: examples of organizing complex projects?
« Reply #4 on: February 04, 2015, 05:28:48 PM »
Managers are useful for stuff like controlling GUI or displaying GUI all at once, or perhaps managing the inventory of a character or somesuch. The idea is that it is one Object that you know you can refer to for specific information or to send messages to that are related to the topic that it manages.

The idea of using a specific object to store variables that are shared among a lot of objects is a nice one too, you would basically just make an empty object much like a manager and it would contain all of the pertinent variables that you need to share between objects but didnt want the trouble of actually getting those objects to communicate to each other. Or small database sort of things, basically. Store the variables in the "DB" manager/fsm and when something happens and you know what the data is you can fetch it from your little mini-db. GoogleFu basically does this, but its in a very clean way. You could certainly roll your own system like that.

Templates are immensely useful in design. This video talks about some practical ways to use them but the overall idea is to design black box type systems that are driven by inputs that you feed down when some event occurs. Thats what Run FSM does, runs a template. It's very powerful, and yet has minimal feature support in its current state. The other way templates are great is that they work like prefabs do, basically. You can create a generic "Health" template and put it on any character in the game, then all of your attacks, spells, weapons, powers, etc all can be directed to a "Health" FSM which is always guaranteed to be the same template as any other character.

You could derive further by having the Health template fetch variables from yet another Generic "Stats" template which you would modify per-character, or even have them pull that data from a DB at runtime based on their Name... Very powerful. I've used this extensively lately and it allows rapid scaling of the game if you set it up right. It feels like auto-magic when you do it properly. Just *click* add the templates to the new enemy, then define its data in your database and *poof*, works like a charm at runtime.

Thats just a few ideas. Hope it helps.
« Last Edit: February 04, 2015, 05:31:29 PM by Lane »
Products by Cleverous
|| Vault Core : Database
|| Vault Inventory : Multiplayer Inventory
|| Vault Attributes : Character Stats
|| That Hurt! : Dmg Floaties
|| Quinn : 3D

justifun

  • 1.2 Beta
  • Sr. Member
  • *
  • Posts: 280
Re: examples of organizing complex projects?
« Reply #5 on: February 04, 2015, 05:39:33 PM »
Thanks Lane!

This is exactly the kind of thing I was looking for.  Ill check out the Run FSM feature.