Четверг, 18 Апреля 2024, 03:55

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Программирование » Basic » Dark Basic (DB\DB Pro)
Dark Basic
ЗлодейДата: Воскресенье, 23 Мая 2010, 22:56 | Сообщение # 1
частый гость
Сейчас нет на сайте
Очень странно, что никто не создал эту тему до меня.
И так, коротко о...

Начнём с того, что тёмный басик (Тёмный бесик, Dark basic) никак не связан с тёмной академией smile
Тёмный Басик в народе принято называть [strike]Дарт[/strike]Дарк Бейсик, или проще ДБ.
Перед вами самый лёгкий язык программирования в мире, ибо синтаксис его чрезвычайно прост, однако его возможности строго ограничены, в результате чего, написать на нем игру сложно из-за того, что код (не смотря на всю свою лаконичность получается всё равно слишком длинным) а разные куски когда в отдельных файлах он не поддерживает.

И так, лучшее что можно сделать на ДБ это 3д демку игры типа Final fantasy 7-9 (демо боёвки, демо карты мира, демо пары локаций) или мини игру (так же в 3д)

В этой статье я научу вас как примерно работать в DB и что вообще входит в основу программирования на нём.

Любой код начинается с 3х слов:

Sync – синхронизация событий программы с картинкой на экране
Sync rate – частота сокращений экрана (по умолчанию вводим всегда 30 чтоб ФПС работал нормально)

Далее идёт Do – основной цикл
Всё, что после Do будет до посинения повторяться. Т есть уже сам процесс игры мы пишем туда.
Перед Do мы будем писать начальные настройки игры (расставлять объекты, текстурировать их и. т. д.)

В конце когда пишется Sync (делает синхронизацию циклической (необходимо)) за тем Loop (чтоб повторялось)

Вот так выглядит пустая програама на ДБ:

Sync on
Sync rate 30
Do
Sync
Loop

Теперь можем создать сферу.
Добавляем make object sphere 1,100
Создаём объект сферу под номером 1 (номер можно вводить любой, это имя объекта)
100 – это размер. Когда в игре только 1 объект – размер тоже не важен.

Sync on
Sync rate 30
Make object sphere 1,100
Do
Sync
Loop

Задаём переменную по оси Y

Ay# = Object angle Y(1)
Аy# - переменная, по которой будет прослеживаться угол поворота нашей сферы.
Object angle Y(1) – Вращение объекта по оси Y в зависимости от изменений в переменной Ay# (в скобках указан номер объекта)

Sync on
Sync rate 30
Make object sphere 1,100
Do
ay# = Object angle Y(1)
Sync
Loop

Эту часть кода мы ставим после Ду, так как считывать переменную нужно будет постоянно.

-----------------------------------------------------------------
Ничего лучше вот этого на Дб написать нельзя.
----------------------------------------------------------------
Далее сделаем так, чтобы при нажатии кнопок: влево и вправо сфера вертелась:

Пишем:

If leftkey() = 1 – проверяет условия если нажата кнопка влево
If rightkey() = 1 – то же самое но с кнопкой вправо
После любого if идёт then
Также понадобится команда wrapwalue – приплюсовывает к переменной число.

Выглядит так:

If leftkey() = 1 then ay# = wrapwalue(ay#+5)
Соответственно
If leftkey() = 1 then ay# = wrapwalue(ay#-5)

Принято писать так, но я лично всегда пишу это страшное врапвэлью с ошибками и потому предпочитаю просто так
If leftkey() = 1 then ay# = ay#+5
Правда я не проверял, работает ли так)))

Вот что получилось:

Sync on
Sync rate 30
Make object sphere 1,100
Do
ay# = Object angle Y(1)
If leftkey() = 1 then ay# = wrapwalue(ay#+5)
If leftkey() = 1 then ay# = wrapwalue(ay#-5)
Sync
Loop

Но объект вращаться не будет
Нужно добавить вот такое: Yrotate object 1,ay# - оно заставит вращаться по оси и-грек.

