Курсы создания компьютерных игр на C/C++ ( Часть 1 )

Для самых-самых начинающих программистов :] Часть 0 - http://pikabu.ru/story/_3430171
Курсы создания компьютерных игр на C/C++ ( Часть 1 ) Для самых-самых начинающих программистов :]    Часть 0 - <a href="http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_na_cc__chast_0__3430171">http://pikabu.ru/story/_3430171</a>
69
Автор поста оценил этот комментарий

Начинать объяснять программирование. С нуля. На C++. На примере разработки игр...

Иллюстрация к комментарию
раскрыть ветку (1)
22
Автор поста оценил этот комментарий
Я ждал этого ))))
показать ответы
5
Автор поста оценил этот комментарий

А вот тут согласен с автором(если так и задумывалось)
Сначала нужно с функциями знакомиться.

PS я проходил форматированный вывод почти(!) последней темой ^^ 

Количество "сложностей" зашкаливает.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Да, так и задумывалось. iostream - это на самом деле уже высший пилотаж. Объекты и операторы потоков следует давать ИМХО уже после глубокого изучения ООП. Большинство людей используют эти потоки так и не имея представления как они устроены и почему работают именно так.
показать ответы
DELETED
Автор поста оценил этот комментарий

Кросавчег, сразу с самых азов учишь писать спагетти код. Так держать! Надо же нормальным программистам выделяться на чьем то фоне. 

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Ого, в HelloWorld увидеть спагетти-код. Мастер, снимаю шляпу :)

показать ответы
2
Автор поста оценил этот комментарий
У вас есть педагогическое образование? У меня да. Вы так смело заявили, что каким-то вещам можно научить (научиться) только, если ученик имеет определенные предрасположенности, я даже не знаю что вам ответить. Людей с такими твердыми убеждениями обычно бесполезно переубеждать. Они останутся при своём даже не смотря на тысячи методичек, статей и книг изданных педагогами о том, что научить можно любого, нужно лишь знать подход.


У автора свой подход - он подает материал в виде создания игры, пусть простой, но игры. Да, он не раскроет всех возможностей С++, но если ему удастся привить хоть одному из читателей желание продолжать учиться, то читатели сами смогут нагуглить более серьезные книги.


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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
У меня чувство дежавю. :)) Когда-то я очень близко к Вашим словам объснял тоже самое одному человеку. :)))
Автор поста оценил этот комментарий
Чего, блин? iostream - высший пилотаж?

Нда. Продолжайте, вас внимательно слушают.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Одно дело брать и бездумно использовать, другое дело - понимать как это устроено. Если человек запускает Unity3D, перетаскивает на сцену систему частиц огня, даже близко не понимая что это, при этом безумно радуется и считает себя великим программистом, то это его выбор. :)

Для того, чтобы понять сложные вещи, нужно понимать из чего они состоят, хотя бы в общем виде.

показать ответы
3
Автор поста оценил этот комментарий

Лично я на него как-то спокойно перешёл, и меня больше удивила реакция окружающих на такие "новшества".

А по поводу функций: автор даже не раскрыл return (void main() вообще ужас какой-то, а как же старое доброе return 0; подтверждающее корректное завершение программы?), хоть и упомянул, что никакие данные не возвращаются.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Все со временем, если вы знаете зачем это, это не значит, что в первом же уроке нужно накидать на больную голову остальных новичков столько информации. :)
показать ответы
Автор поста оценил этот комментарий

void main(){} ?

На С++?
Парень, ты серьезно?
Ничего так, что это не ANSI C и стандарт языка требует int main(){}?

Иллюстрация к комментарию
раскрыть ветку (1)
3
Автор поста оценил этот комментарий
О Боги... Этот урок как бы подразумевает, что пользователь еще не знает что такое int и return.
показать ответы
3
Автор поста оценил этот комментарий
Оооо господи, как же охерительно всё рассказано,автор, от души здоровья тебе, радости, с днем рождения каждый день, теперь даже мои друзья гуманитарии пишут игры благодаря тебе, у меня слов нет как это офигенно все круто, после 80-летнего препода по плюсам твои лекции как будто Боженька спустился и запостил.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Иллюстрация к комментарию
1
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ага, в этом и проблема :)

В первом выпадающем списке выбери "Always build", а во втором - "Do not launch"

показать ответы
1
Автор поста оценил этот комментарий

@dansken помогай, при нажатии ctrl+f5 пишет:" game1.exe не является внутренней или внешней командой, исполняемой программой или пакетным файлом."

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Хммм.. Попробуй нажать Ctrl+F7, а потом Ctrl+F5...
А вообще скинь скриншот настроек отсюда: Tools/Options/Projects and Solutions/Build And Run/
показать ответы
1
Автор поста оценил этот комментарий
С играми вообще оказалось все сложнее, чем я думал

