(Code) Game Online sử dụng server như thế nào?

bachkhoa752

Member
7/6/13
31
1
8
27
Em đang tìm hiểu. Hiện tại e đã viết được game theo kiểu đánh đối kháng nền J2SE. Bây giờ em muốn nó chơi được online. Tức em và bạn em kết nối qua internet và đánh nhau.
Nhưng em không biết là phải học cái gì để là cái Server xử lý.

Ý tưởng 1: Viết socket, cái này chắc là không được, vì mình cần IP : Port máy chủ,bla.blala,
Ý tưởng 2: E chưa hiểu lắm về J2EE, và em đang tự hỏi là Servlet có làm được chức năng này không( giữu kết nối như socket để truyền dữ liệu) ( cái này dùng Host Heroku hỗ trợ được)
Ý tưởng 3: xây dựng PHP, get và post . Nhưng e nghĩ rất chậm, với tốc độ của game (20 FPS) chắc sẽ lag mất.
Xin các anh chỉ giảo thêm, em chỉ viết để cho biết và hiểu nên cách anh các chị cứ chỉ giáo ạ.
 
Sửa lần cuối:

suby0123

Member
2/11/14
41
4
8
19
cái bạn hỏi khó mà tư vấn lắm bạn ui chịu khó mua sách nước ngoài về đọc đi trên mang tui thấy có mấy cuốn tiếng anh vit về nó đó mà đọc cũng chẳng hỉu cái thứ này phải tới trường dạy lập trình game đóng vài ngan usd la nó chỉ cho bác àh .Thân. Cơ mà em nói có gi sai admin cứ xóa bài em không bùn đâu ạh:bz
 

chuong.dev

New Member
7/5/14
24
5
3
32
Game Offline: Xử lý Logic ngay trên máy tính bạn đang chơi.
Game Online: Xử lý Logic được thực hiện trên máy Server.

Đối với game online, chắc chắn là mọi game đều sử dụng giao thức TCP/IP để trao đổi thông tin giữa Game Client với Game Server.
Bạn hãy quên đi ý tưởng 2 và 3. Hãy sử dụng ý tưởng 1 đề cài đặt nhé.

Ý tưởng 1: Viết socket, cái này chắc là không được, vì mình cần IP : Port máy chủ,bla.blala,=> Chạy trên localhost thì ok thì publish lên Internet ok thôi em.
 
  • Like
Reactions: tranhuyvc

tranhuyvc

Administrator
Staff member
21/1/10
6,248
230
63
Em đang tìm hiểu. Hiện tại e đã viết được game theo kiểu đánh đối kháng nền J2SE. Bây giờ em muốn nó chơi được online. Tức e và bạn em kết nối qua internet và đánh nhau.
Nhưng em không biết là phải học cái gì để là cái Server xử lý.

Ý tưởng 1: Viết socket, cái này chắc là không được, vì mình cần IP : Port máy chủ,bla.blala,
Ý tưởng 2: E chưa hiểu lắm về J2EE, và em đang tự hỏi là Servlet có làm được chức năng này không( giữu kết nối như socket để truyền dữ liệu) ( cái này dùng Host Heroku hỗ trợ được)
Ý tưởng 3: xây dựng PHP, get và post . Nhưng em nghĩ rất chậm, với tốc độ của game (20 FPS) chắc sẽ lag mất.
Xin các anh chỉ giảo thêm, em chỉ viết để cho biết và hiểu nên cách anh các chị cứ chỉ giáo ạ.
thứ nhất Game thường viết đựa trên 1 nền hỗ trợ game
thường là game -> API hỗ trợ game or app gi đó cái nay java thuần chưa hỗ trợ -> Java

2. Nếu bỏ qua những vấn để kỷ thuật, cho là nó chạy được, ý tưởng 2 of bạn xài java web thì có thể nhúm html5 code, code sao nó chạy z, quản lý session, nhưng đó là web game
3. đó là php cũng tương tư java web là web game
1. nến tảng nào kết nối game, web hay bat cứ thứ gì đi nữa đều sử dụng TCP, UDP và socket thôi. nếu lập trình mạng thì cái này phải nghiến cứu

mình nghĩ bạn đang làm project ở trường thôi, nếu làm game cho project nên nghĩ những game đơn giản, quản lý bằng cách gửi 'tin nhắn' trong LAN, 'tin nhắn' làm cầu nối giao tiếp giữa các client.

