Đẳng Cấp Học Sinh

Đẳng Cấp Học Sinh

Đại Ân 2
 
Trang ChínhPortalCalendarTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập

Share | 
 

 Tự sáng tạo trò chơi với phần mềm Game Maker (phần 4)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
zavasaki11
Thành Viên Cấp 2
Thành Viên Cấp 2


Tổng số bài gửi : 21
Join date : 03/05/2012
Age : 23
Đến từ : Đại Ân 2

Bài gửiTiêu đề: Tự sáng tạo trò chơi với phần mềm Game Maker (phần 4)   Mon May 21, 2012 4:33 pm

Ở phần này, bạn sẽ làm quen với các chức năng cao cấp trong room, tạo ra vô số kiểu chữ xuất hiện trên hình nền và tự vẽ đường đi cho nhân vật game.

Các chức năng thiết lập room cao cấp



Trong room, bạn sẽ thấy có hai chức năng nữa là settings và view. Trong mục settings, bạn sẽ để ý thấy hộp trạng thái Persistent. Thường thì khi bạn rời khỏi room rồi sau đó quay trở lại, room sẽ được trở về trạng thái ban đầu. Điều này là tốt nếu bạn tạo rất nhiều level trong game nhưng thường thì đó là điều không mong muốn trong một game nhập vai chẳng hạn. Lúc này room cần giữ nguyên trạng thái như khi bạn thoát ra lần cuối cùng. Và muốn như vậy, hãy đánh dấu vào hộp Persistent. Như vậy, trạng thái của room sẽ được ghi nhớ và khi bạn trở lại room lần sau, nó sẽ y nguyên như khi bạn thoát ra lần cuối. Chỉ khi nào bạn restart trò chơi thì room mới được thiết lập lại. Thực ra, có một trường hợp ngoại lệ: Nếu bạn đánh dấu các object nào đó với trạng thái Persistent thì các instance của object này sẽ không "ở lại" trong room mà di chuyển sang room kế tiếp.

Thứ hai là nút Creation code. Tại đây, bạn có thể nhập vào một đoạn mã được kích hoạt khi room được tạo ra. Điều này rất hữu ích để bạn lấp đầy các tham số cho room, tạo ra các instance nào đó. Và việc hiểu cặn kẽ chính xác điều gì xảy ra khi bạn di chuyển đến một room nhất định trong game là rất quan trọng.

- Một là, trong room hiện thời tất cả các instance có một sự kiện ở cuối room. Sau đó các instance ở trạng thái không được đánh dấu Persistent đều bị di chuyển đi (không có sự kiện phá bỏ nào được tạo ra).

- Sau đó, đối với room mới, các instance có trạng thái persistent từ room trước đó được thêm vào.

- Tất cả các instance mới được tạo ra và các sự kiện khởi tạo này được thực hiện (nếu room ở trạng thái không persistent hoặc trước đó chưa được ghé vào).

- Khi đây là room đầu tiên, đối với tất cả các instance thì sự kiện khởi động game được tạo ra.

- Tiếp theo, mã tạo room sẽ hoạt động.

- Cuối cùng thì tất cả các instance đều tham gia vào sự kiện khởi động room.

Do đó, ví dụ như các sự kiện khởi động room có thể sử dụng các biến số do mã khởi tạo thiết lập nên cho room và trong mã này, bạn có thể chỉ dẫn đến các instance (cả những instance mới và cố định) trong room.

Trong menu hiện ra, khi bạn nhấn vào một instance bằng phím Ctrl, bạn có thể xác định một số mã khởi tạo cho một instance cụ thể. Mã này được thực hiện khi room được khởi động ngay trước sự kiện khởi tạo của instance. Điều này rất hữu ích, ví dụ như để thiết lập các biểu kế nào đó cụ thể đối với instance.

Chèn ô hình

Trong nhiều game, bạn sẽ muốn có được các nền "bắt mắt", ví dụ như trong mê cung thì phải có những bức tường kỳ bí chẳng hạn. Lúc này, bạn có thể xác định nhiều object khác nhau và tạo các room từ những object này. Dù vậy, vấn đề này đòi hỏi bạn mất rất nhiều công sức, dùng đến nguồn hình ảnh, âm thanh lớn nên làm cho game chạy chậm. Ví dụ: để tạo ra những bức tường đẹp trong trò chơi mê cung, bạn sẽ cần đến ít nhất 15 object hình tường khác nhau.

Cách tốt nhất được sử dụng trong nhiều game là các bức tường và object tĩnh được đưa vào background thực sự. Nhưng có thể bạn thắc mắc là làm sao mà trò chơi biết được một object nào đó đụng vào tường nếu như nó chỉ bị kéo vào background mà thôi? Bí quyết là như sau: Bạn chỉ tạo ra một object "tường" trong game. Nó phải có kích thước hợp lý, nhưng không cần quá đẹp. Khi tạo ra room, hãy đặt object này ở khắp mọi nơi có tường. Và tại đây, chúng ta hãy để object này trong trạng thái "Invisible" (ẩn). Do đó, khi chơi game, bạn sẽ không nhìn thấy các object dạng "tường" mà chỉ nhìn thấy một background mà thôi. Kỳ thực, các object dạng "tường" vẫn ở đó và những object khác trong game sẽ "phản ứng" lại được với nó.

Bạn có thể sử dụng kỹ thuật này cho bất kỳ object nào không thay đổi hình dạng hay vị trí. (Nhưng bạn không thể dùng nó cho những object "động đậy"). Đối với các game chơi trên một nền nào đó, có lẽ bạn chỉ cần một sàn và một object dạng "tường", nhưng người thiết kế game cũng có thể tạo ra những background đẹp như sóng cỏ mềm mại hay những cành cây sum suê.

Để thêm vào các ô "lát nền" cho room, trước hết bạn cần phải lấy một nguồn background cho trò chơi của mình có chứa các ô ca-rô. Nếu muốn các ô ca-rô này hiển thị một phần, hãy đảm bảo hình ảnh background "trong suốt" (dùng trạng thái transparent). Sau đó xác định kích cỡ của mỗi ô và quyết định xem có khoảng trống giữa các ô hay không. Lúc này, khi xác định room, nhấn vào nút Tiles, hình sau đây sẽ xuất hiện:



Ở góc bên trái phía trên có mộ loạt các ô đang sử dụng hiện thời. Để chọn tập hợp này, hãy nhấn vào menu phía dưới và hình ảnh background thích hợp.

Các ô nằm dưới sẽ bị bỏ đi, trừ khi bạn bỏ dấu ở hộp Delete underlying. Bạn cũng có thể dùng chuột phải để xoá ô này. Giữ phím Shift để nhân bội các ô lên tuỳ theo ý thích. Giữ phím Ctrl để di chuyển các ô hình đến vị trí mà bạn muốn.

Trong một số trường hợp, bạn có thể muốn thêm vào một phần của background trong room không cùng kích cỡ với một ô hay bao gồm nhiều ô. Điều này có thể thực hiện như sau: Tại hình ảnh trên cùng bên trái, nhấn chuột trái trong khi giữ phím Alt. Giờ đây, bạn có thể kéo một mảng để đặt vào room như cách bạn đặt các ô. Để "nhân" thêm nhiều ô, bạn có thể giữ phím Shift trong quá trình di chuyển. Chú ý rằng điều này chỉ có thể thực hiện được khi không có vạch ngăn cách giữa các ô. Nếu bạn muốn chọn chính xác vùng có nhiều cỡ ô trong room, giữ phím Ctrl, chứ không phải phím Shift. (Chú ý là bạn có thể thay đổi hai phím này trong quá trình kéo chuột và đôi khi việc này rất hữu ích).

Các ô có thể được xếp đặt theo nhiều lớp khác nhau với "độ dày" khác nhau. Ở dưới cùng là lớp hiện tại. Mặc định lớp này là 1000000 (con số thông thường sau tất cả các instance). Do đó, các instance sẽ di chuyển ở mặt trên của các ô. Bạn có thể sử dụng nút Add để thêm các lớp mới và mỗi lớp có "độ dày" khác nhau. "Độ dày" mang giá trị âm có thể được dùng để đặt các ô lên trước các instance. Nếu bạn cũng đặt các "độ dày" khác nhau cho object, bạn có thể đặt chúng ở giữa các lớp ảnh. Nếu nhấn vào Delete, bạn có thể xóa một lớp cùng các lớp con của nó. (Bạn phải có ít nhất một lớp ảnh). Nếu nhấn vào Change, bạn có thể thay đổi "độ dày" của lớp này, chú ý nếu các lớp có độ dày như nhau thì sẽ bị nhập vào nhau.

