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