• Это вообще люди делают?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Люди и стадион сделаны с софте подобном Autodesk 123D
    Машинка за исключением экрана с wareframe рендером тоже (на экране с wareframe просто замоделена).
    Часть задников сделана текстурой на скайбоксе.
    Часть людей - плоскими спрайтами с текстурой.
    Переходы - горизонтальным размытием с рандомизированной силой в зависимости от y координаты.
    Глобусов таких кучу можно найти на https://threejs.org/

    В целом выглядит стильно, но это больше заслуга дизайнеров. В технологическом плане ничего революционного. Глобус так вообще жуть тормозит - можно было и оптимальнее сделать.
    Ответ написан
    3 комментария
  • Bullshit Web - чрезмерное загромождение сайтов десятками скриптов и модулей. Можно ли решить эту проблему?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    Изначально Web задумывался как набор страниц с гиперссылками. Прошло время, мир в целом начал постепенно деградировать, вместе с ним и интернет... Когда у большинства разработчиков появились мощные компьютеры и смартфоны, они задумались над тем, как-бы разгрузить сервер и перенести нагрузку на клиент а другим хотелось меньше работать и больше зарабатывать... Как-то так родилось понятие "web-приложение" коим и является львиная доля сайтов, они являются приложениями, которые выглядят как web-страницы...
    Можете смело говорить таким разработчикам в любых спорах по этому поводу, что тяжеловесные фреймворки и библиотеки, портят концепцию сети интернет. Какими-бы полезными они не были. Web, в текущем виде, НЕ предназначен для этого.
    Ответ написан
    1 комментарий
  • Куда поступать после 9 класса мобильному разработчику?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Функционал его крайне мал

    несколько кнопок и разные списки

    пока все логично
    Я уверен, что его скачают минимум 100к раз

    разрыв логики

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

    Game Maker точно никому не интересен, да и 9-ти классники которые умеют сделать "несколько кнопок" тоже не особо, тем более если они уверенны, что то что они сделали кому-то нужно.

    Мой совет - идите в 10-й класс и продолжайте глубже разбираться в том что делаете. Вы сверху зацепили тему, даже не погрузившись на 1-2% в тему, а уже считаете себя успешным разработчиком. Вы соберите 100k скачиваний, потом рассказывайте об этом.
    Ответ написан
    Комментировать
  • Как понимать бинарные файлы?

    reverse_kacejot
    @reverse_kacejot
    Junior C++ Developer, bachelor of Applied Math
    Как гласит страничка википедии для того же формата .3ds - "The first two bytes of the chunk are its ID". У каждого формата - свое бинарное представление со своими чанками. Типичным примером могут быть исполнимые файлы Windows - PE и для Linux - ELF. Для ELF-файлов есть хорошая спецификация, которая объясняет какие чанки бывают, какие у них заголовки, какие поля у заголовков, какой размер у чанком (если он не переменный).
    Еще есть spool файлы принтеров - у них тоже своих заголовки.

    Из общего, что можно вынести:
    В бинарном представлении информация не хранится в голом виде, а чаще всего обернута в блоки с заголовками. У заголовков могут быть идентификаторы (как те циферки, о которых ты спросил), размер блока и другая вспомогательная информация, которая зависит от спецификации заголовка.

    Обещанные ссылки на спеки бинарей:
    ELF - Executable and Linkable format
    EMFSPL
    EMF
    PE

    Вот нашел свой парсер секций для Portable Executable
    #include <stdio.h>
    #include <windows.h>
    
    #define RTN_OK 0
    #define RTN_FAILURE 1
    
    const size_t expected_count = 1;
    
    char* read_file_name(int argc, char** argv);
    
    int main(int argc, char** argv)
    {
    	// Parsing command line args
    	char* file_name = read_file_name(argc, argv);
    	
    	// Opening our executable
    	FILE* portable_executable = fopen(file_name, "r");
    
    	// Reading dos header
    	IMAGE_DOS_HEADER dos_header_buffer;
    	fread(&dos_header_buffer, sizeof(IMAGE_DOS_HEADER), expected_count, portable_executable);
    
    	// Setting offset for reading PE header
    	fseek(portable_executable, (long)dos_header_buffer.e_lfanew, SEEK_SET)
    
    	// Reading signature field from PE header
    	DWORD signature = 0;
    	fread(&signature, sizeof(DWORD), expected_count, portable_executable);
    
    	// Reading file header
    	IMAGE_FILE_HEADER file_header_buffer;
    	fread(&file_header_buffer, sizeof(IMAGE_FILE_HEADER), expected_count, portable_executable);
    
    	// Reading optinal header
    	IMAGE_OPTIONAL_HEADER optional_header_buffer;
    	fread(&optional_header_buffer, file_header_buffer.SizeOfOptionalHeader, expected_count, portable_executable);
    
    	// Get info about all the sections
    	for (int i = 0; i < file_header_buffer.NumberOfSections; ++i)
    	{
    		// Reading each section header
    		IMAGE_SECTION_HEADER section_header_buffer;
    		fread(&section_header_buffer, sizeof(IMAGE_SECTION_HEADER), expected_count, portable_executable);
    		
    		printf("Section name: %7s, Raw data size: %10d, Pointer to raw data: %10d\n",
    			section_header_buffer.Name,
    			section_header_buffer.SizeOfRawData,
    			section_header_buffer.PointerToRawData);
    	}
    
    	fclose(portable_executable);
    }
    
    char* read_file_name(int argc, char** argv)
    {
    	if (argc != 2)
    	{
    		return NULL;
    	}
    
    	return argv[1];
    }
    Ответ написан
    Комментировать
  • Как поместить все файлы в один exe?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Комментировать
  • Как теория графов применяется в программировании?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Прежде всего хочу заметить, что львиная доля программистов не имеют непосредственно дел с теорией и математикой. Можно быть успешным профессионалом, так никогда и не написав собственной реализации алгоритма Дейкстры и даже не имея представления о том, как он работает. Но всё же стоит хотя бы поверхностно познакомится с графами, так как это одна из основных структур данных. Сфера их применения очень обширна, часто это алгоритмы поиска решений - кратчайшего пути по маршруту, эффективного расположения дорожек на схеме, победной игровой стратегии и т.п. Реальный пример использования графов - это sea-of-nodes JIT-компилятора. JIT-компилятор строит граф потока данных и граф потока выполнения, в которых узлы - это инструкции программы, а рёбра - это порядок вызова инструкций и порядок присвоения данных переменным, потом ищет способы этот граф оптимизировать и по оптимизированному графу генерирует бинарный код.

    int average(int a, int b) {
      return (a + b) / 2;
    }

    average.png
    Ответ написан
    Комментировать
  • Как находить и участвовать в проектах на гитхаб?

    sim3x
    @sim3x
    Делаете работу
    В процессе находите ошибку в стороннем коде
    Находите ее источник
    Пишите багрепорт и тесткей
    Так как всем пофиг
    Сами фиксите баг
    Неделю стучитесь мейнтейнеру, чтоб он принял ваш пушреквест
    Он вас посылает, тк ето не баг
    Ответ написан
    10 комментариев
  • Что делают программисты на Unity целый день на работе?

    Vapaamies
    @Vapaamies
    Разработчик будущей ОС для ПК размером 250 МБ
    Любой программист в офисе 80-90% времени пьет кофе отлаживает код и возится с системой контроля версий и/или списком задач. А в промежутках между этими занятиями он пишет код.
    Ответ написан
    3 комментария
  • Как программисты "старой школы" пишут: while true или while 1?

    @haramba
    Почему вопросы о про битрикс такие тупые?
    Программисты старой школы ищут вариант не использовать while(true), а также не использовать без надобности continue и break.

    Читайте Подбельский "Программирование на языке Си",

    C Forever
    Ответ написан
    Комментировать
  • Что надо для того, чтобы игра не провалилась?

    opium
    @opium
    Просто люблю качественно работать
    Маркетинг хороший
    Ответ написан
    Комментировать
  • Какой выбрать стек для работы в GameDev?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Если цель -- это именно работа в компаниях уровня Близзард, то я бы советовал следующие:
    1) Поступить в технический университет в Мск или Спб (а ещё лучше в США или Европе), на специальность связанную с математикой, информатикой или разработкой ПО. Почему эти города? Всё просто: больше возможностей. Больше конференций и прочих мероприятий, больше компаний, ближе к развитым странам (привет программам по обмену студентами), да и уровень жизни в целом выше.
    2) Действительно учиться в этом университет и не забывать заводить полезные знакомства.
    3) Учить английский, желательно до уровня "свободно говорю".
    4) Начиная со второго курса ходить на летние стажировки в крупные и не очень компании, которые занимаются разработкой игр (если повезёт найти такие, если не повезёт, то подойдут любые другие). Рассматривать в том числе и международные компании. Этот пункт очень важен, пожалуй, он даже самый важный.
    5) Читать книги, которые вам перечислили (https://github.com/miloyip/game-programmer) и работать над своим проектом/проектами.
    6) Да, вам нужен С++, но это не основной навык, есть ещё немало составляющих, которые вы приобретёте проходя стажировки, читая книги и работая над своим проектом.

    Вообще, это универсальный набор советов, который можно применять для становления профессиональным разработчиком в любой отрасли, будь то игры, финансы, компьютерная графика и т.д. Если вам сейчас 16, то, следуя рекомендациям, годам к 25 у вас есть все шансы стать состоявшимся и востребованным специалистом.
    Ответ написан
    Комментировать
  • Video Background с видеo в 1,5 минуты и весом в 250мб. Как реализовать правильно и без глюков?

    Moskus
    @Moskus
    4. Убить дизайнера или послать куда подальше заказчика. Очевидно, что совершенно не всё, что хочет заказчик или дизайнер, возможно реализовать в имеющейся реальности условий.
    А если серьезно - замените видео слайд-шоу с переходами (cross-fade, например). Видео на фоне (да еще длиной в полторы минуты) - это все равно что анимационные обои в ОС - когда пользователь что-то делает, у него нет ни желания, ни возможности смотреть подобную хрень.
    Ответ написан
    Комментировать
  • Как сделать несколько условий в if и чтобы они все выполнялись?

    Самое логичное - вынести
    функционал который нужно исполнить в обеих независимо от результата
    из этих функций. Вы же так себе сайд эффекты делаете, из-за которых потом страдать будете.
    Ответ написан
    Комментировать
  • В чем различие между объявлением с new и без него?

    @Mercury13
    Программист на «си с крестами» и не только
    ПОЛОЖЕНИЕ В ПАМЯТИ
    Без new: static/глобальная — в сегменте данных, локальная — на стеке. В сегменте данных память отводится при компиляции линковке, создать стековый фрейм — две команды процессора.
    С new: в куче. Управление кучей — довольно сложная задача, и если этих new много, программа может начать тормозить.

    ВРЕМЯ ЖИЗНИ
    Без new: объект живёт, пока выполнение находится в данном блоке. При выходе из блока автоматически срабатывает деструктор.
    С new: уничтожаем, когда хотим.

    ИМЕНОВАНИЕ
    Без new: объект привязан к своему имени.
    С new: объект безымянный (имя только у указателя). Потому возможны структуры данных переменного размера: динамические массивы, связанные списки, деревья и прочее.

    РАЗМЕР
    Без new: задан при компиляции. То есть массив на 10 позиций, и точка, больше — только перекомпиляцией.
    С new: произвольный.
    Ответ написан
    Комментировать
  • Почему компьютер не включается с первого раза?

    @pfg21
    ex-турист
    поменяй электролитические кондеры в блоке питания и на мат.плате. похоже на них.
    скорей всего высохли и пока не "прогреются" БП не выдает сигнал "хорошее питание" - комп не запускается.
    Ответ написан
    Комментировать
  • Где найти новые детерминированные игры с полной информацией?

    @Mercury13
    Программист на «си с крестами» и не только
    Есть разумеется.
    18 век: https://en.wikipedia.org/wiki/Agon_(game)
    19 век: https://ru.wikipedia.org/wiki/Реверси
    20 век: https://ru.wikipedia.org/wiki/Перебрось_мостик
    20 век: https://ru.wikipedia.org/wiki/Гекс
    20 век: https://en.wikipedia.org/wiki/Quoridor
    21 век: https://ru.wikipedia.org/wiki/Улей_(игра)
    21 век: https://ru.wikipedia.org/wiki/Khet

    Почему таких игр крайне мало?
    1. Мы автоматически отбрасываем часть позиций как неперспективные — потому, чтобы обеспечить ту же просчитываемость, ДИсПИ должна быть намного богаче тайной или случайной. Некоторые механики придётся отбросить, поскольку, например, заимствованием стратегии доказывается, что первый выигрывает.
    2. Из двух игроков разной силы один выигрывает с вероятностью, стремящейся к 100%, игра быстро теряет интерес. А ведь как важен такой интерес для новой игры, которая пока продвигается…
    3. Продвигается исключительно гиками: сложно сыграть, например, папе с дочкой.
    UPD. 4. Крайне сложно сделать, чтобы компьютер косплеил человека. Другими словами, совершал ошибки, свойственные человеку, и при попытках подловить тупой алгоритм ходил как угодно, лишь бы по-другому.

    А насчёт шахмат — от первых упоминаний до современных правил прошло тысячелетие! Догадываетесь, какие плейтесты они прошли, чтобы из банального варгейма стать тем, чем они являются сейчас (хотя тоже, по всей видимости, были популярны в первую очередь у верхушки общества).
    Ответ написан
    5 комментариев
  • Правда ли что программистам навязывают определенные мысли?

    kotomyava
    @kotomyava
    Системный администратор
    Не прав. И в плане навязывания и в выводах. К тому же список довольно странный, часть мыслей верны, часть с потолка взяты.

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

    2. Всегда на стажировке платили. В любой области, и в программировании в частности. Конечно меньше, но меньше и вклад... Откуда такая мысль взялась у вас, я не понимаю. На том же фрилансе, тоже крайне не поощряется идея "работы за отзыв". Да и с началом работы в профессии это не связано, если уж так, скорее с началом работы на какой-то бирже. И обычно, те, кто так пытается делать не дорастают до нормальных рейтов...

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

    4. Опять же, я не знаю, где вы подхватили эту мысль. Она крайне вредна. И вам, и вашему потенциальному работодателю, кстати. Крайне не советую этим увлекаться: излишнее напряжение, и слишком большая концентрация на задаче серьёзно уменьшают вашу работоспособность. Умные работодатели, как раз, всячески гоняют работников за попытки работать после окончания рабочего дня, и это разумная мера...
    Ответ написан
    3 комментария
  • Зачем писать в ООП стиле в JS?

    zolt85
    @zolt85
    Программист
    Из Википедии:

    JavaScript — мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили. Является реализацией языка ECMAScript.


    Т.е. люди так пишут, потому что язык им это позволяет.
    Эта тема очень широка и глубока. Вас никто не заставляет писать в каком-то определенном стиле. В том же "Си с Крестами" Вы вполне можете писать императивно-функциональный код. У Вас будет точка входа в методе main, а дальше творите что хотите. Но есть одна небольшая проблема - этот код кроме Вас никто не будет понимать и принимать. Именно по этому в разработке ПО (заметьте не в языке программирования, а именно в ремесле разработки ПО) появляются такие вещи, как шаблоны проектирования, code convensions и code style. Людям приходится договариваться, находить оптимальный для себя вариант общения через код. Даже если Вы работаете один, Ваша команда состоит как минимум из двух человек - это Вы, и Вы в будущем. И написав лапшу из последовательного вызова функций Вы подкладываете огромную свинью себе в будущем. Почитайте Боба Мартина "Чистый код", он там не плохо на эту тему размышляет.

    P.S.
    Да, сейчас доминирует ООП парадигма, да она не идеальна, но это то, что понимают большинство вменяемых разработчиков.
    Ответ написан
    Комментировать
  • Как делается анимация в играх?

    @svolch
    Самая распространенная - покадровая.
    Просто как в мультфильмах.

    Форматы с поддержкой анимации - не нужны.
    Так как если анимация связана с определенными действиями - он кадры должны сменяться не как попало, а по определенной логики.

    Если же кадры должны просто сменяться подряд - вполне достаточно и зацикленного видео.

    Но чаще всего используют просто один большой файл, в который вкраплены кадры.
    sam_gfx.png
    Ответ написан
    Комментировать