Sử dụng các ô là một tính năng mạnh mà bạn có thể tận dụng càng nhiều càng tốt. Việc này cũng nhanh hơn là dùng các object và các hình ảnh của ô được lưu trữ đúng một lần. Do đó, bạn có thể dùng các room có nhiều ô mà cần đến ít bộ nhớ.

Chức năng hiển thị game

Cuối cùng là nút Views. Đây là cơ chế để vẽ ra các phần khác nhau trong room với nhiều vị trí trên màn hình. Có nhiều cách để xem. Trước hết, trong nhiều trò chơi bạn muốn thể hiện thì chỉ một phần trong room hiển thị mà thôi. Ví dụ: trong phần lớn các game chơi trên nền 2 chiều (trong đó, các nhân vật đi từ trái sang phải, lên trên, xuống dưới như trò Mario chẳng hạn), việc xem diễn tiến của trò chơi phải đi theo nhân vật. Trong các game chơi đôi, bạn thường cần đến một chế độ màn hình "chia phần", trong đó bạn sẽ xem mỗi người chơi trên một phần màn hình. Cách thứ ba là một phần room có thể cuộn lên, cuộn xuống trong khi phần kia được giữ cố định.

Khi nhấn vào chức năng Views, bạn sẽ thấy hiện ra như sau:



Ở trên cùng bạn sẽ thấy hộp trạng thái Enable use of Views. Bạn phải đánh dấu vào hộp này để sử dụng. Phía dưới là danh sách 8 view mà bạn có thể xác định được. Phía dưới danh sách là những thồn tin dành cho các view. Trước hết, hãy xác định view này có "hiện hình" khi room khởi động hay không. Hãy đảm bảo có thể hiển thị ít nhất một view và view nào hiển thị sẽ được in đậm.

Một view được xác định bằng một hình chữ nhật trong room. Đây là khu vực phải được thể hiện trong view. Bạn sẽ chỉ ra vị trí của góc tận cùng bên trái, chiều rộng và chiều cao của vùng này. Thứ hai là bạn phải xác định vị trí hiển thị của vùng này trên cửa sổ màn hình (được gọi là "cổng nhìn"). Sau đó, bạn lại phải thiết lập tiếp vị trí của góc tận cùng bên trái và kích thước của cổng. Nếu bạn có một view đơn thì vị trí đó thường có tọa độ (0,0). Chú ý rằng kích thước của cổng có thể khác với view. Trong trường hợp này view sẽ được điều chỉnh để tương ứng với cổng.

Như đã nói ở trên, bạn thường muốn hiển thị game theo một object nào đó. Object này có thể xác định ở mục bên dưới cùng. Nếu có nhiều instance của object này thì chỉ instance đầu tiên được hiển thị trong view. Thường thì nhân vật có thể đi loanh quanh một chút mà không phải thay đổi view. Chỉ khi nhân vật tiến đến gần đường biên của view thì view này mới thay đổi. Bạn có thể xác định kích thước của đường biên này (nó vẫn hiển thị quanh object đó). Cuối cùng, bạn có thể hạn chế tốc độ thay đổi các view. Điều này có nghĩa là nhân vật có thể "bước ra" khỏi màn hình nhưng sự chuyển đổi sẽ diễn ra "êm ái" hơn.

Font chữ

Khi muốn thể hiện chữ trong game, bạn có thể dùng chức năng này của Game Maker với vô số kiểu dáng khác nhau. Nhưng để dùng các font khác nhau, bạn phải tạo ra nguồn font. Trong mỗi nguồn font, bạn hãy xác định một loại font xác định để có thể sử dụng trong trò chơi có dung action thiết lập font.

Khi nhấn vào Add Font, menu sau sẽ hiện ra:



Như bình thường, bạn hãy xác định một cái tên cho nguồn font. Sau đó, bạn có thể chọn cái tên đó. Cũng vậy, hãy chỉ ra kích cỡ chữ cũng như các dạng in nghiêng hay in đậm. Do các chữ lớn làm tốn bộ nhớ nên tốt hơn hết không nên để kích thước quá 32.

