Go Back   Diễn đàn Game Thủ > GÓC CÔNG NGHỆ - SÁNG TẠO > PHÁT TRIỂN GAME > Game Maker
Đăng ký FAQ Thành viên Calendar TT Giải Trí Shop Đánh dấu đã đọc

Trả lời
 
Công cụ hỗ trợ Cách hiển thị
Old 05-07-2011, 06:12 PM   #1
KuteNamA
Game Thủ Tiềm Năng
 
GT COIN: 206,954

Ngày tham gia: Dec 2010
Age: 18
Bài viết: 386
Thanks: 27
Thanked 18 Times in 12 Posts
Tổng điểm: 1
- Ðiểm thưởng : 1
- Số lần thưởng điểm : 1
KuteNamA's Inventory
Hoa hồng 1
Default ž!...Topic hướng dẫn tạo Game Online...!

Hướng dẫn make Game Online

~KuteNamA~

Phần 1
o79
o89o79
[Ai có ý nghĩ”Game maker chỉ làm được game offline chứ không làm được online” thì bỏ ngay cái đó khỏi trong đầu đi nhé.Bời vì sau khi đọc tut hướng dẫn này bạn sẽ có thể tự tạo cho mình một Game Online hoàn chỉnh.]
----------Những điều cần lưu ý để cho bạn đỡ nản khi làm game online.----------

Giải thích một số thuật ngữ sẽ sử dụng sau này
Client và sever đều là 2 tập tin gmk.
-Client tương tự như cái file exe mà bạn hay vào game của các nhà phân phối để chơi ý.
-Sever (máy chủ) là file exe của bên họ,để họ quản lý kết nối, nghĩa là chỉ một máy được chọn làm máy chủ sẽ phải mở tập tin sever này, khi máy chủ đóng tập tin thì tất cả các người chơi sẽ không vào game được


SEVER
o55Làm game online rất rễ,nhưng cần hiểu kỹ nguyên lý(CSC:tý nói rõ sau)
o20Bạn đang lo về sever, thường thường thì sever làm bằng Game Maker,nên phần cài đặt sever cũng đã quyen thuộc rồi.Sever thường phải chạy qua các phần mềm hỗ trợ như HAMICHI,TUNGLE, đừng lo,NamKute đã có
giải pháp,mở sever như những công ty game online chuyên nghiệp và không bắt người chơi phải cài đặt những phần mềm rắc rối và bất tiện kia.
Đường truyền:FTP,VNPT,… thì BÌNH THƯỜNG.Còn Cáp Quang thì QUÁ TỐT.Mạng LAN thì vứt đi.(chỉ đối với SEVER thôi nhé chứ client và sever để test game thì vẫn được)
Lag:Nếu bạn biết cách truyền Dữ liệu tiết kiệm mức độ Lag sẽ là Kém,còn truyền lung tung,nhận lung tung thì sẽ Lag ngay lập tức.Ngoài ra cần kết hợp với Host DNS(host để người chơi không cần download phần mềm hỗ trợ) pro để giảm lag,DNS free vẫn có nhưng hơi lag một tý tẹo tèo teo.Nói cái này đừng buồn nha,sever game maker chứa đựng được 65536 client cùng một lúc trong một sever nhưng host DNS thì 32 client thôi à.Nên nếu muốn sever tốt thì nên liên hệ để đăng ký một DNS Pro riêng,hoặc có thể tạo nhiều sever free cho người chơi chọn sever.

CLIENT

Làm bằng Game Maker.
Độ chậm ,nhanh của client là do client của bạn nặng hay nhẹ,còn tốc độ đường truyền là do mạngsever,không liên quan gì đến client cả.
Yêu cầu
1 máy online 24/24 cho 1 sever. Là mạng chính ,không được dùng máy là Mạng Lan.
1 file .gmk mà sau đây tôi sẽ hướng dẫn các bạn tạo.

Lưu ý
Nếu có ăn cắp tài nguyên của game online khác làm game online của mình thì nên chỉnh sửa một chút và cũng đừng có lấy 100% tài nguyên của nó.Để nó không lôi mình ra tòa được.
Bạn có thể mở sever và client trong cùng một máy để test game.

Trước khi làm được thì mình nghĩ các bạn nên hiểu mấy cái này trước và mình sẽ post tiếp tut phần 2 vào ngày tiếp theo,nhanh nhất có thể

Không được quyên nhấn nút Thank khi xem bài viết.Không comment khi tác giả chưa up hết











