একটি নতুন গেম ডেভেলপ করার সময় সবচেয়ে বড় সমস্যাগুলি কী বিবেচনা করা উচিত?


19

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

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

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

সম্প্রসারিত

উদাহরণস্বরূপ, যুদ্ধ ইঞ্জিন যা আমাকে এত বেশি ইস্যু দিচ্ছে তা একটি সহজ আক্রমণ দক্ষতা নেয় এবং তারপরে -50% এবং + 50% এর মধ্যে এলোমেলো রোল তৈরি করে এবং তারপরে সেই শতাংশের বিরুদ্ধে আসল আক্রমণ দক্ষতাটিকে বহুগুণে বৃদ্ধি করে। প্রতিরক্ষা দিয়ে একই জিনিস করা হয় এবং তারপরে শত্রুর স্বাস্থ্যের বিরুদ্ধে কোনও ক্ষতি হয়েছে কিনা তা নির্ধারণ করার জন্য আমি সেগুলি জাল করি। আমার মনে হয় যখন আমি নিজেকে জিজ্ঞাসা করতে শুরু করি যে এটি করা সঠিক উপায় কিনা, বা এমনকি যদি এখানে একটি 'সঠিক' উপায় থাকে তখনও আমার উপলব্ধি করা উচিত over এর সাথে একটি বড় দোষ আমি খুঁজে পেলাম একই স্তরের চারটি অক্ষর হ'ল আক্রমণটি -50% এবং প্রতিরক্ষা + 50% এমন একাধিক 'রোলস' থাকতে পারে তাই আমি কিছু অতি দীর্ঘ যুদ্ধের ধারাবাহিকতায় শেষ করি যেখানে কেউ কিছু করে না। ব্যর্থ

হতে পারে আমার পোস্টে সহজ গেম যুক্তির বর্ণনা দেওয়ার জন্য প্রস্তাবিত লিঙ্কগুলি জিজ্ঞাসা করা উচিত ছিল।

শেষ এক্সটেনশন

সবাইকে আগাম ধন্যবাদ!


1
এটি কিছুটা সম্পর্কিত এবং আকর্ষণীয় পড়া যা আমি সহায়ক পেয়েছি: Makegames.tumblr.com/post/1136623767/finishing-a-game
zfedoran

উত্তর:


22

অনেকগুলি বৈশিষ্ট্য যুক্ত করা হচ্ছে। গেমের মূলটিতে ফোকাস করুন, এটি তৈরি করুন, তারপরে যদি সবকিছু ঠিকঠাক হয় তবে বৈশিষ্ট্যগুলি যুক্ত করুন। লোকেরা শীতল জিনিস যুক্ত করার বিষয়ে খুব বেশি মনোনিবেশ করে এবং কখনই কিছু করে না।


4
এটি আমার এফবি গেমগুলির প্রায় একটিকে হত্যা করেছে। এটি বৈশিষ্ট্যযুক্ত, তবে পুরো জিনিসটি সামগ্রিকভাবে অর্ধ-অ্যাসেসড অনুভব করে।
টেসেরেক্স

যদি আমি সঠিকভাবে স্মরণ করি তবে এই ঘটনাকে "বৈশিষ্ট্য রঙ্গন" বলা হয়। সত্যিই একটি বিপজ্জনক ক্ষতি
এস তারেক Çতীন

14

কোনও গেমটির প্রোটোটাইপ কীভাবে করা যায় এটি সম্পর্কে এটি একটি দুর্দান্ত নিবন্ধ। আপনার প্রশ্ন থেকে মনে হচ্ছে আপনি প্রোটোটাইপ কী হওয়ার কথা ধারণাটি হারিয়েছেন।

প্রোটোটাইপিং: আপনি (সম্ভবত) এটি ভুল করছেন

সংক্ষিপ্ত প্রচার:

ত্রুটি # 4: একটি সিস্টেম নয়, একটি গেম নয়,
আপনি যখন প্রোটোটাইপ তৈরি করছেন, যদি আপনি কখনও নিজেকে এমন কিছু নিয়ে কাজ করতে দেখেন যা সরাসরি আপনার সামনে এগিয়ে না চলে, তখনই থামুন। প্রোগ্রামার হিসাবে, আমাদের কোডটি সাধারণ করার চেষ্টা করার প্রবণতা রয়েছে এবং এটিকে মার্জিত করে তুলুন এবং প্রতিটি পরিস্থিতি পরিচালনা করতে সক্ষম হবেন। আমরা দেখতে পাই যে চুলকানি খুব শক্তভাবে স্ক্র্যাচ করে না, তবে কীভাবে তা শিখতে হবে। এটি কোড সম্পর্কে নয়, শেষ পর্যন্ত আপনি যে গেমটি পাঠাচ্ছেন এটি সম্পর্কে এটি বুঝতে আমার অনেক বছর লেগেছিল।

