Створення своєї RPG на движку Source. Ігрові движки: Valve GoldSrc і Source Як створювати ігри використовуючи движок source

Головна / Додатковий функціонал

Frequently Asked Questions

  • Q. I wish to distribute до Source Engine Mod через Steam. Чи повинен I fill out the paperwork?

    A. Yes, please complete the digital paperwork для того, щоб отримати signed up as Steamworks developers. Всі відомості є потрібними, включаючи банк і tax information і app fee even if you intend to distribute your mod for free.
  • Q. Чи є licensing fee for using the Source Engine?

    A.Там не подобається для використання Source Engine для свого безкоштовного mod, але вони можуть бути licensing fees для включення інструментів, якщо ви берете гроші для вашої гри.
  • Q. Can I sell my Source Engine game on Steam?

    A. Yes, але там є кілька вимог:
    • Ви повинні зайняти додаткову додаткову агресію для розповсюдження плати Source Engine product on Steam.
    • Якщо ви використовуєте інструменти RAD, що включаються в Source SDK, ви будете потрібні, щоб contact rad for information and cost associated with licensing Miles and/or Bink.
    • Для будь-якого Source Engine гра, що зміни грошових коштів, необхідний для того, щоб прийняти licensing fee of $25,000 для фізики engine. Ви будете потрібні для того, щоб скористатися цією помилкою перед тим, як керувати своєю грою, доступною для продажу на Steam.
    • Ви можете тільки вибрати свій Source Engine game via Steam unless you get a full Source Engine license.
  • Q. I've got a Source mod що I want to distribute via Steam. How do I prepare my mod under my app ID?

    A.Ви потребуєте копіювання exe і content from Valve Source Engine Game ви будете будувати свій mod off і загорнути, що вгору як ваше застосування.

    Коли ви повинні включати всі необхідні Source Engine dlls і content from the base Source game that you need for your mod to run, Source Engine mods повинні бути configured to require ownership of base game in order to play. Це необхідно для налаштування Valve.

  • Q. I wish to use Steam achievements in my mod. How do I do that?

    A.Використовуйте CAchievementMgr class, що міститься в Source Engine після налаштування дій у вашій App Admin page on the partner site. Для більше details, please see the documentation.
  • Q. Які dedicated server work for my game?

    A.Ви будете потрібні для нової dedicated server app ID з тим, що ви можете створювати розетки, які є для dedicated server. Один з вас"введіть app ID для вашої основної гри, ви можете створити свій спільний dedicated server app ID. Від нашої app landing page in Steamworks, клацніть "All Associated Packages, DLC, Demos, And Tools" and then click the "Create New Tool" button in the Tools section.
  • Q. Can I use Valve IP в Source Mod?

    A. Yes. However, please make it clear on your store pages that your mod is a mod and no created by Valve. Коммерційні ігри і mods, що включають Valve IP, такі як characters і story-lines потребує пріор approval від Valve.

Створення своєї RPG на движку Source

Якщо ви хочете навчитися розробляти ігри, моддинг існуючих ігор – чудовий початок для вивчення дизайну та створення прототипів без необхідності винаходити велосипед. У цій статті ми будемо використовувати Source Engine від Valve (на цьому движку створені Portal, Left 4 Dead, Half-Life і Team Fortress 2) для створення RPG-подібних квестів у Half-Life 2: Episode 2.

Зверніть увагу, що ця стаття має на увазі, що у вас є базові знання з Source SDK Hammer Editor і Face Poser, тому це проект не для початківців, а скоріше для програмістів середнього рівня.

Якщо у вас немає цих навичок, ви можете вивчити розробку ігор на нашому сайті: наприклад, створення ігор або .

Для освоєння цього матеріалу ви повинні знати, як створювати та компілювати карти, розміщувати сутності та налаштовувати тригери, перш ніж повторювати дії, описані тут. Якщо ви захочете додати свої діалоги, вам потрібно знати ще й як створювати та зберігати сцени у Face Poser. Нічого страшного, якщо ви ніколи не працювали з Source SDK раніше – в інтернеті повно статей, що описують, як ним користуватися. Почніть з Valve Developer Wiki , яка містить безліч корисних статей на тему, потім сходіть на design3 (до речі, я один з учасників проекту) за покроковими відеоінструкціями по Source Engine. Мінімальні системні вимоги для використання інструментів, описаних вище, такі ж як для запуску Half Life 2: Episode 2: процесор на 1.7 ГГц, 512 Мб RAM, DirectX 8.1 і Windows не нижче XP. Ще вам знадобиться мікрофон.

Підготовка

Перш ніж почнемо, переконайтеся, що у вас є все необхідне. По-перше, вам потрібна встановлена ​​копія Half-Life 2: Episode 2. Ми будемо використовувати цю гру, тому що це нова одиночна гра на движку Source, до якої можна написати мод. Якщо у вас немає другого епізоду, скачайте його з простий Half-Life 2 теж повинен підійти.

Якщо ви хочете додати свій діалог до цієї RPG, вам знадобиться додаток для обробки аудіо. Ми використовуватимемо - воно вільне, має відкритий вихідний код і відмінно підходить для наших завдань.

Ілюстрація 1 - наш рівень у Hammer Editor

Зараз наш рівень – просто грубий прототип, який повністю не текстурований та не деталізований. Найкраще саме з цього і починати, а деталями займатися вже наприкінці. Отже, давайте вже починати робити нашу RPG. Не забувайте вчасно зберігатись! Деякі нововведення в Hammer'і не повністю підтримуються в Episode 2 і можуть спричинити аварійне завершення редактора.

Створюємо структуру квесту

