Toggle navigation
Search
思元的開發筆記
Programming
Unity
LeetCode
Golang
Game Demos
Archive
Blog
About
思元的開發筆記
關於 web service, unity, blogger 等軟體工程筆記
×
Search dev.twsiyuan.com
多人網路連線遊戲程式開發之讀書筆記:同步遊戲資料,資料序列化與物件複製,處理網路延遲與伺服器安全性
Multi-Player Game Programming ,這是一本介紹如何建置多人網路遊戲程式的書,提到許多關於網路遊戲傳輸的重要概念,例如如何同步遊戲世界資料,如何讓遊戲玩起順順不卡頓 (lag)等等,以及多人遊戲會遇到的困難與挑戰,有志朝網路遊戲程式設計可以閱...
Read More
王思元
9:48 下午
軟體工程
,
讀書筆記
,
Backend
LeetCode #42 Trapping Rain Water
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to ...
Read More
王思元
11:19 下午
題目解題
,
LeetCode
LeetCode #37 Sudoku Solver
Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are indicated by the character ‘.’. You may assume ...
Read More
王思元
10:52 下午
題目解題
,
LeetCode
LeetCode #32 Longest Valid Parentheses
Given a string containing just the characters '(' and ')' , find the length of the longest valid (well-formed) pare...
Read More
王思元
11:14 下午
題目解題
,
LeetCode
LeetCode #25 Reverse Nodes in k-Group
Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.
Read More
王思元
10:03 下午
題目解題
,
LeetCode
LeetCode #23 Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 在這次問題中,嘗試使用 Go 來實作三種不同的解題方式,總結其複雜...
Read More
王思元
10:23 下午
題目解題
,
LeetCode
AWS Beanstalk: Go WebApp 部署筆記
記錄前陣子將使用 Go 所寫的網路服務 (Restful API server),部署到 AWS Beanstalk 的筆記記錄,讓未來部署除了官方文件外,還有一個參考筆記。
Read More
王思元
11:00 下午
服務部署
,
AWS
,
Golang
LeetCode #10 Regular Expression Matching
'.' Matches any single character. '*' Matches zero or more of the preceding element. The matching should cover the e...
Read More
王思元
8:31 下午
題目解題
,
LeetCode
Unity AssetBundle 資料列表載入以及打包架構思考,使用 Pokémon 作為範例
最近社群有看到有人詢問,關於如何在 Unity 中,設計敵人列表的 AssetBundle 資源加載架構設計,例如之前釋出一版本包含敵人 A, B, 以及 C 種類,在之後又追加敵人 D 以及 E 的資料,要如何處理這多出來的資源載入,使得原先的資源可以不用重新下載,只需要...
Read More
王思元
11:12 下午
程式語言
,
C-sharp
,
Unity
OpenSSL 建立 CSR 找不到 openssl.cnf 錯誤處理
在處理申請 SSL 用的憑證 (Certificate) 所遇到的問題,向憑證簽發商 (Certificate authority, CA) 申請憑證前,需要先建立準備 CSR (Certificate Signing Request),而透過 openssl 指...
Read More
王思元
6:30 下午
網站
LeetCode #6 ZigZag Conversion
記錄 LeetCode #6 ZigZag 思考解法的過程筆記,並使用 Go 來實作。
Read More
王思元
9:35 下午
題目解題
,
LeetCode
Unity 根據美術需求客製化 Sprite shader,基於官方 shader 開始改起
在社群中看到有人詢問 2D 遊戲上的特殊效果如何製作,從需求中得知這種要求,能直接改 shader 是最快了,畢竟 shader 可以決定每一個 Pixel 最終呈現顏色的可程式化著色器 (Programmable shader) 呢。因此就好奇跟作者 Leo Wang...
Read More
王思元
9:00 上午
程式語言
,
Shader
,
Unity
LeetCode #1 #167 #653 Two Sum
最近再嘗試使用 Go 來解 LeetCode 上的題目,剛好解完這三個非常相似的簡單題目,因此寫下筆記紀錄。
Read More
王思元
9:25 下午
題目解題
,
LeetCode
Golang Iterator Channel Implementation
這是一個關於 Go 的程式研究紀錄筆記,原先設計一個迭代器的操作模式 (Iterator pattern):
Read More
王思元
8:30 上午
程式語言
,
Golang
MariaDB (MySQL) UUID 優化之儲存方式 (storage)
最近專案的資料庫調整,由於有使用到 UUID,再煩惱怎麼要儲存減少資料量,讓之後的索引建置能夠更有效率,原先的儲存方式為 char(36) 想必是超級浪費空間的作法。
Read More
王思元
6:15 下午
軟體開發
,
Database
Unity AssetBundle 快取機制與載入範例
前陣子看到有人詢問關於 AssetBundle 載入以及其快取機制 (caching) 的處理問題,因此整理這篇筆記,供之後給團隊解說與教學之用。
Read More
王思元
9:30 下午
程式語言
,
C-sharp
,
Unity
TCP 連線狀態機制與流程
在開發基於 HTTP 的網路應用服務時,當有大量連線要求,或是與長連線 (Persistent connection) 要求時,常常遇到底層 TCP 的連線斷線錯誤,導致服務不穩定。因此研究了解 TCP 的連線狀態機制,並嘗試用自己的方式整理筆記,希望能從基礎知識中找到...
Read More
王思元
8:51 下午
軟體工程
,
TCP
由 Golang 程式碼產生 Restful API 文件,使用 Swagger 規範 (OpenAPI 2.0)
Swagger 是一套 RESTful API 描敘語法,近期發展改名成 OpenAPI 規範 ,其生態系統工具也發展相當強大,不僅能從 Swagger 轉換成可互動式的網頁說明文件,產生特定的程式語言的用戶端實作 (client implementation),也可以...
Read More
王思元
9:26 下午
軟體開發
,
Golang
,
HTTP
Unity Prefabs 之使用方式筆記
Prefab (預製物件) 是在 Unity 中經常被使用的機制之一,能將 GameObject 以及其 Components 的屬性狀態儲存為單一個 Asset。當 Prefab 屬性調整時,Unity 能夠自動更新放置在場景 (Scenes) 中的實體物件 (Prefa...
Read More
王思元
10:13 下午
程式語言
,
C-sharp
,
Unity
Unity 載入外部檔案機制之整理筆記
最近看到社團一些詢問 Unity 載入外部設定檔的問題,因此整理若要在 Unity 中實作外部載入的功能,有哪些機制可以使用以及比較。
Read More
王思元
9:40 下午
程式語言
,
C-sharp
,
Unity
COSCUP 2017 議程筆記微感想
之前參與 COSCUP 2017 的小筆記與感想 (2017-08-06),記得當初為了搶這票券,也是費了一番苦心。但計畫總是趕不上變化,這次只有參加第二天的議程,除了外面的攤位有去走了一圈逛逛外,大部分都在 Golang 社群議程場內活動。
Read More
王思元
6:26 下午
活動
,
Golang
使用 xcode 取得 iOS 設備的即時 log
記錄如何取得 iOS 設備的即時 log (runtime logs) 筆記,有 log 才有辦法拿到錯誤訊息,而錯誤訊息 (error message) 可用來分析為什麼會造成 crash,才能進一步去修正其錯誤。 對於較熟悉 Android 自己來說,這功能比較...
Read More
王思元
7:00 下午
軟體開發
,
iOS
,
xCode
Accupass 瀏覽擴充功能,使用 Javascript + TamperMonkey 自製自動加載頁面
提示:發佈文章前發現其網站改版,以下腳本是針對 舊版本的活動瀏覽 Accupass 活動通,是一個集結各式活動並販售活動票券網站(亦可參考另一個同類型的網站 KKTIX ),自己蠻常在活動通上瀏覽活動,讓自己的下班生活能夠多點變化,接觸職場沒機會接觸的議題與活動。
Read More
王思元
9:56 下午
程式語言
,
JavaScript
Evernote to Blogger,第一次在 Golang 聚會中分享個人專案
What is this Evernote to Blogger 是一個自己的個人專案,主要是要解決自己的發佈文章的痛點,串接 Evernote 以及 Blogger APIs,使得發佈文章流程更能簡化的專案。
Read More
王思元
10:30 下午
活動
,
程式語言
,
Golang
使用 Golang 串接 Google Blogger API,張貼文章與上傳圖片
個人專案需求,建置較容易發佈文章到部落格的流程服務,使用 golang 串接 Google Blogger API,將文章文字以及其圖片上傳到 Blogger 平台。Google 已經在 Github 上發布專為 golang 所準備的 SDK 實作,其中包含管理部落...
Read More
王思元
1:22 下午
程式語言
,
Golang
建置 Unity iOS xcode 專案遇到的錯誤與解決方案 (Linker error)
建置 xcode 專案丟出的錯誤訊息:Undefined symbols 最近要在 Unity 建置 iOS 專案遇到的錯誤問題,第一次跑整個建置流程,先在 Unity 執行遊戲建置產生 xcode 專案,再開啟 xcode 專案進行 app 打包建置,但卻遇到以下 li...
Read More
王思元
6:37 下午
iOS
,
Unity
台北開發者論壇 (TGDF 2017, Taipei Game Developers Forum) 會後感想雜談
想要從論壇中獲得些什麼 這次是第一次參加 台北遊戲開發者論壇 ,想看看論壇中到底有什麼,事前也沒有特別查看議程以及講者,就報名了這場遊戲論壇,結束後的反省是,應該要意識自己想從論壇中獲得些什麼,在報名前就應該先查清楚論壇的目標受眾是哪些人,想清楚想從議程中獲得些什麼,...
Read More
王思元
1:29 下午
活動
Blogger 使用 jQuery jScroll 實作無限捲頁,自動載入更多文章 (Infinite scrolling)
無限捲頁 (infinite scrolling),或是被稱為其他名字,自動換頁 (auto pagination),無限滾動 (endless scrolling),無限頁面(endless pages) ,或是懶加載 (lazy loading) 等等…。主要目的是...
Read More
王思元
6:20 下午
網站
,
Blogger
,
JavaScript
Evernote SDK for Golang 自行建置、使用範例以及開放授權流程 (OAuth)
由於個人需求需要能從 Evernote 下載筆記以及資源,但官方網站沒有能看到 SDK for Golang,且官方 Github 帳號中也沒有看到,想必目前是現在還沒有正式支援吧,也可能是 Golang 開發者還不常接 Evernote……。
Read More
王思元
6:14 下午
程式語言
,
Golang
Unity 開發者大會筆記 2017,優化x優化x優化
紀錄這次參加 Unity 開發者論壇,比較有印象的場次筆記。因為是開發者大會,所以大多是聽技術專場,而很大一部分都是在討論遊戲優化的議題。如何讓遊戲效能能夠穩定 FPS 60 以上,讓玩家擁有較好的遊戲體驗,而不是玩起來卡卡的,這是一個相當重要的議題。 而遊戲優化議...
Read More
王思元
6:20 下午
活動
,
軟體開發
,
Unity
學習 Unity 自製編輯器需要知道的三個管道 (Custom editor programming in Unity)
Unity 現在算是台灣業界常用的遊戲引擎之一,其功能不僅協助開發人員快速開發遊戲外,還提供讓開發人員自訂專案所需要的編輯器 (Editor)。 一位資深的程式設計師不僅得學習如何使用 Unity,撰寫架在 Unity 上的專案程式碼,甚至還需要學習如何開發 Unity ...
Read More
王思元
6:13 下午
軟體開發
,
Unity
Unity 專案中 *.meta 做什麼用
最近團隊有人詢問 Unity 的 GUID 機制,在思考回答的過程中,順便把它整理成這篇筆記。如果要尋找能夠與工程團隊合作的 Unity 工程師,我想這一題應該會列在考題之中,meta 檔是做什麼用的?如果能回答出 Unity GUID 追蹤資源的機制,相信已經能夠滿足團隊...
Read More
王思元
11:06 下午
軟體開發
,
Unity
There are inconsistent line endings in the 'SomeScript.cs' script. Some are Mac OS X (UNIX) and some are Windows. 的處理方法
Unity 使用上常常遇到的警告,經常從 Unity Project 點選程式碼,使用預設的 IDE - Visual Studio 編輯程式碼後,回到 Unity 等待編譯完成後,會遇到丟出來的警告訊息:
Read More
王思元
4:23 下午
軟體開發
,
Unity
Unity Coroutine 使用筆記
最近有人問為什麼 Nested coroutine 的機制與問題,為什麼會是需要 yield return StartCoroutine(...) ,而不能省略 StartCoroutine ?在久遠的 Unity3.x 時代,印象中得呼叫該函數才能夠正常運作。...
Read More
王思元
11:43 下午
程式語言
,
C-sharp
,
Unity
Golang HTTP Request 遇到的坑:An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
之前服務要上線前,開始跑內部測試發現的問題,從 Event log 留意到服務會自動關閉,從中找到錯誤訊息如下:
Read More
王思元
8:35 下午
程式語言
,
Golang
Unity AssetBundle Variants 機制研究筆記
最近使用 AssetBundle Variants 機制來打包遊戲專案,紀錄打包遇到的問題以及解決筆記。關於 AssetBnudles 機制可以參考 系列文章 。
Read More
王思元
9:43 下午
程式語言
,
C-sharp
,
Unity
如何在 Unity 中實作場景資源參照 (SceneAsset Reference)
社團中看到有人問如何建立場景參照 (Scene Reference),當改變場景檔案名稱時 (*.unity),其 Reference 不會消失的功能,激起一點好奇心研究。查看 Unity 本身沒有提供該功能,Unity 場景管理 (SceneManager) 都是靠場景...
Read More
王思元
6:47 下午
程式語言
,
C-sharp
,
Unity
在 Unity 使用 AssetBundles 實作進階的遊戲資源打包以及更新機制
在 前篇文章 中,我們僅是將所有遊戲資源(Assets) 包在同一包 AssetBundle,這會造成小量的資源更新,玩家得重新下載這一大包的 AssetBundle 才行,造成遊戲體驗變得很糟,且也會造成伺服器流量負擔。 在這篇文章裡,我們將考慮開發者所設定的 Ass...
Read More
王思元
6:05 下午
程式語言
,
C-sharp
,
Unity
在 Unity 使用 AssetBundles 實作簡易的遊戲資源打包以及更新機制
Unity 官方之前在 Asset Store 上有分享 AssetBundle Manager ,並提供官方教學文章介紹 AssetBundle 載入機制,我們參考該教學以及範例,因應遊戲設計考量,自己使用 Unity 提供的底層 AssetBundle API,製作...
Read More
王思元
12:12 下午
程式語言
,
C-sharp
,
Unity
Unity AssetBundle 載入後,出現粉紅色區塊的問題與解決
Model is Unity Chan . 之前遇到的問題,當遊戲採用 AssetBundles 機制加載場景資源後,會發現有些場景問題變成粉紅色的,記錄問題以及解決方案。 Note: 使用版本 Unity5.5.x 粉紅色的色塊 遊戲因為動態更新以及手機平台上架...
Read More
王思元
6:10 下午
程式語言
,
C-sharp
,
Unity
Calculate file's chunk MD5 checksum using Golang
由於工作需求,需要將檔案先分塊 (chunk),計算每塊的 MD5 checksum,而大部分的 tools 都是算整個檔案的 MD5 checksum,想說這樣的功能應該不會很困難,因此使用 Golang 寫一小段 CLI (Command line interfac...
Read More
王思元
12:30 下午
程式語言
,
Golang
較新的文章
較舊的文章
粉絲專頁
本週熱門
網誌存檔
贊助廣告
粉絲專頁
每周熱門
Unity rendering order 整理筆記
自從上次 GameJam 體驗在 Unity 中,使用 SpriteRenderer 可直接調整 Sorting layer 來決定 render 順序後,便一直很好奇其背後實作到底是什麼,為什麼改變一個數值便能調整 sprites 在 render 結果的先後順序,而不...
Unity 遊戲存檔機制淺談,從序列化 (Serialization) 到儲存裝置 (Storage)
之前在社團看到的有趣問題,因此綜合以前的開發經驗,整理成這份筆記。
在 Unity 使用 AssetBundles 實作簡易的遊戲資源打包以及更新機制
Unity 官方之前在 Asset Store 上有分享 AssetBundle Manager ,並提供官方教學文章介紹 AssetBundle 載入機制,我們參考該教學以及範例,因應遊戲設計考量,自己使用 Unity 提供的底層 AssetBundle API,製作...
TortoiseGit 配置 PuTTY Key
每次使用 TortoiseGit 進行專案遠端的 Pull/Push 都需要輸入一次認證,次數多了覺得麻煩懶惰,怎麼沒法記憶認證密碼這一回事?原來只是不會用而已…,以下筆記使用 PuTTY 建立 SSH Key,讓 Git 使用 SSH Key 認證,而不用每次進行遠端操作時,...
TCP 連線狀態機制與流程
在開發基於 HTTP 的網路應用服務時,當有大量連線要求,或是與長連線 (Persistent connection) 要求時,常常遇到底層 TCP 的連線斷線錯誤,導致服務不穩定。因此研究了解 TCP 的連線狀態機制,並嘗試用自己的方式整理筆記,希望能從基礎知識中找到...
Unity 遊戲存檔機制淺談,加密 (Encryption) 保護遊戲存檔防作弊
延續在 前一篇文章 中的議題。 前題,任何的加密機制只是增加破解難度,單機遊戲存檔若沒有特殊硬體的保護,幾乎都可以被破解,光是程式碼反編譯 (decompiling) 並且分析程式碼,便能知道該遊戲如何處理存檔加密,甚至能直接拿到加密用的金鑰 (key)。
Unity Coroutine 使用筆記
最近有人問為什麼 Nested coroutine 的機制與問題,為什麼會是需要 yield return StartCoroutine(...) ,而不能省略 StartCoroutine ?在久遠的 Unity3.x 時代,印象中得呼叫該函數才能夠正常運作。...
CentOS 7 環境安裝筆記,GUI/gcc/g++/Code::blocks/Go 完整的 Go/Cgo 開發環境
整理之前在 Linux 建立 Go/Cgo 開發環境的安裝筆記。
Unity 遊戲存檔機制淺談,關於壓縮 (Compression) 的三兩事
延續在 前一篇文章 中的議題,在遊戲存檔進行壓縮 (compress) 後儲存,可減少其儲存所需空間,之後讀取先經過解壓縮 (decompress) 後,再反序列化 (deserialize) 還原成遊戲狀態物件來使用。
Senior Unity Developer 面試題目分享
分享前陣子尋找新機會所遇到的 Unity 考題 ,十分有水準與微難度,事後回想並整理成此問題筆記。關於該機會的綜合心得放置在文章頁尾。
網誌存檔
►
2018
( 27 )
►
10月
( 1 )
►
9月
( 1 )
►
8月
( 1 )
►
6月
( 3 )
►
5月
( 5 )
►
4月
( 4 )
►
3月
( 1 )
►
2月
( 6 )
►
1月
( 5 )
▼
2017
( 59 )
▼
12月
( 4 )
多人網路連線遊戲程式開發之讀書筆記:同步遊戲資料,資料序列化與物件複製,處理網路延遲與伺服器安全性
LeetCode #42 Trapping Rain Water
LeetCode #37 Sudoku Solver
LeetCode #32 Longest Valid Parentheses
►
11月
( 3 )
LeetCode #25 Reverse Nodes in k-Group
LeetCode #23 Merge k Sorted Lists
AWS Beanstalk: Go WebApp 部署筆記
►
10月
( 6 )
LeetCode #10 Regular Expression Matching
Unity AssetBundle 資料列表載入以及打包架構思考,使用 Pokémon 作為範例
OpenSSL 建立 CSR 找不到 openssl.cnf 錯誤處理
LeetCode #6 ZigZag Conversion
Unity 根據美術需求客製化 Sprite shader,基於官方 shader 開始改起
LeetCode #1 #167 #653 Two Sum
►
9月
( 5 )
Golang Iterator Channel Implementation
MariaDB (MySQL) UUID 優化之儲存方式 (storage)
Unity AssetBundle 快取機制與載入範例
TCP 連線狀態機制與流程
由 Golang 程式碼產生 Restful API 文件,使用 Swagger 規範 (OpenA...
►
8月
( 5 )
Unity Prefabs 之使用方式筆記
Unity 載入外部檔案機制之整理筆記
COSCUP 2017 議程筆記微感想
使用 xcode 取得 iOS 設備的即時 log
Accupass 瀏覽擴充功能,使用 Javascript + TamperMonkey 自製自動加載頁面
►
7月
( 5 )
Evernote to Blogger,第一次在 Golang 聚會中分享個人專案
使用 Golang 串接 Google Blogger API,張貼文章與上傳圖片
建置 Unity iOS xcode 專案遇到的錯誤與解決方案 (Linker error)
台北開發者論壇 (TGDF 2017, Taipei Game Developers Forum) ...
Blogger 使用 jQuery jScroll 實作無限捲頁,自動載入更多文章 (Infinit...
►
6月
( 5 )
Evernote SDK for Golang 自行建置、使用範例以及開放授權流程 (OAuth)
Unity 開發者大會筆記 2017,優化x優化x優化
學習 Unity 自製編輯器需要知道的三個管道 (Custom editor programming...
Unity 專案中 *.meta 做什麼用
There are inconsistent line endings in the 'SomeSc...
►
5月
( 4 )
Unity Coroutine 使用筆記
Golang HTTP Request 遇到的坑:An operation on a socket ...
Unity AssetBundle Variants 機制研究筆記
如何在 Unity 中實作場景資源參照 (SceneAsset Reference)
►
4月
( 5 )
在 Unity 使用 AssetBundles 實作進階的遊戲資源打包以及更新機制
在 Unity 使用 AssetBundles 實作簡易的遊戲資源打包以及更新機制
Unity AssetBundle 載入後,出現粉紅色區塊的問題與解決
Calculate file's chunk MD5 checksum using Golang
►
3月
( 8 )
►
2月
( 6 )
►
1月
( 3 )
►
2016
( 44 )
►
12月
( 3 )
►
11月
( 2 )
►
10月
( 6 )
►
9月
( 4 )
►
8月
( 5 )
►
7月
( 4 )
►
6月
( 4 )
►
5月
( 2 )
►
4月
( 2 )
►
3月
( 3 )
►
2月
( 6 )
►
1月
( 3 )
►
2015
( 1 )
►
12月
( 1 )
贊助廣告