Sync on
Sync rate 30
Make object sphere 1,100
Do
ay# = Object angle Y(1)
If leftkey() = 1 then ay# = wrapwalue(ay#+5)
If leftkey() = 1 then ay# = wrapwalue(ay#-5)
Yrotate object 1,ay#
Sync
Loop

Ну вот.

Теперь можно затекстурировать этот объект под глобус и будет типа глобуса))
Железная логика.

Для текстурирования нужно чтобы проект был сохранен и имел конкретный фолдер.
В фолдер скидываем картинку, на пример с текстурой планеты.
Пускай она зовётся 1.jpg

Load image “1.jpg”,1 – 1 после запятой – номер изображения.
Texture object 1,1 – текстурируем объект (номер объекта, номер текстуры)
Вот так:

Sync on
Sync rate 30
Make object sphere 1,100
Load image “1.jpg”,1
Texture object 1,1
Do
ay# = Object angle Y(1)
If leftkey() = 1 then ay# = wrapwalue(ay#+5)
If leftkey() = 1 then ay# = wrapwalue(ay#-5)
Yrotate object 1,ay#
Sync
Loop

ДБ славится своей лаконичностью, в отличие от С++ или Руби.
На нём можно делать не только 3д, но и 2д игры и демки.
В следующей статье о создании игр вы узнаете о функциях поподробнее.

Добавлено (23.05.2010, 22:56)
---------------------------------------------
Примеры уже созданых на нём игр:

Существует 2 версии ДБ: классик и про.
Всем рекомендую классик:
Как известно, в ДБ можно использовать 3д обхекты форматов: 3ds, x
3дс можно получить путём экспорта из 3д макса,
Х - тоже через макс, но уже через панда-конвертор.
В объектах строго должны быть отлажены точки привязки povot.

Вот яркие примеры ДБ классик игр, где используются объекты:

1) Эквилибриум (равновесие) знаменитая, игра-демка похожая на ФФ8, которую так долг оместал переплюнуть стармар, но так и не дописал свой код.., однако переплюнул по графике))
Игру создали несколько англоязычных разрабов, именующих себя командой Magic.
В самом деле очень красивая демка, вам предстоит побить могучего огра от лица паренька с двуручником по имени Широ [strike](не попсовое имя)[/strike]
Скачать можно тут:
http://rpg-maker.info/index.php?option=com_remository&Itemid=68&func=fileinfo&id=195

2)Тёмный Мир.
Игра, посвящённая приключениям великого шарика по мрачному средневековому миру фентези. Аж полная версия (по крайней мере до конца никто неё не дотерпел проходить) Очень сложные головоломки, хорошая физика.
Скачать тут: http://depositfiles.com/files/ln8cibivh

3) Тактическая игра: Элементальный мир.
Это моя игра, точнее демка, которую я написал 2 года назад. По идеи это должен был быть тактический фентези файтинг между 5 чародеями, с 2мя режимами история и игрок против игрока (с одного компа с одной клавы) но лень взяла своё и игра стала демкой smile
Нужно наступить на врага раньше чем он наступит на тебя.
Скачать - можно smile не смотря на свои достижения в программизме я пока не могу понять руби)

ССылка тут:
http://rpg-maker.info/index.php?option=com_remository&Itemid=68&func=fileinfo&id=196


Energia Project
allxumukДата: Понедельник, 24 Мая 2010, 09:06 | Сообщение # 2
старожил
Сейчас нет на сайте
Quote (Злодей)
Всем рекомендую классик:

ИМХО Pro-версия лучше wink


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
SpihexДата: Понедельник, 24 Мая 2010, 09:29 | Сообщение # 3
Моргающий Гемо-Брат
Сейчас нет на сайте
Quote (Злодей)
Принято писать так, но я лично всегда пишу это страшное врапвэлью с ошибками и потому предпочитаю просто так
If leftkey() = 1 then ay# = ay#+5
Правда я не проверял, работает ли так)))
Предпочитает делать так, но не пробовал.. это как понимать?

Объемно, понятно. Молодец.