У цій статті ми зосередимося на отриманні та виконанні завдань, побудова системи розвитку персонажа з окулярами досвіду – тема для окремої статті. На нашому рівні будуть три неігрові персонажі (NPC), кожен даватиме нам по два завдання. Ми можемо їх використовувати також для надання гравцеві інформації, атак на нього або просто для того, щоб додати трохи життя до рівня.

Для того, щоб рівні були організовані, давайте використати таку конфенцію імен:

Ілюстрація 2 – конвенція імен, яку ми будемо використовувати

Це допоможе нам набагато простіше знаходити наші сутності, особливо під час роботи над завданнями. Наприклад, додавання префікса Level до сутностей, які стосуються лише певного рівня, автоматично розмістить їх в одному місці в списку, і вони не будуть плутатися з сутностями будь-якого завдання.

Перш ніж ми таки почнемо робити квести, нам потрібно розбити їх на менші компоненти, а саме:

  • Trigger Start: запускає завдання;
  • Sprite: показує, де квест може бути розпочато;
  • Giver: NPC, який дає це завдання;
  • Scene Start: діалог, що описує завдання;
  • Sound Start: звук, який повідомляє гравця про отримання завдання;
  • Text Start: текст, що описує завдання;
  • Relay Content: прошарок, який запускає необхідні для квесту процеси (наприклад, спаунер NPC);
  • : <основное содержимое квеста - после выполнения оно должно запустить Relay Complete>;
  • Relay Complete: прошарок, який налаштовує рівень для подальшого завдання;
  • Text End: текст, який описує, як виконати завдання;
  • Sprite: знову з'являється, щоб вказати, з яким NPC потрібно поговорити;
  • Trigger End: тригер, що ініціює закінчення завдання;
  • Scene End: заключний діалог;
  • Sound End: звук, що знаменує закінчення завдання;
  • : <если есть следующее задание, оно активируется здесь>.

Якщо ви щось з цього не зрозуміли, не переживайте - поки що ми просто складаємо список всього необхідного. Це список лише для одного завдання, тому нам знадобиться створити дійсно багато всяких сутностей. Щоб не засмічувати мозок зайвим, ми будемо використовувати VisGroups для поділу завдань та приховування того, що зараз не потрібно. VisGroups дозволяє вам позначити групи пензлів та сутностей та швидко приховувати чи показувати їх. Якщо група прихована під час компіляції, все, що міститься в цій групі, буде пропущено та не з'явиться у грі. Це дуже зручно, адже ви можете вибірково переглядати окремі групи об'єктів, зосередившись на них, а ніщо інше вам не заважатиме.

Створення шаблону завдання

Ми використовуватимемо шаблони (instancing) - чудовий інструмент Hammer Editor'а. Це дозволить посилатися нашій основній карті на інші. Ми створимо екземпляр завдання, який будемо використовувати як шаблон. Після того, як ми його закінчимо, ми зможемо просто розкопувати його та трохи відредагувати налаштування копій так, щоб кожне завдання стало унікальним. Таким чином, нам не доведеться робити одну і ту ж нудну роботу багато разів. На жаль, Episode 2 не повністю підтримує цю технологію, тому нам доведеться конвертувати екземпляри на рівні перед компіляцією (ми торкнемося цього пізніше).

Для того, щоб налаштувати наш шаблон завдання, нам потрібний новий файл картки. У Hammer'і вибирайте File, потім New, карту збережіть як «quest_instance» у папці «instances» у тому місці, де лежить ваша основна карта.

Найкраще розміщувати сутності якомога ближче до координат (0,0,0). Також варто розміщувати їх вище за площину XY, щоб не втратити при переносі. Для правильного розміщення можна скористатися Selection Tool. Наш шаблон автоматично додаватиме вибраний нами префікс до всіх сутностей усередині нього. Тригери та виставлення деяких значень будуть описані пізніше, так що не переживайте, якщо вам здалося, що ми щось упустили.

Нам знадобляться всі сутності, згадані у списку вище. Почнемо з додавання NPC. Виберіть Entity Tool, знайдіть npc_citizen у списку, що випадає, і розмістіть його біля початку координат. Цей хлопець даватиме нам завдання. Натисніть Alt+Enter, щоб відкрити його налаштування, і дайте йому ім'я giver. Виставте параметр Prevent picking up weapons? на Yes. Застосуйте налаштування натисканням Apply і перейдіть на панель Flags. Виставте прапор Not Commandable, інакше наш роботодавець всюди тягатиметься за гравцем по карті. Виставте ще Don't drop weapons та Ignore player push (щоб він не поступався дорогою гравцю).

Тепер нам знадобиться тригер, який відстежуватиме, чи підійшов гравець до... Давайте називати його Грицька, бо «цей хлопець» чи «quest giver» звучать не дуже добре. Так от, щоб відстежувати, чи підійшов гравець до Грицька, створіть пензель з такими розмірами: 64 юніти у висоту, 32 юніти завширшки, 4 юніти завдовжки - і розмістіть об'єкт прямо перед Гришею. Призначте цьому об'єкту текстуру nodraw , щоб вона не рендерувалася. Щоб змінити текстуру, виділіть об'єкт, перейдіть на Toggle texture, натисніть кнопку Browse, використовуйте фільтр по nodraw , подвійним кліком виберіть його і застосуйте параметри (кнопка Apply). Потім призначте цю сутність тригер, натиснувши Ctrl+T і вибравши func_button зі списку. Назвіть його trigger_start і змініть швидкість (speed) до нуля. Знову збережіть зміни.

