একটি ইভেন্ট ওয়েব-ভিত্তিক গেমের জন্য ইঞ্জিনটি কি কোনও ওয়েব-পরিষেবা হিসাবে শুরু হওয়া উচিত?


10

আমি সম্প্রতি একটি কার্ড গেমের জন্য ইঞ্জিন লেখা শুরু করার সিদ্ধান্ত নিয়েছি। আমি কোনও বড় "কার্ড" খেলোয়াড় নই, তবে একটি বন্ধু আমাকে গেমের সাথে পরিচয় করিয়ে দিয়েছে (এটি গেমটি ডেনিশের স্পিন) এবং আমি প্রেমে পড়ে যাই।

আমি 3 টি বিভাগে গেমটি বিকাশ করতে চাই:

  1. বেসিক ইঞ্জিন, কার্ড / ডেক / গেমস্টেট ইত্যাদি পরিচালনা করে
  2. একটি ব্যবহারকারী ইন্টারফেস (একটি মোবাইল / ডেস্কটপ ওয়েব অ্যাপ্লিকেশন আকারে।)
  3. বিভিন্ন কৌশল / অসুবিধা ইত্যাদি সহ একটি কৃত্রিম বুদ্ধিমত্তা

এগুলি আমার মতে খুব স্বতন্ত্র প্রকল্প ... এবং দীর্ঘমেয়াদে তারা কীভাবে একসাথে ফিট হবে তা দেখার জন্য আমি লড়াই করছি। প্রথমদিকে, আমি ইঞ্জিনটি ব্যবহার করে গেমটি "প্লে" করতে সক্ষম হতে চাই না। ইঞ্জিনটি প্রাথমিকভাবে এর ইউনিট পরীক্ষাগুলি দ্বারা পরীক্ষা করা হবে। ক্লায়েন্ট উপস্থিত না হওয়া পর্যন্ত প্লে টেস্টিং শুরু হবে না। সুতরাং এখানে একটি ক্লায়েন্ট-সার্ভার সম্পর্ক কিছু আছে।

ইঞ্জিন ধাঁধা একটি খুব বড় টুকরা। আমি জানতে চাই: হ'ল আপনি কীভাবে এই ইঞ্জিনটির জন্য "পাবলিক এপিআই" বিকাশ করবেন?

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

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

আপনি কোন পদ্ধতি গ্রহণ করবেন (ওয়েব সার্ভিস হিসাবে বিকাশ, বা একটি স্ট্যান্ডেলোন অ্যাপ হিসাবে বিকাশ এবং পরে এটি ব্রিজ), এবং কেন?

ধন্যবাদ, রবি

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

আমি এখানে একটি অ্যাকাউন্টও নেই, তাই কিভাবে :)


আপনার ইঞ্জিনটি কতগুলি সমবর্তী গেমগুলি পরিচালনা করতে হবে?
দরিয়েন

এটি এই সময়ে অপরিবর্তিত, কিন্তু ... একটি নিখুঁত বিশ্বে: প্রচুর এবং প্রচুর। স্পষ্টতই সমবর্তী গেমস চলবে। যদি প্রকল্পটি বন্ধ হয়ে যায় তবে ধারণাটি হ'ল এটি একটি মাল্টিপ্লেয়ার অ্যাপ্লিকেশন হতে চলেছে যেখানে আপনি নিজেরাই এটি খেলতে পারেন (সলিটায়ার স্টাইল), বা একটি ঘরে যোগদান করতে এবং মানুষ / এআইএস (পোগোর মতোই) এর সাথে খেলা খেলতে পারবেন)

উত্তর:


5

ওয়েব পরিষেবা রুট সম্ভবত সেরা এবং সবচেয়ে স্কেলযোগ্য ble

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

আপনার বিকাশ বা হোস্টিংয়ের পরিবেশগুলি কেমন দেখাচ্ছে তা আমি নিশ্চিত নই তবে আমি এটির ইঞ্জিনিয়ার করব না। পিএইচপি ফাইলগুলির একটি সহজ সেট যা জেএসওনকে ফিরিয়ে দেয় আপনার প্রয়োজন হতে পারে। আপনি যে গেমটি তৈরি করছেন তার সাথে আমি পরিচিত নই, সুতরাং এটি কতটা জটিল হবে তা আমি নিশ্চিত নই।

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


