public string Name { get { return name; } set { name = value; } } 윗 코드를 줄여서 아래와 같이 축약 할 수 있다고 강의를 해주셨는데 public string Name { get; set; } 만약 setter에 조건문이 있을 경우에는 public string Name { get; set{ 조건문 }; } 이런 형식이 되는 것인지요 ?
안녕하세요. 강의를 다 듣고 이리저리 만져보고 있는 학생입니다. 그런데 포인팅 된 터레인으로 이동한 뒤, 같은 위치를 한번 더 클릭하면 애니메이션이 RUN 상태로 바뀝니다. 해당 문제를 해결해 보고 싶어 디버깅을 해 봤습니다. 마우스가 클릭 된 이벤트에서 State를 Moving으로 바꿔 줍니다. 하지만 UpdateMoving 함수에서는 다시 State를 Idle로 바꿈에도 불구하고 애니메이션만 RUN을 유지하고 있습니다. 혹시나 싶어 선생님 프로젝트를 열어 실행해 봐도 같은 문제가 있어 어느 부분을 수정하면 좋을지 여쭤봅니다.
어떤 형식이던지 괜찮습니다. 자유롭게 질문해 주세요~ 내용은 자세할수록 좋습니다~ 안녕하세요 강의 정말 잘 들었습니다. 실례가 안 된다면 강의를 들으며 학습한 내용을 블로그에 포스팅해도 괜찮을지 궁금합니다. 물론 출처는 반드시 밝히겠습니다. 혹시나 질문이 불편하게 느껴지셨다면 죄송합니다!!
START ../../PacketGenerator/bin/PacketGenerator.exe ../../PacketGenerator/PDL.xml Server/PacketGenerator/bin에 PacketGenerator.exe가 생성되고, Server/PacketGenerator에 PDL.xml을 둬도 실행이 되는 것 까지 성공하였습니다. 하지만 이후 배치파일 작성 부분에서 PacketGenerator.exe을 실행하긴 하지만, PDL.xml을 찾는 경로를 Server/PacketGenerator이 아닌 Server/Common에서 찾고 있었고, 실제로 Common 폴더에 PDL.xml을 두니 정상 작동 하였습니다. 해당 현상을 해결할 수 있을까요?
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
안녕하세요. 게임 공부에 입문한 웹 개발자 입니다. 관심 있는 분야가 게임서버, unity 쪽 인데 unity 강의 3(unity), 4(server), 7(unity + server), 8(entity), 9(mmo) 로 공부하고 c++ 강의로 넘어가거나, 유니티 기반 게임을 만들어 봐도 막히는 부분은 없을까요? DB 쪽은 MYSQL 엔진 원리와 트랜잭션, 동시성 문제가 일어나는 이유 등을 알고 고급 쿼리는 좀 공부 해야하고, 웹 쪽은 게임 프로그래밍 코어 공부하는데 크게 지장 없으면 넘어가고 싶은데 루키스님 의견이 어떠한지 궁금합니다. (entity는 생산성 때문에 하는게 좋을 것 같아서요.)
<상황>지식 공유자님께서 작성해주신 C# 코드 예제를 코틀린으로 비슷하게 작성해서 시도해보았지만 같은 상황이 재현되지 않습니다. <질문 의도>제가 지식 공유자님의 코드를 잘못 이해하고 작성한 것인지, 아니면 JVM의 의도치 않은 최적화 때문에 의도와 다르게 동작하는 것인지 궁금합니다. <작성한 코드> fun main (args: Array<String>) { Example().startUp() } class Example() { private var shouldStop = false fun startUp() { println("process start") val thread = Thread(Runnable { doWork() }) thread.start() Thread.sleep(1000) shouldStop = true thread.join() println("process end") } // shouldStop에 @Volatile을 붙이지 않으면 무한 루프를 돌 것이라고 생각했으나 // graceful shutdown이 잘 되어버림 private fun doWork() { while (!shouldStop) { println("doWork..") Thread.sleep(1000) } } } 좋은 강의 만들어주셔서 감사합니다!
루키스님 안녕하세요? 본 강의 17:00분대에 this.playerId = BitConverter.ToInt64(new ReadOnlySpan<byte>(s.Array, s.Offset + count, s.Count - count)); 로 범위를 초과하는 패킷에 대해서 클라의 패킷 조작을 방어하는 예시를 들어주셨습니다. 저는 여기서 궁금한게, 클라의 패킷 조작 중 범위를 벗어나지 않는 패킷 공격은 어떤 아이디어로 방어를 할지 궁금합니다. 예를 들어 보스의 체력을 10000 -> 1로 조작한 패킷 같은 경우 아이디어가 궁금합니다.
멀티 스레드 환경에서 A,B 2개의 쓰레드가 있다고 가정했을때 프로세스에서 어떤 전역 Data number를 +1 해달라는 주문이 들어 왔을때 A쓰레드에서 해당 주문을 받고 동시에 B도 해당 주문을 받는다면 문제가 되기때문에 동기화를 해줘야한다고 말씀 주셨는데요 그렇게 되면 A가 주문을 받고 다시 Ram에 동기화 그다음 B가 주문을 받고 Ram에서 수정된 값을 가져와서 다시 Ram에 동기화 이런식이라면 멀티 쓰레드 환경에서는 캐시의 의미가 없는건가요? 캐시라는게 결국엔 프로세서와 Ram간의 거리가 멀기 때문에 이걸 완하해주는게 캐시로 알고 있는데 멀티 환경에서 주문이 들어올때마다 Ram에서 최신화 정보 가져오고 다시 동기화 한다면 캐시의 의미가 없어지는게 아닌가 해서 이렇게 질문 남기게 됩니다