본문 바로가기

Work158

[어스토니시아VS] 초기 서버 구조 개발 언어 : C++ 사용 툴 : VisualStudio 2010 사용 DB : MS-SQL 서버 구조 DataCenter : 모든 게임 서버를 관리(유저의 상태와 각 서버들의 상태를 관리) GameServer : 게임에 접속한 후의 모든 기능에 대한 처리 BattleServer : 매칭된 두 유저의 대전을 처리 모든 GameServer는 DataCenter와 BattleServer 그리고 DB에 연결되어 있다. GameServer가 실행되면 DataCenter에 Connection을 맺고 자신의 상태를 알린다. 이 후 접속하는 클라이언트는 모두 DataCenter에 알려지게 되고 DataCenter는 모든 유저의 상태에 대해 GameServer로 부터 전달 받는다. BattleServer가 실행되면 마.. 2014. 5. 4.
[어스토니시아VS] 드디어 게임 개발자로서의 첫 오픈! 2014년 4월 26일 모바일 게임 '어스토니시아 VS'가 드디어 오픈했습니다. 서버프로그래머로서의 첫 오픈이라 신기하기도 하고 걱정스럽기도 합니다. '어스토니시아 VS'는 카드를 이용한 가위바위보 대전 게임인데 유저 vs 유저의 실시간 대전을 메인 컨텐츠로 하고 있습니다. 게임 내내 긴장감을 유지해야 하기 때문에 쉽게 피로해 질 수도 있지만 이런 심리전을 즐거워하는 유저들이 상당수였습니다. 오픈전에는 사전예약 이벤트를 했었는데 '어스토니시아 스토리'의 명성 답게 하루만에 사전 예약자가 1만명을 넘어 새삼 놀라기도 했었습니다. 현재 날짜 기준으로 인기 순위는 7위, 매출 순위는 80위 입니다. 비록 첫 게임이 아직까지 대박을 치진 못했지만 순위권안에 들 수 있다는 것만으로도 만족스러웠습니다. 퇴근하면서 .. 2014. 4. 26.
SQL 2008에서 내보내기, 가져오기 문제 SQL 2008 Express에서 데이터 내보내기, 가져오기를 통해 원본 데이터의 내용을 복사 해올 때 문제점이 있었다. 테이블 컬럼과 데이터들은 문제 없이 복사가 되지만 제약사항과 같은 부분들은 그대로 가져올 수 없다는 것... 기본키 설정이나 ID 사양 설정과 같은 부분은 수동으로 해줘야 하는 불편함이 있었다. 이에 대한 해결 방안으로 데이터베이스 스키마는 스크립트를 이용하여 복사를 한 후에 데이터 내보내기를 통해 데이터 값 들만 복사하는 방법을 사용했다. 여기서도 ID 사양으로 인한 문제점이 있었는데 자동증가값이기 때문에 값 복사를 통해 강제로 넣을 수가 없어 유효성 검사에 실패를 했다. 이 부분은 매핑 편집을 통해 ID 사용에 체크를 해주면 간단히 해결된다. 하지만 ID 사양을 사용하는 테이블이 .. 2012. 8. 28.
C++에서의 다중상속 2012년 7월 20일 그래서 간단하게 테스트해본 결과 다중상속이 허용된다. 하지만 다중상속에는 의도치 않은 여러 문제가 발생할 수가 있는데 예를 들면 class A { int a; }; class B: public A { int b; }; class Test: public A, public B { Test() {} }; 이 경우에 Test클래스가 상속받는 A, B 클래스 중에 B클래스가 A클래스를 상속받고 있다. 그럼 Test클래스는 결과적으로 A클래스를 두번 상속 받게 되는 것이다. 그럼 A클래스의 멤버함수 a가 중복이 되는 문제가 발생한다. 그러므로 컴파일 에러! C#에서의 인터페이스와 같이 추상 클래스를 상속 받을 때는 문제가 없다. 현재 분석중인 소스에서도 순수가상함수들로 이루어진 추상클래스들만.. 2012. 7. 20.