用Python寫3A?Cygames的遊戲引擎做得怎麼樣

2021-01-07 騰訊網

有句話叫「二流的遊戲公司做遊戲,一流的遊戲公司做平臺」。索尼、任天堂、微軟這些主機公司,除了推出第一方遊戲以外,當然也在維護自家的遊戲系統。

《堡壘之夜》的開發商Epic,也把自家的「虛幻引擎」共享出來,幫自己擴大影響

其實,以《公主連結RE:Dive》、《碧藍幻想》聞名的手遊公司Cygames,也有做3A遊戲引擎的野心。

前幾天,他們就在日本電子娛樂開發者大會(CEDEC 2020)上面,介紹了內部研發好幾年的遊戲引擎「Cyllista Game Engine

正在使用「Cyllista Game Engine」開發的3A遊戲《Project Awakening》

這個引擎的目標,是用「簡單的腳本語言寫3A遊戲」。根據演講者的說法,這將是一個「讓開發者的效率發揮到極限,最棒的遊戲引擎」

Cygames遊戲工程師衝幸太郎,正在開發「Cyllista Game Engine」

然後實現這一目標,遊戲編寫過程就必須足夠簡單與快速,支持一邊編寫,一邊測試與迭代的高速開發方式。

同時,引擎用的語言,會用的開發者是越多就越好。於是他們,就把這幾年人氣最高,最為常見的Python作為程式語言了。

在各種程式語言排行榜上,Python都排在前幾位

畢竟Python好學易懂,入門門檻低。這幾年人工智慧、機械學習的火爆,也帶來了一大批新入門的學習者。

接近自然語言的寫法,能夠大幅提高開發的速度。大量的第三方包,與Pycham這種成熟的IDE工具,也給用戶省下了「重複造輪子」的時間。

甚至連地產大亨潘石屹,都跑去學Python了

但Python還是有軟肋的——作為一門解釋型語言,Python的執行速度比較慢。所以在大型遊戲製作的工作當中,Python基本上只是輔助工具,幫助完成測試。

操作遊戲引擎的常見代碼,一般還是需要用C++、C#這種編譯型語言編寫。採用Python作為程式語言的遊戲引擎Pygame,主要服務的對象,也是對延遲要求不高的2D遊戲。

使用python開發的文字冒險遊戲《心跳文學部》(使用基於pygame的renpy)

雖然還在內部測試階段,但Cyllista Game Engine」裡面,從資源管理器,到關卡設計工具,幾乎所有的工具,都用Python寫成。

為了解決Python的執行效率問題,Cygames的做法,是引入「NumPy」這個數學庫,處理對延遲敏感的任務。

加入Numpy以後,循環處理快了200倍

為了進一步優化速度,他們還利用pybind11優化了C語言庫調用。Python並行處理不行的弱點,他們也計劃用multiprocessing迴避。

作為一個現代引擎, 「熱重載」功能自然也是少不了的。CY引擎做到了隨時修改代碼、讓效果立即在遊戲中呈現。

至於遊戲菜單這種操作界面(GUI),則採用了Qt for Python(PySide2)。雖然QT庫的Python文檔不多,但C++ QT的文檔也能用。

總結起來,就是Python雖然很熱門,但是作為遊戲開發語言,有速度上的不足。但這些問題,Cygames經過數年開發之後,都想出了辦法解決。

可以看到,以「不務正業」聞名的Cygames,拿到大家氪金的錢以後,除了發獎與做動畫,也在做對業界有益的長期準備。

本次報導就到這裡。對CY遊戲引擎,大家有什麼期許或評價,歡迎留言討論。

另外,像《碧藍幻想》或《公主連結RE:DIVE》這些Cygames手遊,也可以使用OurPlay加速喔。

