TileRetriever圖格檢索器

由來

最近正在開發一款Tile為美術核心的遊戲,本來使用Tiled,將場景各個物件擺好後,再新增一個Object層,來擺放一些幾何的元素,讓Box2D進行碰撞。y在場景與碰撞都設定好後,剩下的人物則需要在Object層指定位置,額外在程式中產生。人物的額外產生不是問題,因為每個動作影格都是固定Size的,但場景物件支援可以拆除或新增就不同了,畢竟場景元素都是Tile組成,例如一棟房子可能會是各種Tile的集合體,更甚之,一個房子還會有其他招牌什麼的,這樣就會使房子變成許多層Tile的集合體,因此也沒有固定的碰撞區域或固定圖格。

Read More

Libgdx 遊戲淺研

前言?序章?

Libgdx是我目前最喜歡的遊戲開發引擎,或稱之為框架。它的厲害在於對跨平台的彈性很大,但我最喜歡說的一句話「優勢即是劣勢」,由於彈性很大,所以要磨合的地方就很多。譬如我第一個App,需要自行撰寫Android API,去理解各種Android版本所需的程式碼,現在本篇要展示Libgdx的一些知識技術,由於可選擇各種第三方插件與Libgdx相互融合,所需理解的就是許多的第三方與磨合知識。最後提一個唯一覺得是缺點的,Libgdx在撰寫UI上,藏有許多可怕的小細節,因此如果要使用Libgdx,就要跟這些細節搏鬥,好在是Open Source,底層是Lwjgl,所以就算有問題,自己創造亦是一條路!

Read More

TabberClock 分頁鬧鐘

###開發心得:###
TabberClock是我第一個App,花了大概有四個月的時間完成,由於第一次決心要寫一個體面的Android App,所以這次卯足了勁,經過了無數的設計失敗,跟無數的波折,終於克服了Libgdx的環境難關,不過一般寫App的人可能不知道是什麼,簡單來說,我是用遊戲框架開發App,這樣聽起來好處是不是很多呢?錯,學習曲線很高之外,也增進了合作上的困難。硬要說適合就是幾個精英開發者,剛好喜歡或是有一些計算機圖學底子的人來開發,當然不用計算機圖學也是可以,只是如果有你會對框架原始碼各個環節感到很安心,因為都看得懂,又知道如何修改原始框架或擴充原始框架來達成自己的目的。

###For English User###
This article is google-play-alternative to communicate directly with developer, If you have any suggestion/comments, feel free to talk below with Disqus. Any advice and suggestions will be greatly appreciated :)

Read More

OpenGL 遊戲引擎開發日誌

本篇說明

開發引擎是我用來考驗自己的方式,學習、理解並實作以往學到的各種圖學概念,並用上自己對物件導向與程式語言的熟悉度,希望能完成一個基本的如場景建置、粒子效果、物理碰撞、模組動畫…等等的功能。而更甚之希望當OpenGL或圖學界中有什麼新功能,可以在自己最熟悉的環境中依照概念實作。

系統環境: Windows 10
開發軟體: Visual Studio 2015
硬體設備: i7-3770 and GTX960
核心接口: GLFW/GLEW/GLM/Assimp/SOIL2/Bullet Physics
輔助插件: Nshader for Visual Studio 2015/Glslify

####其他事項####
2016/09/05 前的日誌乃日根據記憶回朔,09/05方開始打算紀錄。

Read More

OpenGL之沒有蠢問題 2 - BindAttribute

閒談

最近Dowen正在將模組動畫引入到遊戲引擎中,期間遇到的一個超級隱藏Bug就是glBindAttribLocation。引入模組動畫最重要的就是傳入該頂點會使用到的骨架索引骨架權重,而Dowen這次綁定的位置,離原本定義的Position、Normal、TexCoord稍微遠一點,大概是5、6的位置,所以才發現到原本綁定的方式是錯的。總之,要說的是Shader發生錯誤真的是一丁點資訊都沒有啊,還認為裝了Nsight可以Debug Shader,除了不太會使用外,只指出了Dowen在圖片載入的地方有些誤用而已。

Read More

重心座標概念理解與實作

關於本篇

重心座標(Barycentric coordinate)是Dowen應用於地形碰撞偵測上的數學,此外在OpenGL的Tesselation中也會用到,如此重要的座標概念,幾乎沒有中文文獻,或許是因為容易理解,不過對Dowen來說還是花了不少時間。

重心座標 (Barycentric coordinate)

國中的時候我們教過,三角形中腺交於一點稱為重心,而重心公式大家應該都還記得就是三點相加後除以三。

$G = \frac{1}{3}A + \frac{1}{3}B + \frac{1}{3}C$

而其中的三個$\frac{1}{3}$,化為向量就是$\left(\frac{1}{3},\frac{1}{3},\frac{1}{3}\right)$,而重心座標系的性質即是三個參數相加為一。

Read More

