Should I build an environment from scratch myself or it is not always needed?
I guess it would always be better if you can reuse existing environments to make it work for yourself. Since most of the environment codes is anyway opensourced, you can always edit it to your liking.
If you want a custom environment, you can add an environment to gym like this.