Một font thường bao gồm 256 ký tự được đánh số từ 0 đến 255. Nhưng nói chung, bạn chỉ dùng đến một phần nhỏ trong số này. Do đó, mặc định trong một font thường là các ký tự từ 32 đến 127. Tất nhiên, bạn có thể thay đổi dãy ký tự được sử dụng. Để xem danh sách này, có thể dùng sơ đồ ký tự trong menu Start của Windows trong thư mục Accessories/System Tools. Một số dãy tiêu chuẩn như: Normal từ 32 đến 127, All từ 0 đến 255, Digits bao gồm 10 chữ số và Letters bao gồm tất cả chữ viết hoa và chữ thường. Các dãy khác có thể được sử dụng bằng cách gõ vào trong chỉ mục ký tự đầu tiên và cuối cùng. Nếu một ký tự nào đó không nằm trong dãy, nó sẽ bị thay thế bằng một khoảng trống.

Thường thì bạn có rất nhiều font khác nhau đã được cài đặt trong máy hoặc có thể tải về từ trên mạng. Nhưng vấn đề là nếu bạn sử dụng chúng trong game rồi đưa game đó cho người khác không có font tương tự thì họ sẽ không đọc được. Để tránh điều này, hãy gửi kèm các tập tin font lạ.

Đường đi của object (Path)

Trong các trò chơi đẳng cấp cao hơn, bạn thường muốn các instance đi theo những con đường do bạn vẽ ra. Mặc dù bạn có thể chỉ ra con đường này bằng các sự kiện đặt giờ hay mã lệnh, việc này cũng khá phức tạp. Các nguồn path sẽ là biện pháp dễ dàng hơn. Ý tưởng này khá đơn giản. Bạn xác định một con đường bằng cách vẽ nó ra. Sau đó bạn có thể xác định một hành động trong sự kiện khởi tạo của object để cho object đó biết con đường xác định để đi.



Ở phía tận cùng bên trái, bạn có thể đặt tên đường như bình thường. Phía bên dưới là các tọa độ xác định con đường này. Mỗi điểm đều có vị trí và tốc độ (sp). Tùy thuộc vào cách bạn sử dụng con đường này, vị trí của nó hoặc là tuyệt đối (sẽ khiến instance đi theo tại một địa điểm xác định) hoặc tương đối (instance sẽ khởi động ở vị trí đầu tiên của con đường và từ đây sẽ đi theo nó). Tốc độ dược thể hiện như sau: Giá trị 100 có nghĩa là tốc độ ban đầu được áp dụng cho con đường ấn định đối với một instance nào đó; giá trị thấp hơn 100 sẽ làm giảm tốc độ; còn lớn hơn sẽ gia tăng tốc độ.

Để thêm một điểm nào đó, hãy nhấn nút Add. Một điểm tương tự sẽ được tạo ra. Giờ đây, bạn có thể thay đổi vị trí và tốc độ thật sự bằng cách đổi giá trị trong các hộp tương ứng. Bất cứ khi nào bạn chọn một điểm ở trong list, bạn có thể thay đổi các giá trị của nó. Nhấn vào Insert để chèn một điểm mới trước điểm hiện thời và Delete để xóa điểm hiện thời.

Ở phía bên tay phải bạn sẽ nhìn thấy con đường thật sự. Dấu màu đỏ xác định cho bạn thấy điểm được chọn hiện thời. Các dấu màu xanh là những điểm khác. Dấu ô vuông màu xanh chỉ ra vị trí bắt đầu của con đường. Bạn cũng có thể thay đổi bằng cách sử dụng chuột. Nhấn vào bất kỳ đâu trên hình ảnh để thêm một điểm nào đó. Nhấn vào một điểm sẵn có vào kéo nó đi để thay đổi vị trí. Khi giữ phím Shift trong lúc nhấn vào một điểm, bạn có thể chèn được một điểm nữa. Cuối cùng, bạn có thể nhấn chuột phải để bỏ các điểm này đi. Chú ý là bạn không thể thay đổi tốc độ theo cách này. Thường thì các điểm sẽ được chỉnh theo một bảng ô. Bạn có thể thay đổi thiết lập bảng ô ở trên mỗi thanh công cụ. Tại đây, bạn có thể xác định xem phần bảng ô đó có hiển thị hay không. Nếu muốn xác định chính xác vị trí của một điểm nào đó, hãy giữa phím Alt trong khi chèn thêm hoặc di chuyển nó.

