Is Lyra project setup WRONG?

It was also understood to me that Plugins should be independent of the game they are used in. But in the LyraSampleGame, all the GameFeature plugins are dependent on classes that are found in the game module.

Would it not make more sense to put most, if not all, of the LyraGame C++ code into a plugin instead?

Then all the good stuff of Lyra can be used in any game, not just one where you have to create a new LyraStarterGame Project. And then all plugins are independent of the game they are in.

2 Likes

Firstly, it is crucial to grasp the essence of Lyra, a project conceived by developers who previously contributed to the development of Fortnite. They took the gameplay dynamics of Fortnite and made them available as an educational resource for other developers to gain a deeper understanding of its functioning. This approach bears resemblance to the strategy adopted by Epic Games in using elements from Paragon for this purpose.

Upon conducting a comprehensive internet search, the evolution in tutorials on “How to Create a Character” becomes evident, both before and after the emergence of Paragon. It is observed that the majority of videos and blog posts worldwide have undergone significant changes. Nowadays, it is virtually non-existent for anyone on the planet to develop a character without drawing from the knowledge provided by Paragon. It is imperative to emphasize that major companies, such as Nintendo, are inclined to take legal action if the creation of characters bearing conspicuous similarities to Mario is detected.

Lyra should not be downplayed as merely a three-dimensional model; in reality, it represents a substantial paradigm shift. The inherent value of Lyra resides in its intrinsic knowledge. It is possible that, at some point in the future, the project may be fragmented into various plugins, although such a transformation may take time.

All that said, plugins shouldn’t depend on the project. :neutral_face:

From my point of view I would not recommend Lyra. But who am I? I wouldn’t recommend WoW practices either. Since both were made with many programmers and with many “archaic” decisions or in this way manuals that depend on specialized classes (which were written by several people to make it “complex”… I mean modular).

It’s as if I gave you a customized 5-year-old Barbie little pony project with a team of 20-40 people (with thousands of decisions that don’t even concern you). Can you learn, of course. But it is adapted to Barbie little pony. Do not seek to make a Fortnite, since you will not be able to.

“Everyone recommends Lyra” and “everyone” doesn’t know how to implement something from Lyra. So it’s better to look at parts that fit and learn from those parts. That is why we can say that Lyra is a package as a whole. You cannot remove or put something to adapt it to your game. It is pre-made for FPS.
It’s like making a shoe that fits a size 44 and you want this shoe to fit a foot that fits a size 46. Impossible.
But how crazy am I to tell you what you should or shouldn’t do. You can learn as much as you can and spend all your time with Lyra.

I would advice using a healthy dose of skepticism towards the example projects and the soundness of their implementations.

Think of it as more like “this is what code written in the industry might look like” instead of “this is how we would ideally implement these things”.

I think its always good to have your own internal standards which are independent! If you have a solid foundation in your thinking as to why its setup wrong then as long as you adhere to your own standards consistently I dont see an issue.

The main issue I see with how this loose coupling ends up is that it is never as modular as hoped, it still tends to be hard linked in a similar fashion to monolithic methods. It might be more performant but at the cost of abstraction and easy of use.

As others have said its a good learning resource and I dont think its really about whats wrong or right but what is right for you and the projects you work on. If you see mistakes in the way Lyra was made then youre less likely to continue those yourself so I see that as a win either way. Epic are only human as well ofcoarse and they have tight time constraints that others in the community might not have, its always difficult to have oversight of microsystem made in such a large machine.

I would love to see a world where we can just grab gameplay elements and snap them together but unfortunately the older I get the less hopeful I am. I see the benefits in making code specifically for a project just to get it shipped as generic code is more difficult because it supports so many more use cases. I just have this feeling that there is a design language that supersedes any programming language when we talk about games specifically and it would be cool to be able to weave aspects in a more creative manner.