Video game studio hoping that Fibery is the solution!

Alright, this might be a long post, since I got to explain precisely what we want.

Hi, I am a Game designer and I am part of a team of game developers. We are looking for a database tool that would enable me and my team to keep full integrity of our game systems and their content elements by automating a development process. We call this “Systemic integrity”. We tried to do it with Notion, but we couldn’t find a way to automate what we wanted to help us assure that integrity. We think Fibery could be the solution, but we need help to figure out the best way to do it, if what we want is even possible! :slight_smile:

First, I have to explain what I mean by “Systemic Integrity”. The systems in our game (and their content elements) all have behaviors to interact with the game and other systems. These behaviors need attributes, and values for those attributes, to do their thing. However, what we mean by “systemic integrity”, is that every system and elements of the game use the “same” attributes, and not different copies, but with values that are unique for each element of the game. This way, nothing is “hard coded” and we can’t make the mistake of forgetting to put an attribute on something that needs it (and won’t work without it), since it will automatically come with its attributes and a field to enter values locally for them.

For example, an enemy will ALWAYS have the following attributes (left): Hp, maxHp and movementSpeed That’s because the behavior “Receive Damage” (right), always need the attributes hp and hpMax to function. Another element of the game, let’s say the Player’s character, could also share the same attributes. However, the values of these attributes will be different on each enemy and different from those of the Player’s character, even though they are the same attributes. This way, we could later add a new attribute to the enemies, and EVERY enemy will then have it automatically, and we will then only have to change the values of it if needed.

Second, here’s what we want to create with fibery: we want to have a database (Type) that would list all the different content elements that our game has (enemies, equipments, characters, etc.). All those content elements share attributes, as mentioned above, so we want another database for those to make sure that they point to a unique attribute (no copies of the same attribute in this database). Then, when we create a new content element (for example, a Goblin), we want it to already be linked and know what attributes it should have. There are many ways to easily do this with linked databases, roll-ups, formulas, etc. But here comes the tricky part: We want entities of the database to automatically create a field corresponding to each attribute it has to enter values. And since there are different types of content elements, that all come with their own set of attributes, we couldn’t figure how to automate it.

For example, by creating an enemy, it will always have these attributes: hp, hpMax and movementSpeed. But, if we create an armor piece, it will come with these attributes: durability and armorPoints. So now, we need empty Fields already generated (in the entity window) to enter values for these attributes. And since they are in the same database, we want to only have the Fields corresponding to their attributes: we can only enter the values for hp, hpMax and movementSpeed on the enemies, and can only enter values for durability and armorPoints for pieces of equipment. We don’t want my enemies and my armor piece to be linked or have a field to enter values of attributes they don’t have.

Well, we did find some ways to do this, but it would make it so that every entity of the database would be cluttered with fields/relations it didn’t need. We also had to manually create fields for the values of attributes (and couldn’t even enter/change the values while still in the entity page) and we were also worried that it would clutter even more or slow down the database the more entities, relations and types of content elements we would add to the database.

To resume: here’s what we would want: If we create a new Entity in a database, depending on its type, it will come with a set of attributes (that are unique in its own database). This is easily doable, but the part we can’t figure out is this: We then want to automatically have Fields in the Entity to enter values for those attributes, AND ONLY those attributes: meaning that if a different type of Entry is added to the database, and that it comes with a different attributes, the fields to enter values will match the attributes and there won’t be fields to enter values of attributes that aren’t linked to this Entry.

So as you can see, since my Green goblin is an Enemy, it always has the attributes hp, hpMax and movementSpeed. We then want those attributes to automatically create a field to let me put values for those attributes. These values are local to this enemy, so that if we change values, it only affects this enemy.

Thank you for your time if you have read this far. :slight_smile: We hope that Fibery will be our solution because if so, it’s going to become our main design/balancing/project management tool and I’m sure that a lot of other videogame studios here in Montreal will adopt it! On a site note, I’m also dreaming about a function to save Apps as templates to share with other developpers and friends! :slight_smile:

