강의

멘토링

로드맵

BEST
게임 개발

/

게임 프로그래밍

[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템

다양한 게임에 적용할 수 있는 [퀘스트 시스템]과 개발의 생산성을 높이기 위한 [모듈식 프로그래밍]을 배우는 강의입니다.

(4.8) 수강평 51개

수강생 732명

  • Developer G
스킬 업
내공을 쌓아요
Unity

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

  • 조립하여 원하는 퀘스트를 만들고 관리하는 [퀘스트 시스템]

  • 기능을 쪼개고 조립하여 객체를 구성하는 [모듈식 프로그래밍]

  • Update 함수에 의존하지 않는 이벤트 기반의 [이벤트 주도 프로그래밍]

모듈식 프로그래밍👨‍💻으로 
게임 개발 레벨, 한 단계 업그레이드! 

게임, 제대로 만들고픈 
당신을 위해! 🕹️

안녕하세요, 여러분. Developer G입니다.

퀘스트 시스템은 없는 게임이 없을 정도로 게임에 필수적으로 들어가는 시스템입니다. 그렇다보니 유니티의 에셋스토어, 언리얼 엔진의 마켓플레이스에서 잘 팔리는 에셋 중 하나이죠.

퀘스트 시스템은 다양한 게임에 적용할 수 있도록 체계적이고 범용적으로 만들 필요가 있는데, 이를 위해선 모듈식 개발이 필수적입니다. 하지만 인터넷에서 쉽게 찾아볼 수 있는 유튜브 강의를 봐도 모듈식으로 개발하는 경우는 흔치 않고, if문과 switch문을 이용해 때려박는 식으로 구현하는 경우가 많습니다.

단언컨대, 그런 식으로는 무엇 하나 잘 만들 수 없습니다.

모듈식 프로그래밍이 중요한 이유

✅ 개별 클래스가 가벼워집니다.
✅ 수정과 디버깅이 용이해집니다.

결과적으로, 개발 생산성을 높일 수 있습니다!
(확장성, 재사용성 ▲)

이 강의에서는 📖

퀘스트 
시스템 

모듈식 
프로그래밍 

이벤트 주도
프로그래밍 

여러분들이 '무언가'를 잘 만들 수 있도록 체계적이고 범용적인 퀘스트 시스템을 모듈식 프로그래밍을 통해 개발하는 방법을 알려드릴 것입니다.

이 강의를 통해 초보 프로그래머에서 체계적인 나만의 시스템을 개발할 수 있는 프로그래머로 한 단계 더 나아가시길 바랍니다.


이런 걸 할 수 있어요! ✨

Step 1

다양한 목표와 보상을 가진 모듈식 퀘스트
퀘스트를 제어하는 퀘스트 시스템을 만들어봅니다.

Step 2

만든 시스템을 예제에 적용하고 확장해봅니다.

보너스, 전체 영상 자막 제공! 📚

강의에서 구현하는 기능을 
쉽고 정확하게 이해할 수 있도록 
수업 영상마다 자막을 함께 제공합니다. 


궁금한 내용을 
지금 확인해보세요 💬

Q. C#에 대한 지식이 어느 정도 있어야 하나요?

C#의 기본적인 문법을 공부한 상태여야 합니다. Linq, Event, Collection 등 C#의 전반적인 기본 문법을 다 사용하지만 따로 문법에 대한 설명은 하지 않을 것이기 때문에 C#을 잘 모르거나 부분적인 지식만 있을 경우 원활히 따라오기 힘들 수 있습니다. 

다만 게임 개발을 하려면 문법은 당연히 알아야 하는 부분이고, 남들이 안쓰는 특별한 문법을 사용하는게 아니기 때문에 C#에 대한 부분적인 지식만 있으셔도 따로 문법을 찾아보며 공부하실 수 있으신 분들은 충분히 따라오실 수 있습니다.

Q. 유니티에 대한 지식이 어느 정도 있어야 하나요?

코드 작성을 통한 시스템 개발이 주 내용이기 때문에 초급 수준의 유니티 지식과 ScriptableObject에 대한 지식만 있으면 됩니다.

Q. 수업 내용을 어느 수준까지 다루나요?

존재하는 모든 게임에 대응하는 퀘스트 시스템을 만드려면 많은 것들을 고려하며 시스템을 개발해야 하기 때문에 시간과 난이도 관계상 퀘스트 시스템의 보편적 필수 기능만 구현할 것입니다. 하지만 예제 게임에 저희가 만든 시스템을 적용 및 확장해볼 것이기에 수강생 여러분들은 자신의 게임에 시스템을 적용하고 필요에 따라 기능을 추가, 확장하는 법을 배우게 될 것입니다.

Q. 모듈식 프로그래밍을 하면 뭐가 좋은가요?

통계에 따르면 클래스의 코드가 300줄이 넘어갈 경우 버그가 발생할 확률이 급격히 올라간다고 합니다. 게임은 프로그램의 규모가 상당히 크고 수정과 확장이 매우 빈번하게 이루어져 필연적으로 코드가 복잡해질 수 밖에 없는데, 코드를 적절히 분할하지 못한다면 개발을 제대로 완료하기도 전에 버그에 지쳐 개발을 포기하거나 개발을 완료해도 버그 투성이의 미완성 게임이 만들어질 것입니다.

그렇기에 여러분이 제대로 된 게임을 개발하기 위해서는 코드를 모듈식으로 작성하는 법을 알아야 합니다.

Q. 비전공자도 들을 수 있는 강의인가요?

시스템을 만든다고 하니 어렵게 들릴 수도 있지만, 시스템이란 것은 어떻게 구성할지 고민하는 과정이 어렵지 구현이 어려운 것이 아닙니다. 아직 프로그래머적 사고 방식이 잡히지 않은 비전공자분들은 저와 함께 시스템을 개발하며 기능 구현에 급급하여 의식의 흐름대로 코드를 작성하는 것이 아닌, 기능을 설계하고 체계적으로 코드를 작성하는 방법을 배우게 될 것입니다. 

📢 수강 전 확인해주세요!

  • 본 강의에서 사용한 유니티(Unity) 엔진 버전은 2021.2.0f1입니다. 스크립트 작성이 주된 내용인 강의이므로 엔진 버전에 구애받진 않습니다. (Unity 6에 적용 가능)

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 프로그래밍 실력을 한 단계 더 높히고 싶은 [루키 프로그래머]

  • if문과 switch문에 의존하는 때려박는 식의 코딩이 아닌 체계적인 구조의 [모듈식 프로그래밍]을 공부하고 싶으신 분

  • 재사용 가능한 [체계적 시스템]을 개발하고 싶은데 갈피를 못 잡겠는 분

  • 나만의 [퀘스트 시스템]을 만들어보고 싶으신 분

선수 지식,
필요할까요?

  • C#

  • 유니티

안녕하세요
입니다.

1,058

수강생

69

수강평

160

답변

4.7

강의 평점

3

강의

안녕하세요, 게임을 사랑하고 개발을 사랑하는 게임 프로그래머 Developer G입니다.

저는 어떻게하면 깔끔하고 체계적인 코드를 작성할 수 있을지 항상 고민하는데요,

제 고민의 결과물들을 여러분들에게 아낌없이 가르쳐드리겠습니다!

커리큘럼

전체

19개 ∙ (5시간 48분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

51개

4.8

51개의 수강평

  • mips777님의 프로필 이미지
    mips777

    수강평 5

    평균 평점 5.0

    5

    63% 수강 후 작성

    In coding, analysis is important first, and it is great to explain Quests and Tasks separately.

    • developerg
      지식공유자

      Thank you for taking the class! One of the most important things in development is to know for sure what I need to make. So I always document what elements I need to make before development, and while developing, I organize things I need to think about and additional elements while working.

  • zlffj04890545님의 프로필 이미지
    zlffj04890545

    수강평 3

    평균 평점 5.0

    5

    47% 수강 후 작성

    This is a really good lecture. I've been watching too many lectures on YouTube that are roughly followed, so I've been using Unity for a few years now, but I feel like my skills have stagnated a lot. When I heard that Scriptable Objects are just for storing data, I thought I could just use the serialization class, so I didn't use it. I was surprised that I could use it for modularization like this, and I'm going to listen to it as much as I can during this holiday to get a lot of inspiration. ㅎㅎㅎㅎ If you film the next lecture, it would be even more helpful!! Thank you.

    • developerg
      지식공유자

      Thank you for taking the course! ScriptableObject is a convenient feature that can be used in a variety of places and in a variety of ways, such as systems, tools, and containers, but it is one of the unfortunate features that we do not learn how to use during the learning phase. Now, the use has been reduced somewhat due to the addition of the unfinished polymorphic serialization feature called SerializeReference, but there are still many irreplaceable uses, so I am glad that you have learned about the use of ScriptableObject through this course. I will come back with a better course that will satisfy you. Thank you!

  • gimhyohwan9607037님의 프로필 이미지
    gimhyohwan9607037

    수강평 2

    평균 평점 5.0

    5

    100% 수강 후 작성

    At first, I thought, "Is it really that much of a problem to add functions using switches?", but when I saw that the code was simple without a single switch because it was made modularly, I thought, "That's the problem;;;" This was a lecture that made it clear. I'm not sure if I can write code modularly without using switches like the instructor, but I'll practice hard as the instructor said. Thank you for the great lecture :D

    • developerg
      지식공유자

      I think it was worth making the lecture since your thoughts have changed that much. I wasn't able to make functions in a modular way from the beginning. I spent days thinking about what to separate and how to combine them, and even now, sometimes I think about making a modular structure for a few hours at the shortest and a day or two at the longest. Since it's your first time, it may take a long time to make a modular structure, but it's worth investing time, so don't be too impatient and take your time designing. One thing to keep in mind is that a slapdash implementation is selling the future to buy the present, so don't be tempted to think, "It's hard to think about and it's a waste of time, so should I just slap it and implement it?" Because 'this time' becomes 'next time' and 'in the future'.

  • lshzang06222813님의 프로필 이미지
    lshzang06222813

    수강평 8

    평균 평점 5.0

    5

    100% 수강 후 작성

    If it's a game, you do content updates or balance patches, and I think easy and stable maintenance is important at that time. I think it was a good lecture that taught me about that structure, and I felt like I met a good teacher because the questions were answered quickly and seriously. I hope you make more modular series, and even if it's not modular, I hope you make a lot of good content!

    • stellarest1356님의 프로필 이미지
      stellarest1356

      수강평 6

      평균 평점 5.0

      5

      100% 수강 후 작성

      I really like the lecture. If you have the chance in the future, please give me an inventory lecture too!!

      ₩36,300

      Developer G님의 다른 강의

      지식공유자님의 다른 강의를 만나보세요!

      비슷한 강의

      같은 분야의 다른 강의를 만나보세요!

      연관 로드맵

      강의가 포함된 로드맵으로 학습해 보세요!