• Как лучше сформировать класс Record?

    @majstar_Zubr
    C++, C#, gamedev
    Если у вас есть смонения, что в будущем обычным встроенным типом дело не ограничится, то предпочитайте класс.

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

    Если все же вы не уверены, то лучше оставить User, потому что так намерения выражены однозначнгти код понятнее, будет проще в будущем рефакторить
    Ответ написан
    Комментировать
  • Разработка онлайн игры?

    @majstar_Zubr
    C++, C#, gamedev
    Да, разобраться стоит, хотя бы по причине найти тот вид сетевого клиента, который потребуется, чтобы позже прийти к решению - какие требования должны быть к движку - там уже будете выбирать из целого зоопарка, либо перепишите протип на libgdx в минимальный движок.

    Все зависит от логики бекенда, потому что из коробки libgdx требует только:
    1) привязки к основным событиям контекста платформы, на которой запускается игра
    2) определённый игровой цикл
    Все остальное вы пишите сами.
    Ответ написан
  • Как новичку в IT поступить со своими большими идеями?

    @majstar_Zubr
    C++, C#, gamedev
    Ситуация типична. Выход один - взрослеть, называть вещи своими именами, наращивать компетенцию, приобретать опыт и контакты.

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

    Жизненно необходимо перестать строить воздушные замки и спрашивать советов "в интернетах", и начать делать прототипы. И для начала смените профессию.
    Ответ написан
    Комментировать
  • Prototype, правильно я понял, что он должен выглядеть примерно так?

    @majstar_Zubr
    C++, C#, gamedev
    Нет единого мнения по любому паттерну - так и должно быть, ведь они относятся к ООП, а не к конкретным языкам, имеющим свои идеомы.

    В целом - да, паттерн "встроен" в язык, т.к. можно определять конструктор копирования, но фактически функция-член clone() не нужна.
    Ответ написан
    Комментировать
  • Как вести версионирование semver в git?

    @majstar_Zubr
    C++, C#, gamedev
    Допустим, есть файл index.php в ветке dev внутри которого есть строка Version 1.0.0


    По оригинальной задумке, версия указывается tag'ом в release ветке, а не в коде. Tag есть свойство commit'а, так что тот, у кого доступ к release есть, может отметить версию в коде единолично. При релизе, коммиты из ветки release попадают не только в master, но и в develop.

    И у всех все хорошо.

    https://danielkummer.github.io/git-flow-cheatsheet...

    Про автоматические способы версиоирования - г таком не слышал, но возможно организовать автоматизированное версионирование только если придерживаться строгой конвенции по комментированию коммитов, если расширить своими тегами: https://habr.com/ru/company/yandex/blog/431432/
    Ответ написан
  • Какую программную среду использовать для обучения языку программирования C?

    @majstar_Zubr
    C++, C#, gamedev
    Вам подойдёт Geany. Это тестовый редактор, который с помощью макросов вполне может заменить IDE.

    Например, в команду Run можно добавить автоматический вызов статического анализа перед вызовом сборки make/cmake, добавить доп. кнопки и отдельные команды с разными флагами компиляции и прочее.

    IDE смотреть пока не советую, оно призвано автоматизировать наиболее рутинные операции, а пока навыков нет, то значит и автоматизировать нечего.
    Ответ написан
  • Почему прямоугольник не является экземпляром класса квадрата?

    @majstar_Zubr
    C++, C#, gamedev
    Дело в том, что в объектно ориентированном программировании обобщаются не понятия, а определённый набор функций, которые совокупно описывают/осуществляют модификацию каких-то логически связанных данных.

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

    С точки зрения ООП, наследование - это перенятие функциональности, но в случае с прямоугольником и квадратом перенятия функциональности нет, потому что площадь прямоугольника по одной стороне нельзя посчитать, а у квадрата нет второй стороны.

    Ромб от квадрата отличается тем, что у квадрат задаётся 1 углом, а ромб двумя.

    Эллипс от окружности тоже отличается сильно, просто окружность в графическом представлении есть частный случай определенной конфигурации данных, которые описывают эллипс. Но. Графическое представление - это уже за пределами ООП.

    ООП - инструмент для программирования в первую очередь, все сущности представляются относительно минимально необходимого обобщения поведения.

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

    Единственное что у них общее - они оба выпуклые прямоугольники, их можно вписать в окружность. Но если вы не собираетесь реализовывать для своего графического редактора поворот, вписывание в окружность, то не будет у вас причин вводить класс для выпуклых четерёхугольников в принципе.
    Ответ написан
    Комментировать
  • Как имитировать тап на экране по координатам?

    @majstar_Zubr
    C++, C#, gamedev
    Да, нужно подключиться через adb, https://developer.android.com/studio/command-line/... и например действовать как здесь:
    https://igor.mp/blog/2018/02/23/using-adb-simulate...

    На этом принципе, через adb работает примитивный удаленный доступ к экрану любого Android: https://marian.schedenig.name/2014/07/03/remote-co...
    Ответ написан
    Комментировать
  • Зачем мне использовать this, если есть замыкания?

    @majstar_Zubr
    C++, C#, gamedev
    Меньше кода - меньше ошибок;
    Меньше кода быстрее писать;
    Меньше кода проще понять;
    Использование конструкций языка по их непосредственному назначению лучше выражают намерения;
    Ответ написан
    Комментировать
  • Хорошие платные курсы геймдизайна на русском?

    @majstar_Zubr
    C++, C#, gamedev
    Такого нет. Возможно вам подойдут Русскоязычные курсы от dev2dev для старта.

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

    Так что кроме намерения снизить запрату геймдизайнераов в СНГ в этих курсах я не вижу.

    У меня системное видение открылось только после 20 книг по геймдизайну и спустя часов 70 видео с конференций gdc, devgamm и участия на гейм джемах, и конечно, спустя N прототипов.
    Хотя, если честно, геймдизанер, который не может в маркетинг и системный анализ это так себе геймдизанер, а на изучение и практику рекламного и и маркетинга услуг может год уйти. А системный анализ и продуктовый менеджмент - это тоже годик. Есть ещё сценарное дело, на него можно полгода потратить. А про математику , и про аналитику игр, я просто не буду упоминать, потому что если математику можно параллельно тренировать, то аналитику без маркетингового и продуктового бекграунда, а без самого игрового продукта даже смысла начинать изучать нет, аналитика проще всего в деле изучается.

    В общем и целом, геймдизайн - это междисциплинарная профессия, где в идеале нужно уметь все и фактически быть продюсером игры. И как можно понять, таких кадров выращивают, обучить всему "под ключ" нереально, потому что такой человек просто больше продюсером заработает, чем преподавателем геймдизайна :) .
    Ответ написан
    3 комментария
  • Есть ли сборник примеров/советов, обучающих С++ программированию?

    @majstar_Zubr
    C++, C#, gamedev
    Лично меня учит исходный код, который нахожу на github и в исходниках boost. По-другому не знаю как ещё.
    Мне кажется , что каждый, кто пишет на C++ считает, что у него навыки ниже среднего, лично мне только такие люди попадались. С книгами все не однозначно, потому что в них много опечаток, и даже ошибок, что не удивительно, если речь идёт о C++. Даже стандарт C++ без ошибок в компиляторе поддержать задача не тривиальная.
    В общем, спасение утопающих - дело рук самих утопающих.
    https://github.com/fffaraz/awesome-cpp
    Ответ написан
    4 комментария
  • Как найти единомышленников для проекта, или влиться в стартап?

    @majstar_Zubr
    C++, C#, gamedev
    Update: есть teamfinding.com и develteam.com. Однако там только органический трафик.
    В основном знакомства происходят в группах бизнес-инкубаторов и стартап-акселлераторов в социальных сетях, на сайтах (и самих) хакатонах/джемах и других мероприятиях, и в группах в соцсетях.

    Их нужно искать так же, как ищут маркетологи и продавцы на рынке покупателей.
    Да везде их надо искать. Форумы, конференции, комментарии в Ютубе, группы в соц. сетях, статья на Хабре или техчерч, хоть объявление в газете, контекстная реклама, или на машине листик повесить с другой стороны стекла, на хакатонах, на meet-up'ах.

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

    Я видел три разных сайта-соцсетей типа для знакомств стартаперов, для поиска команды, для коллаборации технических специалистов. В архивах ежедневника нашел только одну ссылку, последний такой на моей памяти был www.projectbuddy.io И все они провалились по той причине, что такие сайты на самом деле не нужны, и нужны они людям уж точно, которые сами не знают чего хотят.

    P.S. Я нашел своего первого соратника используя доску объявлений, на минуточку, в "ВКонтакте", давно дело было. Другого нашел в универе в КВН группе. Ещё одного нашёл в группе администрирования сообщества одной глобальной модификации для одной известной игры. Когда знаешь, кого ищешь, поиск много времени не отнимает.
    P.P.S. Потом я научился понимать, кто мне действительно нужен.
    Ответ написан
  • Какая из библиотек для прорисовки gui более производительна и менее требовательна?

    @majstar_Zubr
    C++, C#, gamedev
    особо стоит выделить https://github.com/ocornut/imgui

    и вообще: https://github.com/fffaraz/awesome-cpp#gui
    Ответ написан
    Комментировать
  • Как сделать телеграм-бота совместимым с гугл таблицами?

    @majstar_Zubr
    C++, C#, gamedev
    Эмулировать работу базы данных можно с помощью https://www.google.com/script/start/ Google Apps Script, Google Drive API. Скрипты размещаются на самом Google Drive.

    Google Sheets API
    https://developers.google.com/sheets/api/
    позволяет практически всё, в т.ч. получить доступ программно:
    https://developers.google.com/sheets/api/quickstar...
    Ответ написан
    4 комментария
  • Что такое игровая платформа?

    @majstar_Zubr
    C++, C#, gamedev
    Игровая платформа (в узком смысле) - это контекст, в котором осуществляется игра.
    Контекст является абстракцией высокого уровня, поэтому на него обычно просто ссылаются и почти никогда полностью не определяют терминально.

    В частности, компьютерная игра может осуществляться на определенной разновидности вычислительных устройств. Однако, как отметил А. С. Таненбаум в книге "Архитектура компьютера / Structured Computer Organization", hardware и software функционально являются взаимозаменяемыми. Из этого следует, что если игра рассчитана на инженерный калькулятор, игровую приставку, тетрис типа BrickGame, то в нее играть можно не только на непосредственно на техническом устройстве, но и в эмуляторе устройства, который исполняется на PC или смартфоне Android, или в браузере. Но фактически игра существует в контексте
    технического устройства, поэтому игровая платформа для этой игры - тетрис, калькулятор, приставка.

    MUD рогалик требует поддержку интерфейса текстового ввода-вывода, для него игровой платформой является любое окружение, поддерживающее работу с сетью Интернет и CLI, который удобнее всего для игры реализовать через мессенджер.

    Steam - это набор сервисов для игровой платформы PC + магазин,
    Stadia, Unity, Vulkan, Intel, .NET - технологии,
    x64 - общее именование серии 64-битных процессоров.

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

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

    В списке терминов:
    PlayStation, PlayStation 4, PC, Windows, , Mobile, Android
    Первые 3 относятся к употреблению в узком смысле, последние 4 в широком.
    Windows в узком смысле будет игровой платформой, если это, например, квест по поиску уязвимости или ARG, относящееся непосредственно к линейке данных ОС.
    Ответ написан
    Комментировать
  • Правильны ли мои рассуждения в комментариях к коду?

    @majstar_Zubr
    C++, C#, gamedev
    У вас ошибка только в комментариях.
    Данное выражение new ничего не ищет, оно по сути пытается выделить память, сконструировать и инициализировать в этой памяти объект указанного типа. В данном случае будет выделено sizeof(int) байт. Причем выделение будет осуществлять void* operator new ( size_t count ), который после стандарта C++11 вообще может выкинуть std::bad_alloc exception, а конструирования и инициализации не произойдет, потому как int - фундаментальный целочисленный тип.

    Однако, современная практика написания кода на c++ подразумевает, что при использовании обычных указателей, каждое использование ключевого слова new сопровождается использованием ключевым словом delete в той же области видимости. Поэтому отсутствие delete aaa_num; считается ошибкой.
    Ответ написан
    2 комментария
  • Что почитать для понимания чужого кода?

    @majstar_Zubr
    C++, C#, gamedev
    Да, пофиг, все делается просто: берешь дебаггер в одну руку, копипастер в другую, вырезаешь класс за классом, строишь упрощённую модельку чужого творчества. Как с куском разобрался - оборачиваешь его в #region со своими комментариями.
    Как успехи?
    Ответ написан
    Комментировать
  • Хочу понять, с чего мне начать путь в геймдев?

    @majstar_Zubr
    C++, C#, gamedev
    Когда был на твоём месте, я погрузился в маркетинг, управление проектами, управление людьми, геймдизайн и сценарное дело, между делом делал прототипы на js, потом посмотрел в сторону движков и фрнймворков на java, параллельно делался прототипы, а потом стало понятно, что надо было меньше других слушать и сразу смотреть в сторону C++, C# и Python, теперь ещё и Rust.
    Если въедешь в C++, то с остальными языками вообще проблем не будет никаких.
    А по делу - сначала определись с направлением и группой специальностей.
    Ответ написан
    Комментировать
  • Онлайн игры для программистов?

    @majstar_Zubr
    C++, C#, gamedev
    Друг мой делал, но там javascript, пока на стадии PoC duna-alt.com

    Есть игра типа clash of clans где нужно ии писать: https://empireofcode.com

    Конечно есть ещё https://screeps.com , но все слишком абстрактно.
    Ответ написан
    Комментировать