I’m not 100% sure I understand what you want to do, but based on what I think I understand, I imagine you would use additional Types for each unique set of fields, and relate those to a parent type. Yes, you might end up with a lot of relations and a lot of fields on the parent Types that are not always filled out. That is a problem I hope will be solved with [Polymorphic relations] When creating relation, ability to have entire App from which to choose, and not just Type or something similar in the future.

Sharing of Apps is coming/in beta, and sharing of whole Workspaces too, I believe: CHANGELOG: September 10 / Apps Sharing (beta), Lock in Whiteboard & many bug fixes

1 Like

Yes can’t prioritize enough Polymorphic, thanks for mentioning it again!

2 Likes

I’m working at Borealys too so I’m very interested in this topic. :slight_smile:

As a systemic designer, I never found a tool that will totally help us design game systems and help us keep systemic integrity. This is real close to object oriented paradigms. Not sure if it’s polymorphism that we’re looking for tho, but I will ask one of our programmer and get back to you!

Fibery as already so many nice features like combining entity relations, documents and white boards. It’s almost like a dream come true if we can do what this post is about. I founded the biggest videogame organisation in the world called “La Guilde des développeurs de jeux du Québec” (in French), here in Montreal with more than 250 videogame studios and 14000 employees. I know a lot of folks who would embrace an all in one customizable software like Fibery if we could achieve this.

Do you know guys if what you call polymorphism is on the road map? :slight_smile: I would really love to talk with one of the Fibery developers to talk about videogame studios specific needs and how Fibery have the potential to become the go to of the videogame industry instead of always using multiple unrelated software to achieve our needs. :blush: Can’t wait to cancel our Notion/Wrike/Miro/Google Drive subscriptions!

Cheers!

LF

2 Likes

Such a great comment!:

I seem to read on these forums in the Productivity space too often that “you shouldn’t realistically hope for a tool that can do everything” - and my response always is, “why not?” Of course I’m talking about “do everything” around basic Work/Productivity Management, which includes I think:

  • Communication/Chat/Commenting
  • Some basic CRM capability
  • Ability to do Product Planning/Feedback gathering
  • Project Management
  • Task Management - not the same as Project Management necessarily IMO: ClickUp is great at task management, but nowhere near Wrike (had a license like you) at Project Management
  • Time Tracking
  • Integrations with: VCS (Github, Bitbucket, GitLab), GSuite, Design stuff (Figma/Invision), Support stuff (Zendesk/Intercom), chat tool

I too have a Miro account and hope to drop in favor of Fibery!

Love your enthusiasm here! I used to work in the games industry myself, so I have a soft spot for it, and sympathy for your challenges with tool fragmentation/proliferation.

The Fibery team seems to be still working to find market fit. They have a general direction for now, but I think they may be open to the realization of new, unexpected markets like this. So I’m hopeful that @mdubakov or someone else on the team would take the time to talk directly with you. If you really can in part represent the broad interest of 14,000 potential users, that’s worth a conversation!

So welcome here, I hope Fibery can meet your needs, and I hope you get a chance to discuss it all with the team soon. I encourage you to reach out to them directly if you haven’t already!

1 Like

Reading over your list here, Fibery seems to already cover a lot, no? Give it a couple more years and I would think/hope it should be capable of all of that. Integrations are coming soon. Time tracking is already actually possible (rudimentary) with scripted buttons. Project and task management are good except for needing a better reminder/notification system and “activity stream”, I think. Project Management is good. Planning and feedback gathering are both pretty good, though the latter could benefit from forms integration. CRM is pretty close to “there” for me, just need polymorphic to avoid having a ton of visible relations fields as any contact can relate to many other Types. Chat is another big missing feature, but one I personally hope they do with a good integration rather than reinventing the wheel…

Anyway, I believe I will be able to do 90% of my work in this one tool within 1-2 years. :grin:

Hey, good real time discussion!

Great expansion of my points. Indeed, my goal with that is that Fibery seems to be getting there based on stuff on that list - which wasn’t comprehensive but rather stream-of-consciousness :slight_smile:.

A couple of responses:

  • I would really like to see both Time Tracking and Recurring Entities developed to world-class levels. The Time Tracking you speak of I’ve looked at too, but there are issues, such as if you have a remote team or contractor developers, something that I’m sure is common in Product Teams (software), you can’t have one Type for the time entries as you’ll run into permission issues, unless you want your contractors seeing everything else you are tracking time on, and I don’t for sure!

  • We also need some basics like Activity Stream, ready-for-prime-time comments, More of content indexed in Search, etc. But we talk of these all the time and I have to believe they are coming soon, if not discussed by @mdubakov and co lately anywhere I’ve seen. Which is why I keep bringing them up and I am at this point pretty desperate for that stuff! I would much rather have any of these than other stuff that seems to be coming out lately like more App Templates, some odd additions to Whiteboard like Lock and “Rounded Edges to Boxes.”

I hope some of this comes sooner than 1-2 years as until we get stuff like Activity Stream, Proper Search, and possibly Native Apps as my team is begging for them, I for one can’t really be sure about committing to Fibery as much as I’d love to!

1 Like

Thank you. I will certainly not convert 14000 day one, but I’m sure gonna evangelize the hell of it! :grin:

I’m also teaching videogame project management in 2 universities and I will use Fibery to implement all the structure and processes that I’ve developed for the last 12 years.

There’s not a lot missing to Fibery and if it has polymorphism as you say, it would be a major plus that will turn me and my team into Fibery users right away even if it misses little things that would be nice like dependencies in a gantt style, mindmaps in the white board, forms like in Wrike for employees vacations, survey and other stuffs.

For the rest, I could already implement a great management pipeline right into Fibery for game development. @mdubakov tell me if you would be interested to talk, I don’t want to bother you if you have other plans.:sweat_smile:

1 Like

Big +1 on Activity Stream. I don’t need time tracking myself, but more importantly I still think it could be better handled by an integration, with less effort and more features. But that’s my perspective as someone who doesn’t need it. :wink:

1 Like

I am really counting on Fibery to do its own Time Tracking! If this was Notion, I’d probably have expectations lower and that an integration was all I could hope for. As somebody relying on Time Tracking and whose tried a ton, there is usually one big caveat and that’s that the integration requires you to upkeep in its tool separate projects, users, etc. - basically duplicating the work. Most good Productivity stuff I’ve used such as Wrike, Teamwork, ClickUp, Hive, Jira, etc. have solid, native Time Tracking that you can analyze within the app. A notable exception is Asana which has multiple integrations because it has no Time Tracking natively. All these integrations are subpar, mostly for the reason I stated of doing double work.

I still hold out hope that this declaration will not prove to be empty!:

Perhaps I don’t fully understand your problem @Borealys but it sounds as though you need to create a fibery Type for each content element, and define the Type Fields to correspond to the attributes required for that content element.
And then it sounds as though you want the list of Types and their Fields (elements and their attributes) to be recorded in a ‘meta-database’ somewhere.
Is it correctly understood that you want to be able to update the ‘meta-database’ and have the changes reflected in updates to the Types and their Fields?
If that’s a correct understanding, I think the best solution is to use the API to maintain integrity between the meta-database and the fibery Types.
Of course, the meta-database can itself be stored in fibery and you can use action buttons to trigger an integrity check/enforcement.

Am I close to helping? :slight_smile:

2 Likes

@Borealys @Louis-Felix Hi folks, I think you can solve the problem more easily. Few questions:

  1. How many different Types you will have? I can imagine 20-30 no more (like Enemy, Weapon, etc)
  2. Does every Type has static fields? I mean an Enemy ALWAYS will have hp, speed, etc.

If this is the case, I don’t think you need Attributes at all. You just add required fields for Enemy, Weapon, etc and they will always visible in right column to fill.

2 Likes

Yeah, I did wonder if it was as simple as that, but there were a couple of things that @Borealys said that made me think there was a meta level:

Also, the idea that the solution might be applicable for more than one game design studio made me think that the types shouldn’t be hard-coded.
Also I think that sometimes different people use different terminology, so it’s not always clear that what one person means by database, element, attribute, etc. is necessarily the same thing as everyone else!
I hope @Borealys might come back to us to see if any of us is getting close to understanding the problem he faces.

