As people may or may not know, I am using Unreal Engine 4 to develop my game. I have run the gamut of engines...of which there are not many commercially viable alternatives (in my opinion). One of the most amazing things about UE4 aside from the numerous resources available on youtube to create pretty much anything you want, is the marketplace. For people who do not know the marketplace allows content creators a platform to create products whether it be models, materials or scripts, even entire templates. A lot of indie devs I have read on how they developed their game seem to constantly echo to not worry too much about using those purchasable assets for the time they save on the development. I 100% completely agree, but only to the point where the entire game itself isn't just all kitbashed products which results in just a regurgitation of a final product. There can definitely be a lot of upside to purchasing assets from the store, aside from youtube it is the way I learned how UE4 functioned and understood how blueprints worked and communicated with eachother. That being said I am by no means an expert on the topic.
To the point for this week's blog: be careful what kinds of assets you purchase for your game. The biggest mistake you could make, in my opinion, is to just throw a bunch of blueprints together that were made by some other person who designed it to be very generic for the masses. The reason for this is that if something does not work, you will have an extremely difficult time trying to figure out what the issue is. This is more advice if you are starting off obviously, if you were an expert you probably wouldn't be even reading this at all.
Just to give some reasons as to why I personally highly recommend never using highly complex blueprint system (for the most part):
Typically a purchased blueprint package is highly non-optimized to try and satisfy the masses who will be using that product. Most content creators sell assets to make money. The more generic and jam packed full of features, the more money and larger audience there is to sell to. This causes unwanted design issues if you are working on something very specific and also causes extra, sometimes precious, milliseconds added to your game. I would argue that it takes more time trying to butcher a purchased asset than it does to read some tutorials and just try some things out yourself that is more in tune with what you are designing. This is at least the case with myself in my previous experiments.
Some assets are so poorly commented and documented that to add more functionality and expand what it is capable of would be nearly impossible for a beginner. On the other hand, there are some amazing authors who make content that will blow you away.
Some assets unknowingly to you might leave behind pieces when you try to remove them. A project that you spent months on could become trash in an instant causing you to lose a lot of work or making the project itself useless if you do not have appropriate backups.
It can get expensive and suck away time you could spend in other areas.
This brings me to the work done for this week...save game functionality. I figured, there is a great free asset on the marketplace that has high reviews which provided me serialized saving and tons of features which promised to be essentially plug and play. Unfortunately I spent over a day just fooling around with trying to make it work with average documentation (also to note the documentation did not match with their own current version of the product). What ended up happening is I removed all of it and in fact retrieved a backup and started making my own custom save functionality. This despite people saying it is a pain in the butt and blah blah blah. I have to say after reading some documentation and trying a few things out (and trust me there were some challenges), my system is relatively simple, I can tell you EXACTLY how it works, where the variables are stored, what variables are being saved and how and works like a dream. Albeit, everything is taking much longer due to this, but at least if something doesn't work I know all the inner workings off the back of my hand so that I am able to quickly locate and tweak some information.
Shout out to the people who helped me along my journey who make amazing content on youtube, without those kind of people who are waaaaay smarter than myself I would not be able to do this at all. Big thumbs up to DevSquad (who I know as Virtus...not sure why the name change) on youtube who helped me learn quite a lot and has some of the best tutorials around.
Thanks to my buddy Jared who shared some feedback and I have implemented some subtle changes to the cabin (new version shown on the main page and for this blog post).