相關焦點

  • 如何用python寫遊戲腳本?
    很多人學習python,不知道從何學起。很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。很多已經做案例的人,卻不知道如何去學習更加高深的知識。那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視頻教程,電子書籍,以及課程的原始碼!
  • 用Python寫個在線Python的網站怎麼樣
    前幾天,一個朋友提出了一個建議,如何用python寫出python的解釋器,我感覺這是一個很好的問題,於是就去看看,打算用python寫一個試試
  • Python一行代碼,能玩這麼多童年的遊戲?
    安裝完之後我們可以使用python -m freegames list來查看所有的遊戲列表貪吃蛇現在我們可以使用一行代碼啟動相關遊戲,比如貪吃蛇snakepython -m freegames.snake貪吃蛇的玩法想必不用過多解釋了,使用鍵盤即可操控吃豆人吃豆人沒玩過也應該聽過,使用下面的代碼可以啟動一個類似吃豆人的遊戲
  • 用python寫遊戲之200行代碼寫個數字華容道
    今天來分析一個益智遊戲,數字華容道。當初對這個遊戲頗有印象還是在最強大腦節目上面,何猷君以幾十秒就完成了這個遊戲。前幾天寫2048的時候,又想起了這個遊戲,想著來研究一下。遊戲玩法用儘量少的步數,儘量短的時間,將棋盤上的數字方塊,按照從左到右、從上到下的順序重新排列整齊。效果圖遊戲操作方式第一種是通過鍵盤的按鍵來移動數字,比如按上鍵,需要做的操作是把13移上去。
  • 用Python 寫遊戲之FlappyBird
    遊戲玩法非常簡單,通過點擊屏幕,使小鳥一直飛並穿過水管的空隙。雖然玩法簡單,但是卻具有一定的難度,因為要一直控制小鳥飛在適合的高度,以避開障礙。今天,我們就來分析這個遊戲的原理,以及用python做一個簡易版的FlappyBird。
  • 中外遊戲的區別:國外拿虛幻4引擎做3A大作,國內做出了和平精英
    「很多人只看到了《最後的生還者2》劇情上的狗血,卻沒能注意到技術之間絕望的鴻溝」,以上這句話來自於《黑神話:悟空》的製作人馮驥之口,所謂內行看門道,他在做《黑神話:悟空》的過程中,深刻感受到了中外遊戲技術上的差異。
  • python撿金幣遊戲(上)
    創建遊戲背景這裡設置了遊戲的基本窗口尺寸,標題,以及背景顏色。遊戲背景可以使用現成的圖片素材,也可以使用單純的顏色設置,這裡採用顏色設置,具體顏色值可以到網上搜索一下就可以了。實現碰撞檢測-人物撿到金幣這裡涉及到坐標的判定,用自己的方法會相對會比較複雜,但是為了我們了解遊戲碰撞檢測的一個原理,這裡還是要學習一下,之後再用pygame遊戲引擎提供的方法來實現。這裡要解決兩個問題,如何判斷人物碰到金幣,第二如何讓人物碰到金幣後消失。
  • 主流遊戲引擎都是用什麼語言來開發?
    1.unity 3d這是目前最火的遊戲引擎之一,像王者榮耀和仙劍六都是unity 3d開發的,這個引擎開發效率很高。這個引擎要用C#來開發。這個引擎下限很低,上限也很高,用這個引擎不會編程都可以做遊戲,這裡面有個叫「藍圖」的東西,用藍圖可以在不懂編程的情況下做遊戲。虛幻引擎主要用C++來開發。
  • 帶你寫個python猜數字的遊戲
    我們小時候是不是會經常在一起做些遊戲,想想小時候那些時光,不自覺的想到自己在慢慢變老,對於有童心的我來說,用python寫個猜數字的遊戲,也是不錯的。接下來我們就來寫程序:今天的程序我就開始來寫了,請一起來動手敲代碼。
  • 用 Python 寫一個安卓 APP
    Python 寫安卓 APP 肯定不是最好的選擇,目前用Java和 kotlin 寫的居多,但是肯定也是一個很偷懶的選擇,而且實在不想學習 Java,再者,就編程而言已經會的就 Python與Golang(註:Python,Golang水平都一般),那麼久Google了一下Python 寫安卓的 APP 的可能性,還真行。
  • 桌面遊戲,不僅僅是遊戲! Board games, more than just games.
    桌面遊戲,不僅僅是遊戲Board games, more than just games現在的孩子們課業壓力很大,您的孩子都在學什麼?除了去學校,一周還有幾天要去上各種課程?爸爸媽媽為了讓孩子不輸在起跑線上常常給寶寶報各種興趣特長班,從很小的年齡就開始,心情可以理解。
  • Cygames《公主連接!Re:Dive》將推出中文
    Cygames《公主連接!Re:Dive》將推出中文2018-02-28 09:25來源:其他作者:佚名責任編輯:wujiawen1由Cygames推出的動畫RPG《公主連接!Re:Dive》在近日宣布,將為本作推出簡體中文、繁體中文與韓語語言,預定在2018年內配信。
  • 雅思前考官大作文開篇寫得怎麼樣?
    如何寫好雅思大作文開篇看似簡單,實則絕非易事。通過開篇可以考查考生的審題能力、確認任務和明確問題的能力,同時還可以檢驗考生駕馭主題、組織篇章和掌控論點的策略、方法和技巧。然而很多考生沒有樹立起開篇意識,忽視開篇的重要性,隨意應對題目及要求,因此,很多情況下,開篇寫得文不對題、任務不明確、問題不清晰,有的甚至南轅北轍、離題萬裡。那麼如何改變這種狀況呢?
  • 同樣是虛幻4引擎,國外能做出3A大作,國內遊戲就這?
    現在一款遊戲發售玩家第一個關心的就是這遊戲用的是什麼引擎?對於一款遊戲而言,開發組的用心決定了它的下限,但遊戲的開發引擎則決定了它的上限。談起開發引擎,虛幻4便是絕對繞不開的話題!這個由Epic於2016年開發的(非商業用途)免費引擎成就了無數開發者,造就了不少大家耳熟能詳的大作,如:FF7、無主之地、戰爭機器、街頭霸王……乃至成為現象級遊戲火遍全球的《絕地求生》都是用虛幻4引擎開發的。虛幻4一度成為了精品遊戲和超強畫面在玩家群體中的代名詞。然而使用虛幻4成名的大作中,很難想出幾個國產遊戲的名字。
  • 5個火爆 GitHub 的 Python 練習項目,快來收藏!
    所以找到自己感興趣、能夠跟著動手和學習的 Python 項目是特別重要的,這樣才能把學會的 Python 知識用起來,不斷地提高。最終從新手晉升為高手!今天我們分享的這些項目,保證你會眼前一亮,跟著學習下來,成為高手穩穩的!1. Python-100-Days這是一個完全面向小白的 Python 系列教程項目,可以說是超級貼心、從零基礎到進階都安排好了!
  • 遊戲引擎有沒有高低之分:虛幻4引擎就一定好?
    遊戲引擎是如今開發遊戲必不可少的工具,現在幾乎任何遊戲都是靠遊戲引擎做出來的。相信各位喜愛遊戲的玩家們,一定也對某些遊戲引擎略之一二,也講得出幾個大名吧? 沒錯,現在的遊戲引擎早已不是什麼業界機密,而是唾手可得的東西了。而遊戲引擎如今也有百百種,有分3D的、2D的,商用的、自製的等等……每一個都有自己的優勢跟劣勢。
  • 如何用 Python 寫一個安卓 APP ?
    22點24分準時推送,第一時間送達  編輯:技術君 | 來源:youerning  上一篇:  正文  前言  用 Python 寫安卓 APP 肯定不是最好的選擇,目前用Java和 kotlin
  • 我用Python做過些什麼?
    這沒辦法,不管誰來寫,應用場景也就是這些,況且知乎上關於有哪些使用 Python 的公司那個回答也是我最早在2013年整理的。其實那篇文章本是個引子,主要是我想回顧下自己用 Python 做過的事情。後來發現內容太多就拆成了兩篇。今天就來分享下我自己的 Python 開發經歷。(這不會再有人說是網上抄來的吧。)
  • 我在GitHub上找到了這些遊戲項目,刺激!
    :https://codeincomplete.com/games/tetris/除了上述俄羅斯方塊遊戲外,還有一款不錯的,我也是非常喜歡,這個項目是通過 React 實現的,遊戲框架使用的是 React + Redux,其中再加入了 Immutable,用它的實例來做來 Redux 的 state,跟上述實現的方式還是有所不同。
  • 遊戲引擎開發的學習路線
    很多遊戲幵發者認為自己能寫邏輯就等於掌握了遊戲開發技術,引擎對自己來說無足輕重,這種想法是有問題的。