What To Expect When Using a Game Engine

Sep 16, 2020.Knowledge

What To Expect When Using a Game Engine

(We recommend sharing this material with all team members.)

Epic Games is committed to helping developers succeed. Developing games and real time rendering applications regardless of engine can be challenging work. We want devs to efficiently produce high quality projects using Unreal Engine, and to help make that possible we want to reduce unnecessary difficulty in this process. To help ease this difficult process, it is important to understand how to effectively use both Unreal Engine and how to effectively utilize Epic Games’ developer support.

About Unreal Engine

Epic Games has been licensing and supporting Unreal Engine since 1996. There have been many successful games and real time rendering projects released by developers outside of Epic using Unreal Engine. Unfortunately, there were projects that did not produce desirable results due to the misunderstanding that using a game engine is a silver bullet that will solve all your problems with little to no effort. Unrealistic design from the expectation that using a game engine meant the project would be completed automatically without any problems, instability caused by project design done without understanding the structure of the engine, and ignoring the workflow assumed by the engine all can and have been contributing factors to a project’s lack of success.

There are many successful examples using Unreal Engine, from small teams to massive AAA game development. In order to utilize a game engine, it is necessary to understand how it works and how it is best used. By understanding the game engine, and recognizing what you can do and what you can not do, you will more easily plan realistic, achievable goals for the project, and ultimately succeed.

  • There are several important decisions to make on the project side. UE4 can handle various kinds of games. To do that, it is necessary to make resources, allocate various budgets (how much memory to use for backgrounds and characters, etc.) according to the design for the project and the target platform it will run on, and choose appropriate engine functionality and settings. It is important to test the project’s operation on the actual platform and choose settings appropriately for the project based on those tests. Epic can advise through support so that the developer can make a more appropriate choice, but there is no substitute for the developer testing the project in question on the desired target platform.

  • Engineers and programmers are necessary. The flexible and powerful editor environment of Unreal Engine gives power to artists and designers. Still, simply pouring assets into the game engine won’t result in a finished project. Even if you implement the project with blueprints without using C++, a developer who can think programmatically to create project logic will be essential. In the process of developing a large budget game in UE, it’s very common to write a lot of project specific C++ code. Even on smaller budget projects, development in C ++ on the project side, making changes to the engine code in C++, porting the latest bug fixes, and making your own bug fixes on the project side where necessary are very common.

  • Understand the typical UE project workflow. In order to efficiently develop with UE, it is necessary to understand how to make assets the engine can effectively and efficiently utilize, and how to write code and make workflows that work to the engine’s strengths. We’ve seen developers try to modify UE to fit existing workflows and production methods rather than the other way around, but this generally results in inefficient and poor results. It’s important in any kind of development environment to continually scrutinize existing processes in order to improve them. If you find yourself fighting the way the engine works, this may be a good time to reflect on your existing workflows.For best practices such as workflow and pipeline, past lectures are helpful.

You can also learn production tips through events such as Unreal Fest.

  • Understand the inner workings of the engine. UE4 fully provides the source code to the licensee. Please understand the contents of the engine and adjust the engine according to your own game. If you customize it by changing the deep parts of the engine, manpower to merge new changes becomes important when the engine upgrades in the future. Decisions on when to cut off the branch or where to put functionality in the engine will have a great impact on the overall project, so careful judgment is necessary. Epic can also advise on how to make efficient modifications that can possibly achieve the same effects without modifying the deep parts of the engine, so reach out in advance.

  • Plan your project with the engine as it exists today. UE is constantly updated with contributions from Epic and from the community. New engine versions include new features and bugfixes. Although we may discuss information about new features before they are released, the release timing of new features may vary due to multiple factors, and unfortunately we can not guarantee release date with 100% accuracy. Therefore, planning a project based on the assumption that new engine functionality will be completed by a certain date is not recommended. Using experimental features in production involves risks. Ultimately it is necessary to plan the project using the existing functionality of UE.

  • Profiling is essential. In the case of developing for home consoles or other hardware that does not run the editor, we recommend that you profile the actual project on the actual target hardware from the earliest stage possible. If you do not profile on target hardware early and problems such as performance on target hardware are only identified in the late stages of development, it may be necessary to drastically modify assets, and in some cases even the game design, which will be a large waste of time and effort. It’s crucial to build a workflow that frequently tests the project on target machines.

