[서비스 개시] 블랙잭 게임을 만들었습니다.

in #kr6 years ago

안녕하세요. @millionfist 입니다.
최근 들어 스팀잇 활동이 뜸했는데 다른데 정신이 팔려 있어서 그렇습니다.
바로 스팀 블럭체인 기반의 블랙잭 게임을 만들어서 였습니다.

최근 스팀달러 발행도 중단되는 사태도 겪었고 스팀잇 재미도 식어가는데 새로운 서비스인 스팀몬스터가 인기더군요.
그런데 하는 방법이 저같은 사람한테는 어렵고 해서 스팀달러로 하는 간단한 고스톱게임을 만들면 어떨까 하는 생각을 했습니다.
그런데 고스톱 게임도 어렵더군요.
가장 어려운게 화면 효과 였습니다.
고스톱 보다는 구현이 간단한 블랙잭 생각이 들어서 블랙잭 소스를 찾아보니 역시 많은 자료가 있었습니다.
공개된 소스가 많으니 금방 만들수 있을 꺼라 생각했는데 그게 아니더군요.

간단히 개발과정과 게임방법을 설명드리고 홍보하려고 합니다.
먼저 게임엔진(?)은 공개된 소스 그대로 사용했습니다.
공개된 소스에 없는 split 기능을 넣으려 했다가 그래픽 처리부터 일찌감치 포기하고 게임과 스팀과의 연동만 구현해 놓기로 했습니다.
그래서 게임로직에 관해서는 사실 저도 잘 모릅니다^^

스팀 블럭체인과 연동시키는 것도 쉬운 일이 아니였습니다.
먼저 게임을 할때 개인기록을 저장하려면 로그인 기능이 있어야 겠죠.
로그인 기능은 steemconnect 기능을 사용했습니다.
그리고 스팀블럭체인으로 게임을 하는 거니 스팀달러도 이동해야하고 글에 보팅도 할 수 있어야 겠지요.
@minari, @morning, @maanya, @jacobyu 님의 steem 강좌를 많이 참조 했습니다. 감사합니다.

브라우져에서 게임을 하는 것이니 파이썬으로는 안돼더군요. steemJs 를 이용했습니다.
그런데 자바스크립트란게 참 어렵더군요.
파이썬 보다 더 어려운거 같았습니다.
우선 순차적 프로그램이 안돼고 자기 멋대로 다음 코드를 실행하더군요.
그래서 콜백지옥이라는 말이 자연스럽게 나오는 것을 알게 되었습니다.

블랙잭 게임에 대해서 간단히 소개를 드리면 게임참여자가 카드를 뽑아서 카드 숫자의 합이 21에 가장 근접하면 이기는 게임입니다.

게임 규칙도 기본적으로 간단하고 카지노에서도 손님이 돈을 벌 확률(?)이 가장 높은 게임이란건 아마 블랙잭 게임을 한번도 안해본 분도 언론등을 통해 들은 기억이 있으실 겁니다.

카지노에서 블랙잭 게임을 하려면 게임칩이 있어야 겠지요. 이 게임에서는 맛보기로 게임을 할 수 있도록 게임칩 1개가 무료로 지원되고 로그인을 하시면 게임칩 2개를 지원해 드립니다.

1스팀달러로 게임칩 10개를 구매(?)할 수 있습니다.
제가 쓴 잡글에 보팅을 하셔도 게임칩을 얻을 수 있습니다. 물론 게임내에서 보팅을 하셔야 겠지요.
명색이 카지노인데 돈을 벌면 인출할 수도 있습니다.
그런데 제 자본력이 약해서 게임칩 60개 이상일때 하루에 한번만 50개 게임칩을 스팀달러로 환전하실 수 있습니다.
이런 제약은 카지노가 돈을 많이 벌면 해제 될 수 있겠지요^^
모든 게임이 그렇듯이 사운드 없는 게임은 게임이 아니지요.
여기저기서 공개된 효과음을 찾아 게임에 끼워 놓았습니다.

맛보기 게임만 하시는 분들과 로그인한 분들의 차이점은 게임칩 관련기능과 게임 바탕화면이 바뀌는 것 뿐입니다.
게임 바탕화면은 다 인터넷에 공개된 사진이라 저작권 문제는 없을 것 같습니다.
다만, 조금 후방주의가 필요한 사진이 몇 컷 섞여 있는데 예술사진이라고 하더군요.

이번에 가장 삽질이 많았던 부분은 steemconnect 로 스팀달러를 전송한 후 처리였습니다.
브라우져에서 돈이 입금 되었는지 출금되었는지 알아채야 다음 과정이 진행되니까요.