Các bài viết ngẫu nhiên cùng chủ đề:


Hiệu chỉnh lần cuối bởi dangbaoloc_1225: ngày 05-07-2011 lúc 06:49 PM..
Thành viên KuteNamA đang offline   Trả lời với trích dẫn nội dung
Đã có 3 cám ơn bài viết của KuteNamA :
gimper1997 (05-07-2011), Quangculoj (05-07-2011), to@n (28-07-2011)
Old 05-07-2011, 07:06 PM   #2
KuteNamA
Game Thủ Tiềm Năng
 
GT COIN: 206,954

Ngày tham gia: Dec 2010
Age: 18
Bài viết: 386
Thanks: 27
Thanked 18 Times in 12 Posts
Tổng điểm: 1
- Ðiểm thưởng : 1
- Số lần thưởng điểm : 1
KuteNamA's Inventory
Hoa hồng 1
Default Phần 2

Phần 2


Nguyên lý CSC (Client-Sever-Client)
Như đã hứa,hôm nay mình sẽ giúp bạn hiểu được thế nào là nguyên lý CSC mà các Game Online nổi tiếng trên thế giới hiện nay thường dùng.Và chỉ ra các mà các nhà làm game đã lừa các bạn.Xem xong bạn sẽ hiểu hoạt động của nó thế nào để có thể tạo riêng một engine online đình đám rồi.

CSC"Client-Sever-Client" thể hiện các thao tác mà thông tin sẽ được truyền, hay nói cách khác là con đường mà thông tin di chuyển giữa các máy tính
Tuy gọi là Client-Sever-Client, nhưng đây là hai Clients khác nhau, của hai máy tính khác nau, hai người chơi khác nhau
Nguyên lý là như sau:
1.Client của người dùng gửi thông tin cho Sever
2.Sever nhận và truyền lại thông tin cho Client(có thể là client của mình hoặc cho client khác)
3.Client khác sẽ nhận thông tin từ sever và thực hiện những thông tin được truyền đó
Ví dụ : Người chơi A đăng nhập vào game.Sever nhận thông tin và truyền cho người chơi khác,
Client của người chơi nhận được thông tin từ sever(chỉ những client được nhận thôi) sẽ có nhiệm vụ tạo một obj_fake(object giả). obj_fake vừa tạo sẽ có đặc tính và vị trí ban đầu của người chơi A.Thế là ta đã thiết lập được 1 phần online nhỏ.Khi người Adi chuyển,tọa độ chuyển tới sever,sever chuyển tới người B tọa độ x,y đó và ở client người B
,obj_fake mang id của người Asẽ có tọa độ x,y mà người Avừa gửi.

Hình minh họa:


Giải thích :
>Nhiều bạn tưởng rằng khi chơi game online thì mình có thể gặp bạn bè mình qua cái màn hình trực tuyến nhưng thật ra bạn đang lăng nhăng với cả đống obj_fake(nhân vật giả mạo) ở client bạn.Những obj_fake này có thông tin(tọa độ,tên,level,map đang ở...chẳng hạn) giống với những người ở bên kia đang gửi sang.Bạn đã bị những nhà làm game online lừa rồi.< Bây giờ đến lượt mình lừa những Player ngây thơ của mình.

o56o56o56
Giờ thì bạn đã hiểu nguyên lý này rồi chứ,nhấn cho tớ một nút Thanks ủng hộ.
Nêu chưa hiểu pm yahoo:emnam_kute2 để được giải đáp.và nhấn Thanks sau cũng được.

Ðánh giá: Đề tài mới, thu hút được sự chú ý của thành viên khác
Ði?m: +1

Hiệu chỉnh lần cuối bởi dangbaoloc_1225: ngày 05-07-2011 lúc 07:55 PM..
Thành viên KuteNamA đang offline   Trả lời với trích dẫn nội dung
Đã có 3 cám ơn bài viết của KuteNamA :
gimper1997 (05-07-2011), Quangculoj (06-07-2011), to@n (28-07-2011)
Old 05-07-2011, 10:50 PM   #3
KuteNamA
Game Thủ Tiềm Năng
 
GT COIN: 206,954

Ngày tham gia: Dec 2010
Age: 18
Bài viết: 386
Thanks: 27
Thanked 18 Times in 12 Posts
Tổng điểm: 1
- Ðiểm thưởng : 1
- Số lần thưởng điểm : 1
KuteNamA's Inventory
Hoa hồng 1
Default Phần 3

