Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документация на диплом Долготер.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
864.55 Кб
Скачать

1.3.3 MonoDevelop

MonoDevelop — відкрите інтегроване середовище розробки для платформ Linux, Mac OS X та Microsoft Windows, передусім націлене на розробку програм, які використовують і Mono, і Microsoft .NET framework. На даний момент підтримуються мови C#, Java, Boo, Visual Basic.NET, CIL, Python, Vala, C та C++. Також MonoDevelop підтримує такі технології, як Gtk#, ASP.NET MVC, Silverlight, MonoMac и MonoTouch.

MonoDevelop включає можливості подібні до NetBeans та Microsoft Visual Studio, такі як автоматичне доповнення, інтеграція контролю коду, графічний користувацький інтерфейс і веб-дизайнер. В MonoDevelop інтегрований Gtk# GUI дизайнер під назвою Stetic

MonoDevelop також може використовуватися на платформах Windows та Mac OS X. Щоправда, до версії 2.2 жодна з даних платформ не мала офіційної підтримки. Тим не менше, жодна з них не підтримується настільки добре, як Linux-версія. MonoDevelop постачається разом з інсталятором Mono для Mac OS X, але ця версія не включає у себедизайнер графічного інтерфейсу користувача Stetic GUI designer через проблемиDrag&Drop у нативній для OS X версії GTK. MonoDevelop на FreeBSD найвірогідніше підтримується лише зусиллями FreeBSD спільноти.

2 Розробка технічного та робочого проекту

2.1 Аналіз серидовища програмування Unity

Unity — це багатоплатформний інструмент для розробки дво- та тривімирних застосунків та ігр, який працює на операційних системах Windows і OS X. Створені за допомогою Unity застосунки працюють під системами Windows, OS X, Android, Apple iOS, Linux, а також на гральних консолях Wii, PlayStation 3 і XBox 360.

Є можливість створювати інтернет-застосунки за допомогою спеціального підключаємого модуля до браузера Unity, а також за допомогою експерементальної реалізації в межах модуля Adobe Flash Player. Застосунки, створені за допомогою Unity, підтримують DirectX та OpenGL.

Технічні характеристики

  • Сценарії на C#, JavaScript та Boo;

  • Ігровий рушій повністю пов'язаний із середовищем розробки. Це дозволяє випробовувати гру прямо в редакторі;

  • Робота з ресурсами можлива через звичайний Drag&Drop.

  • Система успадкування об'єктів;

  • Підтримка імпортування великої кількості форматів файлів;

  • Вбудований генератор ландшафтів;

  • Вбудована підтримка мережі;

  • Існує рішення для спільної розробки — Asset Server. Також можна використовувати зручний для користувача спосіб контролю версій. Наприклад, SVN або Source Gear;

Функціональні можливості:

Рендеринг

Графічний рушій використовує DirectX (Windows), OpenGL (Mac, Windows, Linux), OpenGL ES (Android, iOS), та спеціальне власницьке API для Wii. Також підтримуються bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), динамічні тіні з використанням shadow maps, render-to-texture та повноекранні ефекти post-processing.

В Unity підтримуються файли з 3ds Max, Maya, Softimage, Blender, modo, ZBrush, Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks та Allegorithmic Substance. В ігровий проект Unity можна імпортувати об'єкти цих програм та робити налаштовування за допомогою графічного інтерфейсу.

Для написання шейдерів використовується ShaderLab, який підтримує шейдерні програми написані на GLSL або Cg. Шейдер може включати декілька варіантів реалізації, що дозволяє Unity визначати найкращий варіант для конкретної відеокарти. Unity також має вбудовану підтримку фізичного рушія Nvidia (колишнього Ageia) PhysX, (починаючи з Unity 3.0) підтримка в системі реального часу симуляції одежі на довільній та прив'язаній полігональній сітці, системи ray casts та шарів зіткнення.

Скрипти

Скриптова система ігрового рушія зроблена на Mono - вільний відкритий проект з реалізації .NET Framework. Програмісти можуть використовувати UnityScript (власна скриптова мова, подібна до JavaScript та ECMAScript), C# або Boo (мова програмування, подібна до Python) Починаючи з версії 3.0, до Unity входить перероблена версія MonoDevelop для зневадження скриптів.

Аsset Tracking

В Unity включено систему контролю версій Unity Asset Server для ігрових об'єктів та скриптів. Система використовує PostgreSQL, роботу зі звуком, побудовану на основі бібліотеки FMOD (з можливістю програвати Ogg Vorbis аудіофайли), відеопрогравач із кодеком Theora, рушій для побудови ландшафтів рослинності, вбудовану систему карт освітлення (Beast), мережу для мультиплеєру (RakNet) та вбудовані навігаційні меші для пасфайндингу.

Unity Asset Server

Інструментарій для спільної розробки на базі Unity. Сутність розробки ігор - це робота в команді. Сервер ресурсів Unity це доповнення, яке додає контроль версій у функціонал Unity.

Система контролю версій

Сервер ресурсів Unity це повнофункціональне рішення для контролю версій для всіх ігрових скриптів і ресурсів. Як і все інше в Unity, він простий у використанні.

Оптимізація для великих проектів

Багато-гігабайтні проекти з тисячами багато-мегабайтних файлів управляються з витонченістю. Налаштування імпорту і всі інші метадані також зберігаються точно також разом з історією змін їх версій. Спостерігати за зміною ресурсів\версій можна прямо всередині Редактора Unity. Якщо файли піддаються змінам, їх статус негайно оновлюється. Перейменування і переміщення ресурсів не створює будь-яких перешкод для безперервного робочого процесу.