간단히 생각하면 steemJS로 거래가 일어난 계정 정보를 가져오면 끝날일이지만 한번 steemconnect로 빠져나가면 브라우저가 초기화 되는 문제가 있었습니다.
그래서 DB에 자료를 저장하고 온갖 꼼수를 동원해 거래정보를 가져오는데 성공했는데 형편없는 퍼포먼스를 보여줬습니다.
기능을 구현하는데만해도 오랜 시간이 걸렸는데 결과물이 만족스럽지 않아 포기할까 생각도 들었습니다.
머리가 나쁜 사람의 비애입니다.

공부도 그렇지만 한 가지만 골몰하면 해결이 안돼다가 다른 일을 하다가 우연히 해결책이 생각나는 경우가 많습니다.

이번건도 포기하고 수원에 가족과 놀러가서 무예시범을 보다가 생각이 났습니다.
무예시범을 보면 진검으로 대나무 자르기가 나옵니다.
대나무를 한번에 자르는 것은 매우 어려운 기술이어서 시범으로 자주 나옵니다.
대부분 다년간 무예를 연마한 분들이어서 대나무를 한번에 자르지만 그렇지 못한 경우가 있습니다.

이번 무예시범에서 대나무를 자르는데 다른 대나무는 한번에 잘라지는데 그 대나무는 잘라지지 않더군요.
그래서 번개같은 솜씨로 다시 잘랐는데 그래도 완전히 잘라지지 않고 대나무가 붙어 있더군요.

그러자 시범을 보이는 분이 대나무의 온전한 다른 부분을 가격해서 결국 대나무를 자르시더군요.

그걸 보자 번쩍 드는 생각이
거래가 일어난 것은 사실이고
그 정보를 내 웹게임에 알려주는 방법이
steemJS를 통해 거래내역을 가져오는 방법밖에 없을까란 생각이 들었습니다.

그래서 이 건은 steemJS 를 통하지 않고 처리할 수 있었습니다.
여기계신 개발자 고수님들은 다들 아는 사실인데 머리가 나쁜 제가 간신히 거기에 따라 간것 뿐입니다.

호기심으로 어떻게 처리했는지 살펴 보실수도 있으실 겁니다^^

"소스는 자바스크립트로 되어 있어 누구나 보실 수 있으니 따로 공개는 하지 않습니다" 라고 쓰고 사실 마크업으로 소스 붙여넣기가 귀찮아서....

그렇다고 github 사용법 배우기도 귀찮고...

이번 개발(?)로 배운 사실은 다음과 같습니다.

  • steemJS 사용법을 알았다
  • 구현하고 싶었던 실시간 모니터링을 steemJS 와 stem-python으로 할수있게 되었다.
    (정작 이번 프로그램에서는 사용하지 않는다^^)
  • steemconnect 사용법을 알게 되었다
  • 자바스크립트와 JQuery 를 통한 반응형 웹(?)을 알게 되었다.
  • 웹을 예쁘게 꾸미는 bootstrap을 알게 되었다.
  • 웃기는 일이지만 파이썬 스크립트를 동시에 2개 실행 시켜도 문제 없다는 것을 이제서야 알았다.

스팀잇 하다가 지겨워 지면 한번씩 해보시면 좋겠습니다.
늘 그렇지만 많은 분들이 이용하리란 생각은 안하기에 베타상태로 공개합니다.^^
많이 이용해 주시면 감사하구요.
게임 스샷도 귀찮아서.... 홍보의 의지가 있는거냐? 올리지 않습니다^^
문제가 있거나 건의사항이 있으시면 최대한 해결해 드리겠습니다.^^
재미없는 긴글 읽어주셔서 감사합니다.

http://macintro.com:8448/casino/ 에서 블랙잭 게임을 해보실 수 있습니다.^^

Sort:  

스팀달러를 이용한 블랙잭, 슬롯머신이 있으면 어떨까 하고 생각했었는데 생겼군요 ㅋㅋ 흥했으면 좋겠습니다.

원래 목표 고스톱은 어려워서 포기했습니다. ㅎㅎㅎ

한판 해보고 싶었는데 사지방에서는 안들어가지네요... 링크에 casino 가 들어가있어서 그런가 ㅠㅠ

핸드폰에서도 가능합니다^^

아직 저희부대는 핸드폰이 반입불가 ㅠㅠ
휴가나가면 한번 해볼게요 ㅋㅋ

You got a 2.42% upvote from @minnowvotes courtesy of @millionfist!

This post received a 88% upvote from @krwhale thanks to @millionfist! For more information, click here!
이 글은 @millionfist님의 소중한 스팀/스팀달러를 지원 받아 88% 보팅 후 작성한 글입니다. 이 글에 대한 자세한 정보를 원하시면, click here!

이게 개발스토리인가보네요. 재미있게 보고갑니다^^

Coin Marketplace

STEEM 0.19
TRX 0.16
JST 0.030
BTC 66050.37
ETH 2629.02
USDT 1.00
SBD 2.68