Phần 3

Các loại gói dữ liệu chuyển và nhận


Vậy có những thể loại thông tin nào để truyền?
Xin thưa là có 3x2=6 loại.
1.Byte : cho phép truyền giá trị từ 0 đến 255 (thông tin truyên không vượt quá mức này thì nên dùng cái này cho nó giảm lag) [dữ liệu truyền là 1] ít
2.Short : giống cái trên nhưng từ -32768 đến 32768 [dữ liệu truyền là 2] bình thường
3.uShort : 0 đến 32768x2(tự tính nha) [dữ liệu truyền là 2] bình thường
4.int :-2147483648 đến 2147483648[dữ liệu truyền là 4] nhiều
5.uint :0 đến 2147483648x2[dữ liệu truyền là 4] nhiều
6.string:truyền tất cả các ký tự. [dữ liệu truyền là 1 cho mỗi ký tự nhé] quá quá nhiều.
[Với gói string các bạn nên thay bằng byte cho nó nhẹ.
Ví dụ :bạn muốn gửi ‘Tôi yêu NamKuteA nhiều lắm ‘ thì thay vào đó,bạn gửi byte là 22 chẳng hạn.rồi đặt một biến tương ứng.
If biến=22 thì string=‘Tôi yêu NamKuteA nhiều lắm ‘]

Các bạn hãy suy nghĩ và tính toán kỹ các gói để truyền cho game đỡ lag,vì mình nghĩ các bạn toàn dùng sever free nên phải tiết kiệm cái này.
o100Lưu ý :Không được đặt code truyền dữ liệu vào Step event,game bạn sẽ giật đó và chậm đóo123(vừa nãy mình nói là client không thể làm mạng lag được,nhưng mạng có thể làm client giật đấy,hãy lưu ý).Và chỉ send dữ liệu khi cần thiết.
Không lăng nhằng nữa,hãy cài đặt thôi.ở phần 4 mình sẽ hướng dẫn và có example cụ thể.Mục đích post example sau cùng là để các bạn hiểu được cách làm thì làm sẽ dễ và không cần suy nghĩ và hỏi nhiều.

Thành viên KuteNamA đang offline   Trả lời với trích dẫn nội dung
Đã có 2 cám ơn bài viết của KuteNamA :
Quangculoj (06-07-2011), to@n (28-07-2011)
Old 26-07-2011, 09:48 PM   #4
thangnhokpro
Game Thủ Tiềm Năng
 
GT COIN: 1,289

Ngày tham gia: Jul 2008
Bài viết: 450
Thanks: 3
Thanked 1 Time in 1 Post
Tổng điểm: -2
- Ðiểm thưởng : 9
- Số lần thưởng điểm : 4
- Ðiểm phạt : -11
- Số lần trừ điểm : 3
thangnhokpro's Inventory

Default

bác này phán như thánh.haha.truyền dữ liệu gói string mà kêu là nhiều.bác thay cả câu =1byte hay thế.chat là người ta chát tự do.chứ chẳng ai cũng vào yêu nam kute

Thành viên thangnhokpro đang offline   Trả lời với trích dẫn nội dung
Old 27-07-2011, 09:10 AM   #5
sowbit262
Game Thủ Tiềm Năng
 
GT COIN: 4,614

Ngày tham gia: Jan 2011
Age: 20
Bài viết: 138
Thanks: 13
Thanked 5 Times in 4 Posts
sowbit262's Inventory

Default

Trích dẫn nội dung:
Thông tin dưới đây được viết bởi thangnhokpro Xem bài viết
bác này phán như thánh.haha.truyền dữ liệu gói string mà kêu là nhiều.bác thay cả câu =1byte hay thế.chat là người ta chát tự do.chứ chẳng ai cũng vào yêu nam kute
Chú này không hiểu ý của bác ấy rồi ý bác ấy nói là sử dụng cho nhiều mục đích khác nhau chứ có phải là chat đâu, cái đó chỉ là ví dụ về việc tiết kiệm đường truyền! Mà hình như bác chưa có đụng đến 39dll.dll phải ko ? nên bác không biết truyền string sẽ tốn dụng lượng cỡ nào ! chỉ mới test sơ thôi (chưa tính đến chat) là truyền bằng byte không là gần 20~50MB trong thời gian 5 phút đó!

