[конкурс в конце]правильность кода, решения, алгоритма или ещё какой хрени

590
25
108
Никогда бы не подумал что однажды здесь отпишусь. Ну да ладно.
@Agravaine :j велком, я думаю ты давно хочешь растерзать меня, но начну я) Ну и остальные, присоединяйтесь "тут" это можно ;)

На повестке дня: собственно сабж. Что важнее:
Скорость написания, имеется ввиду разные ЯП (python самый быстрый, лямбды конечно улучшили Java и scala вроде старается, но быстрее python просто ничего нет пока).
Скорость исполнения - это когда приходится использовать не HashMap, а например коллецию которая работает быстрее его по определению. (в C# на такое наткнулся, оказывается она ускорило мой алгоритм аж в 10 рез по поиску пути).
Его качество - сюда относится ООП и его как приемущества, так и недостатки (на каждый чих по классу)
И как вообще оценивать КОД.

Вот статья после которой я реально задумался что я делаю не так, почему мой код вычищен и сверкает круче моих лакированных башмаков, а игры в итоге нет или я устал её писать дальше. Как создать игру мечты, опубликовать её и не умереть в процессе. / Управление / Статьи / Игровая индустрия
Буду рад если почтете её, это от создателя движка Godot не хуже Unity или UE (поверьте мне на слово, его просто пока недооценили, но его версия 3.0.. просто бомба, скоро люди поймут почему).

Вы уже взрослые ребята, хватит играть в майн, пора встать на путь геймдев.
У меня ещё парочку ссылок в новогоднем мешке.
 
Последнее редактирование:
280
14
145
Вы уже взрослые ребята, хватит играть в майн, пора встать на путь геймдев.
Разработка некоторых модов для майна - тоже геймдев, майн выступает в роли движка.

Что ты имеешь в виду? Скорость написания или исполнения?
 
590
25
108
ну мы все тут на Java, поэтому видимо скорость исполнения. Но отличный вопрос, поэтому дайвайте обсуждать и это.
Скорость написания, имеется ввиду разные ЯП (python самый быстрый, лямбды конечно улучшили Java и scala вроде старается, но быстрее python просто ничего нет пока).
Скорость исполнения - это когда приходится использовать не HashMap, а например коллецию которая работает быстрее его по определению. (в C# на такое наткнулся, оказывается она ускорило мой алгоритм аж в 10 рез по поиску пути).
внёс в шапку
 
590
25
108
Разработка некоторых модов для майна - тоже геймдев, майн выступает в роли движка.
Согласен, но из-за него (из-за вашего и мной любимого Minecraft) меня отбросило на 10 лет и мне пришлось заново учится. Потому что мои знания оказались практически бесполезные для написания серверной части для сетевой игры подобной майну.
Я потратил почти 6 лет на изучение самих движков (Юнити 4 года, UE около 2х, libGDX который освоил почти сразу, но сеть никак не хотела работать быстро) и 4 года на сеть, чтобы написать свой сервер. При чем, на том же самом сетевом взаимодействии от Netty (я перепробовал и другие решения)
К слову сказать, мне 38. И мне уже даже не хочется создавать свои игры, свои моды и вовсе не от лени. Думаю вы знаете стариков (я и сам их встречал), мужики которые говорят, что в мои бы годы они достигли чего то значимого, а не вот это вот всё. Но к сожалению вынуждены работать слесарями на заводах, охраниками в барах, ну или просто работягами чью работу ценят лишь иногда. И я всё не понимал, а чё им мешает сделать то что они хотят.
И вот сейчас я начинаю понимать, что у "тела" тоже есть ресурс. Видимо я слишком часто им пользовался. Или загубил допингом (энергетиками). Я создам свои проекты, правда уже не своими руками (тогда мне было важно чтобы это сделал именно я, сейчас, без разницы). И всем этим, я хочу чтобы вы не тратили своё время зря, а ДЕЛАЛИ пока вам это делается.
 
Последнее редактирование:
280
14
145
Что важнее:
Скорость написания, имеется ввиду разные ЯП (python самый быстрый, лямбды конечно улучшили Java и scala вроде старается, но быстрее python просто ничего нет пока).
Скорость исполнения - это когда приходится использовать не HashMap, а например коллецию которая работает быстрее его по определению. (в C# на такое наткнулся, оказывается она ускорило мой алгоритм аж в 10 рез по поиску пути).
Его качество - сюда относится ООП и его как приемущества, так и недостатки (на каждый чих по классу)
Ну это классика.
1576769868929.png

Конечно, все пункты важны. Обычно, ты можешь выбрать только два, пожертвовав третьим. Думаю, хороший программист тот, который может правильно определить, чем пожертвовать в конкретной ситуации. Если твоему начальнику\заказчику надо что-то прям срочно, можешь немного пожертвовать красотой, но быстро сделаешь работающий продукт.
Если делаешь что-то для себя или для опенсурса, то можно покодить немного подольше, зато результат будет красивым и хорошо работать.
Я, в основном, жертвую временем написания, уделяя больше времени красоте кода.
 
590
25
108
И вот сейчас я начинаю понимать, что у "тела" тоже есть ресурс. Видимо я слишком часто им пользовался. Или загубил допингом (энергетиками). Я создам свои проекты, правда уже не своими руками (тогда мне было важно чтобы это сделал именно я, сейчас, без разницы). И всем этим, я хочу чтобы вы не тратили своё время зря, а ДЕЛАЛИ пока вам это делается.
Именно поэтому, я убежден что лучше говнокод который работает, чем рассуждать на тему что лучше и не сделать в итоге ничего(потому что не нашел хорошего решения или тупо не нашел ответа который бы тебя удовлетворил).

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

tox1cozZ

aka Agravaine
Модератор
7,393
468
2,286
Если для тебя это хобби и ты этим занимаешься в свободное время - почему бы не сделать это красиво и идеально?
Если ты это делаешь для заработка денег, то конечно лучше написать рабочий вариант и сдать работу, чем вылизывать каждую строку до идеального состояния и потратить в два раза больше времени.
 
1,127
39
257
@Agravaine :j
Разве не наоборот?:
"Если для тебя это хобби и ты этим занимаешься в свободное время - почему бы не написать рабочий вариант, чем вылизывать каждую строку до идеального состояния и потратить в два раза больше времени?
Если ты это делаешь для заработка денег, то конечно лучше сделать это красиво и идеально. "
 
590
25
108
обычно за это как раз не платять
это красиво и идеально
А для себя ты можешь его сделать любым, вот только... есть ли у тебя на это время (просто подсчитайте сколько вылизанных проектов у вас лежит в подвале никому уже не нужных и сколько вы времени потратили на их идеальность. И со временем, их число будет только расти).
Обычно работу я делал всегда, были прострелы, но заказ на то и заказ что ты его делаешь не просто так. Мотивация банальная и простая - деньги.
А для себя, вроде и не так важно (хотя должно быть точно также важно).
Нельзя быть одновременно заказчиком и исполнителем, но можно чередовать. Это называется самодисциплиной.
 
590
25
108
@GoogleTan красиво и идеально начинается от 20$/час. Я тут таких не встречал заказчиков, максимум что я видел это было 5$/час
за 20$/час хочется сделать его именно красивым и идеальным, уже хочется. А просить надо больше, хотя бы 40$/час. Вот тогда тебя купили с потрохами - это так называется.
 
514
14
119
Я тут таких не встречал заказчиков
И врятли встретишь. Что тут обычно за заказчики? Школьники, которые возомнили, что могу создать обалденный проект? Или люди, которые хотят что-то работающее и подешевле. Вот лично я. Я бы хотел сделать очешуенный сервер, но это хост использовать, платить за него и тд. В итоге я просто взял адекватное ядро, врубил DDNS и сервер для пары друзей по фану готов. Да не красиво, но быстро и бесплатно. Если создавать овер шикарный проект, то либо делать его красивым и дорогущий донат, либо дешовый и рабочий.
 
3,870
57
542
Не знаю, о чём вы тут спорите...
Я вот из статьи вынес нечто иное... Прототип!
То есть не надо делать ни красиво, ни идеально, пока это не играбельно.
Хорошая мысль делать именно игру! А не ресурсы к ней.
Над этим надо поразмыслить.
 
514
14
119
Я вот из статьи вынес нечто иное... Прототип!
Это полезно и необходимо. Для меня прототип, это когда я портировал свой мод на 1.14.4. Сижу, не выкупаю чо это и как это работает, но оно работает. А потом посмотрел на разные примеры, понял что к чему и прототип превращается в пре релиз, типа основа уже адекватно работает и понятно как, но некоторые фичи дорабатываются, играбельно но не завершено.

UP: это мой талант, сделать что-то рабочее не понимая как оно работает, примерно как и сдать курсовую 2015-го в 2К19-м не читая её)
 
590
25
108
это мой талант
меня тоже никогда не останавливало не понимание того как это работает. Да и вообще не знание того как это сделать. Амбиции всегда были выше крыши и именно благодаря им так высоко залез.
Сейчас на форумах постоянно вижу сообщения от школьников (это не прозвище, я подразумеваю возраст). Которые пишут тему по объединению в команды, типо мол одному сложно. И в основном пишут что проект будет исключительно для опыта. Они правы, но... если один ничего не умеет, то как бы потом не получилось что в итоге будет 10 чел которые не умеют и не хотят уметь.
Участвовал я примерно в 5и командах, 3и из которых основал сам (то есть был по сути руководителем). Ничего плохого в объединении не вижу, но не попытавшись сделать это самому и не достигнув в этом хоть чуть чуть какого то полезного прогресса, объединятся не стоит.

Теперь выложу вторую ссылку Обновление блока при изменении другого это пост @ロロロ , 10 дней обсуждали то как лучше сделать. Прошел уже месяц, и уверен, это были просто холивары и проект даже не начат.
Тут на днях видел какой то некропост тоже паренька который собрался делать и ему написали через полгода, как он там поживает. Тут не полгода прошло, ещё как то можно помочь парню. Это не стёб, это реальность того что.. есть например у меня такая черта, что если я знаю хотя бы теоритически как сделать, то руки сразу опускаются (я считаю что уже сделал) и не важно на сколько там гениальная идея, решение придумал - сделал. Прилипло. Не давайте этому прилипнуть и у вас. Что если код плох и вы не можете найти лучшего решения вы бросаете свой ХОРОЩИЙ проект. Не именно этот пост, но именно так хорошие идеи и тают. А могли бы приносить деньги своим авторам.

Надо всегда делать из того что есть, что есть под руками, чем вы обладаете сейчас, а не через 10 лет. Потому что таким макаром через 10 лет вы по прежнему ничего не будете уметь просто сидя сложа руки.
 
5,929
211
1,144
590
25
108
Dictionary из C# быстрее хэш-мапы из Java?
это касательно C#, Collection быстрее Dictionary, когда ты вкладываешь значение например 10, тебе надо найти значения которые меньше и вставить между тем что больше. Чтобы когда ты обратился к списку, тебе выдало именно ту что надо. Получается типо сортировка перед тем как положить значение(ключ) (код выложен в MSDN можно самому поглядеть как устроены коллекции). Ну а в Java код и так доступен в IntelliJ. В Java наверняка также, для каждой задачи есть способы и приёмы (списки и другие классы) которые будут работать и лучше и быстрее.

Если кому интересно про сам алгоритм Алгоритм A* — Викиконспекты
а тут полный набор всех вариантов Red Blob Games там есть даже вот такие крутецкие вещи ( при чём это не просто картинки, а финальный результат работы кода)


Тут человек о смысле жизни рассуждает!
😂
 
Последнее редактирование:
5,929
211
1,144
А, это похоже на сбалансированное дерево или вставку с сортировкой
 
590
25
108
Возможно. Я помню что мой выдавал 0.24 секунды, а самый быстрый был 0.08 (написан каким то чуваком на с++). Он использовал Jump, у меня реализация была без него.
Его есть два варианта, один поиск пути по графам, а второй по клеткам (когда поле чётко из клеток). Они существенно отличаются. У каждого удобнее использовать разные подходы.
То есть мне надо было бы использовать готовое решение, а я просто тратил своё время на проверку своей собственной гениальности)))
Очень многое из того что Вам потребуется уже кем то сделано максимально быстро и круто.
Люди из ассетов клепают готовые игры, и не смотря на то что там что-то не сочетается, получается всё равно играбельные варианты (не у всех конечно). Но прост, тут уж всё зависит от ваших рук, а не от знаний.
 
Сверху