
Скачал FreeBasic, хочу вкатиться в it. Подумываю купить б/у книги с рук, что бы не сидеть без дела. В идеале создать свою игру/движок.
>>0942
Да нет никаких вакансий, я через f12 отредачил. Просто хочу сделать свою игру с нуля.
Да нет никаких вакансий, я через f12 отредачил. Просто хочу сделать свою игру с нуля.
>>0954
Почему тогда basic? А не скажем обыкновенный С? Насколько помню, basic - всратый интерпритируемый язык для касетных ОС.
Самый рациональный подход это вообще делать игру на движке типо годота, и учить собственно говоря синтаксис GDScript. Даже в простых играх слишком много подсистем, кажая из которых требует жёсткой оптимизации. Одно дело демку запрограммировать, другое дело создать с нуля трехмерную игру которая будет выдавать хотя бы 15 фпс. Мало того что без аппаратной дрочки 100% не обойтись, так ещё и куча програмных проблем, типо оптимизация уровней. Моя дипломная работа кажется смехом по сравнению с проектированием игры. Но раз уж писать самописное, то почему бы не выбрать классику, С/С++. Всё эти паскали и бейсики мало того что неудобные, так на них ещё и библиотек ничерта нет.
Почему тогда basic? А не скажем обыкновенный С? Насколько помню, basic - всратый интерпритируемый язык для касетных ОС.
Самый рациональный подход это вообще делать игру на движке типо годота, и учить собственно говоря синтаксис GDScript. Даже в простых играх слишком много подсистем, кажая из которых требует жёсткой оптимизации. Одно дело демку запрограммировать, другое дело создать с нуля трехмерную игру которая будет выдавать хотя бы 15 фпс. Мало того что без аппаратной дрочки 100% не обойтись, так ещё и куча програмных проблем, типо оптимизация уровней. Моя дипломная работа кажется смехом по сравнению с проектированием игры. Но раз уж писать самописное, то почему бы не выбрать классику, С/С++. Всё эти паскали и бейсики мало того что неудобные, так на них ещё и библиотек ничерта нет.

>>0915
Шутки шутками, но моя любимая игра написана на https://en.wikipedia.org/wiki/Hot_Soup_Processor — японском «форке» BASIC; их даже в этом десятилетии делают: https://supercombo.gg/2022/10/06/indie-fighting-prototypes-shuzen/. Очевидная и единственная причина этого в том, что HSP учат в японских школах, но, с другой стороны, мало того, что у этой игры есть несколько умерших попыток портов на Java/C#, так ещё и текущий разработчик, по слухам, на работе специализируется на Java, и всё равно ведёт её на HSP.
Шутки шутками, но моя любимая игра написана на https://en.wikipedia.org/wiki/Hot_Soup_Processor — японском «форке» BASIC; их даже в этом десятилетии делают: https://supercombo.gg/2022/10/06/indie-fighting-prototypes-shuzen/. Очевидная и единственная причина этого в том, что HSP учат в японских школах, но, с другой стороны, мало того, что у этой игры есть несколько умерших попыток портов на Java/C#, так ещё и текущий разработчик, по слухам, на работе специализируется на Java, и всё равно ведёт её на HSP.
>>0965
"С" простой как автомат калашникова. Попроще бейсика будет. В С нет ни массивов, ни строк, только байты, адресная арифметика. Вот бейсик не смотря на название как раз не "бейсик" нифига, под синтаксическим конструкциями скрывается множество абстракций и костылей.
"С" простой как автомат калашникова. Попроще бейсика будет. В С нет ни массивов, ни строк, только байты, адресная арифметика. Вот бейсик не смотря на название как раз не "бейсик" нифига, под синтаксическим конструкциями скрывается множество абстракций и костылей.
>>0972
Meh... Не умеют узкоглазые средства для письма подбирать. До сих пор иероглифами пишут. Вот и Basic туда же. Кривое, непонятное, древнее.
Meh... Не умеют узкоглазые средства для письма подбирать. До сих пор иероглифами пишут. Вот и Basic туда же. Кривое, непонятное, древнее.

