Announcement

Collapse
No announcement yet.

Guide to use QtCreator for Unreal Engine 4 !

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Guide to use QtCreator for Unreal Engine 4 !

    Greeting Community !

    I want to share with you how to use QtCreator with yours Unreal Engine 4 projects !

    First, you may ask : Why just keeping VS Express 2013 ?

    Here is some point :

    - QtCreator is realy fast
    - QtCreator intellisense works 1000% better than Visual C++
    - QtCreator have a lot of refactoring options
    - QtCreator have a lot of usefull shortcut like F4 to switch header source, F2 to go to definition (instantly) ... etc

    At the end of the guide you will be able to :

    - Use QtCreator with full intellisense support
    - Build with QtCreator your Unreal Engine 4 Project
    - Run with QtCreator your Unreal Engine 4 Project

    So this guide assume that you have installed Qt with QtCreator like with this link :
    http://download.qt-project.org/offic...engl-5.3.0.exe

    Then to make it work we have to create our own .pro file wich is the project extension for QtCreator.

    We gonna call our project YourProject as an example

    1./ Create a file YourProject.pro in your root project directory (next to your uproject file) and copy this into :
    Code:
    	TEMPLATE = app
    	CONFIG += console
    	CONFIG -= app_bundle
    	CONFIG -= qt
    
    	# Declare and assign specific variable, you may change this path to work (do not add \ at the end of path !)
    	UNREAL_PATH = C:\Program Files\Unreal Engine
    	VISUAL_PATH = C:\Program Files (x86)\Microsoft Visual Studio 12.0
    
    	# Will define all unreal defines
    	include(defines.pri)
    
    	# Project source path (you may complete this)
    	HEADERS += Source\YourProject\*.h
    	SOURCES += Source\YourProject\*.cpp
    
    	# Project include path (you also may complete this)
    	INCLUDEPATH += Source\YourProject
    
    	# include path for generated files
    	INCLUDEPATH += Intermediate\Build\Win64\Inc\YourProject
    
    	# Will add all unreal include path 
    	include(includes.pri)
    2./ Create a file defines.pri next to YourProject.pro and copy this into :
    Code:
    	DEFINES += "$(NMakePreprocessorDefinitions)"
    	DEFINES += "UE_GAME=1"
    	DEFINES += "IS_PROGRAM=0"
    	DEFINES += "UE_ROCKET=1"
    	DEFINES += "UNICODE"
    	DEFINES += "_UNICODE"
    	DEFINES += "__UNREAL__"
    	DEFINES += "IS_MONOLITHIC=1"
    	DEFINES += "WITH_ENGINE=1"
    	DEFINES += "WITH_UNREAL_DEVELOPER_TOOLS=1"
    	DEFINES += "WITH_COREUOBJECT=1"
    	DEFINES += "USE_STATS_WITHOUT_ENGINE=0"
    	DEFINES += "WITH_PLUGIN_SUPPORT=0"
    	DEFINES += "USE_LOGGING_IN_SHIPPING=0"
    	DEFINES += "UE_BUILD_MINIMAL=1"
    	DEFINES += "WITH_EDITOR=1"
    	DEFINES += "WITH_EDITORONLY_DATA=0"
    	DEFINES += "WITH_SERVER_CODE=1"
    	DEFINES += "UBT_COMPILED_PLATFORM=Win64"
    	DEFINES += "WIN32=1"
    	DEFINES += "_WIN32_WINNT=0x0600"
    	DEFINES += "WINVER=0x0600"
    	DEFINES += "PLATFORM_WINDOWS=1"
    	DEFINES += "NDEBUG=1"
    	DEFINES += "UE_BUILD_DEVELOPMENT=1"
    	DEFINES += "UE_ENGINE_DIRECTORY=$$UNREAL_PATH/4.2/Engine/"
    	DEFINES += "ORIGINAL_FILE_NAME="YourProject.exe""
    	DEFINES += "YourProject_API="
    	DEFINES += "UE_ENABLE_ICU=1"
    	DEFINES += "WITH_STEAMWORKS=0"
    	DEFINES += "WITH_DIRECTXMATH=0"
    	DEFINES += "CORE_API="
    	DEFINES += "COREUOBJECT_API="
    	DEFINES += "WITH_PHYSX=1"
    	DEFINES += "WITH_APEX=1"
    	DEFINES += "WITH_RECAST=1"
    	DEFINES += "WITH_SPEEDTREE=0"
    	DEFINES += "ENGINE_API="
    	DEFINES += "SLATE_API="
    	DEFINES += "INPUTCORE_API="
    	DEFINES += "SLATECORE_API="
    	DEFINES += "MESSAGING_API="
    	DEFINES += "RENDERCORE_API="
    	DEFINES += "RHI_API="
    	DEFINES += "SHADERCORE_API="
    	DEFINES += "ASSETREGISTRY_API="
    	DEFINES += "ENGINEMESSAGES_API="
    	DEFINES += "ENGINESETTINGS_API="
    	DEFINES += "SYNTHBENCHMARK_API="
    	DEFINES += "RENDERER_API="
    	DEFINES += "UE_EDITOR=1"
    	DEFINES += "GITSOURCECONTROL_API="
    	DEFINES += "EDITORSTYLE_API="
    	DEFINES += "SOURCECONTROL_API="
    	DEFINES += "USE_NETWORK_PROFILER=1"
    	DEFINES += "WITH_SIMPLYGON=0"
    	DEFINES += "UNREALED_API="
    	DEFINES += "BSPMODE_API="
    	DEFINES += "DOCUMENTATION_API="
    	DEFINES += "PROJECTS_API="
    	DEFINES += "SANDBOXFILE_API="
    	DEFINES += "UNREALEDMESSAGES_API="
    	DEFINES += "BLUEPRINTGRAPH_API="
    	DEFINES += "XAUDIO2_API="
    	DEFINES += "USERFEEDBACK_API="
    	DEFINES += "COLLECTIONMANAGER_API="
    4./ Create a file includes.pri next to YourProject.pro and copy this into :
    Code:
    	# Engine include path
    	INCLUDEPATH += "$(NMakeIncludeSearchPath)"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Internationalization"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Async"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Concurrency"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Containers"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Delegates"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\GenericPlatform"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\HAL"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Math"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Misc"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Modules"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Modules\Boilerplate"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\ProfilingDebugging"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Serialization"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Serialization\Json"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Stats"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Templates"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\UObject"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Windows"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Classes"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\CoreUObject"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public\Blueprint"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public\Misc"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public\Serialization"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public\Templates"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public\UObject"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Classes"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Engine"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public\AI"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public\Landscape"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public\Net"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public\Slate"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public\Tests"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Slate"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Application"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Commands"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Docking"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Layout"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\MultiBox"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Notifications"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Styling"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Text"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Views"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Colors"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Docking"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Images"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Input"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Layout"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Navigation"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Notifications"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Testing"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Text"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Tutorials"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Views"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\InputCore\Classes"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\InputCore"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\InputCore\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\SlateCore"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Animation"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Application"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Brushes"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Fonts"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Input"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Layout"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Logging"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Rendering"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Sound"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Styling"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Textures"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Types"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Widgets"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Messaging"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Messaging\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Messaging\Public\Common"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Messaging\Public\Interfaces"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\RenderCore"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\RenderCore\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\RHI"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\RHI\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\ShaderCore"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\ShaderCore\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\AssetRegistry"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\AssetRegistry\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\EngineMessages\Classes"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\EngineMessages"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\EngineMessages\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\EngineSettings\Classes"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\EngineSettings"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\EngineSettings\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\SynthBenchmark"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Developer\SynthBenchmark\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Renderer"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Renderer\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\EditorStyle"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\EditorStyle\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\EditorStyle\Public\Classes"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\EditorStyle\Public\Interfaces"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\SourceControl"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Developer\SourceControl\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Programs\UnrealLightmass\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Classes"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\UnrealEd"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Commandlets"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Dialogs"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\DragAndDrop"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Features"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Kismet2"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Layers"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Toolkits"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\BspMode"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\BspMode\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Documentation"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\Documentation\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Projects"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Projects\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Projects\Public\Interfaces"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\SandboxFile"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SandboxFile\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEdMessages\Classes"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\UnrealEdMessages"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEdMessages\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\BlueprintGraph\Classes"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\BlueprintGraph"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\BlueprintGraph\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\XAudio2"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Windows\XAudio2\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\UserFeedback"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UserFeedback\Public"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\CollectionManager"
    	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Developer\CollectionManager\Public"
    	INCLUDEPATH += "$$VISUAL_PATH\VC\INCLUDE"
    	INCLUDEPATH += "C:\Program Files (x86)\Windows Kits\8.1\include\shared"
    	INCLUDEPATH += "C:\Program Files (x86)\Windows Kits\8.1\include\um"
    	INCLUDEPATH += "C:\Program Files (x86)\Windows Kits\8.1\include\winrt"
    Basically the defines.pri and includes.pri will store specific include and define that can be found into Visual C++ project.

    Once you have done that you can already open YourProject.pro with QtCreator and have full intellisense support !

    Now we are gonna do some stuff allowing you to build outside of VS Express

    1./ Add your C:\Program Files\Unreal Engine\4.2\Engine\Binaries\DotNET equivalent to your windows PATH (search on internet how to add something to Windows path if you don't know how to do it)

    2./ Close and relaunch your windows explorer to refresh your PATH ! (if you don't do it, it will not find UnrealBuildTool.exe)

    3./ Create a file BUILD_DLL.bat and copy this into :
    Code:
    	UnrealBuildTool.exe YourProjectEditor Win64 Development "%CD%\YourProject.uproject" -rocket
    4./ In QtCreator you must go into your project settings in Build and remove all compilations steps, then add a Custom Process Step and set Command to BUILD_DLL.bat and Working Directory to your root project directory

    Now when you hit build button (the hammer) or press CTRL + B QtCreator will run the BUILD_DLL.bat and build your project =)

    The last step is the execution

    1./ Add your C:\Program Files\Unreal Engine\4.2\Engine\Binaries\Win64 equivalent to your windows PATH (search on internet how to add something to Windows path if you don't know how to do it)

    2./ Close and relaunch your windows explorer to refresh your PATH ! (if you don't do it, it will not find UE4Editor.exe)

    3./ Create a file LaunchSolo.bat and copy this into :
    Code:
    	START UE4Editor.exe "%CD%\YourProject.uproject" Your_Map?game=YourProject -game -ResX=1280 -ResY=720
    	EXIT
    4./ In QtCreator you must go into your project settings in Run and add a Custom Executable and set Executable to LaunchSolo.bat and Working Directory to your root project directory

    Now when your hit the play button or press CTRL + R QtCreator will run LaunchSolo.bat and launch your project =)

    Your are now ready to develop using QtCreator ! (Congratulation !)

    This guide could be use with other IDE like Eclipse as well


    I realy hope this will help you !

    Bests

    Thanks to W1930U7 for his video !
    https://docs.google.com/file/d/0B0eV...ZsTmh2REU/edit

    PS: If you have questions, first re-read the guide to make sure you don't forgot anything and then ask it !

    PS: Wiki link : https://wiki.unrealengine.com/Using_..._UnrealEngine4
    Last edited by Antares; 07-03-2014, 03:35 AM.
    Blog
    Debris : My commercial game made with UDK
    Scaleform with Haxe tutorial
    Scaleform with Haxe demonstration
    LeapUDK : Leap Motion Controller for UDK

    #2
    This looks really great, I was actually just looking for something like this. I can't try it right now, so I can't provide any feedback but thank you for the time you spent in putting this up. Would you mind throwing this up on the unreal wiki too, so that more people will be likely to see and find it?

    Comment


      #3
      Originally posted by Cidubic View Post
      This looks really great, I was actually just looking for something like this. I can't try it right now, so I can't provide any feedback but thank you for the time you spent in putting this up. Would you mind throwing this up on the unreal wiki too, so that more people will be likely to see and find it?
      Will have to learn how to contribute to a wiki ! But yes will do it
      Blog
      Debris : My commercial game made with UDK
      Scaleform with Haxe tutorial
      Scaleform with Haxe demonstration
      LeapUDK : Leap Motion Controller for UDK

      Comment


        #4
        Great job, I dowloaded QT Creator to try this and I see you've already gotten it done. I'm looking forward to trying it out.

        Comment


          #5
          I can build and run my project and Ive got to say that it works pretty smooth - much faster than VS intellisense. Although, QT creator lacks few cool features comparing to Visual Assist X.

          But what about debugging project? Setting up breakpoints and stepping through application flow etc.

          Comment


            #6
            Originally posted by szyszek View Post
            I can build and run my project and Ive got to say that it works pretty smooth - much faster than VS intellisense. Although, QT creator lacks few cool features comparing to Visual Assist X.

            But what about debugging project? Setting up breakpoints and stepping through application flow etc.
            Glad to know that is working for you ! I have not start test on debugging right now but I will !
            Blog
            Debris : My commercial game made with UDK
            Scaleform with Haxe tutorial
            Scaleform with Haxe demonstration
            LeapUDK : Leap Motion Controller for UDK

            Comment


              #7
              Originally posted by Antares View Post
              I have not start test on debugging right now but I will !
              Please update with what you find out, I'm curious to see if this will work. Also, are you compiling with MS C++ or GCC?

              Comment


                #8
                Originally posted by jCoder View Post
                Please update with what you find out, I'm curious to see if this will work. Also, are you compiling with MS C++ or GCC?
                Just use the UnrealBuildTool wich is MS C++ (MSBuild.exe)
                Blog
                Debris : My commercial game made with UDK
                Scaleform with Haxe tutorial
                Scaleform with Haxe demonstration
                LeapUDK : Leap Motion Controller for UDK

                Comment


                  #9
                  Got it working for editing code only (still using VS for compile/debug) and I am impressed by the speed of Intellisense.
                  Now how embarrassing can this be for Microsoft? How difficult can it be to code a quick header file parser?
                  Antares, thanks man!

                  Comment


                    #11
                    Hi Antares,
                    I got QtCreator working a while back, but used a slightly different approach (plain project + custom toolchain-kits so debugging and highlighting of build errors were working). Eventually I gave up as I couldn't get some things working:

                    1. QtCreator code completion couldn't handle the deep nested hierarchies of ue4 and therefor I couldn't get code completion fully working on parent class properties/methods (it worked only up to 3-4 parent classes)
                    2. Visual Studio uses some precompiled headers techniques which are automatically included in each file. As QtCreator relies on standard C++ header includes (clean C++ style), I always had to include the correct missing headers. But it was quite annoying and there were always some small glitches were it wasn't fully working

                    Does your solution solve these issues? Then I'll give it another try as I also prefer QtCreator to VS

                    Comment


                      #12
                      Originally posted by splitDEV View Post
                      Hi Antares,
                      I got QtCreator working a while back, but used a slightly different approach (plain project + custom toolchain-kits so debugging and highlighting of build errors were working). Eventually I gave up as I couldn't get some things working:

                      1. QtCreator code completion couldn't handle the deep nested hierarchies of ue4 and therefor I couldn't get code completion fully working on parent class properties/methods (it worked only up to 3-4 parent classes)
                      2. Visual Studio uses some precompiled headers techniques which are automatically included in each file. As QtCreator relies on standard C++ header includes (clean C++ style), I always had to include the correct missing headers. But it was quite annoying and there were always some small glitches were it wasn't fully working

                      Does your solution solve these issues? Then I'll give it another try as I also prefer QtCreator to VS
                      I understand what you did, here I have include everything that VS include, this mean that Intellisense is fully working, even OVERRIDE and other macro are understand by QtCreator, give a try !
                      Blog
                      Debris : My commercial game made with UDK
                      Scaleform with Haxe tutorial
                      Scaleform with Haxe demonstration
                      LeapUDK : Leap Motion Controller for UDK

                      Comment


                        #13
                        I would like to try this by I am stuck at the build/run step. I do not see a working directory field and I don't know if I link to the build.bat or to the unrealbuildtool...
                        If you could be more precise or perhaps take a screenshot of your settings so that I may finish my setup, thank you.

                        Comment


                          #14
                          Originally posted by IllpIll View Post
                          I would like to try this by I am stuck at the build/run step. I do not see a working directory field and I don't know if I link to the build.bat or to the unrealbuildtool...
                          If you could be more precise or perhaps take a screenshot of your settings so that I may finish my setup, thank you.
                          You have to use BUILD_DLL.bat, but unrealbuildtool must be in your windows path.

                          I will post screenshot as soon as I can
                          Blog
                          Debris : My commercial game made with UDK
                          Scaleform with Haxe tutorial
                          Scaleform with Haxe demonstration
                          LeapUDK : Leap Motion Controller for UDK

                          Comment


                            #15
                            I seem to be stuck on this part:
                            4./ In QtCreator you must go into your project settings in Build and remove all compilations steps, then add a Custom Process Step and set Command to BUILD_DLL.bat and Working Directory to your root project directory

                            I've opened the MyProject.pro in QtCreator.
                            In Project Mode (is synonymous with Project Settings?), there I see under Configure Project: No Valid Kits. I'm not sure if that's an issue.
                            Looking for Build Settings. I found 'Build & Run' under options, again I'm not sure if this is the correct area?

                            Comment

                            Working...
                            X