PHP 와 MySQL을 이용한 게임 랭킹 구축하기

5,453 views
4,686 views

Published on

레벨제로정기세미나 1회 20140305
PHP 와 MySQL을 이용한 게임 랭킹 구축하기

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,453
On SlideShare
0
From Embeds
0
Number of Embeds
356
Actions
Shares
0
Downloads
23
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

PHP 와 MySQL을 이용한 게임 랭킹 구축하기

  1. 1. PHP 와 MySQL을 이용한 게임 랭킹 구축하기 2014. 3. 6. GM토튜
  2. 2. Ranking 요구사항 • 게임에 참여한 누구나 볼 수 있었으면 좋겠다. • 최고 점수를 기록하면 좋겠다. • 이름도 같이 기록하면 좋겠다. • 1등부터 정렬해서 보여주면 좋겠다.
  3. 3. 어떻게 누구나 볼 수 있나? 인!터!넷!
  4. 4. 인터넷이란? • Explorer? Chrome? Safari? • 전 세계 컴퓨터가 서로 연결되어 통신 프로토콜로 정보를 주고 받는 컴퓨터 네트워크 • 전화로 ARS를 이용하는 것과 같다.
  5. 5. 클라이언트 PC(브라우저) 통신 프로토콜 서버 서버를 구성
  6. 6. 설치할 것 • 웹 서버 프로그램(NGINX) • 웹 프로그래밍 언어(PHP) • 데이터 베이스(MariaDB) • 데이터 베이스 관리 프로그램 (phpMyAdmin) 서버
  7. 7. 모두를 한번에 처리해버리자! WPN-XM 설치 www.wpn-xm.org 다운로드 후 전부 설치
  8. 8. 서버 실행 시키기 Server Control Panel을 실행 후 Nginx, PHP, MariaDB의 실행버튼 클릭
  9. 9. Hello world with PHP <?php echo "Hello world!"; ?> c:serverwwwtest.php 로 저장 후 브라우저에 http://localhost/test.php 입력
  10. 10. Load PHP ! IEnumerator LoadFromPhp() { string url = "http://localhost/test.php"; WWW www = new WWW(url); yield return www; ! } if( www.isDone) { if( www.error == null) { Debug.Log("Receive Data : " + www.text); } else { Debug.Log("error : " + www.error); } }
  11. 11. IEnumerator 사용이유 int i = 0; i++; Debug.Log(i); 메모리 접근 속도>Disk 접근 속도>>>>인터넷 접근 속도
  12. 12. Database
  13. 13. 잘 조직된 MySQL 손쉽게 사용 가능한 phpMyAdmin
  14. 14. MySQL의 키워드 관계형 데이터베이스 / SQL
  15. 15. 관계형 데이터베이스 • 테이블(Table) • 엑셀의 스프레시트와 같은 것 • 행(row)과 열(column)로 구성 상품코드 상품명 단가 1 2 3 4 즉석밥 컵라면 삼각김밥 소세지 2500 1300 800 1000 열 이름 행 열
  16. 16. 관계형 데이터베이스 • 키(key) • 의미있는 열 • 기본키(주키), 보조키, 외부키, 연결키 등 상품코드 상품명 단가 1 2 3 4 즉석밥 컵라면 삼각김밥 소세지 2500 1300 800 1000 기본키
  17. 17. SQL • 관계형 데이터베이스 관리 시스템에 등록된 데이터를 관리하기 위해 설계된 특수 목적 프로그래밍 언어 • 주요 명령어 • 검색 SELECT • 갱신 UPDATE • 삽입 INSERT • 삭제 DELETE 가장 자주쓰는 명령
  18. 18. SQL - SELECT SELECT 선택한다 * 모든 컬럼을 FROM `ranking` ranking 테이블에서 WHERE `score` > 0 점수가 0보다 큰 ORDER BY `score` DESC 점수가 높은 순으로 정렬하여 LIMIT 0, 20 옵션 20개만
  19. 19. SQL - INSERT INSERT INTO `ranking` `ranking` 에 삽입해라 (`no`, `name`, `score`) no, name, score 열에 맞춰 VALUES 다음과 같은 값들을 (NULL, ‘이름1’, 100), (NULL, ‘이름2’, 110) 한 줄만 삽입할 때는 1개의 데이터 필요
  20. 20. ranking 테이블 • SQL 명령어로 제작할 수 있으나 편의상 phpMyAdmin 사용 컬럼 이름 타입 길이 초기값 비고 no int 12 - auto increase 기본 키 name varchar 8 - utf8_unicode_ci score int 10 0 unsigned
  21. 21. ranking 테이블 만들기 1 http://localhost/ phpmyadmin/
 접속
  22. 22. ranking 테이블 만들기 2 1 2 1. 화면 왼쪽에 new 클릭 2. 화면 우측에 lvzero 입력 3. Create 클릭 3
  23. 23. ranking 테이블 만들기 3 2 1 1. 화면 왼쪽에 lvzero DB 클릭 2. 화면 우측에 ranking 입력 3. 3 입력 후 Save 버튼 클릭 3
  24. 24. ranking 테이블 만들기 4 • 위와 같이 설정 후 Save 버튼 클릭
  25. 25. PHP - 소스 소개 • dbHelper • • loadRanking • • 다른 php파일에서 매번 설정해야하는 일을 줄이기 위해서 미리 정의 해놓고 include 해서 사용하려는 목적. ranking 테이블에서 점수가 높은 순으로 선택하여 xml 형식으로 리턴 insertScore • ranking 테이블에 이름과 점수를 등록하는 코드.
  26. 26. Demo 1
  27. 27. 유니티 스크립트 소개 • 주요 메소드 • IEnumerator UploadScore() • • 점수를 서버에 등록 IEnumerator LoadRank() • 상위 10개의 점수를 읽어서 화면에 표시
  28. 28. 주요 메소드 구조 url 선언 WWWForm을 통한 필요 데이터 생성 WWW(url, WWWForm) 연결 yield return WWW; WWW 연결 종료 확인 WWW 에러 여부 확인 WWW.text를 통한 이후 처리 옵션
  29. 29. Demo 2
  30. 30. 공지 사항 • 레벨제로 카페를 통해 공개 예정 • • 전체 소스 코드(PHP, C#, Unity Project) 유의 사항 • 서버(Web Server) 지원이 아닙니다. • 유니티 AssetStore를 통해 판매할 예정입니다. • 회원의 경우 레벨 5이상이면 무료로 사용가능합니다.
  31. 31. 감사합니다.

×