Накатил, настроил. Можно будет ещё HSP глянуть для интереса, но это потом.
>>0977
Я попробую конечно. Зачем ограничивать себя чем-то одним.
>>0977
Я попробую конечно. Зачем ограничивать себя чем-то одним.
Вообще, то что в "С" нет массивов, это на самом деле вброс от Столярова.
Массивы есть.
Столик рассуждал следующими образом: то что выглядит как массив, в С, не подчиняется семантике масивов, и ничем не отличается от указателей. Конструкция arr[2] означает то же самое что и ⚹(arr + 2) т.е. мы отходим на два указателя вперёд и разыменовываем. Более того, можно присвоить указателю char ⚹p = arr. Получается, какой это впизду "отдельный тип" если он ничем особо от указателей не отличается? Вот только взять конструкцию char arr[5][10], если подходить "сухо" то второй массив тут это указатель на указатель на char - т.е. по адресной арифметике должна получиться самопересекающаяся каша. Но этого не происходит, вместо того второй массив перемещается сразу на 5 указателей на char вместо одного. Тут Столяров виляет жопой и говорит что "так это указатель на массив, а не сам массив. Типа 'массив' то нет, зато есть тип указатель на массив". Вот только тип char arr[] имеет много других отличий от char ⚹arr. Как минимум ничего нельзя присвоить к arr[], его нельзя вернуть из фунции, функция sizeof действует на указатель и массив под разному: в случае массива возвращает количество памяти в нём, а в случае с указателем возвращает просто 8 т.е. просто размер адреса. Получается что семантическая разница есть, стало быть arr[] это отдельный тип. Да, он не умеет в классические операции, как в Pascal например можно свободно присваивать массивы друг другу. Однако он и не должен соответствовать ожиданиям от массива в паскале. Он отличается семантикой, стало бы отдельный тип. И это не какие-то там новые стандарты. Всё это существовало со времён K&R. Поэтому столяров пропизделся.
Массивы есть.
Столик рассуждал следующими образом: то что выглядит как массив, в С, не подчиняется семантике масивов, и ничем не отличается от указателей. Конструкция arr[2] означает то же самое что и ⚹(arr + 2) т.е. мы отходим на два указателя вперёд и разыменовываем. Более того, можно присвоить указателю char ⚹p = arr. Получается, какой это впизду "отдельный тип" если он ничем особо от указателей не отличается? Вот только взять конструкцию char arr[5][10], если подходить "сухо" то второй массив тут это указатель на указатель на char - т.е. по адресной арифметике должна получиться самопересекающаяся каша. Но этого не происходит, вместо того второй массив перемещается сразу на 5 указателей на char вместо одного. Тут Столяров виляет жопой и говорит что "так это указатель на массив, а не сам массив. Типа 'массив' то нет, зато есть тип указатель на массив". Вот только тип char arr[] имеет много других отличий от char ⚹arr. Как минимум ничего нельзя присвоить к arr[], его нельзя вернуть из фунции, функция sizeof действует на указатель и массив под разному: в случае массива возвращает количество памяти в нём, а в случае с указателем возвращает просто 8 т.е. просто размер адреса. Получается что семантическая разница есть, стало быть arr[] это отдельный тип. Да, он не умеет в классические операции, как в Pascal например можно свободно присваивать массивы друг другу. Однако он и не должен соответствовать ожиданиям от массива в паскале. Он отличается семантикой, стало бы отдельный тип. И это не какие-то там новые стандарты. Всё это существовало со времён K&R. Поэтому столяров пропизделся.

>>0913 (OP)
Работа в айти найме это кал, если ты не нормис. Если родители тебя не гонят на работу, то считай что ты очень хорошо устроился. Можесь сидеть разрабатывать что-то для себя. Не вижу смысла именно вкатываться
мимо из соседнего БД треда
Работа в айти найме это кал, если ты не нормис. Если родители тебя не гонят на работу, то считай что ты очень хорошо устроился. Можесь сидеть разрабатывать что-то для себя. Не вижу смысла именно вкатываться
мимо из соседнего БД треда
>>1193
Работа это кал в принципе.
Работа это кал в принципе.

