이런 걸
배워요!
유니티 동작의 메모리 구조
유니티로 슈팅게임을 만드는 방법
프로토타입이 아닌 실제 게임을 만드는 방법
비전공자 & 입문자를 위한 게임 개발!
유니티 + C#의 구조와 원리를 함께 이해해보세요.
유니티(Unity)의 C#을 배우고 나서 게임을 만들고 싶은 입문자들에게 가장 필요한 강의가 무엇일지 생각해 보았습니다. 바로 유니티의 내부적인 기능들과 실제 코드와 메모리가 어떤 관계를 이루는 것을 아는 것입니다. 큐브를 하나 만들어도 캐릭터를 하나 만들어도 실제 내부적인 메모리 동작을 모르면 더 이상 게임 제작은 불가능합니다. 그냥 공이 통통 튀는 프로젝트만 만들 수 있을 뿐입니다. 그러한 문제를 해결하기 위해 이 강좌를 만들었습니다.
그래서 다른 게임 강좌와 다르게 유니티로 게임을 만드는 도중에 유니티 기능과 C# 문법을 같이 학습합니다. 기능의 사용에만 초점을 맞추고 있지 않습니다. 기능 하나가 내부적으로 내가 만드는 코드와 어떤 관계를 맺는지 실제 클래스와 인스턴스와 메모리가 유니티 기능과 내 코드 사이에서 어떻게 동작하는지를 설명합니다. 굳이 어려운 문법을 사용하지 않아도 게임 제작은 가능합니다. 딜리게이트나 인터페이스 다중상속이 가능한 캐릭터 클래스를 만드는 작업은 여러 게임을 쉽게 제작하고 올려보고 나서 해야 할 일입니다.
• 계층뷰에 있는 게임오브젝트의 메모리가 어떻게 존재하는지
• 왜 드래그를 해서 오브젝트를 연결하는지
• 왜 Time.deltaTime을 벡터에 곱하는지
• 왜 게임 프로그래밍에서 벡터3이 있는지
• 리지드바디와 충돌체가 왜 나뉘어 있는지에 대한 원리와 이유에 대해서 설명합니다.
이런 내용들은 다른 강의에서는 1분 정도 설명하고 끝내는 내용입니다. 그 강의는 실제 개발자를 위한 강의이기 때문입니다. 하지만 게임 개발에 입문하는 비전공자, 비전문가에게는 다른 강의가 필요합니다. 왜 유니티에 이러한 기능이 있는지에 대해 이해해야 합니다.
그래서 이 강의에서는 게임제작 외에 유니티의 기능을 C#과 같이 이해하고 실습하는 내용이 강의 분량의 절반을 넘어갑니다. 게임은 중반 이후에 나옵니다. 원리를 알기 전까지 프로그래밍을 작성할 수 없기 때문입니다. 게임 개발만 있는 강의를 배울 수 있는 사람들은 실제 개발자들 뿐입니다.
비전공자들과 입문자들이 어떻게 게임을 만들 수 있을지에 대한 내용을 알려드리기 위해 이 강의를 제작했습니다.
본 강의는 게임개발에 대한 내용을 비전공자들과 입문자들의 입장에서 어떻게 접근할 수 있는지 알려주는 강의입니다. 그렇다고 쉽지만은 않습니다. 예를 들어 모노비헤이버에 있는 게임오브젝트 변수가 동작하는 원리 같은 것을 설명하기 위해 소유참조, 역참조, 상호참조의 예제를 설명하고 나서 게임오브젝트 변수의 동작 원리를 설명합니다. 비슷한 구조의 작은 예제를 소개하는 것을 보시면 이걸 왜 해야 하는 것일지에 대한 궁금증이 들 수도 있습니다. 하지만 프로그래밍은 컴퓨터의 내부 원리를 이해하고 컴퓨터에 말을 거는 작업입니다. 내 말대로 컴퓨터가 동작하기 위해서는 클래스 바깥으로 빠져나와 저희가 사용할 수 있는 변수와 함수가 어떻게 동작하는지를 알아야 합니다. 다른 사람에게 말을 하기 위해서 다른 사람의 생각을 역지사지하는 것과 똑같습니다.
그리고 그것이 가능해야 디버깅이 가능해집니다. 프로그래밍은 원래 고난과의 싸움입니다. 얼토당토하지 않은 말도 안되는 오류가 나올 수 있습니다. 이러한 문제를 해결하기 위해서는 기초가 필수적입니다.
입문자분들이나 초보자분들의 경우에는 기초 C#(Part.2에 해당하는 내용)을 모르면 이 강의의 이해가 불가능합니다. 하지만 이 강의를 배우고 나서 내가 비슷한 예제를 만들 수 있게 되면 실제 게임을 만드는 두려움이 사라질 것입니다.
유니티의 메모리구조를 살펴보면서 문법을 배우고 실제 게임을 개발하는 것을 목표로 합니다. 간단한 슈팅게임이지만 실제 스토어에까지 올리는 작업을 실행할 것입니다.
이 강의를 듣고 나면 간단한 게임을 개발할 수 있게 됩니다. 다만 입문자의 경우 길게 잡고 하루 30분씩 꼭 연습이 필요합니다. 유니티에 접근하는 초보자들이나 비전공자들에게 큰 도움이 될 것으로 생각합니다.
현재 강의는 약 8시간 분량으로 짧습니다만 강의수가 100개 가까이 됩니다. (계속 추가예정)
짧은 강의로 짧게 공부하고 연습하면 하루 30분으로 빠르면 30일 길면 3개월에 유니티 C# 프로그래밍의 기초를 학습할수 있습니다. 하지만 비전공자들은 학습을 느리게 하는 것이 좋습니다. 프로그래밍은 언어이기 때문에 장기기억으로 쌓아야 자신이 직접 프로그래밍을 할 수 있습니다.
이 강의에서는 학습을 하시고 꼭 실습을 하시는 것이 좋습니다. 특히 비전공자는 평소에 프로그래밍으로 일을 하지 않기 때문에 그냥 보기만 해서는 절대 프로그래밍을 습득할 수 없습니다.
이해를 하시고 나서 꼭 실습을 해야 합니다.
Q. 비전공자도 들을 수 있나요?
A. 네, 비전공자와 전공자 모두를 위한 강의입니다. 단 비전공자나 입문자의 경우 인프런에 있는 선수과목인 Part2 의 C# 프로그래밍 강좌" 를 듣고 오셔야 들으실 수 있습니다. 이 강의의 0장에 있는 C# 복습은 전공자를 위한 내용입니다.
Q. "슈팅게임 개발 강의"를 배우면 무엇이 좋은가요?
A. 원리를 알아야 응용이 가능합니다. 프로그래밍을 하는 것만이 아닌 오류를 잡을 때도 원리를 알아야 응용을 할 수 있습니다. 프로그래밍을 할 때 오류가 생긴다고 해서 다른 누군가가 문제를 해결해주지 않습니다. 실제 게임을 만들고 한 싸이클을 돌려보면 더 많은 것들을 할 수 있습니다.
Q. "슈팅게임 개발 강의"를 들으면 어떤 일을 할 수 있나요?
A. 유니티로 게임을 만드는 시작점에 서게 될 수 있습니다. 또한 유니티로 다른 프로그램을 만들때 큰 도움이 됩니다. 원리를 알수 있기 때문에 응용이 가능합니다. 즉 간단한 게임이지만 게임을 만들 수 있는 실력을 가지게 될 수 있습니다. 또한 실제적으로 업로드 가능한 게임을 만들어 업로드까지 하는 실무적인 내용까지도 포함하기에 스마트폰 게임개발에 필요한 실제적인 팁을 얻을 수 있습니다.
Q. 이 강의만의 특별한 장점이 있을까요?
A. 처음 볼 때는 어려울 수 있습니다. 하지만 그 단계를 넘어가서 중반 이상 가게 되면 원리에 대한 개념이 생깁니다. 내부 구조를 알면 컴퓨터가 어떻게 돌아가는지 예상할 수 있습니다. 그렇게 되면 프로그래밍뿐만 아니라 디버그 실력도 향상됩니다. 경력자가 왜 경력자일까요? 디버그를 잘 해서 경력자인 것입니다. 디버그를 잘하는 경력자의 관점을 알려드립니다. 99%를 완성해도 오류가 있으면 그 게임은 성공하기 어렵습니다. 그리고 오류를 해결할 수 없다면 그것만큼 힘든 일이 없습니다. 이런 상황을 예방하기 위해 원리 그리고 메모리에 대한 공부가 필요합니다.
학습 대상은
누구일까요?
기초 C#을 이제 막 학습하신 분
유니티 오브젝트의 메모리 동작원리가 궁금하신 분
선수 지식,
필요할까요?
구조지향과 관련되는 C# 프로그래밍 언어
C# 프로그래밍 Part1
안녕하세요. UDevApp 의 최형선이라고 합니다.
무엇인가를 만들어낸다는 것은 정말로 행복한 일입니다.
세상에 나의 제품이 나올 때의 느낌은 스티브잡스가 느낀 그것이나
여러분들이나 저와 다르지 않다고 생각합니다.
여러분들에게 그러한 감정을 드리는 사람이 되고 싶습니다.
네이버카페와 블로그와 유튜브에도 많이 찾아와 주시길 바랍니다.
.
https://cafe.naver.com/ultimategunz(카페바로가기)
http://blog.naver.com/siwoo2406(블로그 바로가기)
https://www.youtube.com/user/ChoiHyungSun/(유튜브 바로가기)
감사합니다.
전체
230개 ∙ (30시간 21분)
가 제공되는 강의입니다.
C# 복습 인트로
01:14
유니티의 뷰
03:41
유니티 설치 및 프로젝트
07:22
윈도우즈 유니티 설치
05:57
변수의 정리
05:53
함수의 정리
04:18
구조체의 메모리
08:11
클래스의 메모리
10:27
클래스의 레퍼런스
02:50
객체지향1(객체지향의 기본적 의미)
07:34
객체지향2 (객체지향의 관점)
04:22
유니티와 프로그래밍 인트로
01:16
게임오브젝트
08:33
컴포넌트
05:06
게임오브젝트의 메모리
05:25
컴포넌트의 메모리
05:05
모노비헤이버의 name 변수
06:15
게임오브젝트의 클래스
04:54
클래스의 포함관계 인트로
01:00
소유하는 참조
09:13
역참조와 상호참조
06:41
GameObject 의 name 변수
03:40
name 변수 정리
06:01
다른 오브젝트의 접근
05:42
API 문서 살펴보기
09:02
자기참조
09:08
this 의 의미
03:42