একটি মার্জিত গেম উপাদান উপাদান লিখবেন না, সম্পাদককে পুরোপুরি এড়িয়ে যান এবং কোডটিতে রাজ্যটিকে শক্ত করুন, ডেটা-চালিত, স্ব-পার্সিং, এক্সএমএল উন্মাদনা এড়ান এবং জঘন্য জিনিসটি কোড করুন।

সম্পাদনা:

প্রোটোটাইপ এবং ট্রেসার কোডের মধ্যে পার্থক্য পরিষ্কার করার জন্য আমি এটি যুক্ত করছি।

সর্বদা মনে রাখবেন: একটি প্রোটোটাইপ ফেলে দেওয়ার জন্য ডিজাইন করা হয়েছে! ট্রেসার কোড নয়।

প্রোটোটাইপ পিটফল

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

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

ট্রেগার কোড ডিজাইন সম্পর্কে আরও তথ্য, প্র্যাকমেটিক প্রোগ্রামার থেকে

ট্রেসার বুলেট এবং প্রোটোটাইপস


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

আপনি যে ভুলটি উদ্ধৃত করেছেন তা এখন বেশ কিছুক্ষণ ধরে আমাকে কটাক্ষ করে চলেছে।
জোকুন

4

সমস্যাগুলি: আপনার যুক্তিটি আপনার ডেটা থেকে আলাদা করা হচ্ছে না। আপনার ডেটা পছন্দসই ফলাফল উত্পাদন করে তা পরীক্ষা করে না।

জো পোস্টে আপনার মন্তব্য থেকে:

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

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

তবে, ভারসাম্য ভেরিয়েবলগুলি মাঝে মাঝে পরস্পরের উপর নির্ভরশীল হয়, তাই একটি পরিস্থিতিতে একটি ভেরিয়েবলকে আরও ভাল একটি দৃশ্যে পরিবর্তন করা অন্য পরিস্থিতিতে দৃ vast় (নেতিবাচক) প্রভাব ফেলতে পারে।

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

TestResult TestPlayerKillsMonsterDuringAttack(PlayerStats, MonsterStats, seed)
{
   Player player(PlayerStats);
   Monster monster(MonsterStats);

EncounterEngine.SeedRNG(seed);
while(1) { result = EncounterEngine.Attack(player, monster); if (result == PLAYER_DEAD) return TEST_FAIL; if (result == MONSTER_DEAD) return TEST_PASS; // result == MONSTER_DAMAGED, PLAYER_DAMAGED is expected. } }

যেমন। আপনি যদি এটি প্লেয়ারস্ট্যাটস.ভেলভেল == 5 এবং মনস্টারস্ট্যাটস.ভেলভ == 3 দিয়ে কল করেন তবে আপনি আশা করতে পারেন খেলোয়াড় সর্বদা এই দানবকে শেষ পর্যন্ত পরাজিত করে।


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

আপনার যুক্তিটি আপনার ডেটা থেকে আলাদা করা হচ্ছে না। এটি একটি দুর্দান্ত পয়েন্ট, যা প্রায়শই সর্বদা রাস্তায় বা আপডেট করার সময় সমস্যা সৃষ্টি করে!
স্পুকস

2

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

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


1

গেমস লেখার সময় সবচেয়ে বড় ক্ষতি হ'ল আপনি যে কোডটি লিখেছেন সে সম্পর্কে ঠিক আপনার লেখার পরিবর্তে সঠিক ডিজাইনের ধরণগুলি ব্যবহার করছেন কিনা তা নিয়ে চিন্তা করা।


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

ইঞ্জিনটি পুনরায় লেখেন কেন? আপনি লুয়ার মতো স্ক্রিপ্টিং ভাষায় গেমের নির্দিষ্ট কোডটি প্রয়োগ করতে পারেন। পরিবর্তনশীলগুলি পরিবর্তন করুন বা কীভাবে গণিত গণনা করা হয় এবং কখনই জিনিসগুলি পরীক্ষা করতে পুনরায় সংকলনের প্রয়োজন হয় না। gamedev.net/references/articles/article1932.asp
ডেভিড ইয়ং

1

সময় পরিচালন এবং স্ব-অনুপ্রেরণা সম্পর্কে স্টিভ পাভলিনার নিবন্ধগুলি আমি সুপারিশ করব : http://stevepavlina.narod.ru/

তিনিও প্রোগ্রামার। তার লাইফস্টাইল পরীক্ষাগুলি কিছু মূলধারার মিডিয়া আগ্রহ তৈরি করেছে।

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