Thành viên sowbit262 đang offline   Trả lời với trích dẫn nội dung
Old 27-07-2011, 04:34 PM   #6
KuteNamA
Game Thủ Tiềm Năng
 
GT COIN: 206,954

Ngày tham gia: Dec 2010
Age: 18
Bài viết: 386
Thanks: 27
Thanked 18 Times in 12 Posts
Tổng điểm: 1
- Ðiểm thưởng : 1
- Số lần thưởng điểm : 1
KuteNamA's Inventory
Hoa hồng 1
Default

Ghét những người không đọc ký thế nhỉ
dữ liệu truyền là 1 cho mỗi ký tự nhé
Tức là khi chát dòng "Toi chua doc ky huong dan",sẽ là 20x1 là 20 cho một lần chát cái chữ "Toi chua doc ky huong dan" đấy,thử tưởng tượng cái chữ dài hơn xem,mà mỗi lần gửi đến 5 byte là nhiều rồi.

Thành viên KuteNamA đang offline   Trả lời với trích dẫn nội dung
Old 28-07-2011, 09:49 AM   #7
to@n
Game Thủ Chuyên Nghiệp
 
GT COIN: 10,041

Ngày tham gia: Sep 2008
Địa chỉ: -Design Studio-
Age: 25
Bài viết: 4,185
Thanks: 49
Thanked 21 Times in 19 Posts
Tổng điểm: 46
- Ðiểm thưởng : 57
- Số lần thưởng điểm : 24
to@n's Inventory

Default

bài viết good đó để mấy hum nữa ngâm cứu xem sao. thank em

__________________

Ta đã trở lại..hế hế!
Thành viên to@n đang offline   Trả lời với trích dẫn nội dung
Old 28-07-2011, 05:45 PM   #8
Quangculoj
Game Thủ Tích Cực
 
GT COIN: 17,403

Ngày tham gia: Apr 2009
Bài viết: 1,509
Thanks: 71
Thanked 31 Times in 21 Posts
Tổng điểm: 27
- Ðiểm thưởng : 28
- Số lần thưởng điểm : 16
Quangculoj's Inventory

Default

To@n have combacked for a long time no see!!! chuẩn bị ổng tung bom tấn NCB III Online đê các bạn

Thành viên Quangculoj đang offline   Trả lời với trích dẫn nội dung
Old 28-07-2011, 06:00 PM   #9
Megasoftvn-2009
Game Thủ Tích Cực
 
GT COIN: 13,619

Ngày tham gia: Nov 2009
Bài viết: 727
Thanks: 5
Thanked 25 Times in 24 Posts
Tổng điểm: 16
- Ðiểm thưởng : 16
- Số lần thưởng điểm : 6
Megasoftvn-2009's Inventory

Default

Ờ rất có thể lão này mờ ám lắm =.="

__________________
Thành viên Megasoftvn-2009 đang offline   Trả lời với trích dẫn nội dung
Old 28-07-2011, 07:44 PM   #10
Quangculoj
Game Thủ Tích Cực
 
GT COIN: 17,403

Ngày tham gia: Apr 2009
Bài viết: 1,509
Thanks: 71
Thanked 31 Times in 21 Posts
Tổng điểm: 27
- Ðiểm thưởng : 28
- Số lần thưởng điểm : 16
Quangculoj's Inventory

Default

xông thẳng vào cái topic tạo game online mới ghê chứ, các chú chuẩn bị tinh thần đê.........

Thành viên Quangculoj đang offline   Trả lời với trích dẫn nội dung
Old 28-07-2011, 08:42 PM   #11
Megasoftvn-2009
Game Thủ Tích Cực
 
GT COIN: 13,619

Ngày tham gia: Nov 2009
Bài viết: 727
Thanks: 5
Thanked 25 Times in 24 Posts
Tổng điểm: 16
- Ðiểm thưởng : 16
- Số lần thưởng điểm : 6
Megasoftvn-2009's Inventory

Default

Híc híc chỉ trông cậy vào trùm box thôi. Chả ai có game gì cả

__________________
Thành viên Megasoftvn-2009 đang offline   Trả lời với trích dẫn nội dung
Old 28-07-2011, 08:59 PM   #12
dangbaoloc_1225
Rotaredom
 
GT COIN: 1,924,859

Ngày tham gia: Oct 2007
Địa chỉ: The third Planet of the Soldar System
Age: 19
Bài viết: 4,987
Thanks: 38
Thanked 115 Times in 97 Posts
Tổng điểm: 53
- Ðiểm thưởng : 84
- Số lần thưởng điểm : 39
dangbaoloc_1225's Inventory
PS3 PS3
PS3 PS3