Сервер з відкритим вихідним кодом

Сервер ресурсів Unity управляється базою даних PostgreSQL. PostgreSQL відомий своєю надійністю, цілісністю даних і легкістю адміністрування і відмінно справляється з робочим навантаженням гігантських проектів.

Mac OS X або Linux

Сервер ресурсів доступний як для Mac OS X Installer, так і для Linux RPMs . Підтримка декількох платформ дає вам гнучкість в тому, як впровадити Сервер ресурсів Unity в вашу існуючу IT-інфраструктуру.

Терміни:

Пайплайн - це ланцюжок процесів перетворення сценарію (вихідних даних) в 2D (двомірну) або 3D (стереоскопічну) картинку або в послідовність картинок (відео).

Рендеринг «візуалізація»- термін в комп'ютерній графіці, що позначає процес отримання зображення по моделі за допомогою комп'ютерної програми.

Позитивні сторони Unity:

Своїм IDE - він поєднує редактор сцен (він же редактор всього нижчеперерахованого) , редактор ігрових об'єктів , і навіть простенький редактор скриптів. Крім того , в комплекті йде генератор дерев а- ля SpeedTree ( непоганий ) і террейнов (стандартний , зручний) ;

Можливостями для скриптинга - на відміну від UDK , в якому писати можна тільки на вбудованому самописна мовою , в Юніті доступні аж три мови: JavaScript , C # , і діалект пітона під назвою Boo . Мною особисто не перевірялося , але в російській ком'юніті проскакували фрази про те , що швидкість виконання скриптів в UDK в рази менше (воно й зрозуміло - адже в Юніті скрипти компілюються в нативний код ) .

Кросплатформеність - як уже згадувалося вище , підтримуються Windows , MacOS , Wii , iPhone , iPod , iPad , Android , PS3 і XBox 360 . Ну і веб- плагін , звичайно , забувати не варто. Не всі з них вільно росповсюджуються на безкоштовній версії ліцензії (взагалі , доступні білди тільки під Windows , Mac і веб ) , але це цілком зрозуміло під Windows і Mac все компілюється взагалі без жодних змін в коді , під веб буду змушений , звичайно , порізати ресурси - качати 400 мегабайт щоб відкрити один рівень в браузері не дуже-то зручно. Роботу веб -версії опишу нижче ;

Цілком сучасний рівень графіки - того ж UDK за кількістю реалізованих фіч Юніті , звичайно ж , програє - все-таки UnrealEngine можна назвати одним з флагманів по цій частині , і переплюнути його складно . Але в Юніті є deferred освітлення , вбудований редактор шейдеров, стандартний набір постпроцессінгових ефектів ( повний список , можна і свої писати) ,

Фізика - є все , що повинен вміти фізрушій . Зробити свій Half -Life 2 -Легко !

Продуктивність і масштабованість - без коливань ставимо

« відмінно». Тому що з більшою частиною рутини в цьому відношенні движок справляється сам , і справляється чудово ;

Запуск будь-якої програми в веб- плагіні - ми про це вже говорили але згадаємо ще раз .

Невисока ціна за ліцензію - всього 1500 $. І безкоштовна версія , без деяких можливостей ;

Негативні сторони Unity:

Він закритий. Тобто вихідних кодів вам не дадуть навіть за ліцензією. З UDK, якщо я все правильно зрозумів, та ж картина – вихідні коди ліцензуються окремо, за більші гроші. Втім, в Юніті скриптами можна абсолютно те ​​ж саме, що ми робили б з вихідними кодами – зауважте, практично все ... Але все-таки вихідні коди всяко краще, тому це мінус - принаймні для тих, хто хотів би прикрутити сторонню фізику або той же SpeedTree;

На цьому негативні сторони Unity закінчуються.

У випадку з Unity ж ми маємо вже все готове-пайплайн, готовий рендерер, готову фіз., Аудіо і мережеву бібліотеки, кодіть можна на знайомому мовою - фактично, з боку кодинга нам потрібно тільки знати основи, припустимо, яваскрипт, і недельку покопатися в офіційній довідці , щоб склепати FPS. Мінус одна перепона на шляху до релізу.

Доповню скрінсейверами своєї программи:

Головне вікно IDE

(Рис.1)

Компіляція програми можлива прямо у режимі розробника

(Рис 2)

Вбудований інспектор впливає на предмет змінних і дозволяє змінювати змінні в скриптах на льоту, не дивлячись у код. Причому не тільки int'и, але й матеріали, текстури, моделі ... Дуже економить час. У документації до API вказується хорошим тоном не писати, припустимо, шлях до текстурі безпосередньо в скрипті, а просто робити властивістю класу пусте властивість відповідно типу, і вибирати в інспекторові потрібне:

(Рис 3)

Інспектори префабов (праворуч) і ентітей (ліворуч). Грубо кажучи, справа - заготовки об'єктів, ліворуч - ті об'єкти, що є в поточній сцені. Зручно, що під час прогону рівня в редакторі (кнопка «play»), можна поставити прогін на паузу і подивитися поточний стан об'єктів - набагато рідше доводиться читати логи або виводити на HUD відпрацьований рядок, щоб подивитися поведінку однієї маленької змінної:

(Рис 4)