Тепер давайте додамо спрайт, який повідомлятиме гравця, що у цього NPC є завдання. Помістіть сутність env_sprite зверху від голови Грицька і відкрийте вікно Object Propeties, натиснувши Alt+Enter. Назвіть його "Sprite". Тепер нам потрібно змінити режим ренедрінгу, щоб спрайт відображався в грі коректно. У тому ж вікні знайдіть опцію Render Mode і виберіть World Space Glow з меню. Ви можете змінити текстуру цього спрайту за допомогою цього меню, якщо хочете. Переконайтеся, що у кладці Flags стоїть галочка навпроти Start on .

Займемося діалогом. Знайдіть у списку сутностей logic_choreographed_scene і помістіть його за Гришем. Нам знадобиться щонайменше дві такі на кожен квест - одна для початкового діалогу, друга для заключного - так що скопіюйте її і вставте другу поверх першої. Дайте їм імена «scene_start» та «scene_end» відповідно. Додавання себе діалогу ми розглянемо трохи пізніше.

Крім того, нам ще потрібні звукові повідомлення про те, що гравець отримав завдання і про те, що він його виконав. Створіть дві сутності ambient_generic , помістіть їх поруч із NPC і назвіть «sound_start» та «sound_end». Якщо у вас немає відповідних звуків, використовуйте plats\elevbell1.wav (вводити потрібно в поле Sound Name). На вкладці прапорів усі три опції мають бути позначені галочкою.

Після цього нам потрібно додати текст, який описуватиме завдання. Створіть дві сутності game_text і назвіть їх «text_start» та «text_end». Виставте для обох досить високий параметр Hold Time (порядку 99999), щоб текст не зник, доки ми його не знищимо. Нам потрібно, щоб текст був збоку екрана і не заважав гравцеві, так що виставте в обох сутності поля X та Y на 0.1.

Нам знадобиться кілька прошарків, щоб систематизувати тригери. Прошарок (relay) – сутність, яка при активації запускає інші сутності. Один прошарок зазвичай запускає дії, які повинні виконуватися одночасно і в одному місці, щоб ними було зручніше керувати. Створіть дві сутності logic_relay і розмістіть їх поряд із Гришею. Назва їх «relay_content» та «relay_complete». Ці два прошарки запускатимуть усі сутності в завданні. Особливості конкретного завдання придумайте самі - вам потрібно встановити для гравця мету на кшталт «зібрати стільки таких предметів» або «дістатись до такого місця». Для перевірки виконання цих умов можна використовувати такі сутності, як math_counter або сутності областей на кшталт trigger_once . Коли ці сутності з'ясують, що завдання пройдено, вони повинні запустити «relay_complete», який, у свою чергу, запустить все необхідне для ознаменування кінця завдання.

Додамо ще один тригер навпроти Грицька. Він буде практично ідентичним стартовому тригеру, тому просто скопіюйте trigger_start і перейменуйте його в trigger_end. Переконайтеся, що прапор Starts locked увімкнено. Переконайтеся, що ці сутності не перекривають один одного і що стартовий тригер знаходиться перед хітбоксом NPC (інакше гра плутатиметься, чи ви вибираєте тригер або кнопку), використовуючи види зверху і збоку. Щоб визначити місцезнаходження хітбоксу, виберіть Гриша – навколо нього з'явиться жовта рамка.

Тепер налаштуємо тригери, як показано на Ілюстрації 5. Вам поки що не варто переживати за тригери у квадратних дужках, їх ми додамо пізніше. Виберіть ці сутності, відкрийте їх Object Properties, зайдіть у кладку Outputs і налаштуйте все відповідно до таблиці нижче. Переконайтеся, що ви зберігаєте зміни (кнопка Apply)!

Ілюстрація 5 – налаштування тригерів.
Заголовки: Вибрана сутність \ Активувати по ... \ Активована сутність \ Що активувати у сутності

Розміщуємо шаблони

Наш шаблон готовий, тепер ми можемо розміщувати такі шаблони по карті та налаштовувати їх детальніше. Розмістіть "func_instance" де вам зручно, відкрийте його Object Properties і під VMF Filename знайдіть ваш файл "quest_instance". Зверніть увагу, що пошук працює кілька баговано, так що вам може знадобитися ввести шлях до файлу вручну. Тепер ви можете розкопувати цей шаблон на карті: створіть стільки завдань, скільки хочете.

Виберіть перше завдання і дайте імпортувати всі необхідні сутності (натискайте Instancing, Collapse, Selection). Hammer дасть всім суті префікс, за замовчуванням «AutoInstance-». Все імпортоване буде виділено, нам залишиться лише додати їх до однієї групи через VisGroups. Відкрийте Object Properties і виберіть вкладку VisGroups. Ви побачите приблизно таке:

"Sewer" та "Main level" - групи, які я створював раніше, так що це нормально, що у вас їх немає. Натисніть на "Edit Groups" і ви побачите наступне:

Тут ви можете створити нові групи, які потім використовуватимете. Натисніть New group і ви побачите новий елемент у списку. Перейменуйте його в Quest_n, де n - номер завдання. Як закінчите, натисніть «Close», ви побачите свою групу в головному списку. Позначте чекбоксами для додавання сутностей до групи, натисніть Apply, потім знову Close. Тепер ви можете приховувати або переглядати групи за допомогою панелі керування VisGroup, як показано нижче. Робіть так із кожним вашим завданням.

Додавання власних звукових файлів