Quote (allxumuk)
ИМХО Pro-версия лучше wink
У меня аналогичное ИМХО smile
ЗлодейДата: Понедельник, 24 Мая 2010, 10:32 | Сообщение # 4
частый гость
Сейчас нет на сайте
Моё имхо не согласно с вашими)) Ибо что-то глючит у меня ПРО. Хотя лицензия стоит... та самая за 1,500р...
И классик лицензия, ток за 1000р стоит. Вот классик не глючит.
А если работать с цельными объектами, то про почему-то некорректно читает привязку костей, так
что тут минус с отсутствием оных у классика - исчерпывается.

Однако подмечу что в про удобнее интерфейс!


Energia Project
SlavyanOOsДата: Понедельник, 24 Мая 2010, 11:22 | Сообщение # 5
Problems, developer?
Сейчас нет на сайте
Quote (allxumuk)
Тёмный бесик,

Бейсик!
Quote (Злодей)
Перед вами самый лёгкий язык программирования в мире, ибо синтаксис его чрезвычайно прост, однако его возможности строго ограничены, в результате чего, написать на нем игру сложно из-за того, что код (не смотря на всю свою лаконичность получается всё равно слишком длинным) а разные куски когда в отдельных файлах он не поддерживает.

Small Basic и Blitz легче, ИМХО.
SlavyanOOsДата: Понедельник, 24 Мая 2010, 11:22 | Сообщение # 6
Problems, developer?
Сейчас нет на сайте
А так - хорошие уроки!
nightmareДата: Понедельник, 24 Мая 2010, 12:56 | Сообщение # 7
2D Game Maker
Сейчас нет на сайте
Хмм...Позновательный FAQ,а сам язык програмирования не такой уж и легкий...Попробуй запомнить столько команд,нужно день учить. biggrin

Hi-Tech News Russia - новости, анонсы, обзоры из мира высоких технологий
ezhickovichДата: Понедельник, 24 Мая 2010, 13:15 | Сообщение # 8
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (nightmare)
Хмм...Позновательный FAQ,а сам язык програмирования не такой уж и легкий...Попробуй запомнить столько команд,нужно день учить.

Да ты что...
Что ж ты скажешь увидев C++...



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
nightmareДата: Понедельник, 24 Мая 2010, 13:25 | Сообщение # 9
2D Game Maker
Сейчас нет на сайте


Hi-Tech News Russia - новости, анонсы, обзоры из мира высоких технологий
ezhickovichДата: Понедельник, 24 Мая 2010, 13:28 | Сообщение # 10
[Великий и могучий хозяинъ]
Сейчас нет на сайте



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ЗлодейДата: Понедельник, 24 Мая 2010, 13:39 | Сообщение # 11
частый гость
Сейчас нет на сайте
Quote (nightmare)
Хмм...Позновательный FAQ,а сам язык програмирования не такой уж и легкий...Попробуй запомнить столько команд,нужно день учить.

Команды простейшие. Только школьник, не знающий латинского алфавита будет иметь трудности в их изучении, но я более чем уверен, что вы к таковым себя не относите?

Да FAQ писал сам, можно сказать придумывал на ходу.
С++ и DB это небо и земля.
В данном случае проще зарыться в землю...

Добавлено (24.05.2010, 13:39)
---------------------------------------------

Quote (SlavyanOOs)
Small Basic и Blitz легче, ИМХО.

Лично мне блиц показался сложнее. Он отказывался текстурировать объекты. А вот в ДБ таких проблем не возникло.
Возможно всему виной пиратский блиц и лицензионный дб...


Energia Project


Сообщение отредактировал Злодей - Понедельник, 24 Мая 2010, 13:38
nightmareДата: Понедельник, 24 Мая 2010, 13:45 | Сообщение # 12
2D Game Maker
Сейчас нет на сайте
Quote (Злодей)
Команды простейшие. Только школьник, не знающий латинского алфавита будет иметь трудности в их изучении, но я более чем уверен, что к таковым не относитесь?

Друзья,смайл в крнце моего высказывания вам не о чем не говорит? biggrin С английским все нормально,да и сам язык легкий в освоении,ведь каждый код-состоит не из 000x2241re92,и т.п,а с нормальных английскх слов. smile

Добавлено (24.05.2010, 13:45)
---------------------------------------------
Извените,а какие движки используют Дарк Бейсик?


