2008年8月8日 星期五

與遊戲開發製作相關的職務名稱

由於本人在遊戲產業待了一陣子,也待過程式、企劃職務等等的經歷,在對於台灣遊戲產業的分工狀況一直不敢恭維,甚至我認為有大部份的產業人士也不是那麼的清楚劃分的臨界點在哪裡,大部份只要是分成程式、企劃、美術三大部份,那再更細節呢?就甚少人討論了,以下將我找到日本遊戲產業的相關書籍說明的職務名稱列如下:

出處

ゲームの全仕事2002

(Game的全部工作2002)

なりたいゲームクリエイター

(想要成為Game Creator)

めざせGAME

クリエイター

(目標Game Creator)

ゲームクリエイター完全養成マニュアル

(Game Creator完全養成手冊)

Game Architecture and Design

作基本Concept

監督

Game Designer

Producer

Director

Producer

Director

Game Designer

Producer

Director

Game Designer

Producer

Director

Game Designer

Chief Architect

Project Manager

基本劇本

Planer

Scenario Writer

Planer

Scenario Writer

Planer

Scenario Writer


Software Planer

畫面相關

畫面作家

Animator

Creature Designer

CG Artist

Illustrator

2DCG Designer

3DCG Designer

Graphic Designer

Character Designer

2D Illustrator

3D Illustrator


Chief Artist

Artist

音樂/音效相關

作曲家

Sound Composer

音效監督

Sound Creator

Sound Composer

Sound Creator

Sound Programmer

Sound Designer

Musician

音效技術人員

其他技術





其他的技術人員(例如Motion Capture)

Programming

Programmer

Programmer

Programmer


Chief Programmer

Programmer

品質保證Test

Debugger



Debugger

品質保證負責人員

品質保證技術人員

Play Tester

2008年8月6日 星期三

製作純資源DLL的方法

僅含資源的 DLL 是指僅包含資源而不包含其他項目的 DLL,例如,圖示、點陣圖、字串和對話方塊。使用僅含資源的 DLL 是在多個程式間共用一組相同資源的好方法,也是為應用程式提供當地語系化為多國語言的資源的好方法。

若要建立僅含資源的 DLL,請建立新 Win32 DLL ( MFC) 專案,並且將您的資源加入專案。

  • [新增專案] 對話方塊中選取 [Win32 專案],並且在 [Win32 專案精靈] 中指定 DLL 專案類型。
  • DLL 建立包含資源 (例如字串或功能表) 的新資源指令碼,並儲存該 .rc 檔案。
  • [專案] 功能表上,按一下 [加入現有項目],並且將新的 .rc 檔案插入至專案。
  • 指定 /NOENTRY 連結器選項。/NOENTRY 可以防止連結器將 _main 參考連結至 DLL;建立僅含資源的 DLL 時需要這個選項。

  • 建置 DLL

使用僅含資源的 DLL 的應用程式時應該要呼叫 LoadLibrary 明確連結 DLL。若要存取資源,請呼叫可以使用在任何類型的資源的 FindResource LoadResource 泛用函式,或者是呼叫下列資源特定函式的其中之一:

  • FormatMessage
  • LoadAccelerators
  • LoadBitmap
  • LoadCursor
  • LoadIcon
  • LoadMenu
  • LoadString

應用程式應該在完成資源使用時呼叫 FreeLibrary

範例程式

#include "..\Mod1res\resourceppc.h"

#include "WelComeModule.h"

WelComeModule::WelComeModule()

{

m_pWelcomeBitmap = 0x0;

}

WelComeModule::~WelComeModule()

{

SetActive(false);

}

void

WelComeModule::SetActive(bool bActive)

{

if (m_bIsActive==bActive)

return;

m_bIsActive = bActive;

if (m_bIsActive)

{

if (!m_pWelcomeBitmap)

m_pWelcomeBitmap = new CBitmap;

//載入資源DLL

if (!m_hResourceDLL)

m_hResourceDLL = (HINSTANCE)LoadLibrary(_T("Mod1res.dll"));

if(m_hResourceDLL)

{

m_hOldResource = AfxGetResourceHandle();

AfxSetResourceHandle(m_hResourceDLL);

HBITMAP hBitmap =

::LoadBitmap(AfxGetResourceHandle(), MAKEINTRESOURCE(IDB_WELCOME));

_bLoad = m_pWelcomeBitmap->Attach(hBitmap);

AfxSetResourceHandle(m_hOldResource);

m_hOldResource = 0x0;

}

else

m_bIsActive = false;

}

else

{

if (m_pWelcomeBitmap)

{

BOOL check = DeleteObject(m_pWelcomeBitmap->Detach());

delete m_pWelcomeBitmap;

m_pWelcomeBitmap = 0x0;

}

//卸載資源DLL

if (m_hResourceDLL)

{

if (FreeLibrary(m_hResourceDLL)==true)

m_hResourceDLL = 0x0;

}

}

}

void

WelComeModule::Render(CDC* pDC)

{

if (!m_bIsActive)

return;

if (!m_pWelcomeBitmap)

return;

//初始化Memory DC

CDC MemoryDC;

MemoryDC.CreateCompatibleDC(pDC);

//取得圖片尺寸

BITMAP bm;

m_pWelcomeBitmap->GetObject(sizeof(bm), &bm);

MemoryDC.SelectObject(m_pWelcomeBitmap);

//將圖貼到要秀的DC

pDC->BitBlt(View_Offset, View_Offset, bm.bmWidth, bm.bmHeight,

&MemoryDC, 0, 0, SRCCOPY);

}

三分之一的人生哲學

如果人生可以重來,我想告訴重來的自己,你的人生應該是這樣規劃才好 :
假如你可以活到75歲的話,你應該花25年的時間來充實自己的知識與能力,用25年的時間努力工作追求事業的巔峰,最後用25年的時間來陪你心愛的家人與到處遊歷。
你也該告訴不到25歲那個貪玩的小子,你在30歲就會後悔你沒有領悟到這個三分之一的哲學。

2008年5月9日 星期五

[轉貼]error LNK2001: 無法解析的外部符號

好多初學者在用DX SDK寫自己的應用時,都莫名其妙的發現如下幾個類似的編譯(更準確地說是鏈接)錯誤:

FDraw.obj : error LNK2001: 無法解析的外部符號 _IID_IDirectDraw7
FDraw.obj : error LNK2019: 無法解析的外部符號 _DirectDrawCreate@12 ,該符號在函數 "int __cdecl DDInitialize(void)" (?DDInitialize@@YAHXZ) 中被引用
FInput.obj : error LNK2001: 無法解析的外部符號 _GUID_SysKeyboard
FInput.obj : error LNK2001: 無法解析的外部符號 _IID_IDirectInput8A
LIBCD.lib(wincrt0.obj) : error LNK2019: 無法解析的外部符號 _WinMain@16 ,該符號在函數 _WinMainCRTStartup 中被引用
dinput8.lib(dilib1.obj) : error LNK2001: 無法解析的外部符號 _GUID_ZAxis
dinput8.lib(dilib1.obj) : error LNK2001: 無法解析的外部符號 _GUID_YAxis
dinput8.lib(dilib1.obj) : error LNK2001: 無法解析的外部符號 _GUID_XAxis
dinput8.lib(dilib2.obj) : error LNK2001: 無法解析的外部符號 _GUID_Key
Debug/sword.exe : fatal error LNK1120: 9 個無法解析的外部命令

而且這種問題是很奇怪的;不過其實並不很複雜。

首先,你大概知道,在使用DX SDK之前,應該在選項裡面,把lib和include設置好,不過這並不代表你的代碼在編譯的時候會自動應用*.lib(比如說ddraw.lib),你需要在你的DX封裝的cpp對應的header裡加上類似的如下幾句:

#pragma once
#pragma message("FDraw.h --> Linking with ddraw.lib")
#pragma comment(lib,"ddraw.lib")

這幾行文字就相當於告訴編譯器編譯的時候把 ddraw.lib 中有用的部分(?)也編進去。

試試看,加上相應的幾句,是不是沒有什麼 error LNK2001 了?

2008年4月10日 星期四

台中-三隻小豬餐廳

前幾個禮拜老婆在網路上找到一家不錯的餐廳,蠻適合親子一同前往的,叫做三隻小豬,名字很奇怪,不過評價都還不錯,所以就決定前往啦,當週六(3/22)就跟大姊懿珊還有仔仔、亞亞一起去,一進去就覺得果然是來對了的感覺,完全就是小朋友會很高興的地方,到處都是玩具及書本。
仔仔與亞亞二個超High的,一起玩的很開心,仔仔則是到處亂跑,因為地下室的空間很大。
走著走著,發現老闆娘真的很用心耶!!!到處都可以有新發現,我在樓梯的轉角處就找到一間小型的遊戲室,而且裡面還有一箱的組合積木可以給小朋友玩。
整個設計都可以看到老闆娘跟老闆的巧思,連大人看了都會很喜歡的場所,而且真的空間超大,可以讓小孩在裡面盡情的奔跑^^

當然除了玩,也要來解決肚子問題啦,這裡的餐點也很讚喔!!味道很棒,我點了一個辣味的雞腿排飯,整個雞肉味道都有進去,微辣的口感真的不錯,老婆點的義大利麵也很好吃,仔仔原本一直在玩的,而且吃飯跟要他命一樣,當他吃到義大利麵時,不用叫就自己過來吃^^"
原本飯後來有鮮奶酪的,但是因為太好吃了,不知不覺就忘了拍照^^||,而且兒童餐的鮮奶酪上面還有個小豬的圖案喔,正是呼應三隻小豬的名稱。

後來仔仔與亞亞又發現一個好玩的地方,有一間小涼亭造型東西,二個人就在裡面玩起來了,而且還輪流探頭出來吃鮮奶酪,真是有趣!!
後來又發現原本櫥櫃內有拼圖玩具耶!!!!那些小桌子應該就是讓小朋友玩這些東西用的,於是就叫仔仔跟亞亞坐好,二個人一起玩,二個人還會一邊比手畫腳一邊拿拼圖,也不知道他們懂不懂怎麼拼回去。
後來時間也差不多了,因為車子是停在家樂福的關係,所以只能停2個小時,所以就準備離開了,這次柔柔沒跟到,否則一定玩瘋了,下次再把他們三個一次帶過來玩^___^


店名:三隻小豬
地址:台中市永福路118巷33~37號
電話:04-2465-2700