Наша РПГ була б вкрай нудна без діалогів, які розкривають історію, тому ми запишемо їх через Audacity. Для початку у вас має бути мікрофон. Через особливості роботи Face Poser вам варто записувати за однією пропозицією за один раз. З Audacity все просто – налаштуйте мікрофон, натисніть на червону кнопку, скажіть щось, зупиніть запис та збережіть файл у форматі .wav. Якщо у вас виникли якісь проблеми, можете сміливо використати вбудовану довідку, вона дуже добре зроблена. Як закінчите, створіть папку RPG і помістіть у неї всі файли. Цю папку перемістіть у C:/Program Files/Steam/steamapps/half-life episode two/ep2/sounds/ . Збереження всіх файлів в папку на один рівень вище "sounds" важливо - інакше двигун їх просто не побачить.

Йдемо далі. Створіть файл "sound_script", щоб двигун міг зв'язати наші звуки в редакторі з грою. Запустіть GCFScape, перейдіть до File->Open, перейдіть до своєї папки "steamapps" і відкрийте файл "episode two content.gcf". Після того, як GCFScape його провантажить, вам потрібно буде знайти файл "game_sounds_manifest.txt", який розміщений у "/steamapps/ep2/scripts". Натисніть на нього правою кнопкою миші та виберіть Extract і розмістіть цей маніфест у /steamapps/half-life 2 episode two/ep2/scripts. З GCFScape ми закінчили, можете закрити його.

Тепер йдіть до папки зі скриптами і відкрийте «game_sounds_manifest.txt», який ми щойно витягли. У цьому файлі лежать всі звукові скрипти, які гра використовуватиме, і нам потрібно додати наші записи туди ж. Під останнім рядком коду, в останніх дужках напишіть таке:

Файл маніфесту можна закривати. Створимо файл rpg_sounds.txt, на який ми посилаємося і запишемо в нього наступне:

Перший рядок – ім'я звуку, яке відобразиться у Face Poser: «rpg_sounds» – префікс, а друга частина – власне ім'я. Ви можете міняти їх як вам завгодно. Наступні чотири рядки говорять движку, що йому з цими звуками робити, прийміть їх просто як це. Останній рядок - . wav файл, який завантажуватиметься, та відносний шлях від папки «/steamapps/half-life 2 episode two/ep2/sound/». Все, що вам потрібно зробити - помістити в цю папку всі свої звукові файли і переконатися, що їхні імена та розширення збігаються із зазначеними у скриптовому файлі.

Якщо у вас стоїть Windows Vista або Windows 7, нам доведеться трохи допомогти Face Poser. Як зазначено вище, вам для цього знадобиться патч Phoneme Extractor. Тут варто згадати, що Source SDK оновлює себе щоразу, як ви запускаєте його, тому патч потрібно ставити щоразу, як ви відкриваєте Source SDK. Так, це втомлює, але це найпростіший шлях, повірте.

З відкритим Face Poser ми почнемо створювати нову сцену. У меню "Choreography" натисніть "New". Я порекомендую вам одразу ж її зберегти. Ім'я виберіть самі, а папка для збереження - "/steamapps/half-life episode two/ep2/Scenes/RPG_MOD/". Її потім буде набагато простіше знайти, якщо ви дасте їй якийсь префікс, наприклад, RPG_. Тепер Face Poser попросить вас дати ім'я головній дійовій особі (Actor). Назвіть його "!_targetN", де N - число від 1 до 8, т.к. у нас буде до восьми NPC у кожній сцені. Hammer використовуватиме NPC, якого ви вкажете. У нас поки що є лише Гриша, тому назвемо дійову особу «!_target1». Зробіть правий клік на ім'я дійової особи, яке з'явилося в меню «Choreography», потім перейдіть до New->Channel->Create Channel box. Назвіть цей канал Audio. Тепер створіть ще один канал та назвіть його "Anim" (для анімації).

Тепер нам необхідно відсортувати наші аудіозаписи. У списку вкладок у нижній частині екрана Face Poser двічі натисніть на Phoneme Editor. У вікні, натисніть «Load» і виберіть .wav файл, який ви хочете додати. Потім натисніть на Re-extract, і Face Poser запропонує вам написати вміст аудіофайлу текстом. Впишіть його. Тепер, якщо ви натиснете кнопку програвання, вам буде показано обличчя дійової особи, губи якого рухатимуться. Можете зберігати все та закривати це вікно. Ці дії необхідно повторити кожного звукового файла.

Якщо ви хочете додати жести, вираз обличчя або іншу анімацію, Вам варто робити це зараз. Я не розповідатиму, як це зробити в цій статті, ви можете прочитати про це десь ще. Далі збережіть свою сцену (Choreography-> Save). Тепер залишилося застосувати цю сцену до нашого NPC.

Додавання стороннього аудіо до NPC

Тепер нам потрібно налаштувати діалог. Нам потрібно додати створені нами сцени до scene_start і scene_end, які ми створювали раніше. Для цього натисніть Alt+Enter, щоб відкрити Object Properties, там знайдіть опцію Scene file. Призначте їй нещодавно створену сцену та збережіть зміни. Те саме зробіть для scene_end.

Активація подій

В цілому, ви вже можете самі створювати тригери, які робитимуть що завгодно, але я наведу приклад того, яке завдання можна зробити і як його реалізувати.

Гравцю потрібно вбити п'ятьох ворогів. Щоразу, коли вмирає ворог, math_counter збільшується на одиницю. Коли лічильник досягає п'яти, math_counter викликає logic_relay . У свою чергу, logic_relay припиняє спаун мобів, активує NPC та «relay_complete».

Налаштування автозбереження

Ніхто не любить, коли один випадковий креш вбиває результат багатогодинної гри. Тому вам варто додати сутність logic_autosave та викликати її щоразу, коли завдання буде пройдено (ви вже знаєте, як це робиться).