>>1193
Я хочу иметь бабло на протеин и качалку. Ну и на отдельное жильё, куда я могу срыгивать когда к мамке приходят её подружки и они начинают дружно ебать мне мозги.
Я хочу иметь бабло на протеин и качалку. Ну и на отдельное жильё, куда я могу срыгивать когда к мамке приходят её подружки и они начинают дружно ебать мне мозги.

Практически невозможно научить хорошему программированию студентов, ранее знакомых с BASIC: как потенциальные программисты, они получают ментальные увечья без надежды на восстановление. — Эдсгер В. Дейкстра.

>>1322
Может и прав.
Может и прав.

>>1313
Он говорил про какие-то старые версии, в которых строки нумеровались и всё делалось через GOTO <номер строки>, который он хейтил: https://ru.wikipedia.org/wiki/Бейсик#Ранние_версии. Судя по статье, не было даже функций — GOSUB представляла собой GOTO с запоминанием адреса возврата, что не обеспечивало передачу параметров и локальное состояние.
Я теперь понял, что то, что некоторые старые программы написаны в таком стиле, может быть следствием этого: если у нас есть функция RecognizeToken(), которой нужен CurrentToken: string, то вместо того, чтобы сделать CurrentToken её параметром, он делается глобальной переменной, а когда он оказывается нужен второй раз, это не убеждает автора, что CurrentToken стоит всё-таки сделать параметром, а вместо этого он сохраняется перед вызовом и восстанавливается после вызова:
Но вообще-то некоторые НОВЫЕ программы тоже так написаны, и с тем же успехом, с которым это может быть травма от BASIC, это может быть и просто очевидный подход: если посадить человека за компьютер, не посвятить (а если бы и посвятить) в концепцию локальных переменных и параметров функций, и сказать «программировай», он вот так и сделает, как было сделано в старых бейсиках, то есть будет, как эмбрион, проходить ускоренную эволюцию.
Он говорил про какие-то старые версии, в которых строки нумеровались и всё делалось через GOTO <номер строки>, который он хейтил: https://ru.wikipedia.org/wiki/Бейсик#Ранние_версии. Судя по статье, не было даже функций — GOSUB представляла собой GOTO с запоминанием адреса возврата, что не обеспечивало передачу параметров и локальное состояние.
Я теперь понял, что то, что некоторые старые программы написаны в таком стиле, может быть следствием этого: если у нас есть функция RecognizeToken(), которой нужен CurrentToken: string, то вместо того, чтобы сделать CurrentToken её параметром, он делается глобальной переменной, а когда он оказывается нужен второй раз, это не убеждает автора, что CurrentToken стоит всё-таки сделать параметром, а вместо этого он сохраняется перед вызовом и восстанавливается после вызова:
>SavedCurrentToken := CurrentToken
>CurrentToken := <значение для RecognizeToken>
>RecognizeToken()
>CurrentToken := SavedCurrentToken
Но вообще-то некоторые НОВЫЕ программы тоже так написаны, и с тем же успехом, с которым это может быть травма от BASIC, это может быть и просто очевидный подход: если посадить человека за компьютер, не посвятить (а если бы и посвятить) в концепцию локальных переменных и параметров функций, и сказать «программировай», он вот так и сделает, как было сделано в старых бейсиках, то есть будет, как эмбрион, проходить ускоренную эволюцию.

Прошёл первый урок. Запушил код на отдельный гитхаб-аккаунт. Как только перейду к более-менее интересным и реальным проектам вкину в тред ссылку для оценки моего говнокода.
>>1393
Что интересного в изобретении велосипеда?
Что интересного в изобретении велосипеда?

Нашёл последовательную книгу по изучению FreeBasic. Буду заниматься по ней, в официальной вики всё намешано в кучу.
Очень странные рекомендации в Pinterest'е, какие-то мини-гайды по устранению болей в спине/коленях, вместо привычных карточек с аниме.
Очень странные рекомендации в Pinterest'е, какие-то мини-гайды по устранению болей в спине/коленях, вместо привычных карточек с аниме.