General Feedback
Posted: Tue Jul 02, 2019 10:41 pm
Hi. This post is a collection of all things that I have in mind about the engine. I think that I should give this feedback because in my opinion CryTek does a lot of good things, but also a lot of bad things. Before I start: I realize that the team is much smaller than other competitor engine teams.
All right.
Lets get started.
1. I guess that I don‘t need to mention it but the documentation is often times outdated. This makes it quite hard to find out how stuff works.
2. One of the most complex parts of a game is the player and AI. I‘m pretty happy that we get some good examples for player coding inside the game templates. But what would be really really needed now is an AI example game template. The AI system is barely documented (at least the C++ side) and people need to know how to setup stuff like MBT, Perception, Movement (already an example inside the Isometric Pathfinding Template), Factions, Stimuli, Path Following, Cover, AI Signals, Ragdollizing, etc. from C++ code. I guess that a simple Game Template could give us some nice insights inside the AI System. What I thought about was just an AI that can see/hear the player and/or other AI and then uses an MBT to follow him or do something... whatever. Just a simple example that uses some AI System functionality.
3. It seems as if the new EntityComponent system is pretty nice but it also has some problems. For example if you look at the engine‘s actor system or item system (and other systems), they all just accept the „old“ game object extensions. I guess that this should be fixed soon.
4. The default components are not that great. For example: the input component does not really read an action map. Or the MBT Component... here we have no way to set the MBT name from
Code. Other components have similar problems.
5. The legacy components inside the default components are not shown inside the sandbox editor when using a Game Template (e.g. the TagPoint is missing).
6. Games are now implemented as Plugins?! I guess that this one is a pretty bad idea. I really love the plugin system. It makes so much stuff much easier. But if we implement games (like seen in the templates) as plugins, then we loose all control over code like CGame or the startup file (where we could define a CVar whitelist and also the key for the encryption). So basically we loose control over the game code.
7. It seems as if we can‘t create anything like GameRules with the new EntityComponent system. Hope that this one will be done soon.
8. There are rumors that FlowGraph should be replaced with Schematyc in the future. I guess that this is a really bad idea. The point is that Schematyc is more like Unreal‘s blueprint system and FlowGraph is a tool for Game Design (like Unreal‘s level blueprint). Both concepts are pretty different.
9. Another thing would be that there is currently no easy way to create a FlowNode for an EntityComponent inside of C++. You know... these nodes that you get if you select an entity and then paste it into a FlowGraph. So basically the entity‘s node.
10. There is a lot of unclean C++ structure. For example a lot of game stuff is actually implemented inside the engine. For example the engine has functionality for weapons, items, inventory, etc. Would be better to migrate all of this into plugins.
11. Again the EntityComponents: A lot of FlowNodes just can‘t be used for them. E.g. all the actor nodes, weapon nodes, AI nodes, etc.
Hope that this was kind of useful feedback.
Again: you also do a lot of good stuff. Like I mentioned I think that the plugin system
In general is really awesome (only this „game as a plugin“ thing isn‘t that great). Also the EntityComponent system will be a really great thing as soon as it gets more support (e.g. ActorSystem, GameRules, FlowNodes for entities, etc.). Just wanted to mention it because all of my points that I‘ve made are negative.
- Jannis
All right.
Lets get started.
1. I guess that I don‘t need to mention it but the documentation is often times outdated. This makes it quite hard to find out how stuff works.
2. One of the most complex parts of a game is the player and AI. I‘m pretty happy that we get some good examples for player coding inside the game templates. But what would be really really needed now is an AI example game template. The AI system is barely documented (at least the C++ side) and people need to know how to setup stuff like MBT, Perception, Movement (already an example inside the Isometric Pathfinding Template), Factions, Stimuli, Path Following, Cover, AI Signals, Ragdollizing, etc. from C++ code. I guess that a simple Game Template could give us some nice insights inside the AI System. What I thought about was just an AI that can see/hear the player and/or other AI and then uses an MBT to follow him or do something... whatever. Just a simple example that uses some AI System functionality.
3. It seems as if the new EntityComponent system is pretty nice but it also has some problems. For example if you look at the engine‘s actor system or item system (and other systems), they all just accept the „old“ game object extensions. I guess that this should be fixed soon.
4. The default components are not that great. For example: the input component does not really read an action map. Or the MBT Component... here we have no way to set the MBT name from
Code. Other components have similar problems.
5. The legacy components inside the default components are not shown inside the sandbox editor when using a Game Template (e.g. the TagPoint is missing).
6. Games are now implemented as Plugins?! I guess that this one is a pretty bad idea. I really love the plugin system. It makes so much stuff much easier. But if we implement games (like seen in the templates) as plugins, then we loose all control over code like CGame or the startup file (where we could define a CVar whitelist and also the key for the encryption). So basically we loose control over the game code.
7. It seems as if we can‘t create anything like GameRules with the new EntityComponent system. Hope that this one will be done soon.
8. There are rumors that FlowGraph should be replaced with Schematyc in the future. I guess that this is a really bad idea. The point is that Schematyc is more like Unreal‘s blueprint system and FlowGraph is a tool for Game Design (like Unreal‘s level blueprint). Both concepts are pretty different.
9. Another thing would be that there is currently no easy way to create a FlowNode for an EntityComponent inside of C++. You know... these nodes that you get if you select an entity and then paste it into a FlowGraph. So basically the entity‘s node.
10. There is a lot of unclean C++ structure. For example a lot of game stuff is actually implemented inside the engine. For example the engine has functionality for weapons, items, inventory, etc. Would be better to migrate all of this into plugins.
11. Again the EntityComponents: A lot of FlowNodes just can‘t be used for them. E.g. all the actor nodes, weapon nodes, AI nodes, etc.
Hope that this was kind of useful feedback.
Again: you also do a lot of good stuff. Like I mentioned I think that the plugin system
In general is really awesome (only this „game as a plugin“ thing isn‘t that great). Also the EntityComponent system will be a really great thing as soon as it gets more support (e.g. ActorSystem, GameRules, FlowNodes for entities, etc.). Just wanted to mention it because all of my points that I‘ve made are negative.
- Jannis