sợ đồ ALC Protocal lúc mình còn làm coursework ở đại học
 

tranhuyvc

Administrator
Staff member
21/1/10
6,248
230
63
cái bạn hỏi khó mà tư vấn lắm bạn ui chịu khó mua sách nước ngoài về đọc đi trên mang tui thấy có mấy cuốn tiếng anh vit về nó đó mà đọc cũng chẳng hỉu cái thứ này phải tới trường dạy lập trình game đóng vài ngan usd la nó chỉ cho bác àh .Thân. Cơ mà em nói có gi sai admin cứ xóa bài em không bùn đâu ạh:bz
forum trao đổi mà bạn. mình nghi bạn ấy muốn làm bài tập ở trường thôi, game trên java làm thì được nhưng k phải tối ưu
vì java là Đa nền tảng, z nếu java viết game ok được, thì bạn sẽ thấy game trên Window chạy trên Mac và Linux được rồi đúng k
 

bachkhoa752

Member
7/6/13
31
1
8
27
Cảm ơn các anh và admin đã tư vấn.
Bài tập game đơn giản ở trường của em thôi, nhưng em muốn thử đưa lên internet xem sao.
Socket trên localhost chắc là em làm được. =D.
Muốn hỏi anh @chuong.dev phần đưa lên internet như thế nào. Bỉnh thường em hay sử dụng các host php hay java (miễn phí), nhưng nếu em hiểu không sai thì ý của anh là mình có 1 cái server riêng, ip riêng, port do mình đặt đúng không ạ. nếu như thế là không miễn phí đúng không anh. ??
 

chuong.dev

New Member
7/5/14
24
5
3
32
Hi backkhoa752, publish gameonline thì tất nhiên là phải có máy chủ rùi. Thông thường bạn sử dụng host miễn phí để chạy ứng dụng web thì host đó cũng có địa chỉ IP và mặc định nó chạy trên cổng 8080 rồi. Ứng dụng chạy trên server thì cũng chẳng có gì khác lúc chạy trên localhost đâu bạn ah. Chỉ khác là cái máy tính đó có địa chỉ IP tĩnh thôi. Thông thường host miễn phí đa số là host cho public ứng dụng web và chạy trên cổng mặc định rùi.
 

Joe

Thành viên VIP
21/1/13
2,736
1,256
113
Bachkhoa.
I keep quiet too long after giving you some hints in the Chat-box and I hoped you might start to do what I well-intendedly told you. But instead of following my hints and doing some searches for the solution you just sit there and wait for someone spoonfeeding you. Creating a web-based game is not a free lunch where you come, pick the lunch, eat and leave.
It's a work that requires more knowledge and imagination than some lapidary day-dreaming ideas. For example this thread here could be a good example for your day-dreaming laziness. I'm tired of lazy people. If I was Admin Tranhuy, I would delete your thread and gave you a stern warning.
 

suby0123

Member
2/11/14
41
4
8
19
Well i think you too hard with him it just a topic no need use hard word .Alot people post topic here are amateur and chick(newbie) .If they are pro they can handle themseleves .I don't agree with word "lazy " i prefer "lack of knowledge" because he was tried hard to write his program and it work. All he want to know that is more bigger knowledge and that knowledge can not share easily and some how he just managed study himself by this way or the order way. And if you don't like his question you can choose not answer that ok. This is not the college or university no need to used hard word .:bz
 

bachkhoa752

Member
7/6/13
31
1
8
27
Không phải mình lười search google nhé.
Có thể là tên topic hơi sai ý 1 chút.
Mình đã viết Socket trên LAN chạy tốt. Mình đã học mạng máy tính, hiếu sơ qua internet hoạt động.
Internet có thể ví cũng như LAN(nhưng cả toàn thế giới). Nhưng để có 1 cái server mà mình có 1 ip riêng, set cổng tùy ý. Thì chỉ có tiền mới làm được.
Ý topic muốn hỏi là có thể xây dựng trên các host miễn phí ( ý tưởng 2 và 3 thôi).
Với lại forum trao đổi, là để hỏi vấn đề mình còn băn khoăn (mà search mãi không thấy, hoặc chưa hiểu vì ngôn ngữ), công bằng mọi thành viên mà.
 

tranhuyvc

