월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
클라 로그인 관련
더미 클라 1000대로 설정하고 1000 players 접속 완료 후 유니티로 접속하면 아래 같이 Login Ok 까지 진행되고 화면에 아무것도 생성이 안됩니다. 아무리 오래 기다려도 변화가 없는데 단순히 렉인걸까요? 동시에 다른 작업은 너무 잘됩니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
A* 관련 질문
neighbor 경로 비용 계산 부분에서 gCost는 왜 사용되지 않는 이유가 있는건가요? hCost를 제곱을 하는 이유가 뭔가요? int gCost = 0; int hCost = 10 * ((dest.Y - neighbor.Y) * (dest.Y - neighbor.Y) + (dest.X - neighbor.X) * (dest.X - neighbor.X)); 아래 부분을 int value = 0; if (openList.TryGetValue(neighbor, out value) == false) value = Int32.MaxValue; 이렇게 바꿔도 상관 없나요? int value = Int32.MaxValue; openList.TryGetValue(neighbor, out value);
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
Thread.Sleep(0) 의미
1. Thread.Sleep(0)은 실행권을 커널에다 넘겨주어 CPU까 쓸데 없이 사용되는 것을 우회 할 수 있다는 것이 정확히 어떤식으로 동작하는 것인가요? 2. Thread.Sleep(0) 과 Thread.Yield()의 차이는 무엇인가요? ( CS 지식이 부족하여 검색 내용이 제대로 이해가 안되어 질문드립니다 ) *검색 내용 differences between Thread.Yield() and Thread.Sleep(0) after calling Thread.Yield(), time-slice is given only to those threads who are running at the same processor with current thread. Thread.Yield() has a boolean return value which indicates that whether there were any threads who has received time-slice or not, but Thread.Sleep() has not return value. Thread.Sleep(0) prevents time-slice being handed over to threads with lower priorities. So it is more prone to starvation. But Thread.Yield() doesn't care to thread priorities, so starvation is less to happen.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
에러 발생 및 클라 캐릭 생성 안됨
강의 내용대로 해보고 안되서 첨부파일 실행해보아도 결과가 같아서 질문드립니다 유니티 클라에서는 아래처럼 뜨고 진행안되며 서버는 오류 발생합니다. 아래 콘솔에 찍힌 내용입니다. info: Microsoft.EntityFrameworkCore.Infrastructure[10403] Entity Framework Core 3.1.7 initialized 'AppDbContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer' with options: None info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (24ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT TOP(1) [p].[PlayerDbId], [p].[AccountDbId], [p].[Attack], [p].[Hp], [p].[Level], [p].[MaxHp], [p].[PlayerName], [p].[Speed], [p].[TotalExp] FROM [Player] AS [p] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] Failed executing DbCommand (93ms) [Parameters=[@p0='?' (DbType = Int32), @p1='?' (DbType = Int32), @p2='?' (DbType = Int32), @p3='?' (DbType = Int32), @p4='?' (DbType = Int32), @p5='?' (DbType = Int32), @p6='?' (DbType = Int32), @p7='?' (DbType = Int32), @p8='?' (DbType = Int32), @p9='?' (DbType = Int32), @p10='?' (DbType = Int32), @p11='?' (DbType = Int32), @p12='?' (DbType = Int32), @p13='?' (DbType = Int32), @p14='?' (DbType = Int32), @p15='?' (DbType = Int32)], CommandType='Text', CommandTimeout='30'] SET NOCOUNT ON; DECLARE @inserted0 TABLE ([ItemDbId] int, [_Position] [int]); MERGE [Item] USING ( VALUES (@p0, @p1, @p2, @p3, 0), (@p4, @p5, @p6, @p7, 1), (@p8, @p9, @p10, @p11, 2), (@p12, @p13, @p14, @p15, 3)) AS i ([Count], [OwnerDbId], [Slot], [TemplateId], _Position) ON 1=0 WHEN NOT MATCHED THEN INSERT ([Count], [OwnerDbId], [Slot], [TemplateId]) VALUES (i.[Count], i.[OwnerDbId], i.[Slot], i.[TemplateId]) OUTPUT INSERTED.[ItemDbId], i._Position INTO @inserted0; SELECT [t].[ItemDbId] FROM [Item] t INNER JOIN @inserted0 i ON ([t].[ItemDbId] = [i].[ItemDbId]) ORDER BY [i].[_Position]; fail: Microsoft.EntityFrameworkCore.Update[10000] An exception occurred in the database while saving changes for context type 'Server.DB.AppDbContext'. Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Item'. at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at Microsoft.Data.SqlClient.SqlDataReader.get_MetaData() at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean isAsync, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String method) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader() at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject) at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute(IRelationalConnection connection) ClientConnectionId:9ffa96fa-2879-419b-bf1d-3e21e591df78 Error Number:208,State:1,Class:16 --- End of inner exception stack trace --- at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute(IRelationalConnection connection) at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(IEnumerable`1 commandBatches, IRelationalConnection connection) at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChanges(IList`1 entries) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(IList`1 entriesToSave) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(DbContext _, Boolean acceptAllChangesOnSuccess) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(Boolean acceptAllChangesOnSuccess) at Microsoft.EntityFrameworkCore.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess) Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Item'. at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at Microsoft.Data.SqlClient.SqlDataReader.get_MetaData() at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean isAsync, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String method) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader() at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject) at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute(IRelationalConnection connection) ClientConnectionId:9ffa96fa-2879-419b-bf1d-3e21e591df78 Error Number:208,State:1,Class:16 --- End of inner exception stack trace --- at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute(IRelationalConnection connection) at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(IEnumerable`1 commandBatches, IRelationalConnection connection) at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChanges(IList`1 entries) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(IList`1 entriesToSave) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(DbContext _, Boolean acceptAllChangesOnSuccess) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(Boolean acceptAllChangesOnSuccess) at Microsoft.EntityFrameworkCore.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess) Listening... Connected : 1 OnConnected : [fe80::3d16:c534:125c:7cd6%12]:65182 info: Microsoft.EntityFrameworkCore.Infrastructure[10403] Entity Framework Core 3.1.7 initialized 'AppDbContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer' with options: None info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (4ms) [Parameters=[@__loginPacket_UniqueId_0='?' (Size = 450)], CommandType='Text', CommandTimeout='30'] SELECT [t].[AccountDbId], [t].[AccountName], [p].[PlayerDbId], [p].[AccountDbId], [p].[Attack], [p].[Hp], [p].[Level], [p].[MaxHp], [p].[PlayerName], [p].[Speed], [p].[TotalExp] FROM ( SELECT TOP(1) [a].[AccountDbId], [a].[AccountName] FROM [Account] AS [a] WHERE [a].[AccountName] = @__loginPacket_UniqueId_0 ) AS [t] LEFT JOIN [Player] AS [p] ON [t].[AccountDbId] = [p].[AccountDbId] ORDER BY [t].[AccountDbId], [p].[PlayerDbId] info: Microsoft.EntityFrameworkCore.Infrastructure[10403] Entity Framework Core 3.1.7 initialized 'AppDbContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer' with options: None fail: Microsoft.EntityFrameworkCore.Database.Command[20102] Failed executing DbCommand (72ms) [Parameters=[@__playerInfo_PlayerDbId_0='?' (DbType = Int32)], CommandType='Text', CommandTimeout='30'] SELECT [i].[ItemDbId], [i].[Count], [i].[OwnerDbId], [i].[Slot], [i].[TemplateId] FROM [Item] AS [i] WHERE [i].[OwnerDbId] = @__playerInfo_PlayerDbId_0 fail: Microsoft.EntityFrameworkCore.Query[10100] An exception occurred while iterating over the results of a query for context type 'Server.DB.AppDbContext'. Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Item'. at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at Microsoft.Data.SqlClient.SqlDataReader.get_MetaData() at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean isAsync, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String method) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader() at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.InitializeReader(DbContext _, Boolean result) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.MoveNext() ClientConnectionId:9ffa96fa-2879-419b-bf1d-3e21e591df78 Error Number:208,State:1,Class:16 Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Item'. at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at Microsoft.Data.SqlClient.SqlDataReader.get_MetaData() at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean isAsync, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String method) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader() at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.InitializeReader(DbContext _, Boolean result) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.MoveNext() ClientConnectionId:9ffa96fa-2879-419b-bf1d-3e21e591df78 Error Number:208,State:1,Class:16 OnRecvCompleted Failed Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Item'. at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at Microsoft.Data.SqlClient.SqlDataReader.get_MetaData() at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean isAsync, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String method) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader() at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.InitializeReader(DbContext _, Boolean result) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.MoveNext() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at Server.ClientSession.HandleEnterGame(C_EnterGame enterGamePacket) in C:\Users\tkdri\Desktop\GameServerStudy\Item+#2_소스코드\Server\Server\Session\ClientSession_PreGame.cs:line 116 at PacketHandler.C_EnterGameHandler(PacketSession session, IMessage packet) in C:\Users\tkdri\Desktop\GameServerStudy\Item+#2_소스코드\Server\Server\Packet\PacketHandler.cs:line 59 at PacketManager.MakePacket[T](PacketSession session, ArraySegment`1 buffer, UInt16 id) in C:\Users\tkdri\Desktop\GameServerStudy\Item+#2_소스코드\Server\Server\Packet\ServerPacketManager.cs:line 65 at PacketManager.OnRecvPacket(PacketSession session, ArraySegment`1 buffer) in C:\Users\tkdri\Desktop\GameServerStudy\Item+#2_소스코드\Server\Server\Packet\ServerPacketManager.cs:line 49 at Server.ClientSession.OnRecvPacket(ArraySegment`1 buffer) in C:\Users\tkdri\Desktop\GameServerStudy\Item+#2_소스코 드\Server\Server\Session\ClientSession.cs:line 48 at ServerCore.PacketSession.OnRecv(ArraySegment`1 buffer) in C:\Users\tkdri\Desktop\GameServerStudy\Item+#2_소스코드\Server\ServerCore\Session.cs:line 32 at ServerCore.Session.OnRecvCompleted(Object sender, SocketAsyncEventArgs args) in C:\Users\tkdri\Desktop\GameServerStudy\Item+#2_소스코드\Server\ServerCore\Session.cs:line 210 ClientConnectionId:9ffa96fa-2879-419b-bf1d-3e21e591df78 Error Number:208,State:1,Class:16
- [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
mmorpg서버에 관하여 질문있습니다.
삭제된 글입니다
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
강사님 추후 강의 진행 상황에 대해 질문 드리고 싶습니다.
내년에 추후 강의 진행중 여러가지 챕터 중에 DX12도 있는 것 같은데 이 부분 DX11로 변경해서 진행 하실 생각은 없으신지 궁금합니다. 제가 알고 있기로는 DX12는 DX11에 비해 사용하기가 많이 어렵고 정말 제대로 알고 사용하지 않으면 오히려 DX11보다 안좋은걸로 알고 있습니다. 단순히 버전이 올라가서 더 좋은게 아니라 그냥 "너희 들에게 좀더 최적화할 옵션들을 좀더 제공해줄께 하지만 제대로 사용못하면 DX11보다 더 안좋아" 라는 느낌이강해서.. 이강의를 수강하시는 분들은 아마 초보자분들이 대부분 이실 것 같은데 DX12보다는 DX11이 더 좋을 것 같다는 생각이듭니다~!!
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
AccountServer 구동 문제
안녕하세요 첨부파일로 다운받은 파일을 실행했을때, 위의 빌드와 아래의 패키지 관리자 콘솔에서 AccountServer를 모두 맞춰줬는데도 불구하고 update-database를 실행하면 "More than one DbContext was found. Specify which one to use. Use the '-Context' parameter for PowerShell commands and the '--context' parameter for dotnet commands." 에러가 발생합니다. accountDB를 어떻게 하면 생성할수 있을지 궁금합니다~
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
안녕하세요
좋은 강의 항상 감사 드립니다. 밑에 글에 언급하신 파트10도 기다리고 있겠습니다. 그리고 이후에 혹시 심리스 mmo도 다루실 계획은 없으신가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
ItemDict
안녕하세요 Server에서는 DataManager.cs에서 ItemDict를 static Dictionary로 선언해주셨는데 Client에서는 DataManager.cs에서 ItemDict를 Dictionary로 선언하신 이유가 궁금합니다. static으로 관리하는게 ItemDict에 대한 유일성을 보존하는 측면에서 좋아보이기도 하지만... 어짜피 DataManager가 singleton으로 관리되고 있어서 상관 없기 때문에 어느쪽 방식을 채택해도 상관없는건지 궁금합니다~!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
파트10...
파트10 꼭 만들어주세요!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
신입 서버개발자
안녕하세요 . 현재 강사님 강의 파트 2, 3, 4, 7, 9를 구입한 신입 서버 개발자입니다. c++ 게임 서버과외를 받으면서 강사님 영상도 보면서 공부할 예정입니다. 현재 인디게임회사에서 일도 하고 있는 상태있지만, 언제 짤릴까 전전긍긍하며 있습니다. 문의드리는 질문은 웹이나 데이터베이스쪽은 어느정도 공부해서 사용할 수 잇을것 같습니다. 만약 공부하다가 막히는 부분이 있으면 공부 구입할 생각도 있습니다. 2, 3, 4, 7, 9 파트만으로도 충분히 학습이 되는지 알고 싶습니다..
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
프로퍼티의 get set
안녕하세요 Players의 PlayerDbId, Session의 프로퍼티는 {get; set;}으로 설정되었는데 ClientSession_PreGame의 AccountDbId는 {get; private set;}으로 설정되어있습니다. AccountDbId는 이 클래스에서만 변경 가능함.. 이라고 설정해두는건 아마 오랜 경험이 있어야 될것 같습니다. 강사님은 보통 어떤 경우를 구분해서 프로퍼티를 설정하시는지 (대략적으로라도..) 궁금합니다~