용건만 간단히, 움짤은 한 번 더 생각
금병영에 상의하세요
야생의 이벤트가 열렸다
즐겨찾기
최근방문

그놈의 쌈국지같은 게임 만들어보려고 테스트 버전 만들어봤어요

EEguain
23.07.09
·
조회 8989

게임은 한 달 전에 침착맨 팬 게임으로 카드 게임 만들어본 게 다입니다.

동시 접속 게임은 어떻게 만드는 건지 알아보려고, 전투 부분만 테스트 버전으로 만들어봤어요.

열흘 걸렸네요.

여러 사람이 접속했을 때 어떤지 보고 싶어요.

 

https://chimgame.onrender.com/

침게임 온랜더 닷컴입니다. 무료 서버 썼습니다. 얼마나 버틸지 궁금하네요.

별도의 설치 없이 웹 상에서 돌아갑니다.

모바일에서 되긴 하지만, PC 기준으로 만들었습니다.

 

 

비쥬얼은 인터넷에서 받은 무료 에셋으로 만들어서 아주 옛날스럽습니다. 😅

 

참고: 그래픽이 좋고 나쁘고는 멀티플레이 서버와는 무관합니다.

좋은 캐릭터 도안만 있다면 얼마든지 바로 향상 가능합니다.

얘나 쟤나 쟤나 서버 입장에서는 모두 다 격자 위의 점일 뿐이라는 거

 

 

쌈국지는 전투 맵에 하나의 성만 있는 것 같은데, 테스트 버전에서
먹고 먹히는 것까지 보고싶어서 성을 6개를 넣었습니다.

 

대략 요런 위치입니다.

 

이동은 키보드 W A S D와 Q E 입니다.
Q와 E 대신 J와 K를 눌러도 됩니다.

모바일을 위해 가상 키보드를 넣었지만, 클릭하다가 줌인이 된다든지 드래그가 되는 경우가 있습니다.
 

병종은
검    Q: 정면 1인 공격 6뎀  E: 1초동안 데미지 30%로만 받기
도끼 Q: 8방 모두 공격 4뎀  E: 도끼 던지기
활    Q: 정면 1인 공격 3뎀  E: 활 쏘기
기병 Q: 정면 1인 공격 8뎀  E: 몇 초간 빨리 달리기

 

처음 체력은 30

체력은 자기 팀의 마을 위에 올라가면 치료가 됩니다.

 

성 점령은 본성 위에 올라가면 점령이 됩니다.
성이 점령되면 주변의 마을들도 소속이 바뀝니다.

 

킬을 하거나 점령을 하면 레벨이 오릅니다.
레벨이 오르면 최대 체력만 오릅니다. 최대 99

 

리스폰 지역에 있으면 새로 생성된 캐릭터와 겹쳐서 둘 다 이동 못하게 되는 수가 있습니다.

리스폰 지역(무덤가)에 오래 머무르지 마세요.

 

 

일단 테스트 버전은 통일이 없습니다.

지렁이 게임이나 세포 게임처럼 그냥 계속 돌아갑니다.

 

 

플레이 해보시고 더 재밌기위해 어떤게 추가되면 좋을 지 알려주세요.

 

 


여기서부터는 만드는 것 관련한 이야기. 

(스압)

 

 

 

코드는 https://github.com/chimlang/realtime 여기에 다 공개해뒀습니다.

하지만 아직 정리를 하지 않아서 해독하는건 불가능한 수준입니다.

곧 정리해 볼 생각입니다.

지금은 상남자식으로 서버는 app.js 파일 하나에, 클라이언트는 index.html 하나에 다 때려박았습니다.

 

다같이 오픈소스로 게임을 완성하는 것도 좋을지도?

 

 

서버는 nodejs

클라이언트는 그냥 javascript입니다.

 

 

서버는 render.com에서 그나마 가까운게 싱가포르라 거기로 선택했습니다.

핑이 저는 120 ms 정도가 나오네요. 많은 사람이 이것저것 누를 때 어떠련지 궁금하네요.

아이폰에서는 300 ms까지도 올라가는데 이건 사파리 브라우저에서 뭔가 있나봐요. 

 

 

서버에서 게임 진행하는 방식을 만들 때 큰 갈림길 하나가 있었습니다.

input이 왔을 때 바로 처리할지,

서버에서 tick 당 하나씩만 처리할지인데,

지금은 input이 왔을 때 바로 처리하는 식으로 했는데, 도중에 조금은 후회를 했습니다.