Кінець гри

Гра повинна буде колись закінчитися, і буде не дуже добре, якщо вона просто вилетить до головного меню, тому варто створити титри. Для цього просто розмістіть десь на карті такі сутності:

Висновок

Я розповів усе, що хотів. Тепер ви можете створювати будь-які види завдань, вмієте працювати з тригерами і загалом можете починати писати свої нескладні моди до ігор. Успіхів!

Source - найпопулярніший ігровий движок: у той момент, коли ви читаєте цю статтю, в ігри, написані на ньому, може грати більше мільйона людей:

І це не дивно: двигун розробила компанія Valve, яка володіє найбільшим ігровим магазином – Steam, а її ігри стабільно знаходяться на вершині ігрового топу.

Але, зрозуміло, шлях на вершину слави був довгий: історія розробки движка Source почалася далекого 1998 року, коли розробники Valve, завершуючи роботу над Half-Life 1, зрозуміли, що у них є безліч напрацювань, які хотілося б десь використовувати. І саме тоді і з'явився поділ на два движки: GoldSrc, на якому працювала поточна версія гри, і Source, який належав до майбутньої версії гри і мав нові, ще неналагоджені технології. І тому на виставці E3, коли Valve демонструвала бета-версію гри Half-Life 2, було сказано, що гра працює на движку Source. Ця назва прижилася, і надалі GoldSrc повністю зник.

Source Engine 2004 (Source Engine 6)

Перша публічна версія движка вийшла в 2004 році разом з багатьом шутером Counter Strike, який на честь движка був називаний Source. Змін із оригінальної версії було досить багато: більш чіткі текстури (512×512 пікселів проти 128×128 в оригіналі) та опрацьовані тривимірні моделі. Широко використовуються можливості движка, пов'язані з дзеркальними відображеннями - у зброї, забезпеченої оптичним прицілом, можна бачити навколишнє оточення (але не моделі інших гравців) позаду гравця на лінзі прицілу, коли воно знаходиться в не наближеному стані.

Звукові ефекти тепер відповідають акустичним умовам, введено підтримку колонок 5.1 і 7.1. Нові можливості движка допомогли зробити карти більш деталізованими: з'явилися пляшки, що валяються на землі, пакети. Фізичний двигун, створений на основі Havok, дозволив покращити фізику польоту гранат, вибухи, а також ефекти від їх ураження у бік більшої реалістичності.

Трохи пізніше цього ж року вийшла Half-Life 2, в якій до наведених вище можливостей додалися: шейдерний рендеринг (Half-Life 2 була однією з перших ігор, в якій використовувалася шейдерна вода) та лицьова анімація (за допомогою точної синхронізації мови акторів з анімацією), а за допомогою Havok був отриманий ефект «ганчіркової ляльки»:




Ця версія движка використовувалася до 2005 року, і є зараз застарілою - всі ігри, написані на SE 6, були переведені на нові движки.

Source Engine 2005 (Source Engine 7)

Оновлена ​​версія двигуна, що вийшла в 2005 році. Основне доповнення - підтримка High Dynamic Range Rendering, для демонстрації якої розробники випустили Half-Life 2: Lost Coast: по суті ця гра являє собою рівень, що не потрапив у фінальну версію Half-Life 2. HDR Rendering у Lost Coast включає кілька компонентів :

  • HDR Skybox - результат накладання кількох експозицій піднебіння для реалізації ефекту зміни експозиції в реальному часі. Для Half-Life 2: Lost Coast було створено понад 16 різних HDR Skybox.
  • HDR Refraction Effect – HDR світло проходить через заломлюючі матеріали та приймає властивості цих матеріалів (наприклад, коли промінь світла проходить крізь кольорові вітражі в монастирі на Half-Life 2: Lost Coast, на підлогу відкидаються кольорові відблиски).
  • HDR Light Maps - карти світла, що згенеровані за допомогою ефекту radiosity (світло не тільки відбивається від об'єктів і потрапляє в око спостерігача, а й потрапляє на інші об'єкти, відбиваючись від них). Можна помітити, наприклад, усередині монастиря в Half-Life 2: Lost Coast, сонячними плямами на стінах, протилежних вікнам.
Як і SE 6, 7-а версія на даний момент так само застаріла - в 2014 році останню гру на ньому, CS:Source, перевели на Source Engine 24.

Source Engine 2006 (Source Engine 7: Base Source Engine 2)

Перша версія движка, що має доступний всім комплект розробника - Source SDK Base 2006, що дозволило безлічі людей створювати свої модифікації до ігор Valve. Двигун дещо допрацювали – він підтримує оновлену лицьову анімацію, багатоядерний рендеринг та оновлений HDR.

Так як створені на SDK 2006 року модифікації не сумісні з новішими версіями двигуна, то авторами деяких модів ця версія двигуна все ще використовується, і її з натяжкою можна вважати актуальною.

Source Engine 2007 (Source Engine 14)

Глобальний реліз, вперше використовувався у збірнику ігор від Valve - The Orange Box (до нього входять: Half-Life 2, Half-Life 2: Episode One, Half-Life 2: Episode Two, Portal та Team Fortress 2). У цій версії було оновлено шейдерний рендеринг, значно доопрацьовано динамічне освітлення та затінення, з'явилася система м'яких частинок (що дозволила сильно покращити якість таких ефектів, як дощ та вогонь), було додано кінематографічну фізику, а також нову лицьову анімацію (підтримувалося її апаратне прискорення на відеокартах) та покращена підтримка багатоядерних процесорів.

SE 14 стала першою версією движка, що підтримує консолі – The Orange Box вийшов не тільки під ПК, але й під PlayStation 3 та Xbox 360.