TileRetriever圖格檢索器

由來

最近正在開發一款Tile為美術核心的遊戲,本來使用Tiled,將場景各個物件擺好後,再新增一個Object層,來擺放一些幾何的元素,讓Box2D進行碰撞。y在場景與碰撞都設定好後,剩下的人物則需要在Object層指定位置,額外在程式中產生。人物的額外產生不是問題,因為每個動作影格都是固定Size的,但場景物件支援可以拆除或新增就不同了,畢竟場景元素都是Tile組成,例如一棟房子可能會是各種Tile的集合體,更甚之,一個房子還會有其他招牌什麼的,這樣就會使房子變成許多層Tile的集合體,因此也沒有固定的碰撞區域或固定圖格。

Read More

Libgdx 遊戲淺研

前言?序章?

Libgdx是我目前最喜歡的遊戲開發引擎,或稱之為框架。它的厲害在於對跨平台的彈性很大,但我最喜歡說的一句話「優勢即是劣勢」,由於彈性很大,所以要磨合的地方就很多。譬如我第一個App,需要自行撰寫Android API,去理解各種Android版本所需的程式碼,現在本篇要展示Libgdx的一些知識技術,由於可選擇各種第三方插件與Libgdx相互融合,所需理解的就是許多的第三方與磨合知識。最後提一個唯一覺得是缺點的,Libgdx在撰寫UI上,藏有許多可怕的小細節,因此如果要使用Libgdx,就要跟這些細節搏鬥,好在是Open Source,底層是Lwjgl,所以就算有問題,自己創造亦是一條路!

Read More

TabberClock 分頁鬧鐘

###開發心得:###
TabberClock是我第一個App,花了大概有四個月的時間完成,由於第一次決心要寫一個體面的Android App,所以這次卯足了勁,經過了無數的設計失敗,跟無數的波折,終於克服了Libgdx的環境難關,不過一般寫App的人可能不知道是什麼,簡單來說,我是用遊戲框架開發App,這樣聽起來好處是不是很多呢?錯,學習曲線很高之外,也增進了合作上的困難。硬要說適合就是幾個精英開發者,剛好喜歡或是有一些計算機圖學底子的人來開發,當然不用計算機圖學也是可以,只是如果有你會對框架原始碼各個環節感到很安心,因為都看得懂,又知道如何修改原始框架或擴充原始框架來達成自己的目的。

###For English User###
This article is google-play-alternative to communicate directly with developer, If you have any suggestion/comments, feel free to talk below with Disqus. Any advice and suggestions will be greatly appreciated :)

Read More

OpenGL 遊戲引擎開發日誌

本篇說明

開發引擎是我用來考驗自己的方式,學習、理解並實作以往學到的各種圖學概念,並用上自己對物件導向與程式語言的熟悉度,希望能完成一個基本的如場景建置、粒子效果、物理碰撞、模組動畫…等等的功能。而更甚之希望當OpenGL或圖學界中有什麼新功能,可以在自己最熟悉的環境中依照概念實作。

系統環境: Windows 10
開發軟體: Visual Studio 2015
硬體設備: i7-3770 and GTX960
核心接口: GLFW/GLEW/GLM/Assimp/SOIL2/Bullet Physics
輔助插件: Nshader for Visual Studio 2015/Glslify

####其他事項####
2016/09/05 前的日誌乃日根據記憶回朔,09/05方開始打算紀錄。

Read More

OpenGL之沒有蠢問題 2 - BindAttribute

閒談

最近Dowen正在將模組動畫引入到遊戲引擎中,期間遇到的一個超級隱藏Bug就是glBindAttribLocation。引入模組動畫最重要的就是傳入該頂點會使用到的骨架索引骨架權重,而Dowen這次綁定的位置,離原本定義的Position、Normal、TexCoord稍微遠一點,大概是5、6的位置,所以才發現到原本綁定的方式是錯的。總之,要說的是Shader發生錯誤真的是一丁點資訊都沒有啊,還認為裝了Nsight可以Debug Shader,除了不太會使用外,只指出了Dowen在圖片載入的地方有些誤用而已。

Read More

重心座標概念理解與實作

關於本篇

重心座標(Barycentric coordinate)是Dowen應用於地形碰撞偵測上的數學,此外在OpenGL的Tesselation中也會用到,如此重要的座標概念,幾乎沒有中文文獻,或許是因為容易理解,不過對Dowen來說還是花了不少時間。

重心座標 (Barycentric coordinate)

國中的時候我們教過,三角形中腺交於一點稱為重心,而重心公式大家應該都還記得就是三點相加後除以三。

$G = \frac{1}{3}A + \frac{1}{3}B + \frac{1}{3}C$

而其中的三個$\frac{1}{3}$,化為向量就是$\left(\frac{1}{3},\frac{1}{3},\frac{1}{3}\right)$,而重心座標系的性質即是三個參數相加為一。

Read More