1 Like

Thank you guys for trying to help us! :smiley:
I will put together a video and post it here in a new thread. I’ll start it right now so it won’t be long before I post it.

Cheers!

LF

Okay, so here is the video at last! :slight_smile: I hope that you will be able to understand my French accent. :wink:. I’ve put a little sequence of a cutscene of our game at the end of the video just to share some of the real thing (still in development and gonna look prettier months after months). Tell me if I should make an other post with the video.

There’s one thing I think I wasn’t clear about after looking back at my video is that since you should always have the same behavior sequence child in the same behavior state entity if you reuse it with an other enemy, the same behavior sequence could be also used by an other behavior state. For example, the behavior sequence “pursuit” could be both used by the behavior state “Attack closeRange” and “Attack longRange” for example.

@mdubakov If you want to take a peek at all the videogame studios in Quebec (Canadian province which include the city of Montreal) here is a list of the studios members of the organization I’ve founded which include small studios of 4 people up to the largest studio in the world, Ubisoft Montreal with 3500 people : https://www.laguilde.quebec/en/members/

I hope that the answer is easy and that this is just a paradigm that I don’t get. My programmers would be glad to create a tool with the Fibery API to generate new games entities directly in our game engine from Fibery and we could also use the powerful graphs to look at our attribute’s values and balance our game right from Fibery; letting the designers do their thing in one app and the programmers in the engine. :slight_smile:

Thank you very much for your time!!

LF

Hi, thanks for your time and answer @mdubakov ! :slight_smile:

 1. It's hard to say right now, but easily between 30-50, probably even more!
 2. Yes, every Type will have static fields! We also want this to be easily scalable, if later we want to add new attributes to a Type, we want it to be easily done!

We did try that solution. As @Chr1sG suggested, we tried to have a Type for every content element, with each their own Fields to put the corresponding attributes and values for them (in the right column).

But our problem is that we want a database that would list all of our content elements. This meant that this database would be linked to way too many databases, so they would have Fields for every relation to another Type, and we didn’t want this :stuck_out_tongue_winking_eye:

** Maybe not every Type will have static fields. We might have a few Types that would have dynamic fields. We would then want the type to automatically create Fields for the attributes it needs, depending on the linked Types

But for now it’s uncertain that we would need dynamic (non static) Fields.

I read your post on Polymorphic relations. I think that might be the solution! I could have Types for every content element, and another Type regrouping all of my content elements. I would need to be able to link the corresponding content elements together, and not link the Types together. That is if I understood right how polymorphic relations would work.

1 Like

Hey thanks! Just for clarification to the community, I believe you’re referring to this post:

Wanted to clarify as there is a lot of discussion about this around here!

I would call that the “True North” post on the subject here in the community. Of relevance: @mdubakov edited the subject after I posted and added the “[Polymorphic Relations]” clarification in the title, and as you can see he also chimed in there. I continue to really hope for this, as an ongoing problem as you build out in Fibery - and Notion for that matter - is the increasing number of fields that you need due to every single relation requiring one. All the more if you want to use Lookups to add in information from “parent” relations, which I talked about here, as it’s becoming a big problem for me:

Finally, having you in here interested in features gives me even more reason to wish for some kind of voting here in the community.

I am starting to wonder a bit about what is the basis for prioritization within the team, as some features that we are getting lately don’t seem to be that high priority, while basics like Activity Stream, Date-driving notifications, and others, seem to have no discussion at all from the team and leave me to wonder how long I’ll be waiting on them. Without this stuff Fibery is not really suited for true Team Work Mgmt. Polymorphic is a great case in point: @Oshyan, @Chr1sG and I have had lively communication about this for weeks, but haven’t seen any discussion of it in from Fibery officially in Twitter, Blog, Reddit, and most importantly, actual responses here in the forum! Makes me wonder about Michael’s original declaration and whether Fibery still wants to do this. If not, I think they should at least spend 5 min and jump in here and tell us!

Thanks for the support!

1 Like