আমি গেম বিকাশে নতুন, এবং আমি একমাত্র বিকাশকারী হব, তবে চিন্তা করবেন না: কোডটি আমাকে খেলার চেয়ে বেশি আগ্রহী করে তুলবে;) আমি রুবীতে লেখা একটি হালকা এমভিসি ফ্রেমওয়ার্ক প্যাড্রিনো ব্যবহার করার কথা ভাবছিলাম। কী দুর্দান্ত এটির মাউন্টযোগ্য অ্যাপস রয়েছে। আমি তাদের সাথে খুব বেশি পরিচিত নই, তবে আমি মনে করি যে একই ইঞ্জিনগুলিতে আমি পাশাপাশি ইঞ্জিন এবং ইউআই অ্যাপ্লিকেশনগুলি "মাউন্ট" করতে পারি, তবুও তারা এখনও তাদের নিজস্ব ডেটাবেস এবং স্থিতিশীল সংস্থার সাথে পৃথক অ্যাপস রয়েছে pot ।
রবি

এটি আমার কাছে ভাল পরিকল্পনার মতো শোনাচ্ছে। কোডটি যদি আপনাকে আগ্রহী রাখে তবে আমি বলি এটির জন্য যান।
নেট

1

একটি ভিউ হ'ল এমন একটি সত্তা যা ঘটনাক্রমে পরিবর্তিত হলে কোনও মডেলকে অবহিত করার জন্য নিবন্ধভুক্ত হয়।

যদি আপনার মডেল কোনও ওয়েব সার্ভারে বাস করে, আপনার সমস্যা আছে কারণ এইচটিটিপি কোনও সার্ভারকে যোগাযোগ শুরু করার জন্য একটি সুস্পষ্ট উপায় প্রয়োগ করে না। আপনি এটি হ্যান্ডেল করার জন্য ওয়েবসকেট ব্যবহার করতে পারেন তবে আপনি আপনার "বিশ্রামের" কিছুটা ত্যাগ করবেন ... আমি মনে করি যে একটি ভাল সমাধান হতে পারে আপনার ওয়েব ইউআরএলকে একটি মডেল সনাক্ত করতে এবং HTTP সার্ভারটি আপনার দৃষ্টিভঙ্গিটি অবহিত করার জন্য চাপ দিন প্রয়োজন হলে.

বলুন যে আপনার মধ্যে একটি চলমান খেলা রয়েছে

/games/cd073ac6-c37e-431f-9a5e-7b61bfacf9be/

আপনি ইউআরএল ব্যবহার করতে পারেন

/games/cd073ac6-c37e-431f-9a5e-7b61bfacf9be/playCard?id=3&place=stack 

মডেলটি পরিবর্তন করতে এবং

/games/cd073ac6-c37e-431f-9a5e-7b61bfacf9be/notify 

বিজ্ঞপ্তি অপেক্ষা করার জন্য।

মডেলটির মাধ্যমে সংবাদ পেতে - কিছু সময়ের জন্য - বিজ্ঞপ্তি অপেক্ষা করবে: যদি কিছু সুখে থাকে তবে একটি বার্তা প্রেরণ করা হবে (কোন ডেটা পরিবর্তন করা হয়েছে বা কী ধরণের ইভেন্ট সুখী হয় বা যাই হোক না কেন)।

ক্লায়েন্টটি / গেমস / cd073ac6-c37e-431f-9a5e-7b61bfacf9be / বিজ্ঞপ্তিতে একটি লম্বা এজ্যাক্স অনুরোধ করতে পারে এবং একটি বিজ্ঞপ্তি কলব্যাক নিবন্ধন করতে পারে যা উভয়ই দর্শন আপডেট করে পরবর্তী নোটিফিক অনুরোধটি পুনরায় পোস্ট করবে ost

যদি গেমস / cd073ac6-c37e-431f-9a5e-7b61bfacf9be / ক্লায়েন্টের সময়সীমা অবহিত করা হয় তবে একটি নতুন অনুরোধ করা হয়, যদি এটি সার্ভারে টাইমআউট করে, বরাদ্দকৃত সম্পদগুলি মুক্ত হয়।

আপনি আপনার সার্ভারে একটি বেশ জেনেরিক নোটিফিকেশন সিস্টেম এবং আপনার ক্লায়েন্টগুলিতে একটি বিজ্ঞপ্তি গ্রন্থাগার তৈরি করতে পারেন যাতে আপনি স্বচ্ছ নোটিফিকেশন স্তরটির উপর একটি সামঞ্জস্যপূর্ণ এমভিসি তৈরি করতে পারেন।

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

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


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

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