Saturday, 23 May 2015

Refactoring

I started this project when Unreal Engine 4 was released. It was months ago and during this time engine has changed a lot. There is lot of things that can be done better and faster now using latest UE4 version.

Another thing is that couple of functionalities that I wrote here won't work in current UE4 version. I was thinking how to resolve that and I came to decision.

I decided to do full refactor of functionalities that I have wrote here and I will try to use assets only from Unreal Marketplace because I can see that people are having problems with porting assets from Unity or using 3d studio max.

Another thing is that I have learned UE4 a lot during this time so hopefully my new posts will be much more easier to understand and easier to implement to your own projects.

Basically earlier I was planning to do refactor after completed demo. Doing full refactor is something typical in game development after working prototype/demo. The main goal of prototype/demo is to show core gameplay and how fun it is - not optimisations, systems and backend - those doesn't matter because you don't know if the game that you are doing will be fun. Implementing systems or backend takes time (money and energy) and they should be implemented after you are sure that core gameplay is fun. 

Most of the game development companies have "prototype new ideas" teams that are doing new gameplay prototypes (or whole new games ideas) and they aren't focusing on optimisations or systems (because it takes time and budget) Their goal is to achieve fun as soon as possible. If the fun is there and the team is sure about it project will be kicked off from beginning. 

You can ask why to start from beginning if lot of work was done during creation of prototype. Why to put all of the work to trash? 

Well... I see a lot of games in production that are lacking with optimisations / good and effective pipelines because they are moving forward to fast like when they were in prototype stage. There are two big advantages of doing full refactor after prototype:
- Programmers can analyse the prototype and plan how to implement core from start to be prepared for fast iterations,
- Whole team can improve pipelines effectivity,

Basically thanks to that your production will be moving faster forward and your team will be more happy because it will be easier to iterate. 

To sum up I will start from scratch and use Unreal Marketplace content. The idea for the game hasn't change but during the prototyping I've lot of ideas to make the game better. Stay tuned for first refactoring post!