Administrator
Staff member
21/1/10
6,248
230
63
Bachkhoa.
I keep quiet too long after giving you some hints in the Chat-box and I hoped you might start to do what I well-intendedly told you. But instead of following my hints and doing some searches for the solution you just sit there and wait for someone spoonfeeding you. Creating a web-based game is not a free lunch where you come, pick the lunch, eat and leave.
It's a work that requires more knowledge and imagination than some lapidary day-dreaming ideas. For example this thread here could be a good example for your day-dreaming laziness. I'm tired of lazy people. If I was Admin Tranhuy, I would delete your thread and gave you a stern warning.
Joe, him just discuss a solution how to bring 'Local' to 'Internet' when client - server connect together, backkhoa just want to find out the way for research, not asking for the code. because in class just teach how to write socket from client - server in LAN, not internet, some of student don't know much about network, porting...
 

tranhuyvc

Administrator
Staff member
21/1/10
6,248
230
63
Không phải mình lười search google nhé.
Có thể là tên topic hơi sai ý 1 chút.
Mình đã viết Socket trên LAN chạy tốt. Mình đã học mạng máy tính, hiếu sơ qua internet hoạt động.
Internet có thể ví cũng như LAN(nhưng cả toàn thế giới). Nhưng để có 1 cái server mà mình có 1 ip riêng, set cổng tùy ý. Thì chỉ có tiền mới làm được.
Ý topic muốn hỏi là có thể xây dựng trên các host miễn phí ( ý tưởng 2 và 3 thôi).
Với lại forum trao đổi, là để hỏi vấn đề mình còn băn khoăn (mà search mãi không thấy, hoặc chưa hiểu vì ngôn ngữ), công bằng mọi thành viên mà.
test tạm thời thì được, bạn sử dụng PC or Laptop của bạn luôn, bạn vào moderm chuyển port. vì dụ PC của bạn chạy server ở port 1234 và có IP lan là 192.168.1.1

Bạn ở ngoài internet muốn truy cập vào PC của bạn ở nhà chẳng hạn, z phải thông qua IP của nhà mạng, thường là tỉnh thì ok, đa phần hiện này là động mỗi lần reset lại modern internet. nếu muốn xài luôn thị bạn tham khảo domain động cung cấp free, đơn giản hơn để biết IP mạng hiện tại bạn vào http://www.whatismyip.com/ từ chính PC của bạn sẽ lấy được IP.

giờ bạn vào modern port cổng 1234 trỏ đến cổng 1234 trên Lan 192.168.1.1

z từ 1 mạng khác, bạn có thể kết nối về PC ở nhà bạn bằng cách sử dụng IP của nhà mạng mà whatismyip.com hiển thị + với port của chương trình
 

Joe

Thành viên VIP
21/1/13
2,736
1,256
113
Mon Admin Tranhuy,
Bachkhoa,

First to mon Admin.
him just discuss a solution how to bring 'Local' to 'Internet' when client - server connect together
Mon Admin, I gave him this hint
For example this thread here could be a good example
after Chuong.dev posting. And when he read this thread he could find this
How to do (here Window):
1) unzip the ver4.zip, for example, to d:\battleship
2) open a cmd-window, move to this directory (cd d:\battleship)
3) run make.bat
4) run server.bat. The MarineBase JFrame appears
5) run client.bat on other cmd Window. The Seawar JFrame appears
6) NOW you can play...
7) If you want to make your server available for other players outside your LAN you have to do the Port-Forwarding: Read this
The last point 7) talking about Port-Forwarding with a link (click at Read this) which leads to diff. of Gateway/Modem types and how to turn a local Server to a Host. There's never any free host on the Web. Free lunch? Free Host? Only a dreamer believes it.
____________________
Now to you, Bachkhoa,
Neu ban khong doc duoc tieng Anh, thi toi bien cho ban bang tieng Viet. Ban luoi, khong co kien nhan doc. Toi chi cho ban cai link cua toi va trong do toi co cho mot cai link ve Port Forwarding. Thay vi tim hieu, ban muon an com trua va (free lunch)...Ngoai ra, ban nen hoc tieng Ang neu ban muon lam viec voi computer. Got it?
 

bachkhoa752

Member
7/6/13
31
1
8
27
Tiếng anh của em mới chỉ dừng lại đọc hiểu nên không trả lời cho anh Joe được.
Lỡ viết lại sai, anh lại bắt lỗi tiếp thì chết :v
Đùa thôi, em cảm ơn các anh về chủ đề này, em đã có câu trả lời mình muốn (close thread) và e sẽ chú ý hơn ở các topic tiếp ^^
Thanks for all.