About Epic Games Support

Support for UE4 developers with support contracts will be through the Unreal Developers Network (UDN). For general-use sites such as the Unreal Engine Forum and Answerhub, it’s not possible for Epic to commit to responding to a given question, but in UDN Epic’s support staff is assigned to each case and tracking of answer status guarantees reliable support.

E-mail is not recommended as a support method from Epic because e-mail exchange is difficult for tracking and information sharing. Please post all your support requests on UDN.

We recommend that you create UDN accounts for individual developers of the project and ask questions as they arise from the earliest stages of the project. If you create an account for only one of the project developers on the team and have this individual post all questions from the team, there is a danger of this becoming an artificial bottleneck. Also, if you do something like posting a large number of questions one week before an important milestone for the project, it will be difficult for us to respond, as there is a limit to the resources we have for support. If you’re posting an urgent question the day before the project ships, and the fate of your project rests on the question, then it’s really too late for us to help. Please ask us as early as possible to avoid this situation.

As UDN is only visible to developers who have signed non-disclosure agreements, you can rest safe that information shared is protected by these NDAs. Through this site, developers can not only post their own questions, but also see questions from other developers, and responses to those questions. This allows UDN to also be a knowledge-sharing environment that can be invaluable to a project. Searching for information about how other developers have coped with similar problems and challenges will be very valuable to your project, so we ask that you assist us in creating this kind of environment of free sharing of information by not posting your questions confidentially or privately, unless absolutely necessary (for example, when attaching confidential assets or screenshots of unreleased projects).

When posting please be aware of the following. These guidelines will help you receive efficient support.

  • Please limit the contents of one thread to a specific issue or topic. When multiple questions are included, you will be asked to submit the individual questions to separate threads. By dividing it into one issue per question, we can assign to multiple support staff who can then provide support concurrently.
  • Take advantage of the search feature. If you search for similar questions before submitting yours, it will help us provide more support as it will mean we are not allocating part of our resources to answering the same questions repeatedly.
  • Please provide as much relevant information as possible. A quick and accurate support answer is possible, if when asking questions you include the version of Unreal Engine being used, how to reproduce the issue, the call stack (in the case of a crash), screenshots in the case of a graphical issue, etc. If information is missing, we will have to request the missing information, and this back and forth will inevitably delay support. If you can provide a new project that reproduces the issue and can be opened with the standard, unmodified version of the engine provided from Epic’s Launcher, Perforce or GitHub, we can verify the problem, and reproduce the problem, and that will allow us to provide the fastest support.
    • For screenshots and assets you want to remain confidential, there are private posting settings that only Epic staff can view.

About reproducing issues in a new project in an unmodified version of the engine
Support is available to provide advice to help developers solve project problems, but it is not a substitute for development resources, and is not meant to solve all problems on behalf of developers.

To troubleshoot problems and behaviors, it is important to reproduce the same problem/behavior at Epic. Sometimes it is possible to fix bugs by doing things like making inferences from source code, etc. without reproducing the issue locally, but it is difficult to investigate, determine the cause, and correct issues if we cannot reliably reproduce them ourselves.

Therefore, we may ask you to provide steps and/or sample data for support to reproduce the issue, from a new project on a standard, unmodified version of the engine. It is not practical for us to attempt to understand the asset setup, blueprint formulation, engine changes, and project side code in all projects, but by preparing this kind of reproduction data, it makes it possible to determine if settings, code, or assets on the project side are the cause of the issue, or if it is a problem on the engine side.

Even if it is difficult for a developer to provide steps or data to reproduce an issue, we will advise about debugging methods and known issues, but please understand that there is a possibility that it may not always be possible for support to resolve the issue if we do not have a way to simply and reliably reproduce the issue locally.