하지만 장단점이 있어서 지금도 뭐가 더 좋은지는 모르겠습니다.

서버를 돌려보고 경험해봐야 알 것 같습니다.

 

 

이런 게임을 만들면서 결국 병목은 뭘까 생각해보면, 서버 회선인 것 같아요.

n명이 접속하면, n명 각자에게 n명의 정보를 보내야하니 n^2으로 서버의 전송량이 늘어납니다.

 

한 명의 정보(x좌표, y좌표, 체력, 동작여부)를 한 명에게 보내는 것을 50바이트 정도라고하면 (더 최적화를 할 수 있을 것 같긴 합니다만)

60 ms에 한 번 보내면, 17 fps정도인데, 이러면 초당 1 킬로바이트 정도입니다.

 

플레이어 입장에서는 100명이어도 1mbps의 알뜰폰 무제한으로도 해결가능한 정도입니다.

 

서버 입장에서는 100 * 100이 되어버리니.. 좀 더 계산해보면 100메가 랜 쓰는 가정집이면 300명 정도 이론상 커버 가능합니다.

트위치대 유튜브로 1,000 대 1,000은 볼 수 없겠네요.

 

홈 서버 만드는건 넘어야 할 산이 아주 많은 것 같고,

클라우드 서버를 써야할텐데 비용이 어떻게 나올지는 모르겠어요.

 

일단은 render.com말고 다른 곳을 유료로 쓴다면 일본에 서버가 있는 linode를 써볼 것 같습니다.

아마존이나 마소, 구글 서버는 한도없이 청구되는 것 같아서 무섭네용

 

 

서버 부담을 낮출 수 있는 최고의 방법은 구역을 나눠서 사람 수의 제한을 두는 방식인 것 같아요.

m개의 구역으로 나눠버리면 한 서버당 (n/m)^2 만큼만 처리하면되니까요.

 

쌈국지처럼 만든다면 여러 성에서 동시에 전투가 일어날테니 분산이 되겠죠? 전투에 참여안하고 내정하는 사람들도 있을테고.

 

 

서버가 게임 진행을 계산하는데는 얼마나 부하가 걸리는지는 아직 계산을 안해봐서 모르겠어요.

보니까 결국, 계속해서 크기 비교를 하는게 서버의 일이더군요.

플레이어와 플레이어가 겹치는지

플레이어와 벽이 겹치는지

플레이어와 다른 플레이어의 공격 범위가 겹치는지.

 

 


 

플레이 해보시고 더 재밌기위해 어떤게 추가되면 좋을 지 알려주세요.

일단 저는 날씨 요소, 책략가 뭐 이런 것들이 떠오르네요.

아니면 필드에 다람쥐를 배치한다거나

 

클라이언트를 유니티나 언리얼로 바꿔서 그래픽을 높이면 더 재밌으려나요?

 

키보드 말고 롤 처럼 마우스 클릭으로 이동 공격하는 게 더 재밌으려나요?

 

그림을 잘 그렸더라면 좀 더 영걸전이나 조조전 풍의 캐릭터들을 썼을 텐데요. AI한테 시키면 되려나..?

