Ludum Dare 31 心得

我 Ludum Dare 31 的作品
第一次,製作一個算是完整的遊戲
雖然結果不盡理想,但是也瞭解到自己所缺少的東西

Read on →

SDL_Surface和OpenGL texture

前言

最近重新學習OpenGL,再次面對之前沒有詳細理解的材質(texture)
過去就是使用SDL作爲開發基礎,加上有SDL_image這個套件可以協助讀取圖檔供SDL使用

“既然SDL後面也是用OpenGL實作,那大概可以直接讓OpenGL去使用吧”

抱着這樣的想法去查了一些資料,果真可行

Read on →

C/C++ Programing: static形態之成員函式/變數

前言

偷學過來的招式

一開始只是覺得很酷。

之前在寫程式就遇上這樣的需求,"有一份資源,然後許多Class都需要能夠取得",解法依照情況其實有很多種,而當時我發現的就是把class內的成員函式/資料設定爲static。

用遊戲的例子來說,就是視窗只有一個,但是取用視窗這個資源(清除畫面內容,跟更新畫面內容)的class卻有好幾份。過去我有寫過很畸形的code,"在每次創造這些物件的時候,放入視窗的相關資訊"。不過醜到自己都受不了,上google+剛好看見有人在展示自己的程式,於是就拿起來看一看,學習了一番。

下面的例子都使用g++編譯

Read on →

Makefile: 使用pkg-config

前言

我知道我又打錯字了

前些陣子Ubuntu在升級到14.04的過程爆炸了,所以順勢轉移到Arch Linux上面。在搬家的過程中發現,我自己寫好的Makefile居然無法正常編譯,這時候才發現在Arch下面SDL2不需要引用SDL2main這個共用套件庫(Shared Library),同時也發現Makefile需要有更好一些的寫法。

pkg-config解決了這個問題!!

Read on →

程式筆記:遊戲流程設計模型

前言

Super Meat Boy,應該沒幾個人會玩到100%

最早意識到製作遊戲需要一個“模式”,大概是2013年的暑假。那時候我自己在亂摸OpenGL(完全沒圖學概念,根本是浪費時間),好不容易讓畫面上出現一個正方形,於是開始嘗試製作經典的貪吃蛇遊戲。當時照着該blog的OpenGL教學弄出了框架,於是有樣學樣弄出了個“有點物件導向”的程式,雖然說現在回頭看,那真的是慘不忍睹...

不管如何,在我完成可以動的東西以後,腦中就跳出了問題:這堆程式毫無擴充性可言。當時我沒辦法加入選單畫面等額外的東西,整個程式的架構是有問題的,一直到2013下半年我嘗試用SDL重寫一個完整貪吃蛇,還是遇上程式難以擴充的問題。經過Johnson Lin前輩的指引(?),終於得到“設計模型-Design Pattern”這一個詞彙。

總之現在,我寫了一個暫時能用的框架,下面來看看。

Read on →

Bash script應用:大量程式資料輸出

前言

bash script can loop

上星期的多平行機程式作業要求要觀察工作量,處理器數目,對上運算時間的關係
當下第一個反應就是Bash script
Bash script有for loop可用,GNU/Linux有grep可以截取需要的字串(沒用上正規表示法有點可惜),還有資料流導向可以把結果存入檔案中
只要寫好script,開下去跑,就能去睡個午覺了~

Read on →

Assembly Programming: 環境架設+第一次作業

前言

Mars IDE

因爲學校計算機組織會擋修,所以就去看清大的開放課程了(Link)
這一次,是個人首次接觸組合語言,MIPS的組語環境還滿容易處理,有模擬軟體
比較麻煩的是,組語的可閱讀性很低,沒有註解幾乎沒辦法馬上知道該行的功能...

Read on →

C Programming: 使用<getopt.h>

前言

這陣子想要來嘗試 真的開發,但想說如果只是自己搞自己喜歡的方向,多少會侷限方向(人總是有死角)
最好的解決方法當然就是去找個open source的專案來參與!
我心中的兩大人選:

  • Elementary OS
  • i3 Window manager

由於對GUI程式開發還不是那麼熟,於是先選了i3 WM來著手
在閱讀i3lock的程式碼時,便發現了getopt這個有趣且方便的工具!

Read on →

Linux: i3WM下的音量調整

alsamixer程式界面

前言

在我的Ubuntu升級到13.10以前,於i3底下的音量調整,我一直是偷用Gnome的設定,也就是按下鍵盤上的按鈕就行了
但是我的Ubuntu更新到13.10後,Gnome也跟着更新,過去的奇妙bug也就消失了
不過不打緊,沒有的東西,就自己想辦法來弄一個!

Read on →

Linux: Qt主題的設定

Qt主題外觀差異

前言

個人從Gnome3.X的WM換到i3也快過半年了,期間對於i3上醜陋的Qt外觀一直刻意不去理會,畢竟平常會用上的Qt程式也只有qBittorent(這也是讓我認識Qt爲何物的程式)
一直到今天才心血來潮,好好把這個問題搞定

Read on →

SDL筆記 I

SDL的圖示

前言

引用維基百科的介紹:

SDL(Simple DirectMedia Layer)是一套開放原始碼的跨平台多媒體開發函式庫,使用C語言寫成。
SDL提供了數種控制圖像、聲音、輸出入的函式,讓開發者只要用相同或是相似的程式碼就可以開發出跨多個平台(Linux、Windows、Mac OS X等)的應用軟體。
目前SDL多用於開發遊戲、模擬器、媒體播放器等多媒體應用領域。

Read on →

Lua筆記 I

Lua的logo

先廢話一下

說到遊戲製作,基本上就一定會聽到 Lua 這個程式語言,不過有鑑於繁體中文的相關資料實在不多,不如就讓我在這理記錄下個人的學習過程,順便和碰巧看見這些文章的人分享,因爲身邊目前沒有人可以直接指導,如果高人們發現文章內有錯誤,也請不要客氣用力指出,感激!!

本人的Lua學習,目前是參考Fabio Mascarenhas教授的上課簡報爲主,網路資料查詢爲輔,今後的筆記也會按照該教授授課簡報的順序來記錄

Fabio Mascarenhas教授的授課網站: Link(裏面還有一些題目可以自我練習)
然後這次的筆記範圍對應到教授Getting Started的投影片

關於Lua的優點,歷史故事本人就跳過了,因爲我也還不知道Lua哪裏厲害
先學再說

Read on →

Git簡單心得: 乾淨的master branch

前幾個月使用git在開發時,腦中已經有開一個dev branch的概念了,所以我就開了一個dev branch然後開始作業
等到dev工作告一個段落,要發出V1.0版本的時候,我也知道要使用merge功能,所以我就git checkout master+git merge dev,然後就出問題了

Read on →
git

MOSUT X Tainan.py 十二月聚會

image

活動現場

本次的主題有:
1. 「Python type and object」 (by hychen)
2. 「Kinect 簡介」(by Victor Gau)
3. 「Git 狀況劇」 (by xlet)
4. 「小學生也可以解的 RSA 演算法(python版)」(by kuku)
不過RSA演算法因爲時間緣故,這次沒有談到

那依序來寫個小記錄
Read on →