Так само як і з SE 7, модифікації, створені в SDK до 14-ої версії, не працювали на новіших, тому ця версія движка досі використовується.

Source Engine 2008 (Source Engine 14: Base Source 3)

Версія движка, створена під гру Left 4 Dead:

У ній покращили кінематографічну фізику, додавши:

  • Динамічне руйнування ігрової геометрії - доти лінії руйнування мали вказуватися творцем карти.
  • Об'єкти, що деформуються - до цього фізичні моделі не могли бути змінені будь-яким чином, крім як на основі заздалегідь прорахованої анімації.
Також були додані деякі ефекти, такі як розмиття в русі та глибина різкості.

Source Engine 2009 (Source Engine 15)

Версія, що вийшла з грою Left 4 Dead 2, надалі на цю версію було оновлено всі ігри Valve того часу. У цій версії оновлено всі функції, значно доопрацьовано систему частинок, лицьову анімацію, масштабування та можливість оновлень.

Source Engine 2010 (Source Engine 17)

Перша версія двигуна, портована під MacOS. Спочатку під яблучну ОС було портовано пакет ігор The Orange Box, а надалі все нові ігри Valve стали виходити і під Mac, і під Windows.

Source Engine Multiplayer (Source Engine 19, 21 та 23)

Версії движка, заточені під мультиплеєрні ігри, такі як Dota 2 та CS:GO. Також у 2012 році з'явилася підтримка Linux: під нього була портована гра Team Fortress 2, а надалі й інші ігри Valve.

Source Engine 2013 (Source Engine 24)

Поточна версія движка, на яку Valve переклала більшість своїх ігор. Серед змін: для оптимізації використання дискового простору було вирішено відмовитися від використання громіздких. GCF-файлів (архівів з ресурсами ігор) на користь файлової системи під кодовим ім'ям SteamPipe. Ігри на новому движку встановлюються тепер в директорію Steam Steam Apps Common, а файли гри зберігаються в VPK-файлах. Для ігор Counter-Strike: Source, Team Fortress 2 і Half-Life 2: Deathmatch створена зручна система додавання контенту користувача (модів): присутня папка custom, в якій створюється папка з довільним ім'ям, і вже в неї складаються класичні папки матеріалів модифікації ( матеріали, моделі і т.д.).

Також було покращено сумісність з Linux, а в травні 2014 року Nvidia портувала Portal і Half-life 2 на Android, для своєї приставки Nvidia Shield (втім, умільці змогли запустити ці ігри і на інших пристроях під керуванням ОС Android, проте продуктивність була низькою ).

Source 2

Принципово нова версія двигуна, випущена в 2015 році компанією Valve разом із виходом оновленої гри Dota 2 – Reborn. На жаль - технічної презентації не було, відомо лише, що двигун все так само працює на API OpenGL (можливо в майбутньому додасться API Vulkan), а також вміє задіяти стільки ядер процесора, скільки у нього є. Так само Valve обіцяли, що двигун краще працюватиме на старих комп'ютерах (зменшено споживання ОЗУ), проте Dota 2 Reborn виявилася важчою Dota 2 на Source Engine 24. Ще одне важливе додавання - з'явилася підтримка VR, і перша гра-демонстрація The Lab для HTC Vive:

Майбутнє двигуна

Про подальший розвиток движка Valve мовчить, і це для геймерів не новина (все ж таки чекають чуток про Half-Life 3 і Portal 3, правда?) Поки що друга версія движка досить сира і вимагає доопрацювання, і, очевидно, Valve fix it виправляє помилки , А про майбутні ігри та версії движка знає тільки Гейб Ньюелл.

- [Surs] n. f. v. 1354; sourse XIIe; fém. de so(u)rs, anc. p. p. de sourdre 1 ♦ Eau qui sort de terre; issue naturelle ou artificielle par laquelle une eau souterraine se déverse à la surface du sol. ⇒ fontaine, griffon, 1. point (d eau).… … Encyclopédie Universelle

May refer to:Film and television* The Source (documentary) , a 1999 documentary movie about the Beat generation * The Source (film) , a 2002 н.е. DVD… … Wikipedia

Source. s. f. Endroit où l eau commence à sourdre, à salir de terre, pour avoir un cours continuel. Claire source. vive source. source qui ne tarit jamais. ce ruisseau не provient pas des pluyes, c est une eau qui coule de source. trouver une… … Dictionnaire de l'Académie française

N 1: пункт оригіналу source of the conflict 2: one that supplies information held the reporter in contempt for refusing to reveal her source Merriam Webster's Dictionary of Law. Merriam Webster. 1996 … Law dictionary

Source, Origo, Scaturigo, Scatebra, Caput riuulorum, a surgendo. La source d une lignée, là ou toute la lignée rapporte son commencement, Genus. La source dont vient tout le mal, Seminarium. La source dont procede quelque tristesse, Fons moeroris … Thresor de la langue françoyse

N. 1. a spring, fountain, etc. that is the starting point of a stream 2. that from which something comes into existence, develops, or derives die; aus engl. source "Quelle", dies über altfr. surse zu lat. surgere »entstehen« die Eingangselektrode beim Feldeffekttransistor … Das große Fremdwörterbuch

NOUN 1) a place, person, or thing from which something originates. 2) a spring or other place from which a river or stream issues. 3) a person, book, або document that provides information or evidence. VERB ▪ obtain from a particular source.… … English terms dictionary

- (fr., Spr. Surs), 1) die Quelle, der Ursprung; bes. 2) die Handelsquelle (wo eine Waare aus der ersten Hand bezogen wird) … Pierer's Universal-Lexikon

