|
Здравствуйте Гость ( Вход | Регистрация ) Доступ из РоссииДля сохранения достпа из России к сайту и форуму 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, 04:29
Отправлено
#2
|
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Регистрация: 16 нояб. 2009 Из: Уфа Пользователь №: 34 479 ![]() ![]() |
QUOTE Смысл ооп не в том, чтобы плодить объекты, а в том, чтобы сокращать количество кода и увеличивать структурированность и переносить логику в компайл-тайм. 20 КБ на контент и 80 КБ на логику в юзер оутпут приложении это глаза на лоб как нерационально. Собственно для этого я парсеры и засунул туда. Насчет соотношения 20/80 - это только игровой текст (ага, именно тот, который у меня грамматически полностью неверен) добавьте сюда 10 скриптовых условий и 10 для действий, завернем все это в связывающий их код - еще 10. Т.е. на движок и генераторы - 50. Нормально, имхо. QUOTE Твоя машина - проц. приставки, который недалеко ушел от машины тьюринга, и задача инженера - наиболее рационально её использовать. Добавлять дополнительные прослойки логики почти всегда нерационально. Рационально разделять логику на составные части, тогда выявляется целая куча кода, без которой просто дышать легче. Угу... может мне еще текстовый квест на ассемблере написать чтобы переходы выполнялись не за 15мс, а за 1?=_= Оно рисует дольше чем работает моя виртуальная машина. В любой программе пишется наиболее приемлемый код по соотношению "скорость/время написания". В моем случае такой подход полностью оправдан. QUOTE Если ты не пишешь числа непосредственно, это не значит что их нет. Вот готовое обобщенное решение задачи. Я сделал абсолютно то же самое, что вы мне сейчас написали (если что - вы написали генератор состояний). То есть представил числа в понятиях квестового движка. Там прикол просто в том, что если бы он знал что такое число - состояние бы потребовалось одно QUOTE Слышал про бинарные деревья? http://en.wikipedia.org/wiki/Maze_generation_algorithm Ну вот в квесте у меня реализовал рандомный Крускал. Правда, там бинарные деревья как то не нужны... QUOTE И еще STL контейнер map. Вы меня утомляете=_= Хватит меня троллить QUOTE В конструкторе глобального объекта и сгенерировать все. Даже с полным рандомом в компайл тайме большая часть будет готова. Генерация всего мира происходит в течение тех 3-4 секунд, пока висит сообщение "Loading...". Это вполне приемлемо по производительности. Если бы оно генерилось хотя бы дольше 10 секунд, то, конечно же, пришлось бы отделять рандомные объекты и все остальные и потом перегенерировать только рандомные. Или даже еще круче извращаться. Но у нас 3-4 секунды. Так что зачем создавать себе геморрой? UPD Ухаха, крутые цитатки Сообщение отредактировал Kir - Пятница, 27 августа 2010, 10:17 |
| Chintoi |
Пятница, 27 августа 2010, 06:31
Отправлено
#3
|
|
Маньяк ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 366 Регистрация: 28 мая. 2007 Пользователь №: 22 437 ![]() ![]() |
открываю код...
facepalm-facepalm-faceplam-faceplam-raaaage QUOTE Нормально, имхо. Нет. Абсолютно. QUOTE Собственно для этого я парсеры и засунул туда. Насчет соотношения 20/80 - это только игровой текст (ага, именно тот, который у меня грамматически полностью неверен) добавьте сюда 10 скриптовых условий и 10 для действий, завернем все это в связывающий их код - еще 10. Т.е. на движок и генераторы - 50. У тебя уходит целая куча сил на оформление твоего образа мыслей. Того, чего пользователь никогда, никогда, никогда не увидит. Я прошелся по твоему сорсу, стерев все переводы строк, табы и пробелы. Количество кода сократилось на... 16.4%. Это 18 000 бесполезных нажатий на клавиатуру. Стоило один раз написать принт с автоматическим переносом строк (4 строчки), и можно было бы набирать текст просто как текст - без переплетения с синтаксисом яп и логикой - без ручного перевода строк, отступов, кавычек. QUOTE Угу... может мне еще текстовый квест на ассемблере написать чтобы переходы выполнялись не за 15мс, а за 1?=_= Я не советую стирать ВСЕ уровни логики, я советую выбросить ненужные. И я не процессор жалею, а то, как такая дикая способность набирать текст как у тебя тратится вникуда. QUOTE Оно рисует дольше чем работает моя виртуальная машина. В любой программе пишется наиболее приемлемый код по соотношению "скорость/время написания". В моем случае такой подход полностью оправдан. Любая машина делает одно и то же, если результат один. Вопрос в том как она это делает. Можно посчитать 2x2 за одну инструкцию, а можно четыре дня писать для этого исходник с тысячей строк. Виртуальная машина - это как играть в футбол на льду, чесать ухо через голову и ездить на внедорожнике по гоночному треку одновременно. Это оправдано только тогда, когда по-другому никак. Например, когда нужно запускать один код под разными операционками. QUOTE Ну вот в квесте у меня реализовал рандомный Крускал. Правда, там бинарные деревья как то не нужны... Они там есть, ты просто их так закопал, что не знаешь где они. Любой плоский лабиринт наиболее коротко представляется бинарным деревом. См. изоморфизм. QUOTE Генерация всего мира происходит в течение тех 3-4 секунд, пока висит сообщение "Loading...". Это вполне приемлемо по производительности. Тогда зайди в ранний тред про игры на псп и посмотри на количество нытья по поводу того, что на дс вообще нет надписи Loading. QUOTE Если бы оно генерилось хотя бы дольше 10 секунд, то, конечно же, пришлось бы отделять рандомные объекты и все остальные и потом перегенерировать только рандомные. Если писАть правильно, то все что возможно, автоматически захардкодится. QUOTE Или даже еще круче извращаться. Но у нас 3-4 секунды. Так что зачем создавать себе геморрой? Куда уж круче извращаться? QUOTE UPD Ухаха, крутые цитатки Наверное не нужно было копипастить как обычно, а набрать одно слово самому. С английским у тебя отлично. Знаешь все необходимые конструкции, словарный запас хороший, но нет представления об английских частях речи, предлогах и по мелочи. |
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
ripatti > Хоть я никогда не писал квесты, но разве есть... Пятница, 27 августа 2010, 02:05
boulgin
пользуйтесь пунктом ''reply прямо под со... Пятница, 27 августа 2010, 03:14
Chintoi
Смысл ооп не в том, чтобы плодить объекты, а в то... Пятница, 27 августа 2010, 03:24
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














