LINUX.ORG.RU
ФорумTalks

[Философ-тред] Оккама не работает...


0

2

«Не следует привлекать новые сущности без самой крайней на то необходимости»

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

В общем делаю тест-приложение для фреймворка. Создал карту (платформер), на ней бегает человечек.

Ступени развития программы по убыванию и очевидности решения.

Шаг 1. Просто рисовал тайлы, состоящие из примитивов согласно карте.

Загрузка процессора - 99% даже в статик-варианте.

Шаг 2. Заранее сгенерировал тайлы и рисовал их копированием блоков памяти.

Загрузка процессора - 50% (все еще не приемлемо).

Шаг 3. Создал сложную систему хеширования неизмененных элементов карты через двойной буфер с учетом модифицируемости карты.

Загрузка процессора - 15% (пойдет).

Шаг 4. Добавил систему освещения. Все уровни рассчитываются реал-тайм (самый простой и очевидный вариант).

Загрузка процессора - 99%.

Шаг 5. Захешировал неизменные освещенные участки, просчитывая изменение уровня освещенности только при условии модификации блока и его окружения.

Загрузка процессора - 18%.

http://img683.imageshack.us/img683/756/58856691.png

__________________________________________

Вопрос - почему принцип Оккама не работает? Почему самым лучшим решением не является самое простое?

Если то, что на картинке, хоть как-то ощутимо грузит процессор, то ты явно делаешь что-то не так. Возможно, не ограничивается частота обновления экрана или ошибка во взаимодействиях потоков.

note173 ★★★★★
()

ПОтому что принцип Оккама применяется для объяснения природы вещей, а не для создания вещей. К тому же, про необходимость там не просто так сказано.

Axon ★★★★★
()

Вопрос - почему принцип Оккама не работает? Почему самым лучшим решением не является самое простое?

Потому что железо кривое. Современный компьютер - костыль на костыле.

vurdalak ★★★★★
()

Давайте договоримся о том,

что «наивный» — это не всегда «простой» в плане реализации.

shimon ★★★★★
()
Ответ на: комментарий от stevejobs

>Deus Ex: Human Revolution. Графика трехлетней давности даже на максималках, тормозит ппц на i7+r5870, сэйвы грузятся по минуте. И чо? Все схавали.

Справедливости ради следует отметить что культовый DeusEx 1 тоже тормозил ппц как. В него все в режиме 640х480 играли.

Absurd ★★★
()

facepalm.svgz. Явное непонимание бритвы Оккама.

Deleted
()

«Бритва Оккама» - просто унылый способ придать «вес» своим словам не более, это тупая тавтология. Как в предупреждении с рекламы пива «чрезмерное употребление пива вредит ...». Конечно вредит, оно же чрезмерное, чрезмерное употребление воды вообще убивает, были случаи =/

theos ★★★
()
Ответ на: комментарий от Sadler

Если двумерная игра не работает на 256 Мб RAM (судя по первому посту - имеем дело таки с двумерной) из-за графики - программисты - криворукие лентяи.

Deleted
()
Ответ на: комментарий от vurdalak

И даже это не отменяет тех фактов, что:

1. ТС явно сделал криво, если оно тормозит

2. ТС явно не имеет никакого понимания принципа, который он пытается отрицать.

А современное железо - оно внутри некрасиво, но оно работает, и хорошо работает, несмотря на ужасные нарушения принципа Оккамы.

Deleted
()

Тред особо не читал, но понял что зафакали OpenGL. Ну и за это вас и покарает бог IT в 21 веке

vertexua ★★★★★
()

> «Не следует привлекать новые сущности без самой крайней на то необходимости»

Вопрос - почему принцип Оккама не работает?

Ответь на вопрос: снижение нагрузки на процессор было крайней необходимостью или не было?

runtime ★★★★
()
Ответ на: комментарий от Deleted

> Если двумерная игра не работает на 256 Мб RAM (судя по первому посту - имеем дело таки с двумерной) из-за графики - программисты - криворукие лентяи.

Уровень умения программировать для игры второстепенен, если не третьестепенен. Всё решают дизайнеры, сценаристы, разного рода маркетологи-продавцы и прочее. Не обязательно, чтобы код был шедевром.

Sadler ★★★
()

Почему самым лучшим решением не является самое простое?

Мне кажется, самым лучшим решением является самое элегантное, но в то же время, простое решение.

bk_ ★★
()
Ответ на: комментарий от AlexCones

Это уже интуиция - внутреннее чутье. Вот, например, многие люди чувствуют элегантность концепции UNIX по сравнению с Шиндовс. Это - как пример «чутья элегантности».

bk_ ★★
()
Ответ на: комментарий от bk_

>Это уже интуиция - внутреннее чутье.

Ок, вы считаете элегантным «Квадрат» Малевича, описывая элегантность его линий и геометрического построения, а меня тошнит от абстрактного искусства. Кто из нас прав?

AlexCones ★★★
() автор топика
Ответ на: комментарий от Sadler

Всё решают дизайнеры, сценаристы, разного рода маркетологи-продавцы и прочее. Не обязательно, чтобы код был шедевром.

Конечному пользователю код пофиг - не пофиг только, если оно не работает / тормозит / глючит / ест много памяти / хочет крутую видеокарту. По этому критерию, 1 Гб для двумерной игры делает ее практически неюзабельной (конечно, ситуацию резко меняет оригинальность игры, но, судя по скринам, сабж не особо оригинален).

Deleted
()
Ответ на: комментарий от Deleted

>судя по скринам

Зря судите по скринам. Те текстуры, который есть сейчас набрасывались на скорую руку. Тем более, что 95% значений я делаю через константы, так то я могу поменять практически все окружение, изменив одно значение.

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

> Тем более, что 95% значений я делаю через константы, так то я могу поменять практически все окружение, изменив одно значение.

Измени константу «Crysis-mode».

Те текстуры, который есть сейчас набрасывались на скорую руку

Нет ничего более постоянного, чем временное.

Sadler ★★★
()

как бы.. принцип оккама не догма, а лишь руководство к действию. но даже так... у тебя ведь необходимость-то есть? есть. вот ты и плодишь сущности.

AndreyKl ★★★★★
()

ну и да, ТС, принцип оккама - это абсолютно бездоказательное утверждение. это просто некий императив, который, как кажется, обычно неплохо работает (если ты подгонишь условия под результат, да). но не более того.

AndreyKl ★★★★★
()

ну и да.. сам оккам юзал этот принцип для доказательства бытия божьего (оккам был монах). так что странно ждать от изначально неработающей вещи нормальной работы :)

(хотя императив мощный, чего уж тут говорить).

AndreyKl ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.