Книги

  • , режим Peter George. Книга є репринтне видання. Незважаючи на те, що було проведено серйозну роботу щодо відновлення початкової якості видання, на деяких сторінках можуть виявитися…
  • Andrew Cunningham Mclaughlin. Also Authored By Arthur Pearson Scott. Книга є репринтне видання 1918 року (видавництво "New York, London, Harper&Brothers, Publishers"). Незважаючи на те, що...

П'ять років на розробку гри – це довго. Особливо для тих, хто з нетерпінням чекав на продовження. І ось, нарешті, відбулося! У сяйві софітів, під канонаду батареї пляшок із шампанським зі стапелів плавно і велично зійшла одна з найочікуваніших ігор третього тисячоліття. Half-Life 2. Якщо перша частина працювала на движку від id Software, то тепер Valveзабезпечила свою нову гру власним мотором - Source Engine. Очікується, що він виявиться тією чашею Грааля, яка подарує компанії безсмертя, а Half-Life 2 – вічну молодість. Адже двигун - чудовий інструмент для мододелів та ігробудівників.
Якби гра вийшла, як було обіцяно, 30 вересня минулого року - Source Engineсправді виявився б поза конкуренцією... Але сьогодні, коли давно продається Doom 3, свою перевагу новому движку Source доведеться доводити в гострій конкурентній боротьбі. Остаточний розклад сил стане зрозумілим не раніше ніж через 3-4 місяці, коли розробники ігор та модобудівники розберуть новий інджайн, що називається, по гвинтику, але якісь висновки можна зробити вже зараз. Давайте подивимося, що в активі у нового двигуна.

Ігри та порно - одне й те саме?
П'ять років на розробку - це справді багато. За цей час у двигун можна було впровадити масу нових технологій, вкласти в нього не тільки час і гроші, а й душу. Робота над HL2 розпочалася одразу після виходу першої частини. В ідеях у команди не бракувало. Дуже хотілося розвинути успіх першої

ігри. Перша HL народилася багато в чому завдяки тому, що Гейб Ньюелл(Gabe Newell), батько-засновник Valve, був великим шанувальником Doom. Якби не це, навряд чи перспективний співробітник відділу операційних систем фірми Microsoftкинув би у 1996 році добре оплачувану роботу та організував власну ігрову компанію.
На цьому спілкування з Doom та його творцем - Джоном Кармаком- Не закінчилося. Для своєї гри свіжонароджена ігрова компанія ліцензувала у id Softwareдвигун Quake. Однак Гейб ніяк не міг погодитися з деякими поглядами Кармака, який вважав, що сюжетна лінія в екшені не важливіша за сюжет у порнофільмі. Взаємодія гравця з ігровим світом має зводитись до винищення монстрів у барвистих декораціях. Віртуальний тир концепції. Головне, щоб монстрів було багато, щоб вони були різноманітними та процес умертвіння виглядав на екрані монітора максимально ефектно. Звичайно, ці ідеї лежали в основі ігрового двигуна id Software - він дозволяв малювати на екрані найкрасивішу картинку на той момент і легко обробляв десяток 3D-моделей.
У Гейба були дещо інші уявлення про роль сюжету та взаємодію геймера з ігровим світом. І щоб продати їх на движку id Software, його команді знадобилося 2 роки наполегливої ​​роботи. Зате в результаті з'явилася HL, яка здобула понад 50 нагород “Гра року” та всенародне кохання.
Гейб мав рацію. Тому не дивно, що в HL2 розвинули напрацювання першої частини, зробили світ ще достовірнішим та інтерактивнішим. Оскільки id Software ні на йоту не пішла від колишніх позицій, стало очевидним, що Valve для вирішення цих завдань буде потрібно свій двигун. Source розроблявся відразу двома командами: HL2 та Team Fortress 2. Те саме стосується інструментарію. Крім того, команда Steam виготовила інтерфейс користувача і VGUI 2, вбудовані в Half-Life 2

питання. Як сказав Гейб: “ Це та область, в яку ми плануємо вкласти багато часу та зусиль. Ми чекаємо не дочекаємося побачити, що модери зроблять із двигуном Source.
За деякими відомостями, документація буде значно докладнішою, ніж для першої HL (а на ті часи вона була дуже непоганою). Valve, натхненна активністю спільноти мододелів по відношенню до HL, дуже хоче повторити подібне з другою частиною. Спеціально для цього в гру закладено багато можливостей для модифікування. Наприклад, інтерфейс легко змінюється і має безліч налаштувань. Ігровий редактор значною мірою перероблений та покращений. На додаток до SDK буде випущено безліч різних утиліт, у тому числі об'ємні бібліотеки текстур та заготівлі моделей. “ Ми сподіваємося, що автори модифікацій, отримавши це, зможуть зосередити більше уваги на якихось нововведеннях та геймплей, ніж на механізмі створення самого мода”, - вважає Гейб Ньюелл.
Лікар з першої частини гри
та з другої. Відчуйте
різницю.
Можливості самого движка Source дозволяють модерам не тільки тотально переробити HL2, а й практично зробити нову гру. Порівняно з першою HL розміри карток можна вільно збільшувати в 10 разів! Стало реально створювати величезні відкриті простори та робити міста, що тягнуться на багато кілометрів. В ігровому редакторі (відомий всім Valve Hammer Editor) з'явилася система для створення чи зміни будь-яких ландшафтів на карті. Крім того, Sourceмає відмінну фізичну модель і вільно оперує великою кількістю “інтерактивних” об'єктів. Тобто предметами, які гравець може якось використати під час гри. Наприклад, з розкиданих на вулиці шин можна зробити перешкоду для погоні або укриття для засідки. Це значно змінює тактику проходження. Отже, мододелам доведеться замислюватися не лише над дизайном самого рівня, а й над розподілом подібних об'єктів.
Деякі фішки реалізовані в движку, але не увійшли до Half-Life 2, а деякі піддаються значній трансформації. Наприклад, деформацію поверхні можна буде використовувати у модах, але ви не зустрінете її у грі. Те саме стосується зміни дня і ночі. Погодні ефекти взагалі можна змінити до невпізнанності.