Hi-Tech News Russia - новости, анонсы, обзоры из мира высоких технологий
ezhickovichДата: Понедельник, 24 Мая 2010, 13:52 | Сообщение # 13
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (nightmare)
а какие движки используют Дарк Бейсик

Тот который напишешь ты... ( мну к примеру ща пишет двиг на DarkGDK и ничего... )



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
nightmareДата: Понедельник, 24 Мая 2010, 14:01 | Сообщение # 14
2D Game Maker
Сейчас нет на сайте
Quote (ezhickovich)
Тот который напишешь ты...

Спс.
Вопрос:
1.Как создать интелект противнику?Задать ему команды,при условии,что они не будут повторятся.Возможно ли это на DarkBasik'e
1.Какую оболочку можно использовать для создания игры на Dark Basic'e?


Hi-Tech News Russia - новости, анонсы, обзоры из мира высоких технологий
ezhickovichДата: Понедельник, 24 Мая 2010, 14:11 | Сообщение # 15
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (nightmare)
Какую оболочку можно использовать для создания игры на Dark Basic'e?

Зы: вообще для него есть специальная оболочка... ( sorry - не помню название... )
Quote (nightmare)
Как создать интелект противнику?Задать ему команды,при условии,что они не будут повторятся.Возможно ли это на DarkBasik'e

для дыбасика есть платное расширение DarkAI ( читается "Дарк ИА" )



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ЗлодейДата: Понедельник, 24 Мая 2010, 14:11 | Сообщение # 16
частый гость
Сейчас нет на сайте
Quote (nightmare)
1.Как создать интелект противнику?Задать ему команды,при условии,что они не будут повторятся.Возможно ли это на DarkBasik'e

Возможно. Однако это очень долго. Просто нужно на переменных просчитать условия, которые вы хотите чтобы монстр соблюдал. У меня где-то в загажнике лежал туториал с простейшим ИИ для монстров. найду-выложу.

Quote (nightmare)
1.Какую оболочку можно использовать для создания игры на Dark Basic'e?

Можете конечно использовать целлофановую)) biggrin


Energia Project
ezhickovichДата: Понедельник, 24 Мая 2010, 14:21 | Сообщение # 17
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (Злодей)
целлофановую

полиэтилен...



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
КакашнягДата: Пятница, 04 Июня 2010, 11:39 | Сообщение # 18
был не раз
Сейчас нет на сайте
Считайте меня археологом smile я ковыряюсь в старых темах ^^

Для DB Classic есть DarkEDIT (если я правильно понял слово "оболочка")
Кстати, мне в 2002 году посчастливилось получить лицензионную русскую коробину Дарка. Там было первое издание DarkMATTER, Dark Basic: Архив примеров 1, а также сам Бейсик с патчем 1.13 для создания мультиплеера. И еще мануал на 240 страниц, полностью мною проглоченный... йопт, я из-за вас снова загорелся желанием сотворить что-нибудь wacko
...И уже качаю DBPro Online Free.
Аххх, скоро я сюда выложу какого-нибудь диабло-киллера

Serg1971Дата: Воскресенье, 27 Июня 2010, 12:41 | Сообщение # 19
Весёлый программист
Сейчас нет на сайте
DB Pro уделывает Classic на раз! В поздних версиях (у меня v 7.4) добавлено много команд по манипуляции 3D объектами - вектора, сложение и вычитание 3D матриц и т.д....Откомпиленный код конечно отстаёт от написанного на Си, но не на много. У меня в движке (Смотрите В разработке\Воздушные пираты) при стресс тесте было более миллиона поликов в кадре! И ещё можно было играть... Ну а классик дохнет уже при 5000 поли...

KornivalДата: Вторник, 20 Июля 2010, 15:34 | Сообщение # 20
The Witcher
Сейчас нет на сайте
Quote (Злодей)
Он отказывался текстурировать объекты

Никогда таких проблем небыло. Наверное ты чо-то неправильно делал.


Сообщение отредактировал Kornival - Вторник, 20 Июля 2010, 15:35
Форум игроделов » Программирование » Basic » Dark Basic (DB\DB Pro)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг