Сейчас, наверное, многие занимаются поиском движка или конструктора игр для создания своей игры. Вот я и решил написать уроки по Cube Engine 2 (Sauerbraten), так как знаю его очень хорошо, и в данный момент создаю свою игру на нём. И так, для начала составим план наших уроков:
1) Вступление (здесь я опишу основные возможности движка, расскажу немного о геймплее самого Sauerbraten, об играх, которые были на нём созданы, о сайтах, на которых можно скачать ресурсы для него, возможные жанры и о другом);
2) Основы Cube Script (здесь мы научимся понимать логику и усвоим некоторые ошибки новичков, которые допускать нельзя);
3) Основы Картостроения в Cube Engine 2 (в этом уроке мы научимся создавать простые сценки, сохранять и загружать их, использовать материалы и текстуры, создавать простой ландшафт);
4) Основы Создания карт с помощью скриптов (здесь мы научимся изменять некоторые параметры окружения, в частности - изменение скайбокса, загрузка своих текстур, создание своей палитры текстур и так далее);
5) Продвинутое создание карт в Cube Engine 2: - 1. Часть 1. Создание взаимозависимых объектов (создание выключателей, дверей, елеваторов, и связывание их в пространстве с помощью тегов) - 2. Часть 2. Создание и редактирование энтинити (частиц, света, звуков, телепортов и так далее) - 3. Часть 3. Настройка текстур (маштабирование , скроллирование, самосвечение, отражения)
6) Cube Script: - 1. Часть 1. Создание и настройка окон, кнопок, вкладок. - 2. Часть 2. Создание списков и таблиц. Настройка. - 3. Часть 3. Создание переменных, слайдеров, ввод данных с клавиатуры.
7) Заключительная часть
Мои статьи будут выходить примерно раз в месяц. Все уроки будут размещены в этой теме под спойлером с названием урока. Все вопросы по созданию игр на Sauerbraten и моддингу самого Sauerbraten задаём здесь.
P.S. План уроков может измениться по мере их написания. Могут быть добавлены новые уроки.
Cube Engine 2 - это продолжение мультплатформенного движка Cube Engine (2002), который был выпущен в 2005 году. Исходные коды этого движка находятся в свободном доступе, прямо в папке "src" с самой игрой. Особенностью движка, как первого (Cube Engine), так и его продолжения (Cube Engine 2) - это очень лёгкое построение карт на основе изменения геометрии "куба", собственно, отсюда и название самого движка. С построением карт на этом движке справиться каждый, даже не смотря на возраст. Имеется собственный физический движок, называемый "ragdoll", что переводиться как тряпичная кукла. Он используется в основном для реалистичного изображения смерти игроков.
Геймплей - старая школа. Здесь на ум приходят только Quake 3 Arena и Doom, Doom 2. Вот список встроенных мультиплеерных и синглплеерных режимов игры:
- ffa (классический дезматч) - teamplay (дезматч по командам) - instagib (дезматч, но из оружия только винтовка и бензопила) - insta team (тоже самое, только по командам) - efficiency (игроку при респауне даётся всё оружие, но только 2/3 боезапаса) - efficiency team (тоже самое, только по командам) - tactics (даётся случайное оружие - здесь надо думать как и когда атаковать врага) - tactics team (тоже самое, но по командам) - capture (захват баз, при респауне даётся дробовик и винтовка. Только по командам) - regen capture (захват разного вида баз, на которых с течением времени востанавливаются патроны для того или иного оружия) - ctf (захват влага) - insta ctf (захват флага на винтовках) - protect (защита флага) - insta protect (защита флага на винтовках)
Синглплеерные режимы (только синглплеер!) - sp (борьба с монстрами на специально подготовленных для этого картах. Присутствуют выключатели, лифты, двери, точки респауна и другое) - dmsp (борьба с монстрами на мультиплеерных картах. Собираем боеприпасы и убиваем монстров)
Мой пример сингплеера:
Также отдельно стоит упомянуть режим coop-edit, специально предназначенный для редактирования карт в онлайне и оффлайне.
Игры - ну тут выбор небольшой, но всё же стоит упомянуть об этом: - Blood Frontier - Sauerbraten - Syntensity Ресурсы - движок поддерживает модели md2, md3 и md5. Такие виды моделей можно найти в таких играх как: Half-Life, Counter Strike, заканчивая версией 1.6, а также Quake 3 Arena
Для начала я расскажу о том, что же представляет из себя Cube Script. Cube Script - это узконаправленный игровой скриптовый язык программирования для игр, созданных на Cube Engine и Cube Engine 2. В первой версии движка (Cube Engine) он был не более чем инстументом для визуального моддинга , но с выходом второй версии он приобрел множество новых операторов и функций, которые уже можно было использовать для создания своей собственной игры без знания C++, так как именно на нём основаны первая и вторая версия движка. Именно поэтому вторая версия движка стала гораздо популярнее и обзавелась большим количеством поклонников, что с ходом времени образовало центральное коммунити для игр, созданных на движках Cube Engine и Cube Engine 2.
1. Основы. Создание простого меню.
Теперь изучим основы. Главные операторы содержат теги (чаще всего [ ], " ", ( ) ) без которых подфункции, которые записаны под главным оператором, не будут выполнены. Если есть открывающий тег, то, соответственно, должен быть и закрывающий тег. Изучим операторы для создания простого окошка с текстом и кнопкой закрытия:
Code
newgui "Имя gui" [ ] "Визуальное имя окна (если его нет, то им будет имя gui)"
Создаёт новое окно. Открывающий и закрывающий тег обязательны!
Code
guitext "Ваш текст здесь"
Создаёт новую строку, отображающую текст, который вы указали. Текст не переноситься и выравнивается по левому краю! Окно принимает ширину текста!
Code
guibutton "Имя кнопки" [действие]
Создаёт новую кнопку, при нажатии на которую происходит заданное вами действие. Действие совершиться только после того, как топуститься кнопка мыши. Правила выравнивания и переноса аналогичны оператору guitext.
Теперь заходим в Блокнот (да-да, именно в блокнот!) и печатаем это:
Когда вы писали этот небольшой скрипт у вас скорее всего возникла мысль: "А за что отвечает комманда "cleargui"?". Для тех, кто знает английский, это не будет проблемой. Эта команда закрывает все открытые окошки. После того как текст будет напечатан, нажимаем "Файл" > "Сохранить как..." и присваиваем файлу имя "test1.cfg", так как cfg является наиболее предпочтительным форматом для сохранения скриптов (потому что весит меньше txt), и сохраняем прямо в папке с Sauerbraten.
Но остаётся ещё один вопрос - как вызвать наше меню? Для этого мы выучим ещё несколько команд:
Code
bind "клавиша" [действие]
Эта команда при нажатии на указанную вами кнопку совершает указанное вами действие. Могут работать не все кнопки, так как для некоторых необходим код опроса клавиатуры!
Code
showgui "Имя gui"
Выполняет простое действие - показывает окно с заданным именем. Не может выполнять никакие другие операции!
Code
exec "адрес скрипта с полным именем"
Выполняет указанный скрипт. Если файл скрипта находиться в корневой папке, то пишется только имя и расширение!
Итак, возвратимся к нашему скрипту, который мы начали писать. Дописываем следующую команду:
Code
bind "b" [showgui "123"]
Сохраняем и запускаем Sauerbraten. В меню нажимаем "Options", переходим на вкладку "autoexec.cfg" и пишем там:
Code
exec "123.cfg"
Далее нажимаем "Save" и "Exec". После находим на клавиатуре кнопку "b" и смело нажимаем её. Перед вами появилось ваше окошко, которое вы создали! Поздравляю, вы сделали это! А теперь освоим несколько дополнительных параметров операторов, которые вы только что применили.
Code
guitext "Ваш текст здесь" "Адрес иконки"
Путь иконки начинается из папки packeges/icons/. Иконка должна иметь размеры 64х64!
Code
guibutton "Имя кнопки" [действие] "Адрес иконки"
Аналогично.
Создаём или скачиваем любую иконку в формате jpeg, gif или png и подставляем адрес в исходный файл. Запускаем, нажимаем "b" и радуемся.
::Логические операции::
::Логика в Cube 2::
Математические операторы.
Code
+ A B
Сложение. Пример: + $A $B
Code
- A B
Вычитание. Пример: - $A 5
Code
* A B
Умножение. Пример: * $B 10
Code
div A B
Деление. Пример: div 144 12
Code
mod A B
Деление с остатком, где результатом является остаток. Пример: mod $C 7
Условные операторы.
Единственными значениями будут выступать 0 и 1, как и в других ЯП. Оператор if.
Правила построения условия: if (сравнение) [действие, которое выполяется при 1] [действие, которое выполняется при 0]
Code
< A B
Если A равно B, то возвращается значение 1 (Yes), если нет, то 0 (No).
Code
< A B
Если A меньше B, то возвращается значение 1 (Yes), если нет, то 0 (No).
Code
> A B
Если A больше B, то возвращается значение 1 (Yes), если нет, то 0 (No).
Code
strcmp A B
Если A приблизительно равно B, то возвращается значение 1 (Yes), если нет, то 0 (No).
Пример:
Code
if ( < $A $B) [echo "$B is bigger"] [echo "I don't know"]
Сообщение отредактировал CrazyDazeGrout - Суббота, 06 Марта 2010, 21:07
Сделай мануал по добовлению новых моделей в игру, в том числе и анимацию к ним.
Добавлено (13.04.2010, 19:56) --------------------------------------------- Вот еще вопрос, возможноли после окончании разработки игры, все фаилы какимто образом защитить от последующего редактирования?
Добавлено (15.04.2010, 17:04) --------------------------------------------- Народ, тема умерла? Кто тут вообще на этом движке работает?
Помомог? Ставь +!
Сообщение отредактировал SSaaMM - Вторник, 13 Апреля 2010, 19:55
Вопрос: а как сделать свой сервер в Сауре(на 2 игроков)? Чтобы карту делать не одному а сдругом? И никто чтобы не влез и не испортил. "Счастье для всех, даром, и пусть никто не уйдет обиженный!" - Рэд Шухарт ("Пикник на обочине", Стругацкие А. и Б.) ***
Извиняюсь за часто появляющиеся "оЧеПЯтки", виной тому моя невнимательность...
Сообщение отредактировал Eyks001 - Вторник, 05 Апреля 2011, 16:04
Блин, чувак, продолжи уроки пож. Да, я новичок, поэтому вопросы у меня иногда глупые...... Да, у меня действительно такой ник....... ...А я не знаю, почему по профилю мне 28 лет и я Адольф:-)...
Добрый день. Помогите, ребенок(7 лет) хочет создать игру и по просил помочь. Я со всем в это не понимаю, у нас обычный комп, знания на уровне пользователя, я не игрок а ребенку хочется помочь. Можно ли по порядку для чайников. Какую программу закачать....