댓글
통닭천사나가사와마사미
23.07.10
BEST
말하면 누군가 하니까 계속 말하는구나 ㅋㅋㅋㅋㅋ
태상노군
23.07.09
BEST
조금 더 스피디해졌으면 좋겠습니다.
시작점을 선택하게 하면 좋겠습니다.
상대유저를 잡으면 시체가 사라질때까지 움직이지 못하는 버그가 있습니다.
EEguain 글쓴이
23.07.10
BEST
혹시 벽에 비비고 다니는 캐릭터를 보신다면 변태가 아니라 버그를 확인중인 저입니다
반갑게 공격해주시면됩니다
dm6uuj
23.07.10
펑크랜드로 만들면 서버 펑크랜드가 알아서 운영해줘서 몇천명 붙어도 서버 안터져요 ㅎㅎ
EEguain 글쓴이
23.07.10
오? 그런 게 있었군요 시도해볼게요 감사함미당
젊면수심
23.07.10
사악한악사
23.07.10
혹시 다른분들은 d키 먹히나요? d키만 안먹혀서 오른쪽은 마우스를 눌러가면서 해야 되네요.
태리야끼
23.07.10
야호
파인애플피자
23.07.10
그.. 안에 있는 사람은 좀 나오시오 35명은 너무 적소
EEguain 글쓴이
23.07.10
침도스 무섭네용 테스트는 정말 확실히 되었습니다
미리 대기열을 만들어둘것을...
급하게 코드를 막 고치느라 더 이상해지고 있어유
무로돌아감
23.07.10
급할 건 없으니 찬찬히 하셔도 될 것 같습니다요. 화이팅입니다요!!
카무l
23.07.10
꿀잼겜
옹골찬만두콘
23.07.10
저가요 강에서 태어났는데요 육지로 못 가고 있습니다
태상노군
23.07.10
"좌절감이 사나이를 키우는 것이다"
용사힘멜
23.07.10
ㅋㅋㅋㅋㅋ
달빛여우Jaeki
23.07.10
기마병 치고빠지는게 펜싱하는 맛이라 제일 재밌어요
띵작을보면꼬리흔듬
23.07.10
성지순례 왔습니다.
침덩이500배
23.07.10
기마병 개꿀잼이네
오리침수생
23.07.11
오. 기마병이 되게 재밌네요. 계속 하게 되는데요 ㅎㅎ
뺘나나우유
23.07.11
기병 사기..
soolJ
23.07.11
중독성 있네요 ㅋㅋ 99랩 만들어도 다굴엔 장사없음..
잼잼이
23.07.11
5명밖에 없으니 재밌긴한데 아쉽네요 ㅋㅋㅋ 사람 좀 더 있었으면
침덩크
23.07.13
치열한 싸움끝에 통일했소.
https://resources.chimhaha.net/comment/1689185273053-hfyo4u7p3b8.png
EEguain 글쓴이
23.07.13
모두 죽여버리셨군요
전쟁은 비극입니다
1 2

📖취미 전체글

[(와이프가)직접 그린] 개호들갑맨과 여행 다녀온 만화
만화
Tellyou17
·
조회수 88
·
5시간전
GPT한테 그림 그려달라고 수십번 졸라서 그림 몇 개 건졌어용
기타취미
슬라임박사
·
조회수 90
·
17시간전
반가운 이름이
도서
그냥질라
·
조회수 44
·
23시간전
취미 - 집 구석에서 나가지않고 은밀하게..
사진
응애나애기
·
조회수 72
·
1일전
남들 벚꽃 보러 갈 때 나는 수선화 보러 간다(사실 벚꽃도 봄) 2
사진
알도르평화감시단
·
조회수 107
·
2일전
경제 뉴비를 위한 오늘의 경제뉴스 요약(250411) - 잇코노미 9
공부
이병건치이병헌
·
조회수 1188
·
2일전
챗지피티랑 무술 대결. [쥐소룡과 비조]
창작&제작
자오자오펄칭자오
·
조회수 65
·
2일전
풍풍풍풍풍풍풍 사후르
창작&제작
비키니아줌마
·
조회수 88
·
3일전
경제 뉴비를 위한 오늘의 경제뉴스 요약(250410) - 잇코노미 9
공부
이병건치이병헌
·
조회수 1536
·
3일전
꾸준히 공부하기 3일차
공부
bi6ond
·
조회수 80
·
3일전
예전에 그렸던 동화책 삽화 18
창작&제작
평민콩탄맨
·
조회수 3063
·
3일전
챗 gpt로 이미지 뽑아보기 1
기타취미
한국산효자손
·
조회수 86
·
3일전
길가다 본 애기푸들 납치하는 그림 1
기타취미
일론머스크3세
·
조회수 118
·
3일전
잠실 메타몽 대량발생! 1
기타취미
청담동
·
조회수 167
·
3일전
경제 뉴비를 위한 오늘의 경제뉴스 요약(250409) - 잇코노미 11
공부
이병건치이병헌
·
조회수 1408
·
4일전
꾸준히 공부하기 2일차
공부
bi6ond
·
조회수 103
·
4일전
[주식]개별주식의 실적과 주가 흐름의 관계를 통한 etf 로직의 합리성 확인에 관한 개인의 연구 결과
공부
qkrgustj0243
·
조회수 97
·
4일전
오늘 영상 보고 기억나 끄적여본, 사회 초년생이 바라봤던 금융시장.
공부
qkrgustj0243
·
조회수 115
·
4일전
세수 펑크에 빛 바랜 건전재정…나라살림 적자 또 100兆 넘었다
기타취미
청담동
·
조회수 129
·
5일전
경제 뉴비를 위한 오늘의 경제뉴스 요약(250408) - 잇코노미 16
공부
이병건치이병헌
·
조회수 1324
·
5일전