Напомнило. Жизнь жестока, да)

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий
Иллюстрация к комментарию
1
Автор поста оценил этот комментарий

Звучит как "Не лезь в это, сделай змейку и успокойся") Спасибо за ответ

раскрыть ветку (1)
Автор поста оценил этот комментарий

Нее.. Это звучит как "Не столь важно с какого языка программирования начинать обучение" :) В будущем будет более понятно что к чему и зачем :)

показать ответы
1
Автор поста оценил этот комментарий

Привет. Я хотел бы задать один вопрос если можно. Я учусь программировать и решил, для разнообразия,  попробовать сделать игру. Хотел узнать на чем пишутся платформеры вроде каких-нибудь Salt and Sanctuary или Deadlight. Я понимаю, конечно, что это уже очень высокий уровень (до которого мне, вероятно, никогда не дотянуть), я просто привел их как пример и хочу узнать что именно нужно учить для написания подобных игр. Буду благодарен если вы меня направите, если можете. Больше не придумал к кому обратиться)

раскрыть ветку (1)
Автор поста оценил этот комментарий

Привет :) Игры высокого уровня пишутся на движках высокого уровня :) А движки высокого уровня могут быть написаны на различных языках программирования, использовать различные языки программирования и быть использованы с помощью различных языков программирования :)

показать ответы
1
DELETED
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Nice!
1
DELETED
Автор поста оценил этот комментарий

заметил что после ctrl+F5,  в папке проекта курсор меняется на "песочные часы" да и вообще студия зависает иногда на мертво

раскрыть ветку (1)
Автор поста оценил этот комментарий

Попробуйте просто F5, но после printf("Hello, Pikabu!\n"); дописать еще
getchar();
getchar();
( Об этом будет во втором уроке )

1
DELETED
Автор поста оценил этот комментарий

Кстати студия тоже не на диске С, а на F или D (= Если это важно

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий
Та по идее не особо важно.. Не знаю даже в чем проблема с консолью может быть =\
показать ответы
1
DELETED
Автор поста оценил этот комментарий

Продолжает висеть

раскрыть ветку (1)
Автор поста оценил этот комментарий

А скрин окна с Main.cpp можно?

Иллюстрация к комментарию
показать ответы
1
DELETED
Автор поста оценил этот комментарий

@Dansken, Заново начал, на диске D. Запустил студию с правами Администратора. Ошибок не выдает, но и текст не выдаёт )=

1>------ Build started: Project: Lesson_1, Configuration: Debug Win32 ------
1> Main.cpp
1> Lesson_1.vcxproj -> D:\GameDev\Lesson1\Lesson_1\Debug\Lesson_1.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

после компиляции вылезает  пустое окошко командной строки

раскрыть ветку (1)
Автор поста оценил этот комментарий

И продолжает висеть пустым? Или сразу исчезает?

показать ответы
1
DELETED
Автор поста оценил этот комментарий

Привет, @Dansken ! Спасибо за труды. У меня тут проблемка в первом уроке.

Выдаёт такую штуку, при компеляции,

1>------ Build started: Project: lesson1, Configuration: Debug Win32 ------
1>LINK : fatal error LNK1168: cannot open F:\gamedev\lesson1\lesson1\Debug\lesson1.exe for writing
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Подскажешь почему вдруг новая папка стала только для чтения ?


P.s. хейтеры, ток балаболить могут (=

раскрыть ветку (1)
Автор поста оценил этот комментарий
А F - это жесткий диск или флешка?
показать ответы
1
Автор поста оценил этот комментарий

Сделал все как в посте, при нажатии ктрл ф5 выдает файл не найден(game1.exe)

Ошибки:


Ошибка LNK2001 неразрешенный внешний символ "_WinMain@16" game1 D:\Programs\visual\Для тестов\game1\game1\MSVCRT.lib(exe_winmain.obj) 1


Ошибка LNK1120 неразрешенных внешних элементов: 1 game1 D:\Programs\visual\Для тестов\game1\Release\game1.exe 1

раскрыть ветку (1)
Автор поста оценил этот комментарий
Хм.. Точно 32х разрядное консольное приложение с галкой Empty Project?
1
Автор поста оценил этот комментарий

@dansken а какую литературу можешь посоветовать?

раскрыть ветку (1)
Автор поста оценил этот комментарий
1
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий
Иллюстрация к комментарию
1
Автор поста оценил этот комментарий
Спасибо,кстати,скоро новый пост)?Меня просто дико интересует тема программирования и разработки игр))
раскрыть ветку (1)
Автор поста оценил этот комментарий
Как только допишу.. И да - я его потихоньку пишу ))
1
Автор поста оценил этот комментарий
Не советую использовать Visual Studio 2015 :)

