Opinion - Megascans is not for everyone.
Prevent yourself from falling into the "Realistic Graphics" pit.
My biggest game dev project yet. Since I’ve spent few years making it, it is a shame that the reviews are not that great, and that it didn’t sell well. So I thought, why not have at least a little postmortem, and write down my opinion on what didn’t work, and maybe others can learn.
It’s not that hard to make games, just put some models in there, make it move, and done, no?
Me at 22 years old
Expedition Zero is a game where you are trying to get out of a walled off zone. While you meet a mysterious trader, you are tasked with killing a monster in exchange for a ticket out of the zone. While on a mission, you need to survive harsh conditions, cold and radiation.
We started developing this few years back, and we went through multiple concepts and MVPs to see what fits the best. Because of time constrains, we had to throw most of the stuff away - for example sled that you could take with you and modify, food and water, sleeping, day and night cycle.
Here are my thoughts that I would relay to any other game dev.
It doesn’t matter if your game is going to have top notch graphics. It doesn’t matter how good looking of a trailer you make. One of the main learnigns from me is that you need gameplay mechanics that are fun to play. Gamers want to play! Most of successful developers that I have seen post short videos on twitter or youtube with mechanics that differentiate their game from any other game that gets released on Steam. There is more than 300 games getting released on Steam a month, and with free availability of tools like Unreal, there is going to be more. Everybody wants to be gamedev right? That being said, starting with the core mechanic of a game is the most important rule I can ever give to anyone. Start with white level, block out some shapes, and get going on the stuff that’s going to make the game fun. Here, I will give few examples.
One might think that graphics is the main gameplay pillar, but in my opinion it’s exploration, puzzle, and story telling. The way to create first version to test the mechanics would be:
One of the most challenging games I’ve seen to create. To balance out survival so well, like in Long Dark, must have taken many iterations and balancing. It’s one thing to spawn and item, but generally as a developer you can’t just leave it on chance. The player needs a little help sometime, for example if the player is starving, maybe we should spawn piece of food around him, so the player doesn’t get frustrated? Or maybe the player has too much food in inventory? Well we can stop spawning food all together. And what about distances between houses and points of interests? Is it not too far, can the player actually make it? What if it’s too cold? Again, so much balancing… But in order to have tested fun gameplay mechanics, these are the steps I would do.
It is easy to pop up YouTube, and start replicating “how to make a light switch” tutorial. Generally, tutorials have extremely bad architecture - such as placing logic into a level’s “Begin Play” in UE. But there are barely any tutorials that talk about architecture. So, making a light switch is easy - but making a light switch a part of a game’s system? That is a different ballgame.
Therefore, it is important to sketch out exactly what a light switch going to be doing, and what are the features that it needs. Maybe:
Those are just a few examples about a light switch. But this also has to be done with character, levels, secondary systems, etc.
At one point of testing it will be very important to have as many tools prepared to be able to test a game mechanic properly. This, in our case was often overlooked, and was added in later, which would have eased our testing exponentially. This also includes saving - it is very important to be able to save game as soon as possible, so as a developer, you can resume from whichever point in game, and test whatever needs to be tested. Therefore, when we code, we automatically create ways to be able to call functions or change different values dynamically from a widget that can be called “Developer’s Console”. Developer console can have many tabs, such as weather, character, spawning, etc. I cannot stress enough how much easier it is to test and balance game mechanics when this is prepared.
People can come and go, maybe someone will get sick, something needs to be fixed quickly, or the developer just forgets how a certain feature works after 1 year of not looking at it. Therefore, it is essential to keep documentation. Every time a new feature gets implemented, we immediately go to documentation and write down how it works. Then, when something needs to be changed or fixed, it is much easier just to search in documentation, rather than trying to understand the whole code in-engine.
Either you do sprints, or scrum, it doesn’t matter. The team needs to know what has to be done. One of the most frustrating things for developers is to wake up, sit by the computer, and not knowing what to do, while time is just passing. Having clear project management structure is also essential, and a good project manager that makes sure that every new feature is properly tested and review will help the development tremendously.