Ngoài ra, bạn có thể thay đổi hình dạng đường đi theo hai cách. Một là dùng kiểu kết nối. Bạn có thể chọn các kết nối theo kiểu đường thẳng hoặc một đường đi "êm ái". Thứ hai là có thể chỉ ra đường đi đó có ở dạng "đóng" hay không.

Trên thanh công cụ có rất nhiều nút xử lý quan trọng. Nút đầu tiên từ trái sang thể hiện tình trạng người sử dụng muốn đóng form hay giữ lại các thay đổi. Nếu muốn bỏ các thay đổi này, nhấn nút dấu thập để đóng cửa sổ và không lưu lại thay đổi. Tiếp theo là nút Undo để bỏ đi thay đổi cuối cùng.

Tập hợp các nút công cụ sau đó sẽ cho phép bạn xóa đường đi, đảo lại trật tự, di chuyển, xoay tròn và xác định tỷ lệ của con đường. Sau đó là các nút để di chuyển view (không phải bản thân đường đi; khu vực view thực sự được chỉ ra trong thanh trạng thái ở dưới cùng) và đến trung tâm của view.

Như đã chỉ ra ở trên, bạn có thể thiết lập giá trị di chuyển (snap) và xác định xem có hiển thị grid hay không. Cuối cùng là nút để thể hiện rằng bạn muốn xem một room xác định, ví dụ như background cho path. Sử dụng nút này, bạn có thể để đường đi ở một vị trí trong room, ví dụ như một đường đua chẳng hạn, để sau đó các instance sẽ đi theo một con đường đúng. (Việc này chỉ có nghĩa khi bạn dùng các đường đi dạng tuyệt đối).

Căn chỉnh đường đi đối với các object

Để căn chỉnh đường đi tới một instance của object nào đó, bạn có thể thiết lập hành động đường đi trong một sự kiện nào đó, ví dụ như trong sự kiện khởi tạo. Trong hành động này, bạn phải xác định đường đi từ menu thả xuống và có thể đưa thêm một số giá trị.

Bạn phải chỉ ra đường đi cũng như tốc độ được xác định bằng số pixel cho mỗi step. Khi tốc độ mang giá trị dương thì instance khởi động ở đầu con đường. Nếu tốc độ mang giá trị âm thì nó sẽ khởi động ở cuối con đường. Hãy ghi nhớ rằng khi bạn xác định đường đi thì phải xác định luôn tốc độ tương đối thật sự cho tốc độ được chỉ ra. Cũng có một hành động thay đổi tốc độ trên đường đi này. Ví dụ như bạn có thể sử dụng nó để khiến cho một instance tăng tốc hay giảm tốc trên đường đi của mình. Chú ý rằng tốc độ bình thường của instance bị bỏ qua (để bằng 0) khi thực hiện đường đi. Những yếu tố như trọng lực, ma sát không làm ảnh hưởng đến chuyển động trên đường.

Tiếp theo, bạn hãy xác định “hành vi” ở cuối chặng đường đi. Bạn có thể chọn cách dừng chuyển động và kết thúc con đường này nhưng cũng có thể khởi động lại từ đầu (nghĩa là instance sẽ nhảy ngược lại vị trí bắt đầu của đường đi và thực hiện lại hành trình). Lựa chọn thứ 3 là khởi động lại từ vị trí hiện tại (nghĩa là instance tiếp tục đường đi đó nhưng từ vị trí khởi động mới, tương tự như khi đường đi bị đóng lại). Cuối cùng, bạn có thể chọn cách xoay chiều chuyển động, làm cho instance đi xuôi, đi ngược trên con đường này. Chú ý là vào cuối đoạn đường, có một sự kiện xảy ra.

