একটি অ্যান্ড্রয়েড / আইওএস টার্ন ভিত্তিক বোর্ড-গেমের জন্য গেম সার্ভার


9

আমি বর্তমানে একটি আইফোন গেম প্রোগ্রাম করছি এবং আমি একটি অনলাইন মাল্টিপ্লেয়ার মোড তৈরি করতে চাই। ভবিষ্যতে, এই অ্যাপ্লিকেশনটি অ্যান্ড্রয়েড ডিভাইসে বন্দরে থাকবে, তাই আমি ভাবছিলাম কীভাবে গেম-সার্ভার তৈরি করবেন?

প্রথমে আমার কোন ভাষাটি বেছে নেওয়া উচিত? উদ্দেশ্য-সি এবং জাভাতে লিখিত প্রোগ্রামগুলির সাথে কোনও সার্ভারকে যোগাযোগ করতে সক্ষম কীভাবে?

তাহলে, কীভাবে কার্যকরভাবে এটি করা যায়? আমি ক্লায়েন্ট দ্বারা একটি সকেট খুললে এটি কি ভাল (2 জন থাকবে)? সার্ভারে আমার কী ধরণের তথ্য প্রেরণ করা উচিত? ক্লায়েন্টদের?

উত্তর:


7

আমি এখানে পবিত্র যুদ্ধ শুরু করার অর্থ দিচ্ছি না, তবে বেশিরভাগ ইন্টারনেট পরিষেবা (ফ্লিকার, টুইটার, ফেসবুক এবং এ জাতীয়) সিরিয়ালযুক্ত ফর্ম্যাট হিসাবে আরএসএসএফুল ওয়েবসার্চেস এবং জেএসওনের পক্ষে এসওএপি ছাড়ছে। যদিও মূলত একই রকম, উদাহরণস্বরূপ, কী করা উচিত তা নির্ধারণ করার জন্য আরআরইএসটি পরিষেবাগুলি ইউআরএল এবং HTTP পদ্ধতিতে নির্ভর করে

GET /articles - list all articles
POST /articles - add a new article
PUT /articles/123 - update article 123 with new data

JSON - json.org এ বর্ণিত - এটি এক্সএমএল থেকেও সহজ এবং সম্ভবত অপ্রাসঙ্গিক, অনুরোধ অনুযায়ী আপনাকে কয়েকটি বাইট সংরক্ষণ করবে। পূর্ববর্তী উদাহরণ অনুসরণ করে, এখানে একটি নিবন্ধ কীভাবে JSON স্বরলিপিতে বর্ণিত হবে:

{ 
 "id": 123,
 "author": "Cyril",
 "content": "Hello, this is an article",
 "tags": [ "gamedev", "webservices", "multiplayer" ] 
}

আইওএসের জন্য এই চমৎকার নিবন্ধটি রয়েছে http://petermcintyre.wordpress.com/2010/11/04/consume-json-rest-in-ios/ যা http://code.google.com/p/json-framework উল্লেখ করেছে / ডেটা পার্সিং এবং উত্পাদনের জন্য।

টার্ন-ভিত্তিক হওয়ায় আপনি রাষ্ট্র বজায় রাখতে সার্ভারে এইচটিপি সেশনগুলির উপর নির্ভর করতে পারেন, সুতরাং সার্ভারের সাথে অবিরাম সকেট সংযোগ রাখার দরকার নেই। যে কোনও সার্ভার-পাশের ভাষা এটি (পিএইচপি, পাইথন, জাভা ইত্যাদি) সমর্থন করে।

এই আর্কিটেকচারটি আপনাকে স্বচ্ছ উপায়ে অনুভূমিকভাবে স্কোর করতে (আরও সার্ভার যুক্ত করা) অনুমতি দেয়।


4

যেহেতু আপনার গেমটি টার্ন ভিত্তিক হতে চলেছে তাই রিয়েল-টাইম আপডেটগুলি অতীব গুরুত্বপূর্ণ নয়। এটি করার সবচেয়ে সহজ উপায় হ'ল একটি ইতিমধ্যে নির্মিত সার্ভারটি ব্যবহার করা, আমি একটি ওয়েব সার্ভারের সাথে যাব। আপনার গেমটি পোর্টিং করার মতো কোনও প্ল্যাটফর্মের জন্য একটি ওয়েব সার্ভারে থাকা ওয়েব পরিষেবাদি অ্যাক্সেস করা সহজ হবে।