Это еще почему?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Первое личное впечатление :) Может конечно привыкнуть нужно, но ИМХО она очень не user-friendly :)
показать ответы
1
Автор поста оценил этот комментарий

@Dansken,  Имеем:Visual studio 2015
проблема:(код написан)жмем кнтр=ф5 выдает проект устарел (debug win32- изменял ничего не менялось)- выполнить сборку(да)- сборка не удалась вернуть в последний успешный...(не дословно)да-еще раз контр ф5,тото is not recognized as an internal or external command

раскрыть ветку (1)
Автор поста оценил этот комментарий
Не советую использовать Visual Studio 2015 :)

Лучше удали ее и скачай Visual Studio 2013:

https://www.visualstudio.com/news/vs2013-community-vs

Нажать там на линку "Download Visual Studio Community 2013."

показать ответы
Автор поста оценил этот комментарий

в чём проблема?

в руках?)

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий
Похоже, что нет прав доступа... Может попробовать студию запустить от имени администратора?
Автор поста оценил этот комментарий

У меня только один вопрос. Каков ваш умысел? Поиск работников, их создание с 0?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Создать армию C++ геймдев разработчиков для борьбы с гавнокодерами Unity3D )))
Ну и еще я пытаюсь жену обучить, чтоб помогала с хобби-проектами :)

Автор поста оценил этот комментарий

Пока серия идет неплохо, держи плюс. И про дорожки неплохо придумано, таким же образом можно объяснить мультипоточность.

Подписался чтобы следить за развитием событий и начать минусовать как только польется говнокод.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Договорились :)
Автор поста оценил этот комментарий

В каком смысле "вольное чтение технической литературы"? Вы всерьез думаете, что наделаете десяток (предположим, у вас хватит задора на десять) постов и их хватит, чтобы научиться чему-то кроме установки студии и создания проекта? Как вы понимаете применимость данных постов? Какой-нибудь Василий Пупкин, сидя и ковыряя в носу, подумает "Оооо, я хочу научиться делать игоры на C++. Загляну-ка я не на хабр, а на пикабу, вдруг среди сисек, спойлеров к Игре Престолов и котиков найдется кладезь мудрости?". Он заходит на пикабу, видит 10 постов, перепечатывает их до буквы и проникается мудростью и забивает, потому что кроме как копировать пост ничего-то и не умеет. Потому что:

1. В 10 постов не уложить даже минимум необходимых знаний

2. Книжки надо читать

3. Учиться писать код

4. Какое-то творческое начало в юном падаване тоже должно быть

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Ну если я вспомню себя самого лет десять назад, то во мне горело творческое начало, однако я засыпал на 100й странице любого тысячилистного томика Страуструпа или Ламота и читал "через силу", испытывая жуткий негатив, точно такое же отношение в универе было к преподавателям, которые из тех же томиков давали "на от***сь" лекции. Вот мне тогда не хватало какого-то такого "дружественного" учителя, который бы простым, ненапряжным языком объяснил что к чему, научил азам, а мастерство уже потом можно было бы доводить всякими тысячитомниками и статьями Хабра :)
показать ответы
Автор поста оценил этот комментарий
Друг, я в танке- объясни мне как можно учить программирование с разработки игр? Ну ок- консольные игры- согласен, это да, но и то это приходит уже  с изучением ООП и тд.

 Потом уже начинаются библиотеки типа Sfml- но тебе тогда лет 10 надо уроки делать, пока до этого дойдешь. У меня в универе, чтобы только Геймдевовские лекции посещать- нужно было сдать матан, физику, дискретку, С ,С++, java, комп архетектура и еще чего то там (уже не помню) -ну без этого всего дела не будет- будет игра на костылях сжирающая оперативную память и нагружающая все что можно (разработчика в первую очередь)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Мое ИМХО - Не обязательно владеть докторскими знаниями или уровнем гавнокодера, чтобы начать писать игры. Главное - правильно сочетать теорию с практикой. В игровом стиле. С конечным результатом. :)

показать ответы
1
Автор поста оценил этот комментарий

