Skip to content

Instantly share code, notes, and snippets.

Created August 30, 2017 11:52
Show Gist options
  • Save anonymous/b578d0efdc056db7ab3d5c2f0316ca8a to your computer and use it in GitHub Desktop.
Save anonymous/b578d0efdc056db7ab3d5c2f0316ca8a to your computer and use it in GitHub Desktop.
Исходный код игры на c

Исходный код игры на c


Исходный код игры на c



Исходники: C++
C++ Игры
Пишем змейку на C++


























Я бы сказал, что когда дело касается плюсов, то ты ещё не достал бумагу, не взял карандаш, а уже нихера не понимаешь. А вот тут согласен с автором если так и задумывалось Сначала нужно с функциями знакомиться. PS я проходил форматированный вывод почти! Лично я на него как-то спокойно перешёл, и меня больше удивила реакция окружающих на такие "новшества". А по поводу функций: Та же директива include встречается в самом начале обучения, но описывается как "нууууу представьте что текст из подключаемого файла дословно копируется в то место, где это написано". Подписываюсь под словами выше, а также добавляю: После того, как вы создали файл исходников с расширениес. Если бы вы создали исходники. Даже больше скажу , автор не раскрыл что же такое "функция". А судя по стилю написания читатель даже этого знать не должен. Одно дело брать и бездумно использовать, другое дело - понимать как это устроено. Если человек запускает Unity3D, перетаскивает на сцену систему частиц огня, даже близко не понимая что это, при этом безумно радуется и считает себя великим программистом, то это его выбор. Для того, чтобы понять сложные вещи, нужно понимать из чего они состоят, хотя бы в общем виде. И главное, как решить эти задачи, исходя из уровня "printf - просто, std:: Я знаю откуда идёт библиотека stdio. Я хотел бы задать один вопрос если можно. Хотел узнать на чем пишутся платформеры вроде каких-нибудь Salt and Sanctuary или Deadlight. Я понимаю, конечно, что это уже очень высокий уровень до которого мне, вероятно, никогда не дотянуть , я просто привел их как пример и хочу узнать что именно нужно учить для написания подобных игр. Буду благодарен если вы меня направите, если можете. Больше не придумал к кому обратиться. Игры высокого уровня пишутся на движках высокого уровня: А движки высокого уровня могут быть написаны на различных языках программирования, использовать различные языки программирования и быть использованы с помощью различных языков программирования: Это звучит как "Не столь важно с какого языка программирования начинать обучение": В будущем будет более понятно что к чему и зачем: У меня есть некоторый опыт с С. Я уже почитал, что упомянутый мной Salt an Sanctuary писался на движке XNA, который работает с C. С играми вообще оказалось все сложнее, чем я думал, но буду разбираться. Еще раз спасибо, что направил. Спасибо за пост, думаю будет полезно, как новичку. Не вижу никакой прямой связи между начинанием с колченогих и противоречивых постов на пикабу и возникновением опыта и портфолио. Не взлетит, чтобы писать игры, надо читать умные книжки, написанные специалистами. Как минимум год до этого писать вещи по-проще. Кучу раз уже тут такое пытались сделать, ничего толкового так и не получилось, этот пост - не исключение. Нет, почему, так тоже хорошо. В принципе так все уроки обычно и выглядят. Просто те умники, что постят свои посредственные уроки могли бы задуматься над контентом и оформлением. Они очень простые и если вдруг, то сразу можно взять и повтррить. Тем более для интересующизся в начале поста можно дать ссылки на обучающие основам ресурсы. Через месяц после начала обучения, из простого набора функций, типа printf и базовых мат. Научиться всегда можно быстрее, было бы желание. Ну и время тоже. Автор поста нацелил свои курсы на базовые игры. Но, в основном, да. Чуть более сложные чем консольные. Хотя когда я, продвинувшись дальше, начал все переделывать, с блэкджеком и шлюхами графикой и прочими плюсами движков, особых сложностей встретил не много. Но все же, как я уже сказал, было бы желание. Ведь на одном энтузиазме далеко не уедешь. Да и тот быстро угасает. Невероятно сложна, но у нее отличная механика. Правда разбираться приходится по гайдам и английским базам. Я раньше играл, но сейчас просто не готов морально: Похоже, препод наш - балбес, раз сначала типы данных объяснял на 1-м курсе, а не сразу в методы пошел. А методы на второй паре он объяснял со слова сигнатура. И пусть я все еще не дошел до плюсов, а сижу на шарпе, но, все же, точно знаю, что следует сначала понять типы данных и их различия. Вдруг мне системное понравится больше прикладного. Делая игрульки на шарпе с XNA на втором курсе еще не знаешь до конца. И, говоря "не дошел", я имел ввиду "не дошли руки". Давно хочу, но все никак. Единственное, что для C нужен. NET а это не всегда возможно. Поэтому контроллеры на нем программировать скорее всего не получится. Управление памятью и сборка под разные платформы есть, а вот множественное наследование Да ладно, шарповый проект без микрософтовских либ убог, моно конечно тянут, но все равно убого. Да и со сборкой отличной от винды там проблемы. Что такое миксины не совсем понял, через define можете переопределить все что угодно, дублирование кода только если вы сами сделали неправильную архитектуру. К сожалению, использование интерфейсов в стиле Java и расширений C всё равно весьма далеко от возможностей плюсов. Классы A, B и C полностью независимы друг от друга. Классы A1, B1, C1 -- их потомки, расширяющие функционал. К сожалению оказалось, что у них есть общие части p и q. Миксины бы решили проблему, а так приходится обращаться к агрегации. Вообще это очень полезная фича, её придумали умные люди для таких же умных людей. Проблема в том, что некоторые говнокодеры используют эти фичи для прикручивания костылей, так как теперь это стало еще легче. Автор дает представление о потоке выполнения, о том в каком порядке будет выполняться код, и для демонстрации этого показывает простейший пример, пусть и непонятный пока. Нет смысла объяснять типы данных, функции итд, если читатели понятия не имеют в каком порядке выполняется код. Я когда еще студентом был, помогал с лабами половине группы, мне приходилось объяснять им даже такие простые вещи. Не все могут представить что вообще такое поток выполнения, и поэтому я считаю, что автор пока всё делает правильно. Как у нас в институте говорят: У автора свой подход - он подает материал в виде создания игры, пусть простой, но игры. Проблема в том, что многие кто самостоятельно начинает обучение программированию забрасывают это дело, так как у них пропадает стимул. Они читают, читают, читают, но результата в виде программы которая действительно что-то делает - нет. Поэтому до конца обычно доходят лишь те, кто уже имел какие-то результаты еще до начала обучения. До начала обучения, Карл! Вот он в чем секрет, оказывается, те самые " маньяки " писали программы еще до того как ознакомились с теорией! Так же тут уже не раз сказали, что программирование игр - это далеко не лучший выбор для обучения программированию. Ну, вот оно уж так, и ничего с этим не поделать - тройной тулуп тоже не лучшее начало для фигурного катания. Игра это очень широкий термин, игры бывают не только трехмерные, но простые текстовые, без графики. Простые игры это первый шаг к созданию более сложных. Не будьте наивны и не ждите от учебных статей на пикабу результата в виде Скайрима или Ведьмака. Назвать это "игрой" можно только с очень и очень большой натяжкой, она по сути не отличается от любого минималистичного примера кода. Я знаю какие бывают игры, и даже самая простая из них мало подходит для обучения программированию. Угадывание номера на игру не тянет, обычный стандартный блочок простенького кода, геймификация которого заключается в основном в кастомизации выводимых сообщений. Подход стандартный и совершенно не новый - в каждой первой книге по программированию он есть. Что же тогда подходит для обучения программированию? Неужели мне надо повторяться и снова вам объяснять, что одна лишь теория без закрепления положительным результатом - бесполезна. Результат должен быть быстрым, не через 4 года обучения, и даже не через неделю чтения книг, а вот прям сразу, иначе он не будет приносить удовлетворения и желания продолжать заниматься. Вы же, блин, педагог, неужели вас не учили этому? Даже такая просто игра - это результат, работающий результат, и ученик видит и понимает, что его можно улучшать, у него появится желание продолжать заниматься. Почему я должен такие простые истины объяснять на пальцах? Все же знают как это работает, именно поэтому, как вы уже сами сказали, в каждой первой книге делают также, да всё потому что это работает!! И автор действительно не изобрел ничего нового, он пользуется старыми добрыми методами обучения, только использует он в качестве заданий не скучные алгоритмы сортировки, а разработку игры. Корректно - и там и тут для обучения берется задача сложностью превышающая возможности обучаемого. Вы сами себе противоречите! Как раз квиксорт и факториал - это и есть "здесь и сейчас". Это игра - которая игра, а не тот же факториал или "угадай рандомное число" замаскированное жиденькой игровой формой! Задача учителя как раз в том, что бы скучный квиксорт и не менее скучный факториал подать так, что бы скучно не было, а это уже не вопрос выбора между факториалом и "игрой", это уже квалификация преподавателя. Это - не игра! Это тот же факториал, отличий никаких нет - короткая программа, применяющая только что полученные навыки. По счастью в данном случае ей можно придать т. Да нету тут никакой игры! Есть маленькая программка, которая началась и тут же закончилась, и дальше он либо придет ровно к тем же алгоритмам из книг, либо, блин, перестанет изобретать велосипед, возьмет в руки "Изучаем java" от Сьерры и Бейтса, серии Head First, и посмотрит, как на самом деле обучают программированию в игровой форме! Вам тоже советую, если уж эта тема вам интересна. Если ты будешь браться только за те задачи, которые способен решать, то никогда не научишься чему-то новому. Задача должна быть сложной, амбициозной, должен быть челлендж, в этом весь смысл. Но решать задачу надо постепенно, шаг за шагом, разбивая на более простые задачи, а их на еще более простые если потребуется. Все шаги должны быть направлены на решение этой глобальной задачи , и ученики должны видеть как они медленно но верно приближаются к цели. Если просто давать знания например алгоритм сортировки без примеров применения в реальных задачах, то ученики скажут: Скажете я не прав? Современные программы образования очень бедны на примеры использования знаний в реальности, и ориентироваться на них не стоит. Рекомендуемую вами книгу я не видел, посмотрю на выходных если будет время. Но еще раз повторюсь, в данном случае важна не игровая форма, а амбициозность задачи. Кстати, я не говорил, что автор дает материал в игровой форме, я говорил, что создание игры это не такое же скучное занятие как вычисление факториала. У них будет формироваться понимание для чего вообще эти маленькие задачи нужны. Например сортировка очень широко используется в играх, и в процессе решения глобальной задачи наступит момент, когда надо будет что-то отстортировать, тут-то ученикам и расскажут о существующих алгоритмах, покажут как этим хозяйством пользоваться. Какой еще челлендж при начальном обучении?! Челлендж - это вызов, какой может быть вызов тому, кто ничего не умеет? Само обучение это уже вызов, не надо его усложнять. Все шаги должны быть направлены на решение этой глобальной задачи, и ученики должны видеть как они медленно но верно приближаются к цели. Это общие красивые слова, которые к действительности имеют самое опосредованное отношение. Нельзя побить большую задачу на мелкие задачи так, что бы решение мелких задач покрыло собой всю область знаний, которую предполагается изучать - обязательно останется масса белых пятен, которых не было бы, если бы учебный процесс строился от малого к большому, а не путем декомпозиции сложной задачи. Да, это скучно, но предсказуемо. У них будет формироваться каша в силу того, что либо мелкая задача будет разбиваться на еще более мелкие ради того, что бы осветить все нюансы, и в итоге все забудут с чего все начиналось и потеряют общую картину, либо мелкая задача окажется не такой уж и мелкой и оставит за бортом все то, что не затрагивается в текущей разработке. В реальной жизни все забуксует еще раньше, поскольку что бы дойти в игре до сортировки неизбежно придется создать каркас этой игры и продумать ее архитектуру, а для учеников не знающих сотрировку это как китайская грамота. Вот далась вам эта сортировка Ученик не может представить зачем нужно сортировать элементы? Ё-мое, ему уже ничего не поможет Хотите сделать интересно - наклейте на каждого ученика стикер с номером, выстройте в шеренгу, и пусть они наглядно меняются местами постигая логику алгоритма, а не городите огород с разработкой какой-то игры! Держите, что б нагляднее http: Вот вам просто, наглядно, увлекательнои без лишнего геморроя - сама суть алгоритма. Амбициозность задачи для кого? Для ученика амбициозна сама задача стать программистом, ему нафиг не нужно ее усложнять путем "написания игры". Автор пока не разработал ничего от игры, он всего-то придал условную игровую форму примеру из книжки. Это не игра, не ее разработка и развития иметь не будет. И да, повторю - создание игры может и интереснее факториала, но на порядки сложнее, так что факториал таки лучше - он хотя бы по силам начинающему, в нем нет ничего лишнего. Просто показываю, что суть алгоритма и его реализация - разные вещи. Алгоритм один, на эрланге будет выглядеть вот так, в две строки, на жабе или сях придется наколбасить куда больше, а суть одна. Нельзя побить большую задачу на мелкие задачи так, что бы решение мелких задач покрыло собой всю область знаний, которую предполагается изучать. Вы сами уже давали ответ на это: Вот пусть автор и ломает голову, как разбивать задачу. А мы все дружно ему будем выставлять плюсы или минусы в зависимости от того как ему это удается. Ну хрен с с ними белыми пятнами. Задача преподавателя научить базовым вещам, а детали ученики сами освоят. Информационные технологии меняются очень быстро, пытаться выучить досконально что-то одно не имеет совершенно никакого смысла. Достаточно осваивать лишь базовые вещи и то что часто используется на практике. А детали исследовать при возникновении необходимости. На самом деле этот спор потерял всякий смысл, ибо автор клепает статьи и людям это нравится. Многие признают, что его методы хорошо работают. Скажу просто, я постоянно общаюсь с такими программистами-"маньяками", и я вижу, что это обычные люди, просто они самостоятельно научились программировать. Сначала писали код, и лишь потом взялись теорию. Я тоже общаюсь с такими программистами-маньяками, которые сначала научились "программировать", и за теорию хорошо если взялись - такой говнокод пишут, мама не горюй Я и говорю - у него еще не получилось эту задачу решить, а вы тут уже восхищаетесь, словно он ее с блеском решил. Кодинг-стандарт и код-ревью очень хорошо выправляют мозги и учат не писать говнокод. Программист не может, в принципе не может научиться писать правильный код без код-ревью. Я никогда и нигде не встречал и не слышал о том, чтобы на свете существовал программист самостоятельно научившийся писать правильный код. Всегда найдется человек, который на ревью найдет фолты и обзовет говнокодом, даже если код написан совершенно наикрутейшим гуру-программистом. Если вы не пользуетесь код-ревью и лично вам кажется, что вы не говнокодите - предоставьте ваш код на ревью пожалуйста. Теперь новая любимая фишка - сто раз употребить слово "код ревью". В общем, думаю, я эту беседу закруглю, поскольку окончательно перестал вас понимать. Нажал на редактирование, и что то глюкануло. Короче, коммент который ниже - это отредактирвоанная версия коммента выше. У меня тут проблемка в первом уроке. Dansken , Заново начал, на диске D. Запустил студию с правами Администратора. Попробуйте просто F5, но после printf "Hello, Pikabu! Проблема оказалась в Avast. Этот хитрожопый антивирь блокировал намертво процессы, до такой степени что в итоге даже командная строка не запускалась. В итоге отключил аваст перед запуском студии и все заработало! Но, тем не менее, как минимум в Вижаке это сработает, если задать этот Main как точку входа при нормальной форме Main он понятное дело сам детектит точку входа. Это лишает возможности возвратить код выхода из программы, ну и получить параметры кмд строки, но работать-то программа будет. Как правило, люди пишущие это не понимают что это такое и используют не задумываясь, ИМХО объекты и потоки стоит давать людям с уже очень хорошей базой ООП. Большинство людей использующих std:: Я так это обычно делаю: Когда программа закончится - надо сказать об этом Виндовс - вернуть какое-то число итд. Такое объяснение - это просто пиздец. Более того, using namespcae лучше не использовать, в начале обучения уж точно не стоит этого делать, так как в этом случае cout и endl выглядят как зарезервированные слова такие же как и return, int, include, это будет сильно путать людей. Может быть и да, просто уже на с давно не писал. Поэтому принтф режет по пьяни глаза А что за игру вы собираетесь делать? А чего минусите человека? C имеет достаточную документацию, порог вхождение ниже, поддерживается популярным движком Unity 3D Rust, The Forest, Next Day именно на юнити арбайтен , активно продвигается майкрософтом, ну и не забудет про продукты xamarin. Для старта самое то, а вот потом уже можно плюсы изучать. Извините, но новичкам в геймдев лучше вообще не дёргаться. Слишком много надо знать и понимать, прежде чем вы с тем же С в Unity сможете разобраться. Если есть опыт программирования и хочется попробовать геймдев, то да, Unity - то, что нужно. Консолька - отдельный фильтр в нашем деле. Кто не может с консолькой - не достоен именовать себя программистом. Страуструпа читать надо, если уж с нуля. Вы конечно хорошо весьма написали пост по сравнению со множеством других, что здесь были , но до конца это не дойдет, как и большинство постов такой тематики на пикабу. Люди, которые этим заинтересуются, сами научаться всему, благо сайтов и книг много. Правильно написали, что лучше бы сделать обзор этих самих сайтов и книг, или пост не с уроками, а с демонстрацией того, чего можно достичь, чтобы пробудить интерес в читателе. Будет интерес - человек сам все сделает. Я удовлетворюсь тем, что просто оставлю эту информацию здесь: И всегда смогу скидывать ссылку на нее людям, которые просят меня об этом а это случается все чаще и чаще: Пока серия идет неплохо, держи плюс. И про дорожки неплохо придумано, таким же образом можно объяснить мультипоточность. Подписался чтобы следить за развитием событий и начать минусовать как только польется говнокод. Автор, кланяюсь в ноги! Что-то такое я искал много лет!! Я увлекался компьютерами в детстве, работал так или иначе с ними, но карьера со временем выехала в другую степь, я безнадежно отстал от компьютерной темы много лет назад, а уж к программированию и вовсе не имел отношения никогда разве что простенькие команды SQL в работе с БД. Так, к чему я это. Я всегда хотел научиться или хотябы понять как из строк кода можно создать "нечто", возможно даже заниматься этим как хобби, возможно даже использовать знания в коммерческих целях есть идеи , но нет ни времени ни желания брать томник "Программирование для чайников" просто чтоб понять как это работает. А именно это мне и нужно - посмотреть на эту подводную лодку в разрезе, покрутить винтики, посмотреть что будет и т. Как-то так Вобщем автор - спасибо и так держать! С нетерпением буду ждать продолжения! Dansken если хочется создать полезную вещь, которая может помочь людям в освоении азов программирования. Сделай скрин каст как ты с нуля часов за 10 делаешь игру. Пятнашки, или тетрис какой. Делаем ставки на сколько постов хватит автора. И час на то, чтобы запостить это на пикабу: Соглашусь с многими критикующими. Там достаточно много ньюансов и фич, за которыми не каждый разработчик в силах уследить, а уж учить этому начинающих программистов - полный разрыв. Тем кто реально хочет начать учиться разработке смотрите в сторону Python, Java, C. По мне так самая удачная тройка языков для начала. Dansken , что за хрень? Да, комп в домене, скорее всего политика не дает. Завтра притащу ноут на работу, попробую. Кхм, так как я супер чайник, хотелось бы знать,что именно надо скачать что бы учиться по этим урокам? Visual studio проблема: Ошибка LNK неразрешенных внешних элементов: Если кто может - порекомендуйте хороший мультиплатформенный движок с минимумом танцев. Ставил кокос, но там танцы с бубнами - то версия питона не та, то 64 система не поддерживается, то ещё что-то. Dansken , упомяни в следующем уроке DreamSpark. На пикабу много учащихся, которые и не знают о такой штуке. А по ней запросто можно получить хоть ту же халявную студию professional. Я заведующему кафедрой, когда поступил был , сразу сказал "давайте дримспарк нам". Был крайне рад, когда действительно институт заключил договор и выдали премиум аккаунты. Теперь можно любую ОС, студию, маткады вроде есть. С одной стороны прикольно, даже подпишусь, с другой стороны мне не понятны все эти танцы, когда есть куда инструментов, вроде той же юнити, позволяющие значительно упростить себе жизнь. Самописка прикольно для поднятия ЧСВ, но с практической точки зрения тот же этап цифрового прототипирования затянуться может хер знает на сколько, так же как и отнять кучу свободных ресурсов. Только причём тут игры? ПС Ты игру собираешься в консоли делать? Какая игре в следующем посте? Ты не сможешь описать рендер обычно директ их юзают и одновременно написать простую игру. Все-таки со знанием английского все это намного лучше понимается, вообще стоит ли заканчивать вторую вышку на программиста или реально в кустарных условиях научиться писать программы и быть востребованным? Это как "стоителем" можно назвать узбека со шпателем, и вполне-себе ГИПа в белой каске и костюме. Где-то вы потеряете несколько лет труда, чтобы полноценно преодолеть высокий порог вхождения, а где-то - достаточно будет бложки почитать пару месяцев. Я бы ответил немного по-другому. В университете учат не только программировать, хотя и этому тоже, хотя и не так много. Там дают и математическую подготовку и алгоритмическую, вместе с тем дают еще историю, менеджмент, экономику и многое другое. Университет в первую очередь дает просто фундаментальные знания. Можно закончить университет и не стать специалистом, такое часто бывает. Можно не учиться в университете и стать специалистом, но тут нужна жесткая способность к самообучению, если такая способность есть, то университет кстати заканчивается на раз два. Не знаком с разработкой под iOS. Но аппроксимируя знания по поводу Android, то можно и без вышки. Dansken Приветствую, почитал сис. Не существует ли альтернативы в изучении для Windows XP? Ты правда считаешь, что каждый раз движок нужно переписать заново? Обновления для SDK выходят раза в год. Полностью новые SDK раз в года. Цикл разработки игр где-то года. За время разработки выйдет уже несколько обновлений, которые нужно будет поддерживать. Я не имею в виду мажорные версии. Не редко движок пишется параллельно с игрой. В целом игра пишется по возможности максимально модульной и всегда стараются разграничить движок и логику игры именно для того, чтобы при обновлении чего-то одного не переписывать всё. Более того, большинство "новых" игр выходит на "не новых" движках и тем не менее выдают отличную картинку. Игровые движки уже давно достигли планки, когда картинка в игре выглядит не хуже реальности, новые движки просто добавляют больше разных фич упрощающих разработку, так что нет никакого смысла скакать с движка на движок без крайней необходимости. Покажу, но ты сперва ты покажи свои. Ты начал первым выпендриваться на счет движков, ты теперь и доказывай, что разбираешься в теме. А я в ответ покажу свои творения. Для тех кто в танке, эти курсы для самых-самых начинающих программистов, это не очередная статья на хабре про оптимизацию шейдеров на третьем OpenGL, это курсы для самых маленьких, тех кто только задумался о том, кем он хочет стать в будущем. Тогда почему бы не начать с обзора литературы, плюсы и минусы книг, мануалов и т. Любой предмет начинается со списка литературы на изучение. Если вы пишете "начинающим программистам", которые, как подразумевается, уже знают все эти нюансы, то нафига им пост о том, как установить Visual Studio? Не помню, чтобы я где-то писал, что мне что-то мешало. Глубокого понимания и даже желания понять не было, и сейчас это чувствуется особенно сильно. Пытаюсь самостоятельно наверстывать упущенное, читая книжки, делая курсы на coursera и т. Вот видите, вы наверстываете упущенное, этого бы не было если бы подход к преподаванию был хотя бы как у автора. Школа, школьники на уроке информатики, классы Школьникам лет по , им ведут урок в стиле автора. Любопытные школьники не унимаются: Учителю надо выполнить план за 45 минут урока, поэтому он говорит "а вот это вы расскажете мне на следующем занятии но ищите все сами, книжек я вам не дам, потому что не считаю нужным". Сами придумывают задачи, сами решают и растут как программисты. Вопрос один, когда вы изучали паскаль, вы спросили, почему ваш учитель выбрал паскаль? То же про ворд. Если вы хотите смоделировать ситуацию, то: Вы спрашиваете, у учителя, какие бы он мог порекомендовать книги для прочтения, он записывает список книг на доске. Ведь автор поста заходит в комментарии и на все те вопросы, что вы задаете он легко отвечает в комментариях. Но только если эти вопросы такие, как смоделированы в ситуации. Сейчас же как то так: Получил ответ, что дело не столько в паскале, сколько в том, чтобы научить школьника анализировать задачу, декомпозировать ее на составные части, создавать алгоритмы и блок-схемы очень похоже на визуализацию потоков у автора поста, эта часть мне понравилась , искать информацию и решать поставленную задачу. А в рамках задач, которые мы будем решать, выбор языка программирования не сильно важен в пределах разумного, конечно. Формы на ASM рисовать не удалось бы. Я остался доволен этим ответом, поэтому больше не спрашивал. Про Ворд было печальнее, потому что от нас не скрывалось, что он нужен, чтобы нас хоть чем-то занять, а молодая преподавательница то ли не хотела, то ли не знала ЯПов. Особенно печально было потому, что новая преподавательница пришла на смену более опытному преподавателю, обучавшему нас паскалю и логомирам. Получилось, что мы почти весь учебный год учились форматировать тексты в ворде. Навык полезный, но это я понял, когда сел писать диплом: Вцелом, я согласен с товарищем из комментов к одному из предыдущих постов: Это не те вещи, которые можно легко подать. Нужен определенный багаж знаний, без которых посты просто "не пойдут". Я не говорил, что ничего не надо показывать. Наоборот, практика - это хорошо и полезно. Скорее я веду к тому, что на одной практике без понимания, как работает программа, полностью не познать механизма. Это как купить машину, но не знать, что ее надо заправлять бензином. Да, бывают отклонения в положительную сторону, когда и преподаватель - золото, и школьникам интересно, и условия есть. К сожалению, я не учился в такой школе, и себя сильно интересующимся не считал и сейчас не считаю. Пока он пишет объясняя элементарные вещи "на пальцах" и всего-то, до уровня преподавания Эрика и Элизабет Фрименов ему пока, как до луны. Не знаю никаких фрименов, но на пальцах это самое то, самое важное в начале обучения это результат и видеть свой прогресс. А вот стоило бы знать, их книга Паттерны Проектирования и аналогичная про Java - особенно она! Полюбопытствуй что ли, это высший пилотаж - с микроскопическими кусочками кода, простыми словами и смешными картинками умудриться объяснить сложные вещи. Автору поста до них ооооочень далеко Не знаю как так, но не задалось у меня обучение ни одному языку программирования по книгам. Если я качал учебник, то только чтоб глянуть:. Затем шло следующим образом: Курятся мануалы и форумы. Затем приходит осознание, что работает-то оно норм, но вот как-то медленно. Да потому что линейно. Правильно, внимательней читаем что нам там про многопоточность вещают. Находим таинственное слово mutex и гуглим ещё его. Ура, решение существует, всё работает, все счастливы. Фактически, по книгам тоже можно учить. Написание кода -- процесс во многих местах творческий, захватывающий. И мне жаль тех, кто идёт в эту отрасль без интереса, просто потому что "перспективно" или "платят неплохо". ИМХО, при первом изучении лучше начинать читать когда уже вполне знаешь язык, так эффект будет лучше. Пусть и знания эти хреновые. Так что книги желательно читать для дополнения знаний и повышения "квалификации", а не изучения нового. Или как минимум совмещать с практикой не примерчиками и реальными желаниями реализовать что-то конкретное. К тому же, книги лично у меня создавали эффект "ложного понимания". То есть "тут всё просто", "этот пример я и так понял, а этот запомнил". Потом открываешь первый раз среду и тупо таращишься, не в силах ничего написать. По крайней мере, с первым языком так, потом уже попроще. В итоге написал нечто преследующее меньшие объекты и шарахающееся от более крупных или стен по закону обратных квадратов. Ну и простенькую таблицу приоритетов, оценивающую "выгодность" движения в наиболее перспективную по хавчику зону всего 4 сектора по четвертям координатной сетки: Алгоритм был страшно убогий, придуманный бессонными ночами в период рубежной недели в универе, а реализация и того хуже: Но как проба пера, ознакомление с объектами и функциями в js зашло неплохо. Зачем человеку знать все ньюансы, чтобы начать писать по образцу, который детально описан, что и для чего? Если вам нужны обзоры литературы то вбейте это в гугл и получите кучу обзоров. Вы один фиг ни того ни другого не знаете. Автор говорит, чувак, давай я покажу тебе как написать простую игру. За что ему плюс, потому как эта вводная херня на всех уроках уже порядком осточертела, и дальше этой голимой теории ничего и не движется, а она по сути пока что и нахрен не сдалась. А мне кажется нормальным вопрос "а почему выбран именно такой стек технологий, а не другой? Это как "почему небо синее, а трава зеленая? Если преподаватель нормально и доступно это объяснит, это только подогреет интерес. Если скажет "Потому что", то интерес угаснет очень быстро. Ну можете считать это моим минусом и всячески порицать это, но я на дух не переношу "вольное чтение технической литературы", обращаясь к ней лишь для решения каких-то конкретных насущных задач. Поэтому и уроки буду вести без обзоров литературы. Люди, которым интересно вольное чтение технической литературы находят ее сами, эти уроки не для них. В каком смысле "вольное чтение технической литературы"? Вы всерьез думаете, что наделаете десяток предположим, у вас хватит задора на десять постов и их хватит, чтобы научиться чему-то кроме установки студии и создания проекта? Как вы понимаете применимость данных постов? Загляну-ка я не на хабр, а на пикабу, вдруг среди сисек, спойлеров к Игре Престолов и котиков найдется кладезь мудрости? Он заходит на пикабу, видит 10 постов, перепечатывает их до буквы и проникается мудростью и забивает, потому что кроме как копировать пост ничего-то и не умеет. У всех этих книг есть одна общая проблема - они не дают видения общей картины. К нам на работу приходят выпускники, в голове куча знаний, десятки перечитанных умных книг, а как всё это применять понятия не имеют, даже с какой стороны к задаче подступиться не знают. Благо процесс "ковки кадров" у нас налажен и их довольно быстро приводят в рабочее состояние. А вы уверены, что учитель должен быть "дружественным"? Без наличия хорошего фундамента большой дом не построишь. Вы начинаете с вещей, которые стоят чуть выше основ, говоря, что "мастерство уже потом можно было бы доводить всякими тысячетомниками". А на практике получается чуть иначе: Он начинает работать, желания и времени спуститься на уровень ниже, к битам, алгоритмам сортировки и всему остальному нету. И в результате он может писать какой-то код, но как он работает, ему неведомо. Вот и лезут баги, костыли, повышенное потребление памяти, растущие системные требования в играх и т. А все потому, что вместо изучения основ и заложения твердого фундамента, юные дарования в поисках краткосрочной выгоды делают красивые, но ужасные внутри поделки. Пока что автор дает хороший фундамент, понимание потока исполнения это один из важнейших моментов в программировании, особенно когда дело доходит до многопоточных программ. Рассказать про процессор, про машинный язык. Потому рассказать как программы из человекопонятного кода превращаются в машинный язык. Потом стоит рассказать про основые парадигмы программирования, вот эти. Потом уже начинаются библиотеки типа Sfml- но тебе тогда лет 10 надо уроки делать, пока до этого дойдешь. Мое ИМХО - Не обязательно владеть докторскими знаниями или уровнем гавнокодера, чтобы начать писать игры. Главное - правильно сочетать теорию с практикой. Когда ты много знаешь, но не применяешь на практике - ты нихрена не знаешь, ни-хре-на. Человек так устроен, что знания лучше всего усваиваются, если они имеют хоть какую нибудь связь с реальным миром. Поэтому практические занятия лабораторные работы, упражнения, домашняя работа, итд являются неотьемлемой частью учебного процесса. Так как позволяют эту самую связь создать. Если учебный процесс построен так, что не содержит практических занятий - это плохой учебный процесс, в топку его. Такая же фигня с чтением книг. На счет геймдевовских лекций, у вас просто разный уровень материала, явно намного продвинутее чем уровень этого поста. Я более чем уверен, что автор не собирается в ближайшие 10 статей переходить к программированию шейдеров. Например лично я написал свою первую игру сам без какой либо помощи и знаний алгоритмов, матана и физики, я даже программировать толком не умел. Было мне лет 12, в те времена информатика в школе начиналась только с 9 класса, так что я грыз гранит программирования самостоятельно по руководству пользователя ПК Дельта-С. Это была простейшая игра - угадай цифру, которую загадал компьютер. Программа загадывала случайное число в диапазоне и игрок должен был угадать его. В первой версии игры была всего лишь одна попытка, я тогда еще не умел в циклы. Черт подери, меня просто разрывало от гордости! Так что я поддерживаю автора, такие статьи нужны и полезны, тем более пока у него неплохо получается. Но ведь игру эти самые новички не сделают. Типа Скайрима или Ведьмака? Не сделают, это как бы очевидно, даже матерый и супер-пупер профессиональный прграммист такую игру не сделает, это работа для большой команды. Но например консольную версию игры крестики-нолики вполне можно забацать даже не зная ООП и не умея работать с указателями. И эта игра, успешно созданная самостоятельно, станет отличным стимулом чтобы продолжать учиться дальше, всё более усложняя материал, переходя например к ООП, как средству для оптимизации этой игры и упрощения кода. При такой подаче у людей уже появится понимание для чего вообще ООП нужен, что намного лучше просто заучивания того как создавать классы не имея и понятия где это можно применить. Кстати, вы обращали внимание на то, что новички, которые обучаются по "классическиой" схеме пихают классы куда попало вообще не понимая для чего им это? Так, вы меня немного не так поняли. Я про новичков, кгторые программированием не занимались вообще в целом, ибо те, кто хочет выучить ЯП, они не сидят в поисках туторов на Пикабу. Поэтому я и говорю, что создавать пост на тему создания игр не лучшее решение. Тем более, объясняя попутно базовые принципы. Ну это просто както смешно выглядит. С чего вы взяли, что я про игру ААА-класса? Даже крестики нолики попробуй напиши, когда не понимаешь как это вообще работает. Кому интересно, я делаю рогалик для мобильных платформ на юнити. Кто хочет заценить вот ссылка на версию для винды. Писать в заголовке о создании "игры" и учить в посте создавать проект и выводить "hello world! По написанию кода они вроде как отличаются. Надо ли учить "старый" вариант, или можно учить новый? Есть офигенная книжка от Кернегана и Ритчи так и называется ANSII C. Базовый синтаксис в плюсах из сей. И лишним изучить сначала чистые си не будет. Плюс все учебники по плюсам так или иначе тоже самое рассказывают. А если есть хороший вариант почему не начать с него. Комментарии Горячее Лучшее Свежее Сообщества. Для самых-самых начинающих программистов: На примере разработки игр Tinaynox отправлено дня назад. SBulgakov отправлено дня назад. Ну пока выглядит как-то так: VanKrock отправлено дня назад. Ну пока это выглядит, что мы просто взяли карандаш в руку. Sandronec отправил дня назад. Cuzzz отправлено дня назад. NattekeS отправил день назад. Если бы это был рок-концерт. То мой барабанщик все еще стучал палочка о палочку.. WerewolfD отправлено дня назад. ChyckCha отправлено дня назад. BaseLion отправлено дня назад. В русском языке "оператор" и "операция" могут быть синонимами Это вам не богомерзкий английский. Все со временем, если вы знаете зачем это, это не значит, что в первом же уроке нужно накидать на больную голову остальных новичков столько информации. Да, так и задумывалось. Объекты и операторы потоков следует давать ИМХО уже после глубокого изучения ООП. Большинство людей используют эти потоки так и не имея представления как они устроены и почему работают именно так. Продолжайте, вас внимательно слушают. И вы нам сейчас в двух словах объясните, как реализуется система частиц? Как реализовать billboarding без афинных преобразований, и прохождение дерева без дискретки? Dogfox8 отправил дня назад. Нам нужно больше перегрузки операторов. SergioRemmo отправил день назад. Оооо господи, как же охерительно всё рассказано,автор, от души здоровья тебе, радости, с днем рождения каждый день, теперь даже мои друзья гуманитарии пишут игры благодаря тебе, у меня слов нет как это офигенно все круто, после летнего препода по плюсам твои лекции как будто Боженька спустился и запостил. Tinaynox отправлено день назад. А какие библиотеки для отрисовки будешь использовать? Hurricane27 отправил 18 дней назад. Tinaynox отправил 18 дней назад. Звучит как "Не лезь в это, сделай змейку и успокойся" Спасибо за ответ. С играми вообще оказалось все сложнее, чем я думал Напомнило. Tinaynox отправил 16 дней назад. Darkeroman отправил дня назад. AstarothAst отправил дня назад. Как новичок ты должен бежать от таких постов, как от огня! И что бы по-твоему было, если бы ты начал именно с них? Alexfuse отправил дня назад. Там все нуля и до базовых. Если потом других читать, то уже точно материал не с нуля. KBEP отправил дня назад. Но все равно хорошая книга. Программирование на первом курсе по ней учили. Меня больше порадовало обьяснение конечного автомата через дорожки из плиток. MusyaSiegfried отправлено дня назад. CodeKeeper отправлено дня назад. Как по мне самые эффектные посты такого плана были бы по разным приколюхам на css и jquery. И приэтом все красиво оформлено в фш разумеется. Ну а фронтенд для это просто лучше подойдет. NOgoood отправил дня назад. DarkDrunk отправил день назад. Oathkeeper отправил дней назад. NOgoood отправил дней назад. Tinaynox отправлено дней назад. Pawskal отправил дня назад. Ну может к посту эдак девятнадцатому с таким подходом и модно написать консольный морской бой, и то по уже с готовым велосипедом алгоритма расстановки кораблей, и то будет сложновато будет новичку объяснить какая именно логика работает в этом коде. Ashared отправлено дня назад. RequiescatInPace отправлено дня назад. Ох сколько воспоминаний сразу. РО была беспощадна к своим игрокам. Этот урок как бы подразумевает, что пользователь еще не знает что такое int и return. Aisper отправил дня назад. Еще не дошел до плюсов? Зачем вообще переходить с шарпа на плюсы? Управление памятью, множественное наследование, сборка под разные платформы - а я и не знал! Igorious отправил дня назад. С не может в макросы и в миксины, что иногда приводит к большому дублированию кода. Что такое миксины не совсем понял https: VanKrock отправлено день назад. У вас есть педагогическое образование? Вы так смело заявили, что каким-то вещам можно научить научиться только, если ученик имеет определенные предрасположенности, я даже не знаю что вам ответить. Людей с такими твердыми убеждениями обычно бесполезно переубеждать. Они останутся при своём даже не смотря на тысячи методичек, статей и книг изданных педагогами о том, что научить можно любого, нужно лишь знать подход. У меня чувство дежавю. Когда-то я очень близко к Вашим словам объснял тоже самое одному человеку. У автора свой подход - он подает материал в виде создания игры, пусть простой, но игры Справедливости ради отметим, что пока он ничего не подал и игру никакую не сделал, а только собирается это сделать, так что ваше восхищение как минимум преждевременно. Справедливости ради отметим, что пока он ничего не подал и игру никакую не сделал Он уже сделал во второй части. Так же тут уже не раз сказали, что программирование игр - это далеко не лучший выбор для обучения программированию А еще люди не раз говорили, что рубль упадет до за доллар. Он уже сделал во второй части. А еще люди не раз говорили, что рубль упадет до за доллар. Вы же сами понимаете, что сравниваете несравнимое. Сравнивать с тройным тулупом в данном случае так же некорректно. Я не педагог и никогда не утверждал обратного, вы меня с кем-то путаете, наверное. Это не значит, что нужно сразу замахиваться на неподъемное! У них будет формироваться понимание для чего вообще эти маленькие задачи нужны У них будет формироваться каша в силу того, что либо мелкая задача будет разбиваться на еще более мелкие ради того, что бы осветить все нюансы, и в итоге все забудут с чего все начиналось и потеряют общую картину, либо мелкая задача окажется не такой уж и мелкой и оставит за бортом все то, что не затрагивается в текущей разработке. Да не, просто давно на Эрланге не писал ничего Нравится сильно. Я хотел расписать как сам начал программировать, но не буду, смысла нет, вы всё равно не поверите слову какого чувака из интернета. Нельзя побить большую задачу на мелкие задачи так, что бы решение мелких задач покрыло собой всю область знаний, которую предполагается изучать Вы сами уже давали ответ на это: BaseLion отправлено дней назад. AstarothAst отправил дней назад. Ну, да, все как всегда - я бы гору свернул, но вот ты Ну хрен с с ними белыми пятнами А. На этом можно завершать. Задача преподавателя научить базовым вещам, а детали ученики сами освоят Типа так: Как раз рекурсию на примере факториала, или быструю сортировку. Они пока нигде еще не сработали кроме фантазии "многих". Эти люди работают в компании с кодинг-стандартом и обязательным код-ревью? Нет, они такие же преподаватели, как и вы. Tinaynox отправил день назад. А скрин окна с Main. Та по идее не особо важно.. Tinaynox отправил дня назад. SmartyMarty отправлено дня назад. Сам так отнефиг писал пока изучал. WitcherSanek отправил дня назад. Учиться говнокодить надо с основ. MattDjeison отправил дня назад. Как правило, люди, использующие printf не могу ответить на вопрос сколько аргументов она принимает и как это так выходит. Но это вас не смущает. Это непросто, согласен, но это все же проще объяснить чем cout. Похоже, что нет прав доступа Может попробовать студию запустить от имени администратора? BoobieBoo отправлено дня назад. А если пользователь даже близко не представляет что такое объект? А страну даже в больном воображении представить не может? У него имхо это лучше получается. ShyrikShmelev отправлено дня назад. Для геймдева новичкам лучше Unity3d использовать, там C и JS, их проще изучить. OlafAndvarafors отправил дня назад. Ну геймдев это я, конечно, громко сказал Даже просто для обучения Unity3d неплох, консоль - это безрадостно, в граф. Постараюсь сделать все, что в моих силах: DragonRuth отправила дня назад. Имхо, давать как первый язык язык с ручным управлением памятью, это слишком сложно. Я считаю, что это важно простым языком дать такие основы понимания всего этого. Вопрос выйдет ли у меня это? Abnegation отправлено дня назад. AmsterdamNED отправил дня назад. Была такая идея, но таких скрин кастов - полный интернет, а вот в таком стиле еще никто не пытался преподать уроки программирования. R1zen отправил дней назад. Гугл подсказывает нечто такое: И есть другие библиотеки, которые добавляются уже "от создателей" IDE. Проблема решилась установкой не portable версии и MSDN библиотеки. Arfirik отправлено дня назад. NTLDD отправлено дней назад. Не советую использовать Visual Studio Лучше удали ее и скачай Visual Studio Может конечно привыкнуть нужно, но ИМХО она очень не user-friendly: NTLDD отправлено дня назад. Меня просто дико интересует тема программирования и разработки игр. Сделал все как в посте, при нажатии ктрл ф5 выдает файл не найден game1. Tinaynox отправил дней назад. Точно 32х разрядное консольное приложение с галкой Empty Project? А вообще скинь скриншот настроек отсюда: Ага, в этом и проблема: В первом выпадающем списке выбери "Always build", а во втором - "Do not launch". TarakanRobot отправлено дня назад. У меня только один вопрос. Поиск работников, их создание с 0? Goti отправлено дня назад. Ну когда понадобится, тогда и сделаем паузу, вы собираетесь hello world экзешник запускать? Saunterer отправлено дня назад. KopetanUlitko отправил дня назад. Backslash отправил дня назад. JJack отправил дня назад. Это я все к чему, надо весь портал посвятить этому языку, чтоб кого-то чему-то научить, ИМХО. PuziBlinchiK13 отправил дня назад. Много вас таких было, но никто не хочет работать за 10 плюсиков. MrAuerbach отправил день назад. Информатика в самом широком смысле, то бишь. VanKrock отправлено дней назад. MrAuerbach отправил дня назад. Конечно, если мы не рассматриваем 3D-шутеры на собственном движке. NormanReedus отправил дней назад. В любой VS которую сможете достать: Для XP - VS Express Edition. А что делать, ели нет графы win32? Doom 3, вышел 10 лет назад. NobleCat отправлено дня назад. Паскаль, ворд, логомиры - у нас в школе был такой стек технологий:


Исходные коды программ и игр


Страница 1 из 1.


Правила русского языка в таблицах и картинках
Как готовить лаваш в домашних условиях
Как добраться из внуково до обнинска
Швейные машины brother ls 2125 инструкция машины
Физические свойства зрения
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment