簡體   English   中英

Unreal Engine:是否可以主要使用 C++/腳本而不是藍圖來完成?

[英]Unreal Engine: Can it be done primarily with C++/scripting instead of Blueprints?

我正在考慮我對游戲引擎的選擇。 我做了Twin Stick Shooter 教程 最讓我沮喪的是大部分編程都是在藍圖中完成的,這是一種丑陋的(這里是主觀的,但時間不長)圖形編程。 游戲的整個邏輯都是用盒子完成的……我覺得這很糟糕。 我什至逃離 Qt Designer 並使用純編碼和布局設計我的 GUI。

回到客觀的角度,問題在於“Twin Stick Shooter”是一款非常非常簡單的游戲。 然而,這些圖表最終非常復雜和龐大。 我發現這不是很容易維護而沒有問題,例如使用 git 或任何其他版本控制工具跟蹤隨時間的變化。 與 C++ 不同,維護大型代碼是一個非常古老的問題,可以通過多種方式解決,並且版本控制系統可以很好地處理它。

我的問題是:本教程(或任何一般游戲)中的同一游戲是否可以使用 C++ 中部署的所有邏輯(或可能少於 5% 的藍圖)來完成,而不是將其全部部署在藍圖圖表中(例如 Twin Stick Shooter )? 鑒於我不是 Unreal Engine 的專家,我認為專家對這個問題有一個很好的答案,他可以解釋純粹在 C++ 中可以做什么和不能做什么,以及為什么這樣做是好是壞那。

根據我在UE4中的經驗,我會回答:是的。

主藍圖節點和對象是用C ++制作的,通常可以通過C ++引擎API進行訪問。 實際上,BP節點的C ++版本通常使用起來更復雜(即具有更多可能的參數)。

我個人發現,游戲的任何重要方面,例如網絡,UI,游戲邏輯和關卡轉換都可以用C ++完成。

(...),以及這樣做的好處或壞處為何。

UE4的創建者說,Blueprint系統是為了幫助藝術家和非開發者使用引擎而開發的。 藍圖系統在游戲邏輯原型設計中也非常有幫助。

得益於Blueprints的彈性和創建時間,當您在C ++中創建低級,復雜或昂貴的代碼並將其API公開給Blueprint系統時,許多開發人員(包括我本人)決定使用混合方法。 它有助於將核心代碼與需要進行大量更改和調整的高級功能分開(優點:BP更易於調試,並且編譯時間更快)。

一個困難,我發現有混合BP和C ++是問題在C采用BP類++代碼的討論更詳細的在這里

我發現沒有任何問題(例如使用git或任何其他版本控制工具跟蹤隨着時間的變化)沒有什么可維護性。

UE4具有Blueprint合並工具,但我從未使用過。

從擁有20年C ++經驗但只有幾個月的UE4練習經驗的程序員的角度來看...我會說是的,但不是。

對於藍圖,我同意您的看法-只需一兩行代碼的簡單操作就需要五個或六個藍圖節點,而作為程序員,它很難閱讀。 您可以使用Unreal在C ++中執行任何操作。 但是您必須學習和使用現有的引擎代碼庫,虛幻引擎是一個復雜而強大的野獸。 即使具有多年的C ++經驗,我仍然發現做簡單的事情確實很困難,因為引擎要求它們以某種方式完成。

老實說,對於像雙棍射擊游戲這樣的東西,我會完全推薦Unity。

我不知道你提到的是什么游戲,但是一個主要用藍圖開發的項目是維護起來的噩夢,除非我們談論的是非常簡單的東西。 如果你在 C++ 中足夠流利,沒有理由不選擇這種方式。

然而,有一些事情是您 - 大多數時候 - 想要在藍圖中做的,例如 UMG 小部件、Ai(行為樹和黑板)等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM