FLAMEc隨手記

一陣風飄過~~~

0%

20050922是我上班完離職日~

在上班的這麼多天一直評估~

我能不能在這個工作做下去~

結論是可以但是難…

可能是工作內容有沒有樂趣?評估低?

可能是待人處事上的問題?評估低?

最終就是覺得做下去是可以但是會心累~~~

所以才會轉換跑道到自由工作者~~~

自由工作者就是要自己找工作!!!

還好有合作者~

當然會需要考核等!!

就拚盡全力上吧~

最近找工作,以為沒人鳥我所以去舊同事新開的團隊~~~

是一個博弈團隊,金主可能和對岸有關吧!?不知道~~~

總之是想說說開發環境心得~~~

就是分內外網,而且電腦看管很嚴格!!!

基本摸不到XD

內外網呢…斷的一個徹底!!

我A和同事B電腦基本不通~

然後sever要架給他用…

嗯…ping都ping不到怎麼連線???

所以無言了!!!

查資料要用外網機~~~

但是各大AI都不能用???

複製貼上很不方便!!最後用手機查…

然後真人手打XDD

部屬交接部分是比日本稍差~~~

至少日本要求要一個不懂電腦的人要按一下部屬…???(這req沒問題???)

我前後端都懂一點執行後一堆錯誤????????

版本過舊也是一個問題0.0

開發的時候是不是要考慮一下版本升級問題???

不要什麼奇怪套件好用就用然後卡升級0.0…

斷內外網主要是怕code外流吧!!!

這很看人品~~~至少我沒啥興趣這樣做0.0…

總之斷內外網會很不方便~~~

如果真碰到可以先想想考慮一下!!!

Unity的運作方式讓開發者可以在一個GameObject上面自由的掛Compoment~

這邊的Compoment是一個class繼承了MonoBehaviour!!!

(這邊不討論繼承Compoment和MonoBehaviour差異~)

用血條來說好了~

怪物和玩家物件多半都會有血量設定和顯示血條~

但是有血量並不一定會顯示血條!!比如隱形狀態玩家~~~~

所以可以預見的是血量和血調顯示會設計成分開的~~~

因為像BOSS等特殊怪可能會有特殊顯示方式!

那麼可以設計一個血條class~

只需要掛到角色上面就會顯示血條!!

這時候就可以將血條拆開變成一個Compoment~

要顯示在掛上去~要特殊血條只需要掛對應血條Compoment即可!!

就會形成一個特殊狀況!!如果這個GameObject是一個可破壞物件~

沒被打到不會顯示血條~~~

那就會變成一開始都沒血條~~~

等到被玩家攻擊後才加上血條Compoment顯示血條~

當然一些邏輯判斷也可以用GetComponent來檢查狀態~~~

這樣做很好用,但是不宜過度使用!!!

比如說Attacter這種屬性,掛上去代表有攻擊力~

然後可被攻擊物件掛上AttactAble的Compoment~

在加上比如PhysicDamageAble等Compoment~

會造成一次傷害需要呼叫15次以上的function~

我碰到的就是18次?呼叫function沒有效能消耗嗎???

打到一次敵人用各種Compoment檢查可不可以打人、可不可以被打等等~~~

這樣不會有效能問題嗎?

因為這個專案是測試專案,所以沒有到測試效能問題狀況~

但是這很可能碰到,希望大家不要沒事丟著就走了….

我這次要用Vue3+Websocket對接rouletteserver C++ Server~

封包要使用protobuff,比較方便啊!!

一開始我是去抓protobuff release版本 github連結(https://github.com/protocolbuffers/protobuf/releases)

這時候版本是 32.0-rc2~

抓了protobuf-32.0-rc2.zip和protoc-32.0-rc-2-win64.zip

前者是有source code~後者有protoc.exe

但是呢…搞了很久都沒辦法在vs2022專案中編譯過!!!

然後另尋辦法,使用vcpkg安裝protobuff,大概流程如下~

先在專案目錄下建立vcpkg.json,內容如下

1
2
3
4
5
6
7
8
{
"name": "rouletteserver",
"version-string": "1.0.0",
"builtin-baseline": "f993fc42532591aeb07328bbe0add868b0629d0f",
"dependencies": [
"protobuf"
]
}

然後執行vs2022的 工具=>命令列=>開發人員命令提示字元~

開啟一個黑色小視窗,然後輸入vcpkg install~~~

可有能會被停醒要開啟manifest!!!

在專案右鍵=>屬性=>vcpke中,調整成是,我印象中一開始是沒有vcpkg頁面的,大概是執行vcpkge install後出現的!?

然後Build成功了!!!!!!!!!!!!!大歡喜XDDDDDDDDDDDD

我的第一個message如下,在login.proto中

1
2
3
4
5
6
7
8
9
10
11
12
13
syntax = "proto3";

package loginpackage;

message LoginRequest {
string username = 1;
string password = 2;
}

message LoginResponse {
string username = 1;
string password = 2;
}

使用結果是執行下面程式碼後…

1
2
3
4
5
loginpackage::LoginResponse res;

res.set_username("test");

std::cout << "user=" << res.username() << std::endl;

會印出

user=

是空值,沒有資料,我研究呢很久找不到問題0.0…明明設定了…

然後跑去protobuff git直接抓最新版,安裝CMake,Build了一個版本出來試試看~

但是執行上面空值程式碼還是空值!!!!

最後我發現是我亂複製dll到x64\Debug下面~

大概是因為一開始缺東缺西不知從哪邊複製的…

導致debug版本用錯dll,然後就string穩定空值,只有int等有效果~

所以最後可行流程是!!

  1. 建立vcpkg.json並用上面說的內容然後vcpkg install,builtin-baseline要去vcpkg git上面查~
  2. 不要自行新增其他include目錄和其他程式庫目錄,全部都交給vcpkg
  3. 不要亂複製dll檔案到執行目錄(x64\Debug),正常會自己產生
  4. debug版本要用debug版本dll,abseil_dll.dll,libprotobufd.dll,libprotobuf-lited.dll~
  5. release版本要用debug版本dll,abseil_dll.dll,libprotobuf.dll,libprotobuf-lite.dll~

然後就可以執行了!!

字串也不會很神奇的空值!!

順便提一下,vcpkg安裝的版本會比github上面的版本稍舊,大概是穩定版關係

這邊沒紀錄用CMake開vs2022專案,個人覺得直接用vcpkg比較快用方便就不說了~

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment