앞으로 남은 계획을 한번 나열해보자.


1. 게임 중에 깜짝 캐릭터를 얻는 시스템이 있었으면 좋겠다.

2. 캐릭터를 뽑는 연출이 필요하다. 

3. 타이틀을 얻었을 때 보상을 주는 연출이 필요하다.

4. 게임안에서 스크린샷을 찍고 카톡 등으로 공유할 수 있어야 한다.

5. 최고기록을 냈을 때 연출이 필요하다.
6. 유저데이터를 암호화 해야 한다.

7. 네트워크가 연결되지 않았을 경우에 유니티 광고를 보려고 할때의 처리가 필요하다.

8. 인앱결제가 필요하다.

9. 구글 로그인시 유저 데이터를 받아오는데 로컬에 저장되어있는 정보와 다른 계정일 경우 처리가 필요하다.

10. BGM 및 효과음이 필요하다.

11. 피버 및 연속 피버가 들어가면 재밌지 않을까 생각중이다.

12. 행성마다 다른 스테이지가 존재하면 각각 클리어 하는 재미가 있지 않을까 생각중이다.


여기까지가 그동안 Wunderlist로 관리하던 남은 일정이고 이외에도 아직 더미로 사용하고 있는 데이터들이 많이 있다.

이것들도 차츰 실데이터로 변경해야 할 것 같다.


여기까지 하고 내일은 지금까지 개발한 게임의 동영상이나 스크린샷 정도는 올려도 좋을 것 같다.

'All > Project' 카테고리의 다른 글

그림  (0) 2017.04.09
지금까지 개발된 내용  (0) 2017.04.08
매주 일요일 랭킹 초기화  (0) 2017.04.05
UI_ HealthBarUI  (0) 2016.04.12
UI_ MyButton  (0) 2016.04.12
매주 랭킹을 초기화 해야한다.
좋은 방법이 없을까

- 일단 페이스북에서 제공하는 API가 있다.

앱의 모든 점수 삭제

해당 앱의 앱 access_token으로 /APP_ID/scores에 대한 HTTP DELETE 요청을 실행하여 앱의 모든 점수를 삭제할 수 있습니다.
그러면 앱의 점수를 재설정합니다. 게임 점수 및 리더보드를 주기적으로 재설정하려 할 때 사용하세요.

응답은 다음과 같습니다.

설명
유형

삭제 성공 여부에 따라 true 또는 error

boolean


이 API를 이용하면 될 것 같은데 일주일에 한 번 서버자체로 해당 코드를 실행 시키도록 해야할 것 같다. 
해당 기능은 스케줄러를 이용해서 구현할 수 있다고 하여 관련 포스트를 찾아 보았다. 출처: http://webinformation.tistory.com/6 [끄적끄적]

Crontab

[분] [시] [일] [월] [요일] [실행하고자 하는 명령어]

분(0~59), 시(0~23), 일(1~31), 요일 (1~7{월~일})

위와 같은 구조로 실행하고자 하는 명령어를 예약할 수 가 있으며, crontab 을 사용하는 방법에는 두가지가 있습니다.

vim /etc/crontab 을 이용해서 예약하기

[root@localhost ~]# vim /etc/crontab


* 01 */1 * * /usr/local/bin/php -f /home/user/sync.php


위 명령어는 매일 새벽 1시에 sync.php 파일이 실행되도록 한 것입니다.

:wq 명령어를 이용해서 저장하고 나오시면 끝!

해당 방법은 별도의 추가 작업이 필요없으며 그냥 저장하고 나오시면 자동으로 적용이 됩니다.

crontab -e 를 이용해서 예약하기

[root@localhost ~]# crontab -e


* 01 * * 1 /usr/local/bin/php -f /home/user/sync.php


위 명령어는 월요일 새벽 1시에 sync.php 파일이 실행되도록 한 것입니다.

:wq 명령어를 이용해서 저장하고 나오시면 끝!

해당 방법은 아래와 같은 실행 및 재 시작의 명령어를 추가로 수행해야 합니다.

실행, 종료, 재 시작 명령어

[root@localhost ~]# /etc/rc.d/init.d/crond start
[root@localhost ~]# /etc/rc.d/init.d/crond stop
[root@localhost ~]# /etc/rc.d/init.d/crond restart

위의 내용을 참고하여 일단 테스트로 * * * * * sh /game/project/test.sh  라고 
저장하였다. test.sh엔 
echo "Hello World" > hello.txt
가 저장되어있다.

예상대로라면 1분마다 Hello World라고 hello.txt 에 저장해야하는데 아무런 변화가 없다.
crontab -l 을 실행해보니 “no crontab for root” 라고 나온다. 

서치결과 "crontab -u root -e” 명령어로 새로운 크론탭을 적용했다.
다시 crontab -l 을 실행하니 제대로 * * * * * sh /game/project/test.sh 가 나왔다. 

cat /var/log/cron을 실행해보니 뭔가 1분마다 동작하고 있었지만 
여전히 hello.txt파일은 존재하지 않았다. 경로가 잘못된 듯하여 home을 기준으로 절대 경로를 삽입하였다.

* * * * * sh home/user/game/project/test.sh  잘된다.

이어서 일요일에 1번 실행시키기 위해 59 23 * * * php /home/user/game/project/resetRanking.php 를 설정했다.
이제 페이스북 랭킹을 초기화하는 로직만 작성하면된다.


랭킹 초기화하는 페이스북 API 호출하기

먼저 페이스북 PHP SDK를 깔아야한다. 안에 있는 src폴더를 서버에 복사한다.
그리고 mbstring 이라는 php모듈? 을 설치한다. (sudo yum install php56-mbstring) php 버전에 따라 다르게 설치한다. 이것때문에 한참을 해맸다.

이후에 유저 전체의 스코어를 모두 초기화 하는 스크립트를 구현하였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    error_reporting(E_ALL);
 
    ini_set("display_errors"1);
 
    require_once __DIR__ . '/php-graph-sdk-5.0.0/src/Facebook/autoload.php';
 
    $fb = new Facebook\Facebook(['app_id' => ‘xxx',
                                'app_secret' => ‘xxx',
                                'default_graph_version' => ‘xxx']);
    $fbApp = $fb->getApp();
    $fb->delete('/app/scores/', [], $fbApp->getAccessToken());
cs
 

사실 위의 app accesstoken을 어디서 어떻게 가져와야 할지 몰라 한참을 해맸다.
결국 잘되는 것을 확인했다.

이제 웹에서  경로를 통해 php를 실행하는 것을 막아야한다. ( 웹에서 누구나 접근하여 게임의 스코어를 날릴수 있다면 큰일이다. )
여러 방법이 있겠지만  
웹에서 접근하지 못하는 경로에 추가하였다.


'All > Project' 카테고리의 다른 글

지금까지 개발된 내용  (0) 2017.04.08
Laviah  (0) 2017.04.08
UI_ HealthBarUI  (0) 2016.04.12
UI_ MyButton  (0) 2016.04.12
별게임의 상태트리  (0) 2016.04.12

Json syntax check

http://jsonlint.com/


Shell script syntax check

https://www.shellcheck.net/


online photoshop

https://pixlr.com/editor/


gradation list

http://uigradients.com/#WhatliesBeyond


Web scripter

http://colorscripter.com/


Algorithm Visualizer

http://algo-visualizer.jasonpark.me/#path=backtracking/knight's_tour/basic

'All > ETC' 카테고리의 다른 글

국토종주  (0) 2017.05.10
훈련소 (2016. 01. 21 ~ 2016. 2. 18)  (2) 2016.01.19
Tistory Start  (0) 2015.12.28

+ Recent posts