Cuối cùng, bạn có thể chỉ ra xem đường đi này là tuyệt đối hay tương đối. Một đường đi tuyệt đối được thực hiện tại điểm được xác định. Instance được đặt ở vị trí khởi động và từ đó di chuyển đi. Điều này rất hữu ích, ví dụ như khi bạn có một đường đua chẳng hạn. Khi chọn lựa trạng thái tương đối, các instance bắt đầu thực hiện đường đi từ vị trí hiện tại. Điều này rất hữu ích khi một instance chuyển động trong khu vực cố định. Ví dụ: các con tàu không gian trong một trò chơi xâm lược thiên hà nào đó có thể quay trở lại các hành tinh từ vị trí hiện tại.

Khi muốn đặt instance ở một điểm khác trên đường đi, bạn có thể sử dụng hành động thiết lập vị trí trên đường. Một vị trí trên đường đi nằm ở giữa số 0 và số 1; số 0 thể hiện vị trí khởi động và số 1 thể hiện vị trí kết thúc. Chú ý rằng trong mỗi bước đi, các hướng được tự động thiết lập đến hướng chính xác trên đường đi. Bạn có thể sử dụng tính biến thiên này để chọn định hướng chính xác cho các sprite.

Khi sử dụng các đoạn mã, bạn có nhiều khả năng hơn trong việc điều khiển cách thức mà đường đi đó được tiến hành. Có một chức năng để khởi động một đường đi đối với một instance. Biến số vị trí đường đi chỉ ra vị trí hiện tại trên đường (từ 0 đến 1 như đã nói ở trên). Biến số tốc độ trên đường đi thể hiện khả năng di chuyển nhanh, chậm trên đường. Biến số tỷ lệ đường đi có thể dùng để xác định tỷ lệ của con đường. Giá trị bằng 1 là kích thước ban đầu. Giá trị lớn hơn chỉ ra con đường được mở rộng hơn. Biến số định hướng đường đi cho thấy hướng của đường mà instance di chuyển theo các góc ngược chiều kim đồng hồ. Điều này cho phép bạn thực hiện đường đi theo một hướng khác (ví dụ như di chuyển lên, xuống chứ không phải sang trái, sang phải). Còn có một tham số khác để xác định hành vi “cuối đường”. Cuối cùng, bạn sẽ thấy có rất nhiều chức năng để xác định các đặc điểm của đường đi. Thậm chí còn có những chức năng tạo ra “đụng độ” giữa những đường đi tự do của một instance để tiến đến một mục tiêu nào đó.

Bạn có thể thắc mắc điều gì sẽ xảy ra khi một instance đụng độ với instance khác trong khi đi theo một con đường nào đó. Về cơ bản, điều tương tự sẽ xảy ra khi instance di chuyển. Khi có một instance ở dạng rắn, thì instance này được đặt trả lại vị trí trước đó. Khi cả hai instance đều không ở dạng rắn thì chúng sẽ được đặt ở vị trí trước đó. Tiếp đó, các sự kiện đụng độ được thực hiện và được kiểm tra lại xem đụng độ đó có được giải quyết hay không. Nếu không, và đồng thời instance kia thuộc dạng cứng, thì instance này sẽ dừng lại. Cũng vậy, tham số vị trí đường đi cùng không tăng lên. Khi instance gây cản biến mất thì instance đó sẽ tiếp tục theo con đường này. Để giải quyết các vụ “đụng độ”, bạn có thể dùng đến tham số vị trí đường đi. Nó sẽ duy trì vị trí trước cho đường đi và bạn có thể thiết lập vị trí đó cho tham số này để tránh tình trạng “trôi” về phía trước trong khi đi trên đường.

“Sự kiện” đường đi

Như đã mô tả ở trên, bạn có thể xác định điều gì phải diễn ra khi instance tiến đến phía cuối con đường. Vào thời điểm này sự kiện “cuối đường” xảy ra. Bạn có thể tìm thấy nó ở mục Others. Tại đây bạn có thể thiết lập các hành động. Ví dụ: bạn có thể phá hủy instance hoặc để nó khởi đầu một đường đi mới.

Nguồn : [You must be registered and logged in to see this link.]
Về Đầu Trang Go down
Xem lý lịch thành viên
 

Tự sáng tạo trò chơi với phần mềm Game Maker (phần 4)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Đẳng Cấp Học Sinh :: Lập Trình - Thiết Kế :: Phát Triển Game :: Game Maker-