Начинаещи Ръководство за създателите на MMORPG игри

Предговор от преводача

Напоследък много широко разпространени мултиплеър онлайн игри (MMOG - масивна мултиплейър онлайн игра) игра в света, които са предназначени за огромен-голям брой играчи. Разбира се, всеки чува само за успешни проекти, които събират значителни финансови приходи. Той привлича повечето начинаещи в igrostroy в този жанр. Въпреки това, много малко хора всъщност си представите какви проблеми и предизвикателства са да се създаде този вид игри, какви знания е необходимо да има и т.н.







В резултат на това - ръка точно зад създаването на такъв проект, за начинаещи бързо да разбере как всичко е сложен и объркващ. И хвърлят всички разочаровани.

Целта на тази статия - да даде първоначална представа готови да направят представянето му в MMOG стил, за това, което е необходимо знание да има това, което трябва да се знае как и какво да се подготви. Не е тайна, че ако човек се опитва нещо веднъж и резултатът е отрицателен - след това отново да го върнете към него, е малко вероятно да бъде. Затова бих искал да предупредя отново готови да се потопите в света на създаване на игри и да им предложим повече време, за да обмисля нещата и се претегля. Може би трябва да се започне с по-прости игри, за да се получи само минимално изискуемият опит?

В статията се описва създаването на MMORPG (ролева игра), но аз мисля, че е описано, че се отнася за всички видове масова мултиплеър онлайн игри.

Необходими са знания:
    1. Познаване на поне един език за програмиране. Кой сред разработчиците на най-популярния език C ++, заради своите предимства за ефикасността и бързината. Visual Basic, Java или C # може да се използва и в това си качество.
    2. Необходимо е да се запознае с графичен библиотеката. А популярен избор е SDL, OpenGL или DirectX / Direct3D.
    3. Взема решение за библиотеката мрежа. Можете да избирате WinSock, SDL_net или DirectPlay.
    4. Имате опит в игра за програмиране. Например, за да имате представа за това, което е: опашката за събитие, многонишково, развитието на потребителски интерфейс (GUI) и т.н.
Тя е силно препоръчително е да знаете:
    1. клиент-сървър комуникация архитектурата и строителството на такива системи.
    2. Създаване на междуплатформени приложения. Доста вероятно искате да създадете вашата игра, и най-вече на клиента, така че да може да работи с различни операционни системи. За тази функция, аз препоръчваме да използвате SDL, OpenGL и SDL_net.
    3. Разработване на Web (Интернет). Това е необходимо, ако искате да се даде възможност да видите статистиката на играчите, информация на сървъра, или всяка друга информация на интернет страницата на заинтересованите лица.
    4. Защита и управление. Вие не искате някой хакнат сървъра си?
    5. Работа в екип, управление на екип. Трябва да сте екип, който ще бъде в състояние да управлява успешно.






Аз забелязах, че много хора пишат във форумите публикации за отбори от търсенето за развитие MMOG. Много от тях започва с думите: "Ние - обещаващ компания / игра студиото и се нуждаем от 3 художници, 2 програмисти, един музикант, и т.н. за създаване на иновативни, никога досега съществуваше MMOG, където ще имате пълна свобода на действие и възможност за промяна на света, и т.н. Ние ще плати за работата си върху развитието на края, когато правим това по-малко пари. " За съжаление, с модерна технология и ограничена честотна лента (мрежа) Вие не можете да създадете динамичен свят. Опитвайки се да се създаде нещо невъзможно води до провал. Тя ще бъде правилно да се започне с една малка, напълно функциониращ, мащабируема архитектура на системата.

Основната структура на програмата:

информация за магазина за герой от задачата на пръв поглед изглежда доста просто, но не е така. Например, има два начина да направите това: да използват базата данни или използване на файловете. Освен това, таблица са предимствата и недостатъците на всеки вариант:

предимства:
  • Човек може лесно да добавяте или променяте областта.
  • Промяна статистика за играча (не игра) е много по-лесно
  • Можете да получите различни статистически данни бързо и ефективно използване на SQL заявки
  • Не е необходимо да се създаде една операция за I / O, за да файл, база данни, всичко това ще направя за вас
  • Лесно е да се актуализира и да се възстанови

    недостатъци:
  • Лесно е да се правят грешки. Например, за заявки забравен ", където" изявление. Това може да има катастрофални последици, особено ако имате само старите (или изобщо) архиви
  • Работа с базата данни може да бъде по-бавно, отколкото да работи с файл играч директно. Може да загубите няколко милисекунди, когато получите данните, особено ако голям брой играчи в същото време, влизане / излизане от играта
  • Вие трябва да напишете допълнителен код, за да конвертирате вашите данни до / от базата данни
  • Изисква опит с бази данни и SQL езикови запитвания. Също така са необходими библиотеки за организацията на взаимодействие между приложението и базата
  • Ако по някаква причина са повредени файлове на бази данни, вие сте изложени на късмет. Вие можете да изгубите всички играчи (особено ако няма прясно архивиране)

    предимства:
  • Много бърз достъп (четене / запис)
  • лесно прилагане
  • В момента няма допълнителни библиотеки
  • Не съществува връзка със сървъра на база данни. Поради това, че не е нужно да се притеснявате за получаване на актуализации и кръпки за базата данни

    недостатъци:
  • Тя може да бъде доста предизвикателна за добавяне на нови полета, ако преди това не мисля за структурата на формат и файл
  • Невъзможно е да се направи заявка за голям брой играчи (този проблем може да бъде решен с помощта на програма, която всяка вечер добавя важни данни на сървъра за база данни)
  • Иска ми се да напиша по поръчка код, за да се даде възможност актуализиране / проверка на състоянието на играчите
  • Малко по-трудно да се извършва операции обновяване и възстановяване

    Сега, след като сте решили как да съхранява информация за героите, трябва да решите какъв тип мрежов протокол, който ще използвате за клиент-сървър комуникация: TCP или UDP? TCP е известен като по-бавен, но по-точно, тя се нуждае от повече трафик. На практика, не забелязах никакви проблеми при използването на TCP. Ако сте предоставили достатъчно пропускателна способност на мрежата, TCP - това е добър избор, поне като за начало. UDP може да бъде много неприятно, особено за начинаещи. Не забравяйте, че първоначалните тестове на двигателя и играта ще бъдат направени в локалната ви мрежа, така че всички пакети ще пристигнат на местоназначението си в същия ред, както това отиде. Но това не може да бъде гарантирана, когато използвате интернет, т.е. в реална среда. По това време, тъй като пристигат обичайните пакети в определен ред, някои от тях може да се загуби, а това е постоянен проблем за интернет. Разбира се, можете да развиете своя протокол, така че клиент / сървър може да се възстановят загубени пакети. Но това е труден процес, който не се препоръчва за начинаещи.