Краса рятує світ
Новий двигун Valve використовує всі переваги DirectX 9- динамічний рендеринг для малювання відкритих просторів, рельєфні текстури для персонажів, м'які тіні, покращене згладжування та інше. Однак на даний момент, оскільки відеокарти з повною підтримкою DX9 дороги, у двигуні
створено еквівалентні ефекти для DX8. Реалізовано шейдер DX8.1 для водних поверхонь. За інформацією від Valve, наступні версії двигуна будуть базуватися тільки на функціях дев'ятого DirectX.
Перш ніж розповідати про графічні можливості Source, слід зазначити, що всі сучасні двигуни повинні бути масштабованими. Тобто нормально працювати на комп'ютерах із різною начинкою. І чим ширший діапазон – від мінімальної до максимальної конфігурації – тим краще. Більше народу зможе купити гру та оцінити зусилля розробників. Хоча можливості останніх поколінь відеокарт дозволяють багато, розробники повинні думати і про тих, хто не настільки благополучний, щоб позбавитися застарілого графічного адаптера. Тому текстурний бюджет та кількість полігонів на модель часто дуже занижується.
HL2 використовує в переважній більшості випадків текстури розміром 512х512 пікселів (проти 128х128 у першій частині). Однак сам двигун здатний на більше. За словами Гейба, максимально можливий розмір текстур 2000х2000. Неабиякий доробок на майбутнє. Що стосується моделей, то звичайні NPC містять у собі по 3000 полігонів. Особливо цінні персонажі, такі як Alyxабо Gman, вже мають близько 7500 полігонів на душу. На менш важливі фігури (на зразок численних монстрів, які з'являються на екрані пачками) виділялося не більше 2000 полігонів на штуку. Менш значні - не "живі" об'єкти - обходяться зовсім невеликою кількістю трикутників.
До складу інструментарію входить утиліта FacePoser, призначений для управління лицьовими м'язами моделей. Це дозволить висловлювати комп'ютерним персонажам людські емоції – хмурити брови, посміхатися на весь рот тощо. До того ж FacePoser вміє фонетично правильно підлаштовувати міміку моделі під фрази, попередньо записані в звуковий wav-файл. Щось схоже ви вже бачили у пакеті Impersonatorдля Unreal Tournament 2004. Однак FacePoser має більш дружній графічний інтерфейс, та й можливості цієї утиліти набагато ширші. Це власне редактор сцени. Наприклад, за допомогою неї можна створювати різні ситуації та події, такі як переміщення персонажа заданим маршрутом, причому точно задавати момент часу, коли NPC повинен з'явитися в тому чи іншому місці.
якщо розум у Всесвіті надзвичайно рідкісне явище і навіть якщо найрозумніші особини знищують один одного без зазріння совісті, у розумного життя все одно є маса часу, щоб заповнити галактику, навіть переміщаючись зі швидкостями, меншими за субсвітлові. Відповідно до будь-якої імовірнісної моделі, ми повинні бути просто завалені інопланетянами. То де ж ці цивілізації прибульців?
Я маю власну доморощену теорію, яку я претензійно називаю “Gambeboy Really Really Advanced Theory”. Як тільки будь-які істоти досягають рівня, при якому вони здатні побудувати міжзоряний космічний корабель, вони мають можливість побудувати і неймовірно потужні комп'ютери, на яких можна грати суперреалістичні відеоігри. У інопланетян є вибір: або відправитися дослідити справжній Всесвіт (безліч нудних подорожей, де найцікавішим питанням буде “З якою кількістю космічного пилу ми сьогодні зіткнемося?”), або дослідити всесвіт віртуальний, створений на їх суперпотужних комп'ютерах. Так що інопланетяни - вони є... Десь там... Просто вони надто зайняті іграми та дослідженням віртуальних всесвітів набагато більших і захоплюючих, ніж справжня.
Це означає, що ми лише трохи копнули те, що буде можливо у відеоіграх. І завдяки подвоєнню за законом Мура і зростаючою досвідченістю розробників ігор - якою б не була різниця між рівнем Half-Life 1 і Half-Life 2 - ми побачимо значно значніші зрушення вже в найближчому майбутньому.

* * *
Рішення відмовитися від ліцензування двигуна для своєї гри (адже розглядався варіант Quake 3), незважаючи на всі труднощі, виявилося правильним. Більш того, Гейб Ньюелл всерйоз розраховує на те, що Source зацікавить як модерів, так і професійних розробників. І всі передумови для цього є. Ліцензування вже почалося і, за словами Гейба, має "агресивний характер". Можливо, на цьому далася взнаки і дуже низька ціна в порівнянні з Unreal Engine і движком Doom 3, але ... Не тільки в ціні справа. Цілком можливо, що у цих титанів з'явився потужний конкурент. Адже на Source можна зробити не лише чудові сюжетні шутери від першої особи, а й навіть RPG!
А Кармак із Doom 3 знову зробив (нехай і відмінний) віртуальний тир. Мабуть, продовжує вважати, що ігри та порнографія – це одне й те саме.

Інформація про сайт