কাছাকাছি রিয়েল-টাইমে আপডেট দেওয়ার জন্য, আমি আপনাকে দীর্ঘ ভোটদানের দিকে নজর দেওয়ার পরামর্শ দিই এই লিঙ্কের কোডটি সার্ভার দিক থেকে দীর্ঘ ভোটদানের সর্বাধিক প্রাথমিক প্রয়োগ সরবরাহ করে। তবে নীচের লাইনটি হ'ল একবার কোনও উত্সকে অনুরোধ করা হলে, অনুরোধ করা ডেটা উপলব্ধ না হওয়া পর্যন্ত সার্ভার একটি ব্লকিং কল চালায়। তারপরে আপনি আবার প্রক্রিয়াটি পুনরাবৃত্তি করুন।

আপনার কী ডেটা ফেরত পাঠানো উচিত তার পরিপ্রেক্ষিতে সর্বদা ক্লায়েন্টকে প্রতিকূল হিসাবে বিবেচনা করুন। ক্লায়েন্টকে তার "টার্ন-স্টেট" যা কিছু প্রেরণ করা উচিত, সার্ভার এটি বৈধ করে তোলে এবং তারপরে যদি সবকিছু চেক আউট হয় তবে এটি সমস্ত সংযুক্ত ক্লায়েন্টকে নতুন "গেম-স্টেট" প্রেরণ করে।

-

এসওএপি ওয়েব পরিষেবাদিগুলি শুরু করার জন্য সম্ভবত সেরা জায়গা ( লিঙ্ক ), এগুলি শুরু করা সহজ এবং বেশিরভাগ ওয়েব ফ্রেমওয়ার্কগুলি তাদের প্রকাশের জন্য একটি পদ্ধতি সরবরাহ করে। আপনি RESTful পরিষেবাদিগুলি সন্ধান করতেও পারেন, তবে তারা সাধারণত সিরিয়াল প্রক্রিয়াটির কিছুটা বেশি গ্রাহকের উপরে ছেড়ে দেয়।

অ্যান্ড্রয়েডে এসওএপি ওয়েব পরিষেবা গ্রহণের জন্য, আমি এখানে দেখতে চাই ।


হাই এবং আপনার প্রতিক্রিয়া জন্য ধন্যবাদ। তবে আমি এখনও বুঝতে পারি না কীভাবে আমার ওয়েবসার্চিতে ডেটা পাঠাতে হয়? কীভাবে ব্যবহারকারীর ইনপুটকে সিরিয়ালাইজ করা যায় (এখানে আমার 8 * 8 বোর্ডে একটি পদক্ষেপ যেমন: প্লেয়ার 1 [0,0] থেকে [1,1] তে যান) এবং তারপরে গেমের অবস্থা কীভাবে সিরিয়ালাইজ করবেন?
সাইরিল

আমি যুক্ত দুটি লিঙ্ক চেক করুন। তাদের আপনাকে এসওএপি ওয়েব পরিষেবাদি দিয়ে শুরু করা উচিত, এটি সম্ভবত সবচেয়ে সহজ উপায়।
নট

অ্যান্ড্রয়েড এবং আইওএসের জন্য আপনার দীর্ঘ ভোটদানের প্রয়োজন হবে না। অ্যাপল পুশ বিজ্ঞপ্তি বা গুগল ক্লাউড মেসেজিং আপনাকে সার্ভার থেকে আপনার ডিভাইসে ডেটা ঠেকাতে দেবে।
ম্যাট

2

আমি মনে করি এসওএপি বা এমনকি এইচটিটিপি ব্যবহার করা ওভারকিল। ভ্যানিলা টিসিপি-সংযোগের উপর কেবল নিজের প্রোটোকলটি সংজ্ঞায়িত করুন। উদাহরণস্বরূপ, পাঠানো প্রতিটি পাঠ্য রেখাটি কমান্ড হিসাবে ব্যাখ্যা করুন। ক্লায়েন্ট এবং সার্ভারকে কী আদেশ / প্রতিক্রিয়া প্রেরণে মঞ্জুরি দেওয়া হয়েছে তা নির্ধারণ করুন।

FICS সেভাবে কাজ করে এবং এটি বহু বছর ধরে কয়েক হাজার দাবা খেলোয়াড়কে পরিবেশন করে আসছে। আইআরসি সেভাবেও কাজ করে (দেখুন আরএফসি 1459)।


এইচটিটিপি বিভিন্ন সুবিধা দেয়, যদিও: এটি প্রক্সি ব্যবহার করতে পারে, এটি প্রায় কখনও ফায়ারওয়ালড হয় না, এটি এইচটিটিপিএস ব্যবহার করে স্বচ্ছ এনক্রিপশনের কাছে প্রস্তাব দেয়, বিভিন্ন প্রমাণীকরণের পদ্ধতি রয়েছে ...
সাম হোসেভার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.