|
Здравствуйте Гость ( Вход | Регистрация ) Доступ из РоссииДля сохранения достпа из России к сайту и форуму GBX
|
||||||||||||||||||||||||||||
| ripatti |
Вторник, 24 августа 2010, 19:11
Отправлено
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Регистрация: 16 нояб. 2009 Из: Уфа Пользователь №: 34 479 ![]() ![]() |
Привет всем))
Чуть больше недели назад стукнуло мне в голову скачать какой нить компилятор с либами под ндс, дабы что нить под эту самую ндс написать. После каноничного хелло ворлд решил написать простенький текстовый квест за пару дней. Пару дней в итоге растянулись раза в 4, а квест получился далеко не простеньким Результат моих трудов выкладываю здесь. Квест на английском. Сразу скажу что мой английский ужасен, как минимум в плане грамматики (а уж о литературности и речи не идет). Просто был больший человеческий влом рисовать и вставлять русский шрифт. Но, надеюсь, по контексту будет понятно о чем речь...)) Загрузить файл сюда у меня прав что-то мало, поэтому вот ссылка: http://rapidshare.com/files/414873564/cave_quest.rar UPD Скриншоты: UPD Исходники:
cave_quest_src.rar ( 30.72кб )
Кол-во скачиваний: 82Сообщение отредактировал ripatti - Вторник, 24 августа 2010, 23:53 |
![]() ![]() ![]() |
Ответов
| ripatti |
Пятница, 27 августа 2010, 02:05
Отправлено
#2
|
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Регистрация: 16 нояб. 2009 Из: Уфа Пользователь №: 34 479 ![]() ![]() |
> Хоть я никогда не писал квесты, но разве есть область, где метапрограммирование эффективнее ооп?
ООП - это квестовый движок. Который работает с множеством объектов, которые включают в себя скрипты. Ибо, извините, я не буду для каждого игрового условия создавать кучу объектов - мне проще просто написать парсер грамматики и вставить это все в объект. Далее, квестовый движок можно представить себе как виртуальную машину, в которую загружается весь игровой мир. В скриптах, конечно. А вот для создания скриптов почему бы и метапрограммированием не попользоваться? Ну вот например. В квесте есть одна комбинаторная головоломка (она баян, на самом деле Одно из подземелий генерится по карте. Ибо ошибиться в 30 комнатах кто с кем соединяется - раз плюнуть. И потом тестить все ето... Щщаз Кроме того, там есть еще одна такая фича как рандом. Например, в данном квесте некоторые головоломки и лабиринты генерятся случайным образом. Ну, думаю, тут все ясно UPD P.S. кто нить подскажет как нормально делать цитаты в фаст репли? Сообщение отредактировал ripatti - Пятница, 27 августа 2010, 02:06 |
| Chintoi |
Пятница, 27 августа 2010, 03:24
Отправлено
#3
|
|
Маньяк ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 366 Регистрация: 28 мая. 2007 Пользователь №: 22 437 ![]() ![]() |
QUOTE Ибо, извините, я не буду для каждого игрового условия создавать кучу объектов - мне проще просто написать парсер грамматики и вставить это все в объект. Смысл ооп не в том, чтобы плодить объекты, а в том, чтобы сокращать количество кода и увеличивать структурированность и переносить логику в компайл-тайм. 20 КБ на контент и 80 КБ на логику в юзер оутпут приложении это глаза на лоб как нерационально. QUOTE Далее, квестовый движок можно представить себе как виртуальную машину, в которую загружается весь игровой мир. В скриптах, конечно. А вот для создания скриптов почему бы и метапрограммированием не попользоваться? Твоя машина - проц. приставки, который недалеко ушел от машины тьюринга, и задача инженера - наиболее рационально её использовать. Добавлять дополнительные прослойки логики почти всегда нерационально. Рационально разделять логику на составные части, тогда выявляется целая куча кода, без которой просто дышать легче. QUOTE Ну вот например. В квесте есть одна комбинаторная головоломка (она баян, на самом деле Если ты не пишешь числа непосредственно, это не значит что их нет. Вот готовое обобщенное решение задачи. class state{ quest_type1 property1; quest_type2 property2; ... quest_typen propertym; integral_type summ_method(){...} } container<state> all_states; for(int i = 0; i < 1024; i++){ state st = {p1(i), p2(i),..., pn(i)}; all_states.push(st); } Никаких движков, минимум оверхеда в байтах и рантайме, и, главное, в программерском коде. QUOTE Одно из подземелий генерится по карте. Ибо ошибиться в 30 комнатах кто с кем соединяется - раз плюнуть. И потом тестить все ето... Щщаз Слышал про бинарные деревья? http://en.wikipedia.org/wiki/Maze_generation_algorithm И еще STL контейнер map. QUOTE Кроме того, там есть еще одна такая фича как рандом. Например, в данном квесте некоторые головоломки и лабиринты генерятся случайным образом. Ну, думаю, тут все ясно В конструкторе глобального объекта и сгенерировать все. Даже с полным рандомом в компайл тайме большая часть будет готова. QUOTE P.S. кто нить подскажет как нормально делать цитаты в фаст репли? [QUОTE]...[/QUОTE] Сообщение отредактировал Chintoi - Пятница, 27 августа 2010, 03:40 |
Posts in this topic
ripatti cave quest Вторник, 24 августа 2010, 19:11
Cluster Ура, ещё один русский разработчик :)
Чуть попозже ... Вторник, 24 августа 2010, 19:14
ripatti писал на C++, юзал devkitPro и libnds Вторник, 24 августа 2010, 19:16
GDomain Скинь шоты) интересно посмотреть)
та и неначем) Вторник, 24 августа 2010, 20:54
ripatti добавил шоты Вторник, 24 августа 2010, 21:37
p0nt Английский действительно ни о чем. А так я бы поиг... Вторник, 24 августа 2010, 22:05
todeskampf мдэ, онглийский просто шикарен.
Опустив весь оста... Вторник, 24 августа 2010, 22:10
ripatti Я в первую очередь работал над игровой механикой.
... Вторник, 24 августа 2010, 23:26
Chintoi
0_0
100 000
сто тысяч символов.
и ни одного прави... Четверг, 26 августа 2010, 02:20
andronidze Тогда исходники давай :) Вторник, 24 августа 2010, 23:37
ripatti Добавил исходники.
Мне не жалко :D Вторник, 24 августа 2010, 23:54
ripatti Что, совсем ни одного?Т_Т
Вообще говоря там куча ... Четверг, 26 августа 2010, 03:21
Chintoi
Хоть я никогда не писал квесты, но разве есть обл... Пятница, 27 августа 2010, 00:32
boulgin
пользуйтесь пунктом ''reply прямо под со... Пятница, 27 августа 2010, 03:14
ripatti
Собственно для этого я парсеры и засунул туда. ... Пятница, 27 августа 2010, 04:29
Chintoi открываю код...
facepalm-facepalm-faceplam-facepla... Пятница, 27 августа 2010, 06:31
ripatti Да, про автоперенос строки я действительно ступил ... Пятница, 27 августа 2010, 07:05
Chintoi
Ты уверен что язык, которому не первый десяток ле... Пятница, 27 августа 2010, 09:22
andronidze Пацаны, я вам травмы нанесу - чо на человека набро... Пятница, 27 августа 2010, 09:30
Chintoi
Предложи что-нибудь лучшее Пятница, 27 августа 2010, 09:33
ripatti Охохох... Там не один лабиринт и генерятся они по-... Пятница, 27 августа 2010, 10:10
ripatti Хех)) Мне интересно - кто нить правит текст? Ну, я... Воскресенье, 19 сентября 2010, 07:21![]() ![]() |
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
| Упрощённая версия | Сейчас: Вт., 27 окт. 2026, 02:15 |

Вторник, 24 августа 2010, 19:11














