開源游戲框架相關文章
摘要: 最新的OGF 0.8.1版,已修正上一版已知的BUG,并加入了更多的功能。另外,已在此版本的基礎上,開發了一個休閑游戲,已證明該框架的可行性,穩定性方面仍需后期的使用反饋才能能到確認。(記得以前提及會用一個游戲來逐步講解使用OGF開發游戲的過程,所以游戲的代碼可繼續關注我的BLOG,將會陸續放出)
閱讀全文
摘要: 試用過OGF的朋友,應該會發現GameFrame在鼠標消息處理時,都會搜索當前鼠標坐標下的對象,以實現對像的MouseMove,MouseOver, MouseIn, MouseOut四個事件,但效率非常之差?,F打算進行調整,以加快每幀的處理速度,大致方案如下:
1、按FLASH的模式,默認不提供對象的MouseMove, MouseOver, MouseIn, MouseOut事件,GameFrame只負責將MouseMove的消息轉發至GameBody,用戶要實現要上述4個事件,則必須重載GameBody的OnMouseMove來實現(GameBody可能會提供一個默認的對象分發過程,由用戶調用或GameFrame的Setting中帶一個標志開發以確定是否分發至對象);
2、在GameLayer層加入一個是否允許處理鼠標消息的標志(默認為false),當為否則不檢測,減少FindObject()函數的判斷次數;
3、在對象中增加一個是否允許處理鼠標消息的標志(默認為false),減少FindObject()函數中用對象區域判斷的次數;
<
閱讀全文
摘要: 原本打算趕在9月上旬放出來的,但CSDN的博客老是出錯,于是當天就來申請CPPBLOG,今天就將近期更新后的版本放上來,希望大家繼續支持!
OGF 0.81 debug版代碼下載:
http://www.shnenglu.com/Files/lwq49/GameFrame%200.8.rar
閱讀全文
摘要: 本范例主要是介紹圖形對象及對象中新增的Region屬性.首先要說明圖形對象并不是用于繪制,而是圖形的封裝,一個圖形實例只對應一種圖形,若想創造復雜的圖形則只能通過多個單個圖形組合.范例運行后會在屏幕中顯示一幅帶有邊框的圖片,當按鍵盤的左/右鍵,圖片會逆/順時針旋轉,這時邊框會根據圖片的新區域重繪(將以圖片的最小X和Y點為左上角,以圖片當前的最大X和Y點為右下角).
閱讀全文
摘要: 網絡服務器的編寫相對客戶端的網絡應用較為復雜,既要實現單個客戶端的功能,也要實現其管理,包括應答,讀/寫數據的線程開啟/回收,多線之間的數據互斥等.(管理方面是采用了一個非開源項目的代碼,所以代碼暫不便公開,將以LIB方式提供大家使用.)為方便后臺服務的開發,因此采用了MFC框架.范例中代碼較為多不一一進行說明,只從大體上簡單介紹每個類的作,并針對網絡相關部分進行相關說明.
范例是實現一個消息管理服務.提供群發或定向發送文本消息至客戶端,并帶有服務啟動/關閉,日志記錄的功能.
閱讀全文
摘要: 最近幾天的閉關修練,終于把OGF的網絡部分給補充完了,這樣大家就方便開發自己的網絡游戲.網絡應用方面分為客戶端與服務器端,上集我們先介紹客戶端的使用,下集再介紹服務器端的的開發.
客戶端的消息分發采用原有的隊列調配模式,機制上與計時器或動作引擎沒有太大的差異,無非創建了一個空窗口與SOCKET進行綁定,然后將SOCKET消息發送隊列后再分發.除此之外,提供了簡單的數據加/解密的支持,提供了SOCKET代理模式的支持.
閱讀全文
摘要: 游戲開發其中一環就是非??菰锏馁Y源加載及布局,大多數大型游戲都會有編輯器,對自己的游戲中用到的層場進行可視化編輯,但創建這樣一個引擎對中小型游戲來說,反而是開發比例不對稱,所以OGF內置了場景布局器,方便中小型游戲方便地從XML文件中加載,而生成XML的界面編輯器也會優先開發出來,以簡化這方面排版的時間消耗.
布局器是一條處理鏈,鏈中可能有多個不同性質的布局處理器,例如:處理資源的,處理環節,場景,場的,還有是處理對象的等.用戶也可自行擴展XML的內容,但要求自己編寫布局處理器,然后注冊到系統中使用即可.
Sample07
簡介:布局器
該示例會以一個以前做過的游戲背景為基礎,顯示了如何按OGF.xml中的內容進行布局.
閱讀全文
摘要: 這個范例將會介紹OGF框架另一個擴展功能--物件動作引擎.作為一個游戲必然會涉及到一些對象動作,例如簡單的直線移動,旋轉,漸變等,高級的話,可能要做貝塞爾的曲線運動或作物理的慣性移動,物件動作引擎專門針對這些動作進行處理(隨著推廣和改進,相信會有你所需要的動作添加進來).看回一些新手寫的程序,總會將這些處理寫在渲染函數體內,控制物體位置的判斷:switch,if語句占了N多行代碼,為此想起寫這么一個引擎,將這些動作的處理更為簡單方便.例如你讓指定物件從A坐標移動至B坐標,OGF會自動在另一線程中幫你處理,你的代碼只需是告訴OGF要做什么動,目標是什么就可以了,具體看看下述的示例.
Sample06
簡介:對象動作.
本范例會示范一個隨機的直線運動.運行并點擊"Start"按鈕后,Sample05的時間計時器會隨機在屏幕上移動,直至程序關閉.
閱讀全文
摘要: 游戲中離不開計時器,多多少少需要定時處理某些事情,例如:倒計時,進度條,AI控制等.OGF框架內置了一個計時器系統,提供了一個獨立線程去處理這些任務,間隔最少可達到5毫秒.
Sample05
簡介:計時器.
該范例運行后會先顯示"Start"按鈕,點擊后會在屏幕中心顯示一個秒數計數器,每秒遞增1,一直至程序結束為至.
閱讀全文
摘要: 我對游戲開發的看法是要盡量將游戲細化,最基本的是將游戲劃分為多個環節,每個環節盡可能獨立處理本環節的事情,所以於生出“CGameSection”這個類模板。在OGF中,當處于某一環節內,其它環節是不會收到任何消息的并且其內的物件也不會渲染,這使環節變得相對地獨立。
Sample04
簡介:游戲環節
使用游戲環節對游戲進行分階段管理.使用環節控制可以將整個游戲流程劃分為多個環節,例如:SFLASH窗口環節,菜單環節,游戲環節,結束環節等,具體視游戲大小而定.在此例中,會創建兩個環節:CMenuSection, CMainSection,開始時會停留在MenuSection階段,有一個"Start"文本,當點擊后會轉換至CMainSection環節,并實現Sample03的效果.
閱讀全文
摘要: Sample03
簡介:
鍵盤,鼠標事件的演示。
鍵盤、鼠標是游戲中主要的輸入設備,往往會要求獲取當前鼠標對象、鼠標坐標等。該例展示了OGF框架的事件處理機制,并介紹如何運用。
閱讀全文
摘要: 該例子非常簡單,也曾考慮過是否有必要作為例子,但作為OGF介紹的一部分,最終還是寫上了。
Sample02
簡介:
系統屬性設置
目的是修改游戲框架的系統屬性.在基于Sample01范例的基礎上,我們來看看在您的游戲項目中如何調整框架的屬性,例如:運行窗口的標題,每秒幀數....由于框架屬性必須在游戲運行前設置完畢,所以我們要重載在框架運行前調用的GameInit()事件,在該事件內就可以設置框架提供的屬性接口.
閱讀全文
摘要: 游戲框架的示例,我確實不知如何寫才能引人入勝,因為它實在是一些框框條條的東西,并不像圖形引擎哪樣注重效果的表現,所以,希望讀者能耐心地看完所有示例介紹,望能從中找到你需要的功能。
注:以下每個示例均基于上一示例基礎上修改,為此,相同部分不再重復。
Sample01
簡介:
Hello World!
該例范展示了OGF框架的最基本架構及如何基于OGF創建你的游戲項目,運行后會在屏幕中心顯示一段經典的"Hello World!"字樣。
閱讀全文
摘要: OGF游戲框架是一個基本MPL開源協議的開源項目。它是針對2D游戲普遍的執行流程而提出的框架,而并非一個圖形引擎(內核圖形引擎是基于HGE)。除了為游戲提供整套的管理規范及流程外,同時提供經常用到的計時器、動作引擎等附助功能;并以組件的形式提供,有利于獨立擴展,減少組件的重復開發,加快開發進度。
此版本已實現整個游戲框架,能按暨定的思路運行,但個別設想的組件仍未實現,例如:網絡、數據庫及更多的對象庫等(現已努力寫代碼中)。希望以此拋磚引玉,引入其他有興趣的朋友共同參與開發。
感謝BEN、Randy對基礎部分的開發作出的貢獻!
閱讀全文