Тогда почему бы не начать с обзора литературы, плюсы и минусы книг, мануалов и т.д.? "Скажите, а вы точно преподаватель?". Любой предмет начинается со списка литературы на изучение. А тут уже какие-то функции, войды, printf и никакого понимания, почему выбран именно С++ (может, игры на питоне шустрее работают, откуда абсолютному новичку™ это знать?), и т.д. Если вы пишете "начинающим программистам", которые, как подразумевается, уже знают все эти нюансы, то нафига им пост о том, как установить Visual Studio?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Я считаю, что это важно простым языком дать такие основы понимания всего этого. Вопрос выйдет ли у меня это? Посмотрим :)
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Я удовлетворюсь тем, что просто оставлю эту информацию здесь :) И всегда смогу скидывать ссылку на нее людям, которые просят меня об этом ( а это случается все чаще и чаще ) :)

Автор поста оценил этот комментарий

не дай Бог сольёшься, как все..

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Большие надежды :) Постараюсь сделать все, что в моих силах :)

1
lookid20
Автор поста оценил этот комментарий

Doom 3, вышел 10 лет назад. 366 000 строк кода. Это только движок.

http://fabiensanglard.net/doom3/

В современных движках под ~2 000 000 строк кода.

Твоё while(true) { Update(); Render(); } которое будет выдавать 15 кадров на 10 картинках никому не нужно.

Иллюстрация к комментарию
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий

Может быть и да, просто уже на с давно не писал. Поэтому принтф режет по пьяни глаза) А что за игру вы собираетесь делать?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Несколько обучающих игр, пока это небольшой секрет ))
Автор поста оценил этот комментарий

а систем пауз не надо?


в студии консоль вроде сразу закрывается

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ctrl+F5 автоматически делает паузу
показать ответы
Автор поста оценил этот комментарий

@Dansken если хочется создать полезную вещь, которая может помочь людям в освоении азов программирования.Сделай скрин каст как ты с нуля часов за 10 делаешь игру.Пятнашки, или тетрис какой.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Была такая идея, но таких скрин кастов - полный интернет, а вот в таком стиле еще никто не пытался преподать уроки программирования. Надеюсь :)
показать ответы
2
Автор поста оценил этот комментарий
Как правило, люди, использующие printf не могу ответить на вопрос сколько аргументов она принимает и как это так выходит. Но это вас не смущает.
раскрыть ветку (1)
Автор поста оценил этот комментарий
Это непросто, согласен, но это все же проще объяснить чем cout. :)
показать ответы
Автор поста оценил этот комментарий
Капец, если учишь/показываешь/хвастаешь как делать графическую игру на с++, то показывай так, как будто разбираешься в этом. А не так, будто учишь самым основам зеленых новичков. Это очень смешно выглядит, вообще весь пост в целом не лоделан доконца.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Может и не оправдал чьих-то ожиданий, но пост учит самым основам зеленых новичков :)

показать ответы
Автор поста оценил этот комментарий

может быть стоило написать:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world" << endl;
return 0;
}

раскрыть ветку (1)
Автор поста оценил этот комментарий

Как правило, люди пишущие это не понимают что это такое и используют не задумываясь, ИМХО объекты и потоки стоит давать людям с уже очень хорошей базой ООП.

показать ответы
1
Автор поста оценил этот комментарий

Хотя объяснить легко.
Я так это обычно делаю:
1 строка - мы будем использовать объекты из страны иострим
2 строка - чтобы каждый раз не писать, что объект из страны иострем - мы напишем что используем в коде страну иострим.
3. Когда программа закончится - надо сказать об этом Виндовс - вернуть какое-то число
итд

раскрыть ветку (1)
Автор поста оценил этот комментарий
А если пользователь даже близко не представляет что такое объект? А страну даже в больном воображении представить не может? ))
1
Автор поста оценил этот комментарий
Ставлю на 8 ;D
раскрыть ветку (1)
Автор поста оценил этот комментарий

ну если хоть какое-то кол-во людей сделают задания из Части 8, то выпущу Часть 9 ))

Автор поста оценил этот комментарий

Кхм, т.к. я супер чайник, хотелось бы знать,что именно надо скачать что бы учиться по этим урокам?

раскрыть ветку (1)
Автор поста оценил этот комментарий

@Dansken Приветствую, почитал сис. требования VS 2013. Не существует ли альтернативы в изучении для Windows XP? Можно ли сделать проект в  VS Online?

раскрыть ветку (1)
Автор поста оценил этот комментарий

В любой VS которую сможете достать :) Для XP - VS 2010 Express Edition

Автор поста оценил этот комментарий

Разница между Borland и Visual большая?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Достаточно большая :)
Автор поста оценил этот комментарий

 @Dansken, что за хрень?((
З.Ы. VS C++ 2008 Express

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

Гугл подсказывает нечто такое:

https://msdn.microsoft.com/ru-ru/library/cc737011%28v=ws.10%...

показать ответы