(온라인게임을 지탱하는 기술) 기본용어
1. 16밀리초/프레임 레이트(Frame Rate)
래스크 주사방식 디스플레이인 텔레비전을 사용하는 경우 비디오 게임은 일반적으로 초당 60회로 화면을 갱신한다. 이 화면 갱신시간이 프레임레이트로,1초당 60분의 1인 16밀리초이다. 플레이어가 게임의 상황 변화를 인식할 수 있는 가장 짧은 시간 간격이다.
2. ARPG(Action Role Playing Game)
RPG중 액션감이 있는 리얼타임 게임 또는 어드벤처 게임의 특징을 가지는 게임
3. CPU사이클
CPU가 동작하는 최소단위, 1GHz의 CPU는 1초당 10억 사이클이며 1사이클에서 실행가능한 며령은 1초당 10억회이다.
3. MMO(Massively Multiplayer Online)
대규모의 사용자를 가진 멀티플레이어 참가형의 온라인 게임(MMOG)
4. MO(Multiplayer Online)
비교적 소수를 대상으로 하는 멀티플레이어 참가형의 온라인게임(MOG)
5. ROG(Remote Procedure Call)
원격절차 호출, 다른 컴퓨터의 서비스(함수 등)를 불러오는 것,
6. 이벤트 구동(Event Driven)
이벤트가 발생한 타이밍에 처리를 진행하는 프로그래밍 방식, 이벤트 종류의 예를들면,
[데이터가 전송되었을 때],[마우스가 움직였을 때] 등이다.
네트워크 프로그래밍이나 게임 프로그래밍에서는 이벤트 구동 방식의 프로그램을 많이 이용한다.
7. 영속성(Persistent)
게임 데이터에서의 영속성은 게임 플레이에 필요한 시간의 길이이다.
예를들어, 레이싱게임은 수분 이내에 사용되고 버려지는 데이터가 중심이 되기 때문에 영속적이지 않으면 데이터의 비축성이 낮다. 그러나 MMORPG와 같이 멈추지 않고 계속되는 게임은 영속적이며 게임데이터의 비축성이 높다.
8. 온 메모리(on Memory)
CPU가 수 클럭, 즉 수 나노초~수백 나노초 사이에 정보를 취득할 수 있는 거리인 메모리에 데이터가 올라가 있는 상태.
9. 캐시(Cache)
데이터를 고속으로 꺼내오기 위해 일시적으로 다른 장소에 보존해두는 것,예를들면 디스크 액세스는 느리기 떄문에 파일으 내용을 메모리 상에 배치해두면(캐시해두면), 고속으로 데이터를 꺼낼 수 있다. CPU캐시, 캐시 메모리, 브라우저 캐시, 캐시 서버 등
10. 경합 상태(Race condition)
하나의 자원(메모리 등)을 둘이상의 이용자(처리, 프로세스 드)가 동시에 이용하려 할때 발생하는 프로그램의 상태를가리킨다. 데드락(처리 결과를 서로기다리는 고착상태)등의 문제를 야기한다.
11. 공유메모리(Shared Memory)
메모리 내용을 복수의 프로세스가 공유한다. 구체적으로는 움직이는 물체의 좌표나, 이동방향 등의 상태를 공유
12. 클라우드
주로 서버 측 컴퓨터 망을 말한다. 단순한 서버 머신의 호스팅 뿐만 아니라 스토리지나 부하분산, 과금 시스템, 로그 분석등 서버구축에 필요한 모든 컴퓨터 관련 리소스를 필요시에 유연하며 빠르게 조달 할 수 있다. 매우편리하지만 중요한 기밀정보나 개인정보를 클라우드 운영회사에 건내줘야 한다는 단점이 있다.
13. 다중화(Redundancy)
예비로 여러개를 준비하는 것, 게임 데이터의 다중화란 데이터를 가까운 곳과 먼곳 ,복수의 장소에 복사하여 보관하는 것을 말한다(마스터,복사본의 관계)
14. 스케일러블(Scalable)
시스템의 성능확장이 가능한 상태.온라인게임에서는 플레이어의 증가느 포화상태에 대비하여 손쉽게 성능이나 기능을 확장 할 수 있는 것이 바람직하다.
15. 스케일업/스케일아웃(Scale-up/Scale-out)
스케일업이란 메모리의 증설이나 CPU의 교환등 1대의 서버를 강화하는 것으로 시스템의 성능을 올린ㄴ 방법, 스케일 아웃이ㅏㄴ 서버의 대수를 늘려서 시스템의 성능을 올리는 방법을 말한다. 대규모 온라인 게임에서는 서버의 대수를 늘리는 스케일 아웃 구성이 바람직하다.
16. 스루풋(Throughput)
시스템이 일정시간 수행할 수 있는 처리량, 예를들어, 1초에 1000의 처리를 수행할 수 있는 시스템은 100밖에 처리할 수 없는 시스템보다 스루풋이 높다고 말한다.
17. 쓰레드
프로세스에 의해 세분화된 프로그램의 실행단위. 리소스 공유에 있어 대개의 경우 프로세스 간보다 스레드 간의 연계처리가 쉽다. 단일 스레드를 가지고 처리를 수행하는 방법은 싱글 스레드, 복수의 스레드를 동시에 사용하여 처리를 수행하는 방법을 멀티스레드라고 부른다.
18. 소켓API
네트워크에 관련된 파일 디스크립터(file descripter)인 소켓을 다루는 API,
19. 대역(Bandwidth)
네트워크를 경유하여 데이터 전송을 수행하는 전송률을 가리킨다(대역폭(밴드폭))일가고도한다.
20. 디플로이(Deploy)
애플리케이션 프로그램의 배치. 서버 디플로이먼트는 다른 버전의 서버 프로그램을 각 서버 머신에 인스톨하여 버전을 변경하는 일련의 작업을 말한다.
21. 패킷
데이터 전송의 단위. 패킷통신의 원리는 데이터를 분할하고 제어 정보 등을 부가하여 전송하는 것이다. TCP에서 데이터 전송단위는 세그먼트(segment) 이고, UDP/IP에서는 데이터 그램으로 불린다.
온라인게임 개발은 결국 네트워크 패킷지연 싸움이다.
22. 부하(Load)
CPU나 네트워크 등에 걸리는 일의 양. 예를들어, 복잡한 계산을 대량으로 실시하는 처리는 CPU의 부하가 높다. 대량의 데이터를 송수신하는 처리도 마찬가지다.
CPU부하, I/O 부하, 서버 부하등 다양한 상황에서 사용된다.
23. 부하분산
부하를 분산시키는 것
24. 블로킹/논블로킹
블로킹이란 처리가 끝날 때까지 기다리는 것을 말한다. 예를들어, 데이터가 들어올 때까지 기다리는 프로그램(블록하는 프로그램)에서는 그 사이에 다른 처리를 수행할 수 없다. 이 문제를 해결하기 위해서는 논블로킹(계속 기다리지 않는다.)으로 하면된다. 동기적호출, 비동기적 호출로 불리기도 한다.
25. 병렬(Parallel)
물리적으로 처리를 병렬화하여 복수의 처리를 동시에 실시하는 것. 덧붙여 병행(Concurrent)란 시분할방식 등을 이용하여 처리가 병렬로 이루어지고 있는 것처럼 보이게 하는 것까지도 포함한다. 병렬황 의한 속도향상은 어렵기 때문에 기본적으로 프로세서의 계산 능력을 고려하여 기획 내용 자체를 재검토하거나 알고리즘의 개선을 통해 계산량을 줄이는 것이 중요핟.
26. 보틀넥(Bottleneck)
시스템에서 제일 약점이 되는 부분. 다른 부분이 아무리 빨라도 하나의 늦은 부분(보틀넥) 이 있는 것만으로 전체가 느려지는 경우가 있다.
27.미들웨어
애플리케이션에서 사용하는 범용적인 기능을 집약하여 특화한 패키지 소프트웨어, 통신등의 유연서와 성능이 요구되는 처리를 패키지화하는 것으로, 개별작업의 번거로움을 줄이고 API를 통해 고도의 기능을 이용할 수 있게 한다
28. 레이턴시(Latency)
처리 소요시간. 예를들어,플레이어가 키를 누르고 그 조작이 화면에 반영될 때 까지 1초나 걸리는 게임은 레이턴시가 나쁜것이라 할 수 있다.
래스크 주사방식 디스플레이인 텔레비전을 사용하는 경우 비디오 게임은 일반적으로 초당 60회로 화면을 갱신한다. 이 화면 갱신시간이 프레임레이트로,1초당 60분의 1인 16밀리초이다. 플레이어가 게임의 상황 변화를 인식할 수 있는 가장 짧은 시간 간격이다.
2. ARPG(Action Role Playing Game)
RPG중 액션감이 있는 리얼타임 게임 또는 어드벤처 게임의 특징을 가지는 게임
3. CPU사이클
CPU가 동작하는 최소단위, 1GHz의 CPU는 1초당 10억 사이클이며 1사이클에서 실행가능한 며령은 1초당 10억회이다.
3. MMO(Massively Multiplayer Online)
대규모의 사용자를 가진 멀티플레이어 참가형의 온라인 게임(MMOG)
4. MO(Multiplayer Online)
비교적 소수를 대상으로 하는 멀티플레이어 참가형의 온라인게임(MOG)
5. ROG(Remote Procedure Call)
원격절차 호출, 다른 컴퓨터의 서비스(함수 등)를 불러오는 것,
6. 이벤트 구동(Event Driven)
이벤트가 발생한 타이밍에 처리를 진행하는 프로그래밍 방식, 이벤트 종류의 예를들면,
[데이터가 전송되었을 때],[마우스가 움직였을 때] 등이다.
네트워크 프로그래밍이나 게임 프로그래밍에서는 이벤트 구동 방식의 프로그램을 많이 이용한다.
7. 영속성(Persistent)
게임 데이터에서의 영속성은 게임 플레이에 필요한 시간의 길이이다.
예를들어, 레이싱게임은 수분 이내에 사용되고 버려지는 데이터가 중심이 되기 때문에 영속적이지 않으면 데이터의 비축성이 낮다. 그러나 MMORPG와 같이 멈추지 않고 계속되는 게임은 영속적이며 게임데이터의 비축성이 높다.
8. 온 메모리(on Memory)
CPU가 수 클럭, 즉 수 나노초~수백 나노초 사이에 정보를 취득할 수 있는 거리인 메모리에 데이터가 올라가 있는 상태.
9. 캐시(Cache)
데이터를 고속으로 꺼내오기 위해 일시적으로 다른 장소에 보존해두는 것,예를들면 디스크 액세스는 느리기 떄문에 파일으 내용을 메모리 상에 배치해두면(캐시해두면), 고속으로 데이터를 꺼낼 수 있다. CPU캐시, 캐시 메모리, 브라우저 캐시, 캐시 서버 등
10. 경합 상태(Race condition)
하나의 자원(메모리 등)을 둘이상의 이용자(처리, 프로세스 드)가 동시에 이용하려 할때 발생하는 프로그램의 상태를가리킨다. 데드락(처리 결과를 서로기다리는 고착상태)등의 문제를 야기한다.
11. 공유메모리(Shared Memory)
메모리 내용을 복수의 프로세스가 공유한다. 구체적으로는 움직이는 물체의 좌표나, 이동방향 등의 상태를 공유
12. 클라우드
주로 서버 측 컴퓨터 망을 말한다. 단순한 서버 머신의 호스팅 뿐만 아니라 스토리지나 부하분산, 과금 시스템, 로그 분석등 서버구축에 필요한 모든 컴퓨터 관련 리소스를 필요시에 유연하며 빠르게 조달 할 수 있다. 매우편리하지만 중요한 기밀정보나 개인정보를 클라우드 운영회사에 건내줘야 한다는 단점이 있다.
13. 다중화(Redundancy)
예비로 여러개를 준비하는 것, 게임 데이터의 다중화란 데이터를 가까운 곳과 먼곳 ,복수의 장소에 복사하여 보관하는 것을 말한다(마스터,복사본의 관계)
14. 스케일러블(Scalable)
시스템의 성능확장이 가능한 상태.온라인게임에서는 플레이어의 증가느 포화상태에 대비하여 손쉽게 성능이나 기능을 확장 할 수 있는 것이 바람직하다.
15. 스케일업/스케일아웃(Scale-up/Scale-out)
스케일업이란 메모리의 증설이나 CPU의 교환등 1대의 서버를 강화하는 것으로 시스템의 성능을 올린ㄴ 방법, 스케일 아웃이ㅏㄴ 서버의 대수를 늘려서 시스템의 성능을 올리는 방법을 말한다. 대규모 온라인 게임에서는 서버의 대수를 늘리는 스케일 아웃 구성이 바람직하다.
16. 스루풋(Throughput)
시스템이 일정시간 수행할 수 있는 처리량, 예를들어, 1초에 1000의 처리를 수행할 수 있는 시스템은 100밖에 처리할 수 없는 시스템보다 스루풋이 높다고 말한다.
17. 쓰레드
프로세스에 의해 세분화된 프로그램의 실행단위. 리소스 공유에 있어 대개의 경우 프로세스 간보다 스레드 간의 연계처리가 쉽다. 단일 스레드를 가지고 처리를 수행하는 방법은 싱글 스레드, 복수의 스레드를 동시에 사용하여 처리를 수행하는 방법을 멀티스레드라고 부른다.
18. 소켓API
네트워크에 관련된 파일 디스크립터(file descripter)인 소켓을 다루는 API,
19. 대역(Bandwidth)
네트워크를 경유하여 데이터 전송을 수행하는 전송률을 가리킨다(대역폭(밴드폭))일가고도한다.
20. 디플로이(Deploy)
애플리케이션 프로그램의 배치. 서버 디플로이먼트는 다른 버전의 서버 프로그램을 각 서버 머신에 인스톨하여 버전을 변경하는 일련의 작업을 말한다.
21. 패킷
데이터 전송의 단위. 패킷통신의 원리는 데이터를 분할하고 제어 정보 등을 부가하여 전송하는 것이다. TCP에서 데이터 전송단위는 세그먼트(segment) 이고, UDP/IP에서는 데이터 그램으로 불린다.
온라인게임 개발은 결국 네트워크 패킷지연 싸움이다.
22. 부하(Load)
CPU나 네트워크 등에 걸리는 일의 양. 예를들어, 복잡한 계산을 대량으로 실시하는 처리는 CPU의 부하가 높다. 대량의 데이터를 송수신하는 처리도 마찬가지다.
CPU부하, I/O 부하, 서버 부하등 다양한 상황에서 사용된다.
23. 부하분산
부하를 분산시키는 것
24. 블로킹/논블로킹
블로킹이란 처리가 끝날 때까지 기다리는 것을 말한다. 예를들어, 데이터가 들어올 때까지 기다리는 프로그램(블록하는 프로그램)에서는 그 사이에 다른 처리를 수행할 수 없다. 이 문제를 해결하기 위해서는 논블로킹(계속 기다리지 않는다.)으로 하면된다. 동기적호출, 비동기적 호출로 불리기도 한다.
25. 병렬(Parallel)
물리적으로 처리를 병렬화하여 복수의 처리를 동시에 실시하는 것. 덧붙여 병행(Concurrent)란 시분할방식 등을 이용하여 처리가 병렬로 이루어지고 있는 것처럼 보이게 하는 것까지도 포함한다. 병렬황 의한 속도향상은 어렵기 때문에 기본적으로 프로세서의 계산 능력을 고려하여 기획 내용 자체를 재검토하거나 알고리즘의 개선을 통해 계산량을 줄이는 것이 중요핟.
26. 보틀넥(Bottleneck)
시스템에서 제일 약점이 되는 부분. 다른 부분이 아무리 빨라도 하나의 늦은 부분(보틀넥) 이 있는 것만으로 전체가 느려지는 경우가 있다.
27.미들웨어
애플리케이션에서 사용하는 범용적인 기능을 집약하여 특화한 패키지 소프트웨어, 통신등의 유연서와 성능이 요구되는 처리를 패키지화하는 것으로, 개별작업의 번거로움을 줄이고 API를 통해 고도의 기능을 이용할 수 있게 한다
28. 레이턴시(Latency)
처리 소요시간. 예를들어,플레이어가 키를 누르고 그 조작이 화면에 반영될 때 까지 1초나 걸리는 게임은 레이턴시가 나쁜것이라 할 수 있다.
댓글
댓글 쓰기