44,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
질문
일반적인 게임에서는 실시간으로 계속 렌더링해주는것이 자연스럽지만 공부차원에서 질문드립니다. Program.cs에서 지금과 같은 상황은 Initialize()와 GenerateByBinaryTree()에서 이미 tile이 다 결정되므로 렌더링하는 board.Render()는 한번만 호출하면 되는 것이 아닌가요? 혼자 복습하는차원에서 다시 만들다가 프레임관리쪽을 구현하지 않은 상태에서 Render()했을때 윗쪽 wall이 Empty로 구멍이 뚫리는 현상이 발생했습니다. 그런데 while loop를 구현하면 Render()가 루프 안에 없어도 위쪽 wall이 문제가 되지않습니다. 프레임관리와 위쪽 wall이 뚫리는것이 무슨 관련이 있을까요? (Render함수가 while loop 바깥에 있음에도 while loop를 지우면 문제가 생기고 다시 구현하면 문제가 사라집니다.) ------------------------- 문제상황과 질문을 정리하면 1. Render()는 한번만 호출되도 될 것같아서 while loop 바깥으로 뺐다. 2. 뺴도 문제가 없음, 그러나 while loop를 지우면 위쪽 wall이 Empty로 뚫리는 문제 발생 3. 분명 1에서는 Render()가 while loop 바깥에 있었음에도 문제가 없었는데 2에서 while loop를 지우는게 왜 Render()에 영향을 주는지 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
자료구조 연결리스트 질문있습니다.
그림 못그려서 죄송합니다 ㅠ 그려가면서 이해하려고했는데, 결국 연결리스트가 추가되는 형식은 Room(LinkedListNode)이 담을 수 있는 data와 그리고 다음과 이전의 Room을 가르키는 참조변수 prev,next를 가지고있고 RoomList(LinkedList)는 AddLast가 호출될 때 Room객체를 생성하고 Head는 첫번째. Tail은 AddLast가 호출될때마다 생성되는 newRoom객체를 가르키면서 prev와 next를 계속 연결해주는 것이라고 이해하면될까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
Board에서 Player 선언에 대한 질문입니다
Program의 static Main 내부에 선언된 Player player = new Player();가 새로운 플레이어로 생성된 것은 이해했습니다. 하지만 Board에서 Player _player = new Player();라고 선언하지 않고 짧게 Player _player;라고 선언하셨는데, Player _player = new Player();와 Player _player;를 둘 다 써봤는데 프로그램이 문제없이 작동합니다 new를 쓰고 안쓰고의 차이점이 궁금합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
플레이어를 여러 명 만드려면 어떻게 해야 할까요...?
안녕하세요! 선생님의 강의를 열심히 들으면서 스스로 응용해보려고 노력중입니다! 지금 강의의 코드를 기반으로 플레이어를 몇 명 생성할 것인지 물어본 후 (int numbofplayers = Convert.ToInt32(Console.ReadLine());) numberofplayers 만큼 플레이어를 여러 명 생성하려고 하는데... (플레이어 1번, 플레이어 2번, ... , 플레이어 numberofplayers번) 그리고 이렇게 생성한 플레이어들을 모두 다 한 보드 위에 렌더될 수 있도록 하려면 어떻게 해야할까요? 혹시 어디에 어떤 코드를 추가하면 될지 알려주신다면 자료구조를 이해하는 데에 큰 도움이 될 것 같습니다!!!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
속도에 관해....
혹시.. 컴퓨터마다 프레임 속도의 차이가 크게 날 수가 있나요? 처음엔 제가 코드를 잘못쳐서 점의 속도가 느린거라고 생각하고 무시하고 진행해왔는데... 강사님 코드를 직접 다운로드받아서 돌려보기도 하고 그랬는데 도착 지점에 도달 하기까지 약 2분의 시간이 걸립니다.... (이리저리 왔다갔다 해서 늦는데 아니라 1~2초에 한칸씩 움직임) (사진 첨부) (Wait_Tick을 1000/30 으로 하건 1000/60, 1000/5000 같이 큰숫자를 해도 똑같음) 컴퓨터가 그렇게 저사양이라고 생각되지는 않은데... (그냥 평균정도??) 강의자님 코드 자체를 하나도 안건드리고 실행해봤으므로 코드의 문제는 확실하게 아니구... 왜 저는 느리게 작동하는 걸까요..? (CPU? RAM? 비쥬얼 스튜디오 설정?) 혹시 몰라 이미지를 첨부했습니다. 프로그램도 돌리는게 많이없는데 혹시 몰라서 사용하던 아톰 에디터나 구글드라이브 등 모든 응용 프로그램을 끄고 진행해도 별다른 효과가 없습니다. 혹시 이런 경우를 겪어보신적이 있나 해서 여쭈어봅니다... 비쥬얼 스튜디오 설정의 문제일까요 아니면 컴퓨터를 새로 사야하는 문제일까요.. 강의를 지속하는데는 당장은 크게 문제가 되진 않지만 앞으로도 계속 쓰려면 아무래도 필요할 것 같아서 혹시 몰라 문의드립니다..
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
A* 알고리즘 질문드립니다
안녕하세요 매번 좋은 강의 해주셔서 감사합니다 다름이 아니라 A* 알고리즘 수업 내용에 관해 질문드립니다. A* 알고리즘에서 PriorityQueue 를 이용해서 구현하셨는데 PriorityQueue 의 노드로 PQNode 를 선언? 구현하셨는데 앞서 동적배열 수업에서 등등 노드들은 class 형태로 구현을 하셨는데 왜 PQNode는 struct 로 구현하셨는지 궁금합니다 struct 를 class로 변경해도 실행 결과는 같은데 struct로 PQNode를 구현한 이유를 알려주실수 있으신가요? (struct로 꼭 구현을 해야된다거나 struct가 class 보다 더 나은점이라든지 등등) 답변 부탁드리겠습니다
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
우선순위 큐 마무리 강의에서 IComparable<Knight> 부분 질문드립니다.
안녕하세요 날씨가 더운데 고생이 많으십니다. 다름이 아니라 질문이 있어 여쭤보고자 합니다. 우선순위 큐 마무리 강의에서 6분 30초 이후에서부터 우선순위 큐를 int형 뿐만 아니라 다른 형태에서도 사용할 수 있게 ( class 등) 제네릭을 사용하셨는데 이해가 안되는 부분은 먼저 코드를 보자면 1. class PriorityQueue<T> where T : IComparable<Knight> { ... } class Knight : IComparable<Knight> { ... } ... 이 코드내용인데 여기서 이해 안되는 부분은 class PriorityQueue<T> where T : IComparable<Knight> 에서 where T를 사용하셨지만 왜 class Knight : IComparable<Knight>에선 where T를 사용하지 않으신가요? 정리하자면 왜 PriorityQue 클래스 에서는 where T 를 쓰셨고 Knight 클래스에서는 where T를 사용하지 않은 이유가 궁금합니다 2. class Knight : IComparable<Knight> 에서 인터페이스를 구현하지 않아 에러가 나서 Knight 클래스에서 public int CompareTo(Knight other) { if (Id == other.Id) return 0; return Id < other.Id ? 1 : -1; } 라는 인터페이스를 구현했는데 왜 class PriorityQueue<T> where T : IComparable<T>에서는 따로 인터페이스를 구현 안해도 에러가 나지 않는 이유가 궁금합니다 같은 인터페이스인 IComparable<T> 를 사용하면 Knight 클래스와 마찬가지로 PriorityQueue 클래스에서도 인터페이스를 구현해야 맞지 않나요??? 질문에 대한 답변좀 부탁드리겠습니다. 바쁘신데 시간 뺏어 죄송합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
커스텀 MyLinkedListNode에 대해 + @
1. C#에서 제공하는 LinkedListNode는 중간 모드가 없어서 O(N)이라고 하셨는데.. 그렇다면 한번에 N번쨰 방을 찾고싶은 상황이 온다면 LinkedListNode는 버리고 지금 구현하신 MyLinkedListNode를 사용하면 되는건가요? 2. 그리고 배열에 대한 강의가 해당 파트에서는 여기가 마지막인듯한데 다음 파트들에서도 배열에 관한 것들 쭉 다루시나요?? 배열이 어디에 어떻게 쓰이는지는 감이 대충은 잡은 것같지만 어떤 상황에서 배열,동적배열,연결리스트를 쓸지 좀더 알았으면 하는 바램이네요.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
circle 출력
저처럼 맥북 쓰시는 분들은 '\u25CF' 이걸로 출력하시면 강의내용과 같은 모양이 출력됩니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
연결 리스트 강의에서 Remove 함수 문의드립니다
섹션1 - '연결 리스트 구현 연습' 강의에 대한 질문입니다. 위와 같이 Remove를 구현했습니다. (강의에서 head, tail에 해당하는 변수명은 first, last로 선언했습니다) 1) 삭제하려는 방이 첫 번째 요소인지와 이전 방이 null인지를 두 번 체크하는데, 그렇게 하지 않으면 예외가 발생하지 않는지 궁금합니다. (즉 위와 같이 if문을 작성하면 에러가 날 수 있나요?) 2) 삭제하려는 방을 따로 null처리할 필요는 없나요? room = null을 적어보니 사용되지 않는 코드처럼 회색으로 떠서요.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
root 노드 아래를 중괄호로 나누는 이유가 궁금합니다.
안녕하세요 이 코드에 있는 중괄호는 root를 생성하고 동시에 Data값을 "R1개발실"이라고 초기화 해주는 이니셜라이저라는 것 까지는 이해했는데요 그밑에 다시 중괄호를 열어서 그 안에 node를 생성한 이유를 잘 모르겠습니다. 아래와 같이 중괄호 없이 실행해봐도 root의 children으로 node가 들어가는 것은 같던데 트리구조를 나타내기위해 쓰는 건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
회전시키는 식 질문입니다
12:50초에 오른쪽방향으로 회전하는 식 _dir = (_dir -1+4) % 4; 에서 +4하는 이유가 -1을 하므로 양수를 만드려고 더한거라고 하셨는데 왼쪽방향으로 회전하는 식 _dir = (_dir +1+4) % 4; 에서는 _dir에 +1을 하므로 음수가 될일이 없으니까 +4를 안해줘도 상관없을까요? 혹시 음수가 될일이 없더라도 +4를 해주는게 좋나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
머리로는 이해가 안되네요...
그래프 음 그렇지..하다가 DFS,BFS 응??? 아 뭔가 탐색을 하는구나 잉? 이게 길찾기 최단거리 알고리즘이야?...강의를 보면 끄덕끄덕하지만 머리속으로는 곰곰이 생각해봐도 너무 비약적이라 이해가 안가네요... 저는 한계가 여기까지인가봅니다..
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
Board와 Program에서 Player를 선언할때 질문입니다.
Board클래스에서는 Player _player; 라고 쓰신 후에 이니셜라이즈에서 바로 _player = ~~~라고 하셨는데 Program클래스에서는 Player player = new Player(); 라고 쓰신 후에 Initialize(size, player); 라고 하셨습니다. Program에서 Board처럼 선언했더니 오류가 났습니다. 둘의 차이가 뭔가요? 메인함수가 아니면 Player _player; 처럼 선언할수 있는건가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
렌더링 과정에서 질문입니다.
Render()함수에서 ConsoleColor prevColor = Console.ForegroundColor; 이렇게 임시저장 해줬다가 Console.ForegroundColor = prevColor; 이렇게 이전 상태를 복원한다고 하셨는데 복원을 한다는게 정확히 무슨 뜻인가요? 이렇게 복원을 하지 않으면 무슨 문제가 있나요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
17:10 부근에 if(room.Prev != null)부분 질문입니다.
위에서 Tail인 경우와 Head인 경우에 대해서 체크를 해주었는데 그 경우가 아닌 상황(방이 중간에 있는 상황)에서 선택된 방의 Prev와 Next가 null일수가 있나요? 널값에 대한 체크를 한다고 하셨는데 제대로 연결리스트가 이어졌다면 null값을 왜 체크하는지 궁금해서 여쭤봅니다. 감사합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
Next(0,4)가 맞는거 아닌가요?
0부터 3까지의 case만 있어도 괜찮을것 같은데, 그러면 랜덤함수 매개변수로 (0,4)로 넣어주면 0부터 3까지 되니까 되는것 아닌가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
sideWinder 미로
randomIndex로 카운트 범위에서 랜덤 한 값으로 아래를 뚫어주는 작업을 하는 것은 알겠으나 x좌표의 x-randomIndex*2가 잘 이해가 되지 않습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
길찾기질문입니다.
안녕하세요 알고리즘 강의를 다듣고 질문을 드립니다. 이 강의의 방향성이 mmorpg니깐 차후에 관련된 강좌가 올라오겠지만 아직 강의 업데이트 할날이 먼거 같아 미리 질문을 드립니다. a* 길찾기가 많이 쓰이는 알고리즘인건 잘 알고 있는데 mmo같이 광활한 맵(노드수가 엄청 많겠죠)에서는 부하가 상당할 것으로 보입니다. 이부분을 어떤식으로 해결 하는지요? 짧은 거리일 경우는 검사범위를 제한할거 같은데 만약 아주 먼거리를 자동이동 하게 하면 그 광할한 경로를 어떻게 검사를 할까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
궁금한점이 몇가지가 있는데요..
6강. 연결리스트 구현연습 동영상의 [07:30] 부분에서 위쪽에 class Room<T> 이렇게 코딩하시고 그 아래에 class RoomList<T> { public Room<T> Head; ~~ } 이렇게 코딩하셨는데 궁금한점이 Room<T>를 클래스가 다른데 그냥 RoomList<T> 의 중괄호 안으로 가져올수 있는건가요?;; 그리고 첫부분에서 class Room { public Room Next; } 이렇게 됬을때 참조한다고 하셨는데 좀더 구체적으로 설명해주실수 있을까요??