Default

Bố Nam viết phần 4 đi hức hức Viết qua đây trước mình sửa cho
Tiện thể hỏi cái khi dữ liệu trong khoảng 0->3000, muốn dùng gói byte để truyền, có thể chia giá trị cần truyền cho 20, rồi khi truyền xong nhân lại với 20 được ko?

__________________
日本刀



Thành viên dangbaoloc_1225 đang offline   Trả lời với trích dẫn nội dung
Old 28-07-2011, 10:09 PM   #13
minh03120
Game Thủ Tập Sự
 
GT COIN: 1,267

Ngày tham gia: Sep 2010
Age: 26
Bài viết: 69
Thanks: 0
Thanked 1 Time in 1 Post
minh03120's Inventory

Default

bài viết có cố gắng,tuy nhiên người viết quá khiêm tốn
để mô tả ít nhất 1 player của 1 client a trong client b
thì server phải truyền ít nhất cũng phải 50 byte trên n phần nghìn giây n>=20

50=posx(4 byte)+posy(4)+name(tùy,có thể max 20 kí tự=20byte,sử dụng tiếng việt
thì x2=40byte)+trạng thái player(ít nhất cũng 3 biến trở nên 3x4=12)+các speed
chạy ảnh (>1 biến >=4)+nếu có thể hiện máu thì phải truyền thêm máu hiện tại+máu max(2x4=8).....
đây là lượng truyền thường xuyên(trung bình cũng khoảng 10 lần /giây) còn nhiều lệnh khác

và bắt buộc phải đặt trong step



buồn quá không biết làm gì ngồi lướt web

Thành viên minh03120 đang offline   Trả lời với trích dẫn nội dung
Những người đã cám ơn bài viết của minh03120 :
KuteNamA (03-03-2014)
Old 28-07-2011, 10:24 PM   #14
dangbaoloc_1225
Rotaredom
 
GT COIN: 1,924,859

Ngày tham gia: Oct 2007
Địa chỉ: The third Planet of the Soldar System
Age: 19
Bài viết: 4,987
Thanks: 38
Thanked 115 Times in 97 Posts
Tổng điểm: 53
- Ðiểm thưởng : 84
- Số lần thưởng điểm : 39
dangbaoloc_1225's Inventory
PS3 PS3
PS3 PS3

Default

Hoàn toàn có cách hạn chế đặt trong step, chả hạn nhân vật di chuyển sang trái, thì không nhất thiết gán hoành độ mỗi step; chỉ việc chuyền dữ liệu tốc độ ở thời điểm bấm nút, khi nhả nút thì lại truyền dữ liệu tốc độ=0; nếu cần thiết đảm bảo vị trí x,y không bị lệch, thì cứ truyền thêm nó trong mục ấn, thả nút, chứ không đưa hết vào step

__________________
日本刀



Thành viên dangbaoloc_1225 đang offline   Trả lời với trích dẫn nội dung
Old 29-07-2011, 09:33 AM   #15
minh03120
Game Thủ Tập Sự
 
GT COIN: 1,267

Ngày tham gia: Sep 2010
Age: 26
Bài viết: 69
Thanks: 0
Thanked 1 Time in 1 Post
minh03120's Inventory

Default

step là nó đặt kết nối với máy chủ,còn việc,xử lý việc di chuyển ở mỗi client là do server
làm
để hạn chế gửi các frame trạng thái thì nên tạo 1 số biến quy định
vì tất cả dữ liệu ở client có thì server đều có rồi
ví dụ: khi nào palyer di chuyển nó sẽ bắn 1 tin nên server là nó chuẩn bị di chuyển
lúc đó server sẽ thực hiện công việc di chuyển player= 1 thuật toán tìm đường nào đó
rồi bắn 1 gói tin cho các player ở gần player đó,như thế sẽ giảm độ truyền tải băng thông

Thành viên minh03120 đang offline   Trả lời với trích dẫn nội dung
Trả lời

Bookmarks

Công cụ hỗ trợ
Cách hiển thị

Quyền hạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies được Mở
[IMG] code được Mở
HTML code được Tắt

Truy cập nhanh

Tính theo giờ GMT +7, bây giờ là 12:41 PM.
Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
Bản quyền thuộc FPT Telecom