KR102523008B1 - 오류의 검출에 기반하여 게임의 모드를 적응적으로 전환하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체 - Google Patents

오류의 검출에 기반하여 게임의 모드를 적응적으로 전환하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체 Download PDF

Info

Publication number
KR102523008B1
KR102523008B1 KR1020210049344A KR20210049344A KR102523008B1 KR 102523008 B1 KR102523008 B1 KR 102523008B1 KR 1020210049344 A KR1020210049344 A KR 1020210049344A KR 20210049344 A KR20210049344 A KR 20210049344A KR 102523008 B1 KR102523008 B1 KR 102523008B1
Authority
KR
South Korea
Prior art keywords
electronic device
game
data
mode
signal
Prior art date
Application number
KR1020210049344A
Other languages
English (en)
Other versions
KR20220142831A (ko
Inventor
곽영달
김동환
변상훈
우성호
이승민
Original Assignee
주식회사 엔씨소프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엔씨소프트 filed Critical 주식회사 엔씨소프트
Priority to KR1020210049344A priority Critical patent/KR102523008B1/ko
Priority to US17/717,716 priority patent/US20220331690A1/en
Publication of KR20220142831A publication Critical patent/KR20220142831A/ko
Application granted granted Critical
Publication of KR102523008B1 publication Critical patent/KR102523008B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/552Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Security & Cryptography (AREA)
  • Child & Adolescent Psychology (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

다양한 실시예들에 따른, 제1 전자 장치(electronic device)는, 통신 회로와, 인스트럭션들을 저장하도록 구성된 적어도 하나의 메모리와, 상기 인스트럭션들을 실행할 시, 게임의 실행을 위한 제1 데이터의 적어도 일부를 수신하였던 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 데이터에 기반하여 상기 게임을 상기 제2 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 상기 게임의 로컬(local) 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 지시하기 위한 신호를 수신하고, 상기 신호의 수신에 기반하여, 상기 제2 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드(cloud) 모드를 상기 제2 전자 장치에게 제공하기 위한 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 송신하도록, 구성되는 적어도 하나의 프로세서를 포함할 수 있다.

Description

오류의 검출에 기반하여 게임의 모드를 적응적으로 전환하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체{ELECTRONIC DEVICE, METHOD, AND COMPUTER READABLE STORAGE MEDIUM FOR ADAPTIVELY SWITCHING MODE OF GAME BASED ON DETECTION OF ERROR}
후술되는 다양한 실시예들은 게임과 관련된 오류의 발생을 검출하는 것에 기반하여, 상기 게임의 모드를 적응적으로 전환하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체에 관한 것이다.
온라인 게임(online game)은 서버가 클라이언트 장치들 각각으로부터 연산 요청을 수신하고 연산 결과를 상기 클라이언트 장치들 각각에게 송신함으로써 상기 클라이언트 장치들 각각 내에서 실행되는 비디오 게임일 수 있다. 상기 클라이언트 장치들은, 스마트폰, 테블릿 컴퓨터, 데스크탑 컴퓨터, 랩탑 컴퓨터, 게임 콘솔 등을 포함할 수 있다.
온라인 게임은, 상기 온라인 게임의 플레이를 위해, 클라이언트 장치가 상기 온라인 게임의 실행을 위한 데이터(예: 설치 파일)를 수신하는 것, 상기 클라이언트 장치가 상기 수신된 데이터에 기반하여 상기 온라인 게임을 위한 프로그램을 상기 클라이언트 장치 내에 설치하는 것, 및 상기 클라이언트 장치가 상기 설치된 프로그램에 기반하여 상기 온라인 게임을 실행하는 것을 요구할 수 있다.
한편(meanwhile), 상기 데이터의 수신, 상기 프로그램의 설치, 및 상기 프로그램의 실행 중 어느 하나(any one) 내에서 오류가 야기되는(caused) 경우, 상기 온라인 게임을 상기 클라이언트 장치를 이용하여 플레이하는 것은 가용하지 않을(unavailable) 수 있다. 예를 들어, 상기 데이터의 수신 동안 상기 클라이언트 장치 내에서 또는 상기 데이터를 제공하는 서버 내에서 오류가 야기되는 경우, 상기 온라인 게임을 상기 클라이언트 장치를 이용하여 플레이하는 것은 가용하지 않을 수 있다. 다른 예를 들어, 상기 프로그램의 설치 동안 오류가 야기되는 경우, 상기 온라인 게임을 플레이하는 것은 가용하지 않을 수 있다. 또 다른 예를 들어, 상기 프로그램의 실행 동안 오류가 야기되는 경우, 상기 온라인 게임을 플레이하는 것은 가용하지 않을 수 있다.
본 문서에서 이루고자 하는 기술적 과제는 상술한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 실시예들에 따른, 제1 전자 장치(electronic device)는, 통신 회로와, 인스트럭션들을 저장하도록 구성된 적어도 하나의 메모리와, 상기 인스트럭션들을 실행할 시, 게임의 실행을 위한 제1 데이터의 적어도 일부를 수신하였던 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 데이터에 기반하여 상기 게임을 상기 제2 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 상기 게임의 로컬(local) 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 지시하기 위한 신호를 수신하고, 상기 신호의 수신에 기반하여, 상기 제2 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드(cloud) 모드를 상기 제2 전자 장치에게 제공하기 위한 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 송신하도록, 구성되는 적어도 하나의 프로세서를 포함할 수 있다.
다양한 실시예들에 따른, 통신 회로를 가지는(with) 제1 전자 장치를 동작하기 위한 방법은, 게임의 실행을 위한 제1 데이터의 적어도 일부를 수신하였던 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 데이터에 기반하여 상기 게임을 상기 제2 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 상기 게임의 로컬(local) 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 지시하기 위한 신호를 수신하는 동작과, 상기 신호의 수신에 기반하여, 상기 제2 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드(cloud) 모드를 상기 제2 전자 장치에게 제공하기 위한 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 송신하는 동작을 포함할 수 있다.
다양한 실시예들에 따른, 컴퓨터 판독가능 저장 매체는, 통신 회로를 가지는 제1 전자 장치의 적어도 하나의 프로세서에 의해 실행될 시, 게임의 실행을 위한 제1 데이터의 적어도 일부를 수신하였던 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 데이터에 기반하여 상기 게임을 상기 제2 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 상기 게임의 로컬(local) 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 지시하기 위한 신호를 수신하고, 상기 신호의 수신에 기반하여, 상기 제2 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드(cloud) 모드를 상기 제2 전자 장치에게 제공하기 위한 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 송신하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 포함할 수 있다.
다양한 실시예들에 따른 제1 전자 장치는, 통신 회로와, 적어도 하나의 디스플레이와, 인스트럭션들을 저장하도록 구성된 적어도 하나의 메모리와, 상기 인스트럭션들을 실행할 시, 게임의 실행을 위한 제1 데이터의 적어도 일부를 상기 적어도 하나의 메모리 내에 저장하고, 상기 적어도 하나의 메모리 내에 저장된 상기 제1 데이터를 이용하여 상기 게임을 상기 제1 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 로컬(local) 모드가 가용하지 않는(unavailable) 동안, 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드 모드를 위해, 상기 제3 전자 장치에 접속하기 위한 제2 데이터를 수신하고, 상기 클라우드 모드를 통한 상기 게임의 플레이를 위해, 상기 제2 데이터에 기반하여 수립된 상기 제1 전자 장치와 상기 제3 전자 장치 사이의 통신 연결을 이용하여 상기 제3 전자 장치로부터 상기 통신 회로를 통해 수신되는 상기 적어도 하나의 콘텐트를 상기 적어도 하나의 디스플레이를 통해 표시하도록, 구성되는 적어도 하나의 프로세서를 포함할 수 있다.
다양한 실시예들에 따른, 적어도 하나의 메모리, 통신 회로, 및 적어도 하나의 디스플레이를 가지는(with) 제1 전자 장치를 동작하기 위한 방법은, 게임의 실행을 위한 제1 데이터의 적어도 일부를 상기 적어도 하나의 메모리 내에 저장하는 동작과, 상기 적어도 하나의 메모리 내에 저장된 상기 제1 데이터를 이용하여 상기 게임을 상기 제1 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 로컬(local) 모드가 가용하지 않는(unavailable) 동안, 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드 모드를 위해, 상기 제3 전자 장치에 접속하기 위한 제2 데이터를 수신하는 동작과, 상기 클라우드 모드를 통한 상기 게임의 플레이를 위해, 상기 제2 데이터에 기반하여 수립된 상기 제1 전자 장치와 상기 제3 전자 장치 사이의 통신 연결을 이용하여 상기 제3 전자 장치로부터 상기 통신 회로를 통해 수신되는 상기 적어도 하나의 콘텐트를 상기 적어도 하나의 디스플레이를 통해 표시하는 동작을 포함할 수 있다.
다양한 실시예들에 따른 컴퓨터 판독가능 저장 매체는, 통신 회로, 적어도 하나의 메모리, 및 적어도 하나의 디스플레이를 가지는 제1 전자 장치의 적어도 하나의 프로세서에 의해 실행될 시, 게임의 실행을 위한 제1 데이터의 적어도 일부를 상기 적어도 하나의 메모리 내에 저장하고, 상기 적어도 하나의 메모리 내에 저장된 상기 제1 데이터를 이용하여 상기 게임을 상기 제1 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 로컬(local) 모드가 가용하지 않는(unavailable) 동안, 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드 모드를 위해, 상기 제3 전자 장치에 접속하기 위한 제2 데이터를 수신하고, 상기 클라우드 모드를 통한 상기 게임의 플레이를 위해, 상기 제2 데이터에 기반하여 수립된 상기 제1 전자 장치와 상기 제3 전자 장치 사이의 통신 연결을 이용하여 상기 제3 전자 장치로부터 상기 통신 회로를 통해 수신되는 상기 적어도 하나의 콘텐트를 상기 적어도 하나의 디스플레이를 통해 표시하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있다.
다양한 실시예들에 따른 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체는, 로컬 모드에서의 게임의 실행과 관련된 오류의 검출에 기반하여 적응적으로 상기 게임의 모드를 클라우드 모드로 전환함으로써, 상기 오류를 복구하는 동안 지속적으로(continuously) 상기 게임을 플레이하는 서비스를 제공할 수 있다.
본 개시에서 얻을 수 있는 효과는 상술한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 다양한 실시예들에 따른 전자 장치들을 포함하는 환경을 도시한다.
도 2는 다양한 실시예들에 따른 전자 장치에서 제공되는 로컬 모드의 예를 도시한다.
도 3은 다양한 실시예들에 따른 전자 장치에서 제공되는 클라우드 모드의 예를 도시한다.
도 4는 다양한 실시예들에 따른 전자 장치들 각각의 기능적 구성들을 도시하는 간소화된(simplified) 블록도이다.
도 5는 다양한 실시예들에 따른 전자 장치들 사이의 시그널링의 예를 도시한다.
도 6은 다양한 실시예들에 따른 전자 장치에 수신되는 제1 데이터의 예들을 도시한다.
도 7은 다양한 실시예들에 따라 제1 데이터의 일부 수신에 기반하여 제2 데이터를 송신하는 방법을 도시하는 흐름도이다.
도 8은 다양한 실시예들에 따라 게임 설치 중 오류에 기반하여 제2 데이터를 송신하는 방법을 도시하는 흐름도이다.
도 9는 다양한 실시예들에 따라 상기 로컬 모드 내에서의 게임의 실행 중 오류에 기반하여 제2 데이터를 송신하는 방법을 도시하는 흐름도이다.
도 10은 다양한 실시예들에 따라 상기 클라우드 모드를 제공하는 것을 중단하는 것을 결정하는 방법을 도시하는 흐름도이다.
도 11은 다양한 실시예들에 따른 전자 장치에 수신되는 제2 데이터의 예들을 도시한다.
도 12는 다양한 실시예들에 따라, 상기 클라우드 모드를 통해 게임을 플레이할 수 있는 기간의 만료에 기반하여, 상기 클라우드 모드를 제공하는 것을 중단함을 결정하는 방법을 도시하는 흐름도이다.
도 13은 다양한 실시예들에 따라, 상기 클라우드 모드를 통해 지정된 기간 동안 상기 게임을 플레이하지 않음을 식별하는 것에 기반하여, 상기 클라우드 모드를 제공하는 것을 중단함을 결정하는 방법을 도시하는 흐름도이다.
도 14는 다양한 실시예들에 따라, 상기 로컬 모드를 통한 상기 게임의 플레이가 다른 전자 장치 내에서 활성화됨을 식별하는 것에 기반하여, 상기 클라우드 모드를 제공하는 것을 중단함을 결정하는 방법을 도시하는 흐름도이다.
도 15는 다양한 실시예들에 따라, 상기 클라우드 모드를 제공하는 방법을 도시하는 흐름도이다.
도 16은 다양한 실시예들에 따라, 상기 로컬 모드가 가용하지 않는 동안 상기 클라우드 모드를 통해 상기 게임을 실행하는 방법을 도시하는 흐름도이다.
도 17은 다양한 실시예들에 따라 제2 데이터를 수신하는 방법을 도시하는 흐름도이다.
도 18은 다양한 실시예들에 따라, 상기 클라우드 모드를 통해 상기 게임을 플레이하는 것을 유지하거나 중단하는 방법을 도시하는 흐름도이다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 서버, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나","A 또는 B 중 적어도 하나,""A, B 또는 C," "A, B 및 C 중 적어도 하나,"및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(105))에 의해 읽을 수 있는 저장 매체(storage medium)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램)로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(105))의 프로세서는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적'은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM, 또는 앱 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
도 1은 다양한 실시예들에 따른 전자 장치들을 포함하는 환경을 도시한다.
도 1을 참조하면, 환경(100)은, 전자 장치(101), 전자 장치(102), 전자 장치(103), 전자 장치(104), 및 전자 장치(105)를 포함할 수 있다.
다양한 실시예들에서, 전자 장치(101)는, 게임(예: 온라인 게임)을 위한 서비스를 제공하는 적어도 하나의 서버일 수 있다. 예를 들면, 전자 장치(101)는, 게임 서버, 요금 처리 서버, 상기 게임의 사용자 정보를 저장하는 데이터베이스, 상기 게임의 실행을 위한 데이터를 저장하는 데이터베이스, 및 상기 게임 내에서 야기되는 결제 거래(payment transaction)와 관련된 데이터를 저장하는 데이터베이스를 포함할 수 있다. 실시예들에 따라, 상기 게임 서버, 상기 요금 처리 서버, 상기 사용자 정보를 저장하는 상기 데이터베이스, 상기 게임의 실행을 위한 상기 데이터를 저장하는 상기 데이터베이스, 및 상기 결제 거래와 관련된 상기 데이터를 저장하는 상기 데이터베이스는, 하나의(single) 물리적 기기(machine)로 구현될 수도 있고, 복수의(multiple) 물리적 기기들로 구현될 수도 있다.
다양한 실시예들에서, 상기 게임 서버는, 상기 게임의 실행을 위한 상기 데이터를 저장하는 상기 데이터베이스와의 연동에 기반하여, 클라이언트 장치인 전자 장치(105)로부터 수신되는 상기 게임과 관련된 연산 요청을 처리하고, 상기 처리의 결과에 대한 정보를 전자 장치(105)에게 송신할 수 있다. 다양한 실시예들에서, 상기 게임 서버는, 상기 게임의 사용자 정보를 저장하는 상기 데이터베이스와의 연동에 기반하여, 클라이언트 장치인 전자 장치(105)의 사용자를 등록하거나, 전자 장치(105)로부터 수신되는 계정 정보 및 상기 사용자 정보를 저장하는 상기 데이터베이스 내에 저장된 계정 정보 사이의 관련성에 적어도 기반하여(based at least on) 상기 사용자의 인증을 실행할 수 있다.
다양한 실시예들에서, 상기 요금 처리 서버는, 상기 결제 거래와 관련된 상기 데이터를 저장하는 상기 데이터베이스와의 연동에 기반하여, 상기 게임의 실행 중 야기되는 결제 거래를 처리할 수 있다. 상기 결제 거래가 계좌 이체 또는 신용 카드 결제와 관련된 경우, 상기 요금 처리 서버는, 상기 결제 거래의 처리를 위해, 은행 또는 신용카드사(credit cart company)를 위한 전자 장치와 더 연동할 수 있다.
다양한 실시예들에서, 전자 장치(102)는, 클라우드 컴퓨팅에 기반하여 상기 게임을 실행하는 서비스를 제공하는 적어도 하나의 서버일 수 있다. 다양한 실시예들에서, 상기 게임은, 로컬 모드에 따라 실행될 수도 있고, 클라우드 모드에 따라 실행될 수도 있다. 다양한 실시예들에서, 상기 로컬 모드 및 상기 클라우드 모드 중 상기 클라우드 모드에 따라 상기 게임을 실행할 시, 전자 장치(102)는, 상기 게임을 전자 장치(102) 내에서 실행하고, 전자 장치(102) 내에서 실행되는 상기 게임과 관련된 적어도 하나의 콘텐트에 대한 정보를 상기 클라우드 모드를 위해 전자 장치(105)에게 송신할 수 있다. 예를 들면, 상기 적어도 하나의 콘텐트에 대한 정보는, 직접적으로 전자 장치(105)에게 송신될 수도 있고, 전자 장치(101)를 통해 송신될 수도 있다. 한편, 상기 로컬 모드는, 도 2의 설명을 통해 후술될 것이고, 상기 클라우드 모드는, 도 3의 설명을 통해 후술될 것이다.
다양한 실시예들에서, 전자 장치(102) 내에서 상기 게임을 실행하는 것은, 전자 장치(105)의 요청에 기반하여 트리거될 수 있다. 전자 장치(105)의 상기 요청은, 전자 장치(105)로부터 직접적으로 수신될 수도 있고, 전자 장치(105)로부터 전자 장치(101)를 통해 수신될 수도 있다. 하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 전자 장치(102)는, 전자 장치(102) 내에서 상기 게임을 실행하는 동안, 전자 장치(105) 내에서 표시된 상기 적어도 하나의 콘텐트와 관련하여 야기된 사용자 입력에 대한 데이터를 수신할 수 있다. 예를 들면, 상기 데이터는, 전자 장치(105)로부터 직접적으로 수신될 수도 있고, 전자 장치(105)로부터 전자 장치(101)를 통해 수신될 수도 있다. 하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 전자 장치(102)는, 상기 사용자 입력에 기반하여 전자 장치(102) 내에서 실행되는 상기 게임의 상태를 변경하고, 상기 변경된 상태에 대한 정보를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 상기 정보는, 전자 직접적으로 송신될 수도 있고, 전자 장치(101)를 통해 송신될 수도 있다. 하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 전자 장치(103)는, 상기 게임의 실행과 관련된 오류를 검출하는 서비스를 제공하는 적어도 하나의 서버일 수 있다. 예를 들면, 전자 장치(103)는, 전자 장치(105) 내에서 상기 로컬 모드를 통해 상기 게임을 실행하는 것이 가용하지 않는지 여부를 지시하기 위한 신호를 전자 장치(105)로부터 수신하고, 상기 신호에 기반하여 상기 오류를 검출할 수 있다. 예를 들면, 상기 신호는, 전자 장치(105)로부터 직접적으로 수신될 수도 있고, 전자 장치(105)로부터 전자 장치(101)을 통해 수신될 수도 있다.
다양한 실시예들에서, 전자 장치(103)는, 상기 게임의 모드를 상기 로컬 모드로부터 상기 클라우드 모드로 전환할 것인지 여부를 결정하고, 상기 결정에 따라 적어도 하나의 동작을 실행하는 적어도 하나의 서버일 수 있다. 예를 들면, 전자 장치(103)는, 상기 오류를 검출하는 것에 기반하여 상기 게임의 모드를 상기 클라우드 모드로 전환할 것인지 여부를 결정하고, 상기 결정에 따라 상기 적어도 하나의 동작을 실행할 수 있다. 예를 들면, 전자 장치(103)는, 상기 게임의 실행과 관련된 오류를 복구하는(repair 또는 maintain) 동안, 상기 게임의 모드를 상기 클라우드 모드로 전환할 것인지 여부를 결정할 수 있다. 예를 들면, 전자 장치(103)는, 전자 장치(101), 전자 장치(102), 또는 전자 장치(105) 중 적어도 하나와의 연동에 기반하여, 상기 적어도 하나의 동작을 실행할 수 있다. 하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 전자 장치(104)는, 상기 게임의 실행을 위한 데이터(예: 설치 파일 또는 설치 패키지)을 저장하는 적어도 하나의 서버일 수 있다. 예를 들면, 전자 장치(104)는, 게임과 관련된 서비스를 제공하는 서비스 제공자(예: 게임 회사)가 전자 장치(예: 전자 장치(101) 또는 전자 장치(101)과 구별되는 상기 서비스 제공자의 다른(another) 전자 장치)를 이용하여 게임과 관련된 프로그램(또는 어플리케이션)을 클라이언트 장치(예: 전자 장치(105)) 내에 설치하기 위한 상기 데이터를, 지정된 사용자들을 대상으로, 업로드할 수 있는 공간을 제공하는 서비스 제공자를 위한 장치일 수 있다. 예를 들면, 상기 데이터는, 상기 게임과 관련된 서비스를 제공하는 서비스 제공자(예: 게임 회사)의 전자 장치(예: 전자 장치(101) 또는 전자 장치(101)과 구별되는 상기 서비스 제공자의 다른(another) 전자 장치)로부터 송신되고, 상기 전자 장치로부터 송신된 상기 데이터는 전자 장치(104)에 의해 저장될 수 있다.
다양한 실시예들에서, 전자 장치(104)는, 클라이언트 장치(예: 전자 장치(105))의 요청에 기반하여, 상기 저장된 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 상기 요청은, 전자 장치(104)에 의해 제공되는, 사용자 인터페이스(예: 플레이 스토어TM를 위한 어플리케이션의 사용자 인터페이스 또는 앱 스토어TM를 위한 어플리케이션의 사용자 인터페이스)를 통해 전자 장치(105)로부터 전자 장치(104)에게 송신될 수 있다. 하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 전자 장치(105)는, 상기 게임을 플레이하는 사용자를 위한 클라이언트 장치(예: 데스크탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 게임 콘솔 등)일 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 전자 장치(105) 내에서 실행되거나 전자 장치(102) 내에서 실행되는 상기 게임의 실행 화면을 표시하는 장치일 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 전자 장치(105) 내에서 실행되거나 전자 장치(102) 내에서 실행되는 상기 게임의 실행 화면을 통해 상기 게임과 관련된 사용자 입력을 수신하는 장치일 수 있다.
도 2는 다양한 실시예들에 따른 전자 장치에서 제공되는 로컬 모드의 예를 도시한다. 상기 로컬 모드는, 도 1에 도시된 전자 장치(101), 전자 장치(104), 및 전자 장치(105)의 연동에 적어도 기반하여 전자 장치(105)에서 제공될 수 있다.
도 2를 참조하면, 다양한 실시예들에 따른 전자 장치(104)는, 전자 장치(101)로부터 또는 전자 장치(101)와 관련된 서비스 제공자의 전자 장치(예: 전자 장치(101)과 구별되는 다른 전자 장치)로부터, 상기 게임의 설치를 위한 제1 데이터(210)를 수신할 수 있다. 전자 장치(104)는, 제1 데이터(210)를 저장할 수 있다.
다양한 실시예들에서, 전자 장치(104)는, 전자 장치(105)의 요청에 대한 응답으로, 제1 데이터(210)를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 전자 장치(104)는, 전자 장치(105)로부터 전자 장치(105)의 디스플레이를 통해 표시되는, 전자 장치(104)와 관련된 사용자 인터페이스를 통해 수신되는 전자 장치(105)의 요청에 대한 응답으로, 제1 데이터(210)를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 제1 데이터(210)는, 상기 게임의 설치를 위해 이용될 수 있다. 예를 들면, 제1 데이터(210)는, 상기 게임의 실행을 위한 하나 이상의 프로그램들을 설치하기 위한 하나 이상의 파일들을 포함할 수 있다. 하지만, 이에 제한되지 않는다.
한편, 전자 장치(105)는, 제1 데이터(210)를 전자 장치(104)로부터 수신할 수 있다. 예를 들면, 전자 장치(105)는, 상기 로컬 모드를 위해, 제1 데이터(210)를 전자 장치(104)로부터 수신할 수 있다.
다양한 실시예들에서, 전자 장치(105)는, 수신된 제1 데이터(210)에 기반하여, 상기 하나 이상의 프로그램들을 설치할 수 있다. 예를 들면, 전자 장치(105)는, 상기 로컬 모드를 위해, 제1 데이터(210) 내에 포함된 상기 하나 이상의 파일들을 실행함으로써, 상기 하나 이상의 프로그램들을 설치할 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 상기 설치된 하나 이상의 프로그램들을 실행함으로써 상기 로컬 모드를 통해 상기 게임을 실행할 수 있다. 다시 말해, 상기 로컬 모드는, 제1 데이터(210)에 기반하여 상기 게임을 전자 장치(105) 내에서 실행함으로써 상기 게임을 플레이하는 모드를 의미할 수 있다. 예를 들면, 상기 로컬 모드는, 제1 데이터(210)로부터 전자 장치(105)에 의해 획득된 정보(예: 상기 하나 이상의 프로그램들)에 기반하여 상기 게임을 실행함으로써, 상기 게임을 플레이하는 모드를 의미할 수 있다. 예를 들면, 전자 장치(105)는, 상기 로컬 모드 내에서, 상기 게임의 실행 화면(215)을 표시할 수 있다.
다양한 실시예들에서, 전자 장치(105)는, 상기 로컬 모드 내에서 상기 게임의 실행 화면(215)를 표시하는 동안, 실행 화면(215) 내에 포함된 적어도 하나의 객체에 대한 사용자 입력을 수신할 수 있다. 예를 들면, 전자 장치(105)는, 상기 로컬 모드 내에서 상기 게임의 실행 화면(215)을 표시하는 동안, 실행 화면(215) 내의 실행가능한 객체(217)(예: 활 형상의 실행가능한 객체)에 대한 사용자 입력(219)을 수신할 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 상기 로컬 모드 내에서, 사용자 입력(219)을 수신하는 것에 응답하여, 전자 장치(101)에게 사용자 입력(219)에 대한 정보(221)를 송신할 수 있다. 전자 장치(101)는, 정보(221)를 수신하는 것에 응답하여, 정보(221)에 따라 상기 게임의 실행 화면(215)의 상태를 상기 로컬 모드 내에서 변경하기 위한 정보(223)를 전자 장치(105)에게 송신할 수 있다. 전자 장치(105)는, 상기 로컬 모드 내에서, 전자 장치(101)로부터 수신된 정보(223)에 기반하여, 상기 게임의 실행 화면(215)의 상태를 변경할 수 있다. 예를 들면, 전자 장치(105)는, 정보(223)에 기반하여, 상기 로컬 모드 내에서, 상기 게임의 실행 화면(215) 내의 사용자 입력(219)와 관련된 시각적 객체(225)의 상태를 제1 상태(예: 활을 든 시각적 객체(225)가 화살을 발사하지 않은 상태)로부터 제2 상태(예: 활을 든 시각적 객체(225)가 화살을 발사하는 상태)로 변경할 수 있다.
한편, 전자 장치(105)는, 전자 장치(105) 내에서 야기되는 사용자 입력(예: 사용자 입력(219)) 뿐 아니라, 전자 장치(105)와 구별되는 다른(another) 클라이언트 장치(227) 내에서 야기되는 사용자 입력에 기반하여, 상기 로컬 모드를 통해 상기 게임을 실행하는 동안 표시되는 상기 게임의 실행 화면의 상태를 변경할 수 있다. 예를 들면, 다른 클라이언트 장치(227)는, 전자 장치(105)가 상기 로컬 모드 내에서 상기 게임을 실행하는 동안, 다른 클라이언트 장치(227)의 디스플레이를 통해 표시된 상기 게임의 실행 화면(229) 내의 적어도 하나의 객체에 대한 사용자 입력을 수신할 수 있다. 예를 들면, 다른 클라이언트 장치(227)는, 전자 장치(105)가 상기 로컬 모드 내에서 상기 게임을 실행하는 동안, 실행 화면(229) 내의 실행가능한 객체(231)에 대한 사용자 입력(233)을 수신할 수 있다. 다양한 실시예들에서, 다른 클라이언트 장치(227)는, 사용자 입력(233)을 수신하는 것에 응답하여, 사용자 입력(233)에 대한 정보(235)를 전자 장치(101)에게 송신할 수 있다. 전자 장치(101)는, 정보(235)를 수신하는 것에 응답하여, 정보(235)에 따라 상기 게임의 실행 화면(229)의 상태를 변경하기 위한 정보(237)를 다른 클라이언트 장치(227)에게 송신할 수 있다. 전자 장치(101)는, 정보(235)를 수신하는 것에 응답하여, 정보(235)에 따라, 전자 장치(105)의 디스플레이를 통해 표시된 상기 게임의 실행 화면(예: 실행 화면(215))의 상태를 상기 로컬 모드 내에서 변경하기 위한 정보(239)를 전자 장치(105)에게 송신할 수 있다. 다른 클라이언트 장치(227)는, 정보(237)에 기반하여 상기 게임의 실행 화면(229)의 상태를 변경하고, 전자 장치(105)는, 정보(239)에 기반하여, 상기 로컬 모드 내에서 실행되는 상기 게임의 실행 화면(예: 실행 화면(215))의 상태를 변경할 수 있다. 다시 말해, 다양한 실시예들에 따른 전자 장치(105)는, 상기 로컬 모드 내에서 상기 게임을 실행하는 동안, 전자 장치(105) 내에서 야기된 사용자 입력에 대한 정보 뿐 아니라 다른 클라이언트 장치(227) 내에서 야기된 사용자 입력에 대한 정보에 기반하여 상기 로컬 모드 내에서 제공되는 상기 게임의 실행 화면의 상태를 변경할 수 있다.
도 2에 도시하지 않았으나, 상기 로컬 모드 내에서의 상기 게임의 실행을 위해 제1 데이터(210)가 업데이트되는 경우, 전자 장치(104)는, 전자 장치(101)로부터 또는 전자 장치(101)과 관련된 상기 서비스 제공자의 전자 장치(예: 전자 장치(101)과 구별되는 다른 전자 장치)로부터, 업데이트된 제1 데이터(210)를 수신할 수 있다. 전자 장치(104)는, 업데이트된 제1 데이터(210)를 저장하고, 제1 데이터(210)의 상기 업데이트가 존재함을 알리기(notify) 위한 메시지를 전자 장치(105)에게 송신할 수 있다.
다양한 실시예들에서, 전자 장치(105)는, 전자 장치(104)로부터 상기 메시지를 수신하고, 상기 메시지에 대한 사용자 입력에 기반하여 업데이트된 제1 데이터(210)를 전자 장치(104)로부터 수신할 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 전자 장치(104)로부터 수신되는 업데이트된 제1 데이터(210)에 기반하여 상기 로컬 모드 내에서의 상기 게임의 실행을 위한 상기 하나 이상의 프로그램들을 업데이트할 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 상기 하나 이상의 프로그램들의 상기 업데이트가 완료된 후, 상기 업데이트된 하나 이상의 프로그램들을 실행함으로써 상기 로컬 모드를 통해 상기 게임을 실행할 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 상기 업데이트된 하나 이상의 프로그램들에 기반하여 상기 로컬 모드 내에서 상기 게임을 실행하는 동안, 전자 장치(101) 또는 다른 클라이언트 장치(227) 중 적어도 하나와 연동할 수 있다. 예를 들면, 전자 장치(105)는, 상기 업데이트된 하나 이상의 프로그램들에 기반하여 상기 로컬 모드 내에서 상기 게임을 실행하는 동안, 정보(221)를 전자 장치(101)에게 송신하거나, 정보(223)을 전자 장치(101)로부터 수신하거나, 다른 클라이언트 장치(227)로부터 전자 장치(101)에게 송신된 정보(235)로부터 전자 장치(101)에 의해 획득된 정보(239)를 전자 장치(101)로부터 수신할 수 있다.
도 3은 다양한 실시예들에 따른 전자 장치에서 제공되는 클라우드 모드의 예를 도시한다. 상기 클라우드 모드는, 도 1에 도시된 전자 장치(101), 전자 장치(102), 및 전자 장치(105)의 연동에 적어도 기반하여, 전자 장치(105)에서 제공될 수 있다.
도 3을 참조하면, 다양한 실시예들에 따른 전자 장치(105)는, 상기 클라우드 모드를 위해, 전자 장치(102)에 직접 접속하거나 전자 장치(101)를 통해 전자 장치(102)에 접속할 수 있다. 예를 들면, 전자 장치(105)는, 상기 클라우드 모드를 위해, 전자 장치(105)의 사용자의 계정 정보를 이용하여 전자 장치(102)에 직접 접속하거나 중간 노드(예: 전자 장치(101))를 통해 전자 장치(102)에 접속할 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 전자 장치(102)로의 상기 접속에 기반하여, 전자 장치(102)와의 연동을 통해, 전자 장치(102)와 전자 장치(105) 사이의 통신 연결을 수립할 수 있다. 상기 통신 연결의 수립 후, 전자 장치(102)는, 상기 계정 정보에 기반하여 상기 게임을 전자 장치(102) 내에서 실행할 수 있다. 전자 장치(102)는, 전자 장치(102) 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 상기 적어도 하나의 콘텐트는, 전자 장치(105)의 디스플레이를 통해 표시되는 상기 게임의 실행 화면을 구성하는 적어도 하나의 콘텐트일 수 있다. 예를 들면, 상기 적어도 하나의 콘텐트는, 적어도 하나의 시각적 객체 또는 적어도 하나의 실행가능한 객체 중 적어도 하나를 포함할 수 있다.
한편, 전자 장치(105)는, 상기 클라우드 모드를 위해, 전자 장치(102)로부터 전자 장치(102) 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신할 수 있다. 전자 장치(105)는, 상기 클라우드 모드 내에서의 상기 게임의 플레이를 위해, 상기 전자 장치(102)로부터 수신된 상기 적어도 하나의 콘텐트를 전자 장치(105)의 디스플레이를 통해 표시할 수 있다. 다시 말해, 상기 클라우드 모드는 전자 장치(105)가 전자 장치(105)와 구별되는 전자 장치(102) 내에서 실행되는 상기 게임의 상기 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는 모드를 의미할 수 있다. 예를 들면, 전자 장치(105)는, 상기 클라우드 모드 내에서, 도 2의 설명을 통해 정의된 제1 데이터(210)를 전자 장치(104)로부터 수신하는 것 없이, 전자 장치(102)로부터 수신되는 상기 적어도 하나의 콘텐트를 표시함으로써 상기 게임을 플레이하는 서비스를 제공할 수 있다. 다른 예를 들면, 전자 장치(105)는, 상기 클라우드 모드 내에서, 전자 장치(104)로부터 제1 데이터(210)를 수신하였다 하더라도, 제1 데이터(210) 또는 제1 데이터(210)로부터 획득되는 정보(예: 도 2의 설명을 통해 정의된 상기 하나 이상의 파일들 또는 상기 하나 이상의 프로그램들)의 이용(use) 없이, 전자 장치(102)로부터 수신되는 상기 적어도 하나의 콘텐트를 표시함으로써 상기 게임을 플레이하는 서비스를 제공할 수 있다.
예를 들면, 전자 장치(105)는, 상기 클라우드 모드 내에서, 전자 장치(102) 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트(310)를 전자 장치(102)로부터 수신하고, 전자 장치(102)로부터 수신된 적어도 하나의 콘텐트(310)를 전자 장치(105)의 디스플레이를 통해 표시함으로써, 상기 게임의 실행 화면(315)을 표시할 수 있다. 다양한 실시예들에서, 상기 게임의 실행 화면(315)은 전자 장치(102)에 의해 실행되는 하나 이상의 프로그램들에 기반하여 제공되고 상기 게임의 실행 화면(215)은 전자 장치(105)에 의해 실행되는 하나 이상의 프로그램들에 기반하여 제공된다는 측면에서, 상기 게임의 실행 화면(315)은 상기 게임의 실행 화면(215)와 구별될 수 있다. 예를 들면, 상기 클라우드 모드 내에서 상기 게임의 실행 화면(315)을 표시하는 동안 전자 장치(105)와 적어도 하나의 다른 전자 장치(예: 전자 장치(101) 또는 전자 장치(102) 중 적어도 하나) 사이의 트래픽의 양은, 상기 로컬 모드 내에서 상기 게임의 실행 화면(215)을 표시하는 동안 전자 장치(105)와 전자 장치(101) 사이의 트래픽의 양보다 많을 수 있다. 다른 예를 들면, 상기 로컬 모드 내에서 상기 게임의 실행 화면(215)를 표시하기 위해 전자 장치(105) 내에서 요구되는 동작은, 제1 데이터(210)에 기반하여 획득된 상기 하나 이상의 프로그램들을 전자 장치(105) 내에서 실행하는 동작인 반면, 상기 클라우드 모드 내에서 상기 게임의 실행 화면(315)을 표시하기 위해 전자 장치(105) 내에서 요구되는 동작들은, 전자 장치(102) 내에서 실행되는 상기 게임의 실행 화면(315)을 표시하기 위한 데이터를 수신하고, 상기 수신된 데이터에 기반하여 상기 게임의 실행 화면(315)을 표시하는 동작일 수 있다. 다시 말해, 전자 장치(105)는, 제1 데이터(210)의 이용 및 제1 데이터(210)에 기반하여 획득된 상기 하나 이상의 프로그램들의 이용 없이, 상기 클라우드 모드 내에서 상기 게임의 실행 화면(315)을 표시할 수 있다.
다양한 실시예들에서, 전자 장치(105)는, 상기 클라우드 모드 내에서 상기 게임의 실행 화면(315)을 표시하는 동안, 실행 화면(315) 내에 포함된 적어도 하나의 객체에 대한 사용자 입력을 수신할 수 있다. 예를 들면, 전자 장치(105)는, 상기 클라우드 모드 내에서 상기 게임의 실행 화면(315)을 표시하는 동안, 실행 화면(315) 내의 실행가능한 객체(317)(예: 활 형상의 실행가능한 객체)에 대한 사용자 입력(319)을 수신할 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 상기 클라우드 모드 내에서, 사용자 입력(319)을 수신하는 것에 응답하여, 전자 장치(101)에게 사용자 입력(319)에 대한 정보(321)를 송신할 수 있다. 전자 장치(101)는, 정보(321)를 수신하는 것에 응답하여, 정보(321)에 따라 상기 게임의 실행 화면(315)의 상태를 변경하기 위한 정보(323)를 전자 장치(102)에게 송신할 수 있다. 전자 장치(102)는, 전자 장치(101)로부터 수신된 정보(323)에 기반하여, 상기 게임의 실행 화면(315)의 상태를 변경하기 위한 정보(324)를 획득할 수 있다. 예를 들면, 정보(324)는, 상기 클라우드 모드 내에서, 전자 장치(105)의 디스플레이를 통해 표시된 실행 화면(315) 내의 사용자 입력(319)와 관련된 시각적 객체(325)의 상태를 제1 상태(예: 활을 든 시각적 객체(325)가 화살을 발사하지 않은 상태)로부터 제2 상태(예: 활을 든 시각적 객체(325)가 화살을 발사하는 상태)로 변경하기 위해 획득될 수 있다. 전자 장치(102)는, 획득된 정보(324)를, 전자 장치(101)를 통해 전자 장치(105)에게 송신하거나, 전자 장치(105)에게 직접적으로 송신할 수 있다.
한편, 다양한 실시예들에서, 전자 장치(105)는, 상기 클라우드 모드 내에서 전자 장치(102)로부터 수신되는 적어도 하나의 콘텐트(310)에 기반하여 상기 게임의 실행 화면(315)을 표시하는 동안, 정보(324)를 수신할 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 정보(324)에 기반하여, 상기 클라우드 모드 내에서 상기 게임의 실행 화면(315)의 상태를 변경할 수 있다. 예를 들면, 전자 장치(105)는, 상기 클라우드 모드 내에서, 정보(324)에 기반하여, 상기 게임의 실행 화면(315) 내의 시각적 객체(325)의 상태를 상기 제1 상태로부터 상기 제2 상태로 변경할 수 있다.
한편, 전자 장치(105)는, 전자 장치(105) 내에서 야기되는 사용자 입력(예: 사용자 입력(319)) 뿐 아니라, 전자 장치(105)와 구별되는 다른 클라이언트 장치(327) 내에서 야기되는 사용자 입력에 기반하여, 상기 클라우드 모드 내에서 상기 게임을 실행하는 동안 표시되는 상기 게임의 실행 화면의 상태를 변경할 수 있다. 예를 들면, 다른 클라이언트 장치(327)의 디스플레이를 통해 표시된 상기 게임의 실행 화면(329) 내의 적어도 하나의 객체에 대한 사용자 입력을 수신할 수 있다. 예를 들면, 다른 클라이언트 장치(327)는, 전자 장치(105)가 상기 클라우드 모드 내에서 상기 게임을 실행하는 동안, 실행 화면(329) 내의 실행가능한 객체(331)에 대한 사용자 입력(333)을 수신할 수 있다. 다양한 실시예들에서, 다른 클라이언트 장치(327)는, 사용자 입력(333)을 수신하는 것에 응답하여, 사용자 입력(333)에 대한 정보(335)를 전자 장치(101)에게 송신할 수 있다. 전자 장치(101)는, 정보(335)를 수신하는 것에 응답하여, 정보(335)에 따라 상기 게임의 실행 화면(329)의 상태를 변경하기 위한 정보(337)를 다른 클라이언트 장치(327)에게 송신할 수 있다. 다른 클라이언트 장치(327)는 정보(337)에 기반하여 상기 게임의 실행 화면(329)의 상태를 변경할 수 있다.
한편, 전자 장치(101)는, 정보(335)를 수신하는 것에 응답하여, 정보(335)에 따라 전자 장치(105)의 디스플레이를 통해 표시된 상기 게임의 실행 화면(예: 실행 화면(315))의 상태를 상기 클라우드 모드 내에서 변경하기 위한 정보(339)를 전자 장치(102)에게 송신할 수 있다. 전자 장치(102)는, 정보(339)에 기반하여 전자 장치(105)의 상기 클라우드 모드를 위해 실행되는 상기 게임의 실행 상태를 변경하고, 상기 변경된 실행 상태에 따라 상기 클라우드 모드 내에서 전자 장치(105)의 디스플레이를 통해 표시되는 실행 화면(예: 실행 화면(315))의 상태를 변경하기 위한 정보(341)를 생성하거나 획득할 수 있다. 전자 장치(102)는, 생성되거나 획득된 정보(341)를, 전자 장치(105)에게 직접적으로 송신하거나, 전자 장치(101)를 통해 전자 장치(105)에게 송신할 수 있다. 전자 장치(105)는, 전자 장치(102)로부터 직접적으로 수신되거나, 전자 장치(102)로부터 전자 장치(101)를 통해 수신되는 정보(341)에 기반하여, 상기 클라우드 모드 내에서 제공되는 상기 게임의 실행 화면(예: 실행 화면(315))의 상태를 변경할 수 있다. 다시 말해, 다양한 실시예들에 따른 전자 장치(105)는, 상기 클라우드 모드 내에서 상기 게임을 실행하는 동안, 전자 장치(105) 내에서 야기된 사용자 입력에 대한 정보 뿐 아니라 다른 클라이언트 장치(327) 내에서 야기된 사용자 입력에 대한 정보에 기반하여 상기 클라우드 모드 내에서 제공되는 상기 게임의 실행 화면의 상태를 변경할 수 있다.
도 3의 설명을 통해 정의된 상기 클라우드 모드는, 전자 장치(105)의 측면에서, 전자 장치(102)를 지정하거나 전자 장치(102)를 인증하기 위한 동작들을 요구하지 않기 때문에, 강화된 사용성을 제공할 수 있다. 다양한 실시예들에서, 상기 클라우드 모드는, 전자 장치(102)가 복수의 장치들로 구성되는 경우, 상기 복수의 장치들 중 적어도 일부에 의해 생성된 VM(virtual machine)을 통해 제공되기 때문에, 하나의 장치를 이용하여 자원을 구성하는 서비스보다, 자원 효율성을 강화할 수 있다. 다양한 실시예들에서, 상기 클라우드 모드는, 상기 게임에 적합하도록 구성된 전자 장치(102) 내에서 실행되고 제공되기 때문에, 상기 게임의 최적화된 환경을 제공할 수 있다.
도 4는 다양한 실시예들에 따른 전자 장치들 각각의 기능적 구성들을 도시하는 간소화된(simplified) 블록도이다.
도 4를 참조하면, 전자 장치(400)는 전자 장치(101), 전자 장치(102), 전자 장치(103), 전자 장치(104), 또는 전자 장치(105)의 일 예일 수 있다. 전자 장치(400)는 프로세서(402), 메모리(404), 저장 장치(406), 고속(high-speed) 컨트롤러(408)(예: 노스브릿지(northbridge), MCH(main controller hub)), 및 저속(low-speed) 컨트롤러(412)(예: 사우스브릿지(southbridge), ICH(I/O(input/output) controller hub))를 포함할 수 있다. 전자 장치(400) 내에서, 프로세서(402), 메모리(404), 저장 장치(406), 고속 컨트롤러(408), 및 저속 컨트롤러(412) 각각은, 다양한 버스(bus)들을 이용하여 상호연결될(interconnected) 수 있다.
예를 들면, 프로세서(402)는 고속 컨트롤러(408)에 연결된 디스플레이(416)와 같은 외부 입출력 장치 상에 GUI(graphical user interface)에 대한 그래픽 정보를 표시하기 위해 전자 장치(400) 내에서 실행을 위한 인스트럭션들을 처리할 수 있다. 상기 인스트럭션들은 메모리(404) 또는 저장 장치(406) 내에 포함될 수 있다. 상기 인스트럭션들은, 프로세서(402)에 의해 실행될 시, 상술한 하나 이상의 동작들 및/또는 이하 기술될 하나 이상의 동작들을 수행하도록, 전자 장치(400)를 야기할(cause) 수 있다. 실시예들에 따라, 프로세서(402)는 통신 프로세서 및 GPU(graphical processing unit)를 포함하는 복수의 프로세서들로 구성될 수도 있다.
예를 들면, 메모리(404)는 전자 장치(400) 내에 정보를 저장할 수 있다. 예를 들면, 메모리(404)는 휘발성 메모리 유닛 또는 유닛들일 수 있다. 다른 예를 들면, 메모리(404)는 비휘발성 메모리 유닛 또는 유닛들일 수 있다. 또 다른 예를 들면, 메모리(404)는 자기 또는 광학 디스크와 같이, 다른 형태의 컴퓨터 판독가능 매체일 수 있다.
예를 들면, 저장 장치(406)는 전자 장치(400)에게 대용량(mass) 저장 공간을 제공할 수 있다. 예를 들면, 저장 장치(406)는 하드 디스크 장치, 광학 디스크 장치, 플래시 메모리, 솔리드 스테이트 메모리 장치, 또는 SAN(storage area network) 내의 장치들의 어레이(array)와 같은, 컴퓨터 판독가능 매체일 수 있다.
예를 들면, 고속 컨트롤러(408)는 전자 장치(400)을 위한 대역폭-집약적(bandwidth-intensive) 동작들을 관리하는 반면, 저속 컨트롤러(412)는 전자 장치(400)을 위한 낮은(low) 대역폭 집약적 동작들을 관리할 수 있다. 예를 들면, 고속 컨트롤러(408)은 메모리(404)와 결합되고(coupled to) GPU 또는 가속기(accelerator)를 통해 디스플레이(416)와 결합되는 반면, 저속 컨트롤러(412)는 저장 장치(406)과 결합되고 외부 전자 장치(예: 키보드, 트랜스듀서(transducer), 스캐너, 또는 네트워크 장치(예: 스위치 또는 라우터))와의 통신을 위한 다양한 통신 포트들(예: USB(universal serial bus), 블루투스, 이더넷(ethernet), 무선 이더넷)과 결합될 수 있다.
전자 장치(450)는 전자 장치(105)의 일 예일 수 있다. 전자 장치(450)는 프로세서(452), 메모리(464), 디스플레이(454)(예: OLED(organic light emitting diode) 디스플레이 또는 다른 적합한 디스플레이)와 같은 입출력 장치, 통신 인터페이스(466), 및 송수신기(468)를 포함할 수 있다. 프로세서(452), 메모리(464), 상기 입출력 장치, 통신 인터페이스(466), 및 송수신기(468) 각각은 다양한 버스들을 이용하여 상호연결될 수 있다.
예를 들면, 프로세서(452)는 상기 입출력 장치 상에 GUI에 대한 그래픽 정보를 표시하기 위해 메모리(464) 내에 포함된 인스트럭션들을 처리할 수 있다. 상기 인스트럭션들은, 프로세서(452)에 의해 실행될 시, 상술한 하나 이상의 동작들 및/또는 이하 기술될 하나 이상의 동작들을 수행하도록, 전자 장치(450)를 야기할 수 있다. 예를 들면, 프로세서(452)는 디스플레이(454)와 결합된 디스플레이 인터페이스(456) 및 제어 인터페이스(458)를 통해 사용자와 상호작용할 수 있다. 예를 들면, 디스플레이 인터페이스(456)는 시각적 정보를 사용자에게 제공하기 위해 디스플레이(454)를 구동하기 위한 회로를 포함하고, 제어 인터페이스(458)는 사용자로부터 수신된 명령(command)들을 수신하고 프로세서(452)에게 제공하기 위해 상기 명령들을 변환하기 위한 회로를 포함할 수 있다. 실시예들에 따라, 프로세서(452)는 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋(chipset)으로 구현될 수 있다.
예를 들면, 메모리(464)는 전자 장치(450) 내에 정보를 저장할 수 있다. 예를 들면, 메모리(464)는 하나 이상의 휘발성 메모리 유닛들, 하나 이상의 비휘발성 메모리 유닛들, 또는 컴퓨터 판독가능 매체 중 적어도 하나를 포함할 수 있다.
예를 들면, 통신 인터페이스(466)는, 프로세서(452)와의 연동에 기반하여, 셀룰러 통신 기법, Wi-Fi 통신 기법, NFC 기법, 또는 블루투스 통신 기법과 같은 다양한 통신 기법들을 통해 전자 장치(450)와 외부 전자 장치 사이의 무선 통신을 수행할 수 있다. 예를 들면, 통신 인터페이스(466)는, 상기 무선 통신의 수행을 위해, 송수신기(468)와 결합될 수 있다. 예를 들면, 통신 인터페이스(466)는, 전자 장치(450)의 위치 정보의 획득을 위해, GNSS(global navigation satellite system) 수신 모듈(470)과 더 결합될 수도 있다.
상술한 바와 같은, 다양한 실시예들에 따른, 컴퓨터 판독가능 저장 매체(예: 저장 장치(406))는, 통신 회로(예: 저속 컨트롤러(412)와 결합된 통신 포트들과 관련된 통신 회로)를 가지는 제1 전자 장치(예: 전자 장치(103))의 적어도 하나의 프로세서에 의해 실행될 시, 게임의 실행을 위한 제1 데이터의 적어도 일부를 수신하였던 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 데이터에 기반하여 상기 게임을 상기 제2 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 상기 게임의 로컬(local) 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 지시하기(indicate) 위한 신호를 수신하고, 상기 신호의 수신에 기반하여, 상기 제2 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드(cloud) 모드를 상기 제2 전자 장치에게 제공하기 위한 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 송신하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있다.
다양한 실시예들에서, 상기 제1 데이터는, 상기 로컬 모드가 상기 제2 전자 장치 내에서 가용한지 여부를 식별하기 위한 API(application programming interface)를 포함할 수 있고, 상기 신호는, 상기 API에 기반하여 획득될 수 있고, 상기 제2 전자 장치로부터 상기 제1 전자 장치에게 송신될 수 있다. 다양한 실시예들에서, 상기 제1 데이터는, 상기 로컬 모드를 통해 상기 게임을 상기 제2 전자 장치 내에서 플레이하기 위해 상기 제2 전자 장치 내에 상기 게임을 설치하기 위한 정보를 더(further) 포함할 수 있다. 다양한 실시예들에서, 상기 제1 데이터 내의 상기 API는, 상기 제1 데이터 내의 상기 정보가 상기 제2 전자 장치에 수신되기 전에, 상기 제2 전자 장치에 수신될 수 있다. 다양한 실시예들에서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 제1 데이터 내의 상기 API에 기반하여 획득된 상기 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해 수신하고, 상기 제1 데이터 내의 상기 정보가 완전히(fully) 상기 제2 전자 장치에 수신되지 않음을 상기 신호에 기반하여 식별함으로써, 상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하고, 상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하는 것에 기반하여, 상기 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게 송신하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
다양한 실시예들에서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 제1 데이터 내의 상기 API에 의해 획득된 상기 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해 수신하고, 상기 로컬 모드를 위해 상기 제1 데이터 내의 상기 정보에 기반하여 상기 제2 전자 장치 내에 상기 게임을 설치하는 동안 오류(error)가 야기됨을 상기 신호에 기반하여 식별함으로써, 상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하고, 상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하는 것에 기반하여, 상기 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게 송신하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
다양한 실시예들에서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 제1 데이터 내의 상기 API에 기반하여 획득된 상기 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해 수신하고, 상기 로컬 모드를 통해 상기 게임을 상기 제2 전자 장치 내에서 플레이하는 동안 오류가 야기됨을 상기 신호에 기반하여 식별함으로써, 상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하고, 상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하는 것에 기반하여, 상기 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게 송신하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
다양한 실시예들에서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 제2 데이터를 송신한 후, 상기 클라우드 모드를 상기 제2 전자 장치에게 제공하는 것을 유지할 것인지 여부를 결정하기 위한 다른(another) 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해, 수신하고, 상기 다른 신호에 기반하여, 상기 클라우드 모드를 상기 제2 전자 장치에게 제공하는 것을 중단함을 결정하고, 상기 결정에 기반하여, 상기 클라우드 모드를 통해 상기 제2 전자 장치 내에서 상기 게임을 플레이하는 것을 중단하기 위한 적어도 하나의 동작을 실행하도록, 상기 제1 전자 장치를 더(further) 야기하는 인스트럭션들을 포함할 수 있다. 다양한 실시예들에서, 상기 제2 데이터는, 상기 클라우드 모드를 상기 제2 전자 장치에게 제공하는 것을 유지할 것인지 여부를 식별하기 위한 API(application programming interface)를 포함할 수 있고, 상기 다른 신호는, 상기 API에 기반하여 획득될 수 있고, 상기 제2 전자 장치로부터 상기 제1 전자 장치에게 송신될 수 있다. 다양한 실시예들에서, 상기 API는, 상기 클라우드 모드를 통해 상기 게임을 상기 제2 전자 장치 내에서 플레이하기 전에, 상기 제1 전자 장치로부터 상기 제2 전자 장치에게 송신될 수 있다. 다양한 실시예들에서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 제2 데이터 내의 상기 API에 기반하여 획득된 상기 다른 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해 수신하고, 상기 클라우드 모드를 통해 상기 제2 전자 장치 내에서 상기 게임을 플레이할 수 있는 기간이 만료됨을 상기 다른 신호에 기반하여 식별함으로써, 상기 클라우드 모드를 상기 제2 전자 장치에게 제공하는 것을 중단함을 결정하도록, 상기 제1 전자 장치를 더(further) 야기하는 인스트럭션들을 포함할 수 있다.
다양한 실시예들에서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 제2 데이터 내의 상기 API에 기반하여 획득된 상기 다른 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해 수신하고, 상기 제2 데이터를 수신한 후 지정된 기간 동안 상기 클라우드 모드를 통해 상기 제2 전자 장치 내에서 상기 게임을 플레이하지 않음을 상기 다른 신호에 기반하여 식별함으로써, 상기 클라우드 모드를 상기 제2 전자 장치에게 제공하는 것을 중단함을 결정하도록, 상기 제1 전자 장치를 더(further) 야기하는 인스트럭션들을 포함할 수 있다.
다양한 실시예들에서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 제2 데이터를 송신한 후, 상기 제2 전자 장치의 사용자의 식별 정보가 상기 로컬 모드를 통해 상기 제2 전자 장치와 구별되는 제4 전자 장치 내에서 상기 게임을 플레이하기 위해 이용되는지 여부를 식별하고, 상기 식별 정보가 상기 로컬 모드를 통해 상기 제4 전자 장치 내에서 상기 게임을 플레이하기 위해 이용됨을 식별하는 것에 기반하여, 상기 클라우드 모드를 통해 상기 제2 전자 장치 내에서 상기 게임을 플레이하는 것을 중단하기 위한 제3 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 송신하도록, 상기 제1 전자 장치를 더(further) 야기하는 인스트럭션들을 포함할 수 있다.
상술한 바와 같은, 다양한 실시예들에 따른, 컴퓨터 판독가능 저장 매체는, 적어도 하나의 디스플레이(예: 디스플레이(416) 또는 디스플레이(454)), 적어도 하나의 메모리(예: 메모리(404) 또는 메모리(464)), 및 통신 회로(예: 저속 컨트롤러(412)와 작동적으로 결합된 통신 포트들과 관련된 통신 회로 또는 통신 인터페이스(466))를 가지는 제1 전자 장치(예: 전자 장치(105))의 적어도 하나의 프로세서(예: 프로세서(402) 또는 프로세서(452))에 의해 실행될 시, 게임의 실행을 위한 제1 데이터의 적어도 일부를 상기 적어도 하나의 메모리 내에 저장하고, 상기 적어도 하나의 메모리 내에 저장된 상기 제1 데이터를 이용하여 상기 게임을 상기 제1 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 로컬(local) 모드가 가용하지 않는(unavailable) 동안, 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드 모드를 위해, 상기 제3 전자 장치에 접속하기 위한 제2 데이터를 수신하고, 상기 클라우드 모드를 통한 상기 게임의 플레이를 위해, 상기 제2 데이터에 기반하여 수립된 상기 제1 전자 장치와 상기 제3 전자 장치 사이의 통신 연결을 이용하여 상기 제3 전자 장치로부터 상기 통신 회로를 통해 수신되는 상기 적어도 하나의 콘텐트를 상기 적어도 하나의 디스플레이를 통해 표시하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있다.
다양한 실시예들에서, 상기 적어도 하나의 메모리 내에 저장된 상기 제1 데이터의 적어도 일부는, 상기 로컬 모드가 상기 제1 전자 장치 내에서 가용한지 여부를 식별하기 위한 API(application programming interface)를 포함할 수 있고, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 상기 로컬 모드가 상기 제1 전자 장치 내에서 가용한지 여부를 지시하기 위한 신호를, 상기 API에 기반하여 송신하고, 상기 신호에 대한 응답으로, 상기 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제2 데이터를 수신하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 다양한 실시예들에서, 상기 제1 데이터는, 상기 로컬 모드를 통해 상기 게임을 상기 제1 전자 장치 내에서 플레이하기 위해 상기 제1 전자 장치 내에 상기 게임을 설치하기 위한 정보를 더 포함할 수 있고, 상기 제1 데이터 내의 상기 API는, 상기 제1 데이터 내의 상기 정보가 상기 제1 전자 장치에 수신되기 전에, 상기 제1 전자 장치에 수신될 수 있다. 다양한 실시예들에서, 상기 신호는, 상기 제1 데이터의 적어도 일부 내에 포함된 API에 기반하여 획득된, 상기 제1 데이터 내의 상기 정보가 완전히 상기 제1 전자 장치에 수신되지 않음을, 지시하기 위한 데이터를 포함할 수 있다.
다양한 실시예들에서, 상기 신호는, 상기 API에 기반하여 획득된, 상기 제1 데이터 내의 상기 정보에 기반하여 상기 제1 전자 장치 내에 상기 게임을 설치하는 동안 오류가 야기됨을, 지시하기 위한, 데이터를 포함할 수 있다.
다양한 실시예들에서, 상기 제2 데이터는, 상기 클라우드 모드를 상기 제1 전자 장치에서 제공하는 것을 유지할 것인지 여부를 식별하기 위한 API(application programming interface)를 포함할 수 있고, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 제2 데이터 내의 상기 API에 기반하여 획득된, 상기 제1 전자 장치에서 상기 클라우드 모드를 제공하는 것을 유지할 것인지 여부를 결정하기 위한, 다른 신호를, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 송신하고, 상기 다른 신호에 기반하여 상기 제2 전자 장치 내에서 실행된 결정에 따라, 상기 클라우드 모드를 통해 상기 제1 전자 장치에서 상기 게임을 플레이하는 것을 유지하거나, 또는 중단하도록, 상기 제1 전자 장치를 더(further) 야기하는 인스트럭션들을 포함할 수 있다.
도 5는 다양한 실시예들에 따른 전자 장치들 사이의 시그널링의 예를 도시한다. 이러한 시그널링은, 도 1 내지 도 4 내에 도시된 전자 장치(101) 및 전자 장치(105), 도 1, 도 3, 및 도 4 내에 도시된 전자 장치(102), 도 1, 도 2, 및 도 4 내에 도시된 전자 장치(104), 및, 도 1 및 도 4 내에 도시된 전자 장치(103)에 의해 야기될 수 있다.
도 6은 다양한 실시예들에 따른 전자 장치에 수신되는 제1 데이터의 예들을 도시한다.
도 5를 참조하면, 동작 501에서, 전자 장치(104)는, 상기 게임의 실행을 위한 제1 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 상기 제1 데이터는, 도 2의 설명을 통해 정의된 상기 제1 데이터로, 상기 게임의 상기 로컬 모드를 위해 상기 게임을 설치하기 위한 데이터일 수 있다. 예를 들면, 상기 제1 데이터는, 도 2의 설명을 통해 정의된 제1 데이터(210) 또는 업데이트된 제1 데이터(210)를 포함할 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 전자 장치(104)로부터 상기 제1 데이터의 적어도 일부를 수신할 수 있다. 예를 들면, 전자 장치(104)와 전자 장치(105) 사이의 통신 연결의 품질이 양호한 경우, 전자 장치(105)는 상기 제1 데이터 전체(all of the first data)를 수신하고, 전자 장치(104)와 전자 장치(105) 사이의 통신 연결의 품질이 불량한 경우, 전자 장치(105)는 상기 제1 데이터의 일부를 수신하고 상기 제1 데이터의 남은 일부를 수신하지 못할 수 있다. 다른 예를 들면, 전자 장치(104)로부터 수신되는 제1 데이터 전체의 포맷이 전자 장치(105)에 의해 지원되는 경우, 전자 장치(105)는 상기 제1 데이터의 전체를 수신하고, 전자 장치(104)로부터 수신되는 제1 데이터 어느 일부의 포맷이 전자 장치(105)에 의해 지원되지 않는 경우, 전자 장치(105)는 상기 제1 데이터의 일부를 수신하고 상기 제1 데이터의 남은 일부를 수신하지 못할 수 있다.
다양한 실시예들에서, 상기 제1 데이터는, 상기 로컬 모드가 전자 장치(105) 내에서 가용한지 여부를 식별하기 위한 API(application programming interface)를 포함할 수 있다. 다양한 실시예들에서, 상기 제1 데이터는, 상기 로컬 모드를 통해 상기 게임을 전자 장치(105) 내에서 플레이하기 위해 전자 장치(105) 내에 상기 게임(또는 상기 로컬 모드 내에서의 상기 게임의 실행을 위한 하나 이상의 프로그램들)을 설치하기 위한 정보를 더(further) 포함할 수 있다. 예를 들면, 상기 제1 데이터 내의 상기 API는, 상기 정보와 달리, 반드시 전자 장치(105)에 수신되도록 구성될 수 있다. 예를 들면, 상기 제1 데이터 내의 상기 API는, 상기 제1 데이터 내의 상기 정보가 전자 장치(105)에 수신되기 전에, 전자 장치(105)에 수신되도록, 구성될 수 있다. 예를 들면, 상기 제1 데이터 내의 상기 API는, 전자 장치(104)로부터 전자 장치(105)에게 상기 제1 데이터 내의 상기 정보보다 먼저 송신되도록 구성될 수 있다. 예를 들면, 상기 제1 데이터 내의 상기 API는, 전자 장치(104)와 전자 장치(105) 사이의 통신 연결이 끊어지는 경우를 제외한 다른 상황에서 반드시 전자 장치(105) 내에 수신되도록, 구성될 수 있다. 다시 말해, 상기 제1 데이터 내의 상기 API는, 잡음에 강건하도록 구성될 수 있다. 예를 들면, 상기 제1 데이터 내의 상기 API는, 전자 장치의 유형과 관계없이 가용하도록, 구성될 수 있다. 다시 말해, 상기 제1 데이터 내의 상기 API는, 범용성을 가지도록 구성될 수 있다.
예를 들어, 도 6을 참조하면, 상기 제1 데이터는, 포맷(600)과 같이, 구성될 수 있다. 예를 들면, 상기 제1 데이터는, 하나의(single) 패킷으로 구성되고, 상기 로컬 모드가 전자 장치(105) 내에서 가용한지 여부를 식별하기 위한 API(610) 및 상기 게임을 설치하기 위한 정보(620)를 포함할 수 있다. 상기 하나의 패킷으로 구성된 상기 제1 데이터는, 전자 장치(105)가 전자 장치(104)로부터 API(610)를 수신한 후 정보(620)를 수신하도록, 구성될 수 있다. 예를 들면, API(610)는 범용성을 가지고 잡음에 강건하도록 구성될 수 있다. 예를 들면, 전자 장치(105) 내에 수신된 API(610)는 API(610)의 수신 이후 정보(620)가 전자 장치(105) 내에 수신되는지 여부를 모니터링하도록 구성될 수 있다.
다른 예를 들어, 도 6을 참조하면, 상기 제1 데이터는, 포맷(650)과 같이, 구성될 수 있다. 예를 들면, 상기 제1 데이터는, 복수의 패킷들로 구성될 수 있다. 예를 들면, 상기 복수의 패킷들은, 상기 로컬 모드가 전자 장치(105) 내에서 가용한지 여부를 식별하기 위한 API를 포함하는 패킷(660) 및 상기 게임을 설치하기 위한 정보를 포함하는 패킷(670)을 포함할 수 있다. 패킷(660)은, 전자 장치(105)가 전자 장치(104)로부터 패킷(660)을 수신한 후, 패킷(670)을 수신하도록, 구성될 수 있다. 예를 들면, 패킷(660)은 범용성을 가지고 잡음에 강건하도록 구성될 수 있다. 예를 들면, 전자 장치(105) 내에 수신된 패킷(660)은 패킷(660)의 수신 이후 패킷(670)이 전자 장치(105) 내에 수신되는지 여부를 모니터링할 수 있다.
동작 503에서, 전자 장치(105)는, 상기 로컬 모드가 가용하지 않음(unavailable)을 지시하기(indicate) 위한 신호를 획득할 수 있다. 다양한 실시예들에서, 전자 장치(105)는, 전자 장치(102)로부터 상기 제1 데이터의 적어도 일부를 수신한 후 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않은 경우, 상기 제1 데이터에 기반하여 상기 게임을 전자 장치(105) 내에서 실행함으로써 상기 게임을 플레이하는 상기 로컬 모드가 가용하지 않음을 지시하기 위한 신호를 상기 API를 이용하여 획득할 수 있다. 예를 들어, 전자 장치(104)로부터 상기 제1 데이터의 일부만을 수신하고 상기 제1 데이터의 남은 일부를 수신하지 못하는 경우, 전자 장치(105)는 상기 API에 기반하여 상기 신호를 획득할 수 있다. 다른 예를 들어, 전자 장치(104)로부터 상기 제1 데이터 전부를 수신한 후 상기 제1 데이터에 기반하여 상기 게임의 상기 로컬 모드를 위한 하나 이상의 프로그램들을 설치하는 것이 개시되지 않는 경우, 전자 장치(105)는 상기 API에 기반하여 상기 신호를 획득할 수 있다. 또 다른 예를 들어, 전자 장치(104)로부터 상기 제1 데이터 전부를 수신한 후 상기 제1 데이터에 기반하여 상기 하나 이상의 프로그램들을 전자 장치(105) 내에 설치하는 동안 오류가 야기되는 경우, 전자 장치(105)는, 상기 API에 기반하여 상기 신호를 획득할 수 있다. 또 다른 예를 들어, 상기 제1 데이터에 기반하여 상기 하나 이상의 프로그램들을 성공적으로 설치한 후 상기 하나 이상의 프로그램들을 실행하는 것이 개시되지 않는 경우, 전자 장치(105)는 상기 API에 기반하여 상기 신호를 획득할 수 있다. 또 다른 예를 들어, 상기 제1 데이터에 기반하여 상기 하나 이상의 프로그램들을 실행하는 동안 오류가 야기되는 경우, 전자 장치(105)는, 상기 API에 기반하여 상기 신호를 획득할 수 있다. 또 다른 예를 들어, 상기 게임의 상기 로컬 모드의 업데이트를 위한 상기 제1 데이터의 일부만을 수신하고, 상기 제1 데이터의 남은 일부를 수신하지 못하는 경우, 전자 장치(105)는 상기 API에 기반하여 상기 신호를 획득할 수 있다. 또 다른 예를 들어, 상기 게임의 상기 로컬 모드의 업데이트를 위한 상기 제1 데이터 전부를 수신한 후 상기 제1 데이터에 기반하여 상기 게임의 상기 로컬 모드를 위한 상기 하나 이상의 프로그램들을 업데이트하는 것이 개시되지 않는 경우, 전자 장치(105)는 상기 API에 기반하여 상기 신호를 획득할 수 있다. 또 다른 예를 들어, 상기 로컬 모드의 업데이트를 위한 상기 제1 데이터에 기반하여 상기 게임의 상기 로컬 모드를 위한 상기 하나 이상의 프로그램들을 업데이트하는 동안 오류가 야기되는 경우, 전자 장치(105)는 상기 API에 기반하여 상기 신호를 획득할 수 있다. 또 다른 예를 들어, 상기 제1 데이터에 기반하여 상기 하나 이상의 프로그램들을 성공적으로 업데이트한 후 상기 업데이트된 하나 이상의 프로그램들을 실행하는 것이 개시되지 않는 경우, 전자 장치(105)는 상기 API에 기반하여 상기 신호를 획득할 수 있다. 또 다른 예를 들어, 상기 제1 데이터에 기반하여 업데이트된 상기 하나 이상의 프로그램들을 실행하는 동안 오류가 야기되는 경우, 전자 장치(105)는, 상기 API에 기반하여 상기 신호를 획득할 수 있다. 하지만, 이에 제한되지 않는다.
상술한 동작 503의 설명은, 전자 장치(105)가 상기 로컬 모드가 가용하지 않음을 지시하기 위한 상기 신호를 획득하는 예를 기재하고 있으나, 상기 신호는, 상기 API에 기반하여 상기 로컬 모드가 가용함을 지시하기 위해 획득될 수도 있다. 다시 말해, 상기 신호는 상기 로컬 모드가 전자 장치(105) 내에서 가용함을 지시하기 위한 정보 또는 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 지시하기 위한 정보를 포함할 수 있다. 예를 들면, 전자 장치(105)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용한지 또는 가용하지 않는지 여부를 식별하기 위한 상기 신호를 획득할 수 있다.
동작 505에서, 전자 장치(105)는, 상기 획득된 신호를 전자 장치(103)에게 송신할 수 있다. 전자 장치(103)는, 상기 신호를 전자 장치(105)로부터 수신할 수 있다.
동작 507에서, 전자 장치(103)는, 상기 수신된 신호가 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 지시하는 경우, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 예를 들면, 상기 수신된 신호는, 전자 장치(104)로부터 전자 장치(105)에 수신된 제1 데이터의 적어도 일부의 크기를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보에 의해 지시되는 상기 제1 데이터의 적어도 일부의 크기가 전자 장치(104) 내에 저장된 상기 제1 데이터 전부의 크기보다 작음을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 다른 예를 들면, 상기 수신된 신호는, 전자 장치(105) 내에서 상기 제1 데이터에 기반하여 상기 게임의 상기 로컬 모드를 위한 상기 하나 이상의 프로그램들을 설치하는 동안 제공되는 설치 인터페이스의 작동이 중단되는지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 설치 인터페이스의 작동의 중단을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 또 다른 예를 들면, 상기 수신된 신호는 전자 장치(105) 내에서 상기 제1 데이터에 기반하여 상기 하나 이상의 프로그램들을 설치하는 동안 제공되는 설치 인터페이스의 상태가 응답 상태인지 또는 미응답 상태인지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 설치 인터페이스의 상태가 상기 미응답 상태임을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 또 다른 예를 들면, 상기 수신된 신호는, 전자 장치(105)의 상기 제1 데이터의 수신율이 지정된 시간 동안(예: 10분) 지정된 수 미만(예: 1% 미만)인지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 제1 데이터의 수신율이 상기 지정된 시간 동안 상기 지정된 수 미만임을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 또 다른 예를 들면, 상기 수신된 신호는, 상기 제1 데이터에 기반하여 상기 하나 이상의 프로그램들을 설치하는 동안 크래시(crash)가 야기되는지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 크래시가 야기됨을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 또 다른 예를 들면, 상기 수신된 신호는, 상기 제1 데이터를 수신하는 동안 크래시가 야기되는지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 제1 데이터를 수신하는 동안 상기 크래시가 야기됨을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 또 다른 예를 들면, 상기 수신된 신호는, 상기 하나 이상의 프로그램을 실행하는 동안 크래시가 야기되는지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 하나 이상의 프로그램들을 실행하는 동안 상기 크래시가 야기됨을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 또 다른 예를 들면, 상기 수신된 신호는, 상기 하나 이상의 프로그램들을 실행하는 동안 제공되는 실행 인터페이스의 작동이 중단되는지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 실행 인터페이스의 작동이 중단됨을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 또 다른 예를 들면, 상기 수신된 신호는, 상기 실행 인터페이스의 상태가 응답 상태인지 또는 미응답 상태인지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 실행 인터페이스의 상태가 상기 미응답 상태임을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 또 다른 예를 들면, 상기 수신된 신호는, 상기 로컬 모드 내에서 상기 게임의 튜토리얼 인터페이스를 제공하는 동안 지정된 수 미만의 프레임의 이용 또는 지정된 수 미만의 프레임의 변화가 검출되는지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 지정된 미만의 프레임의 이용 또는 변화가 검출됨을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 또 다른 예를 들면, 상기 수신된 신호는, 상기 로컬 모드 내에서 상기 게임을 전자 장치(105) 내에서 실행하는 동안 전자 장치(105) 내의 메모리(예: 메모리(404) 또는 메모리(464)의 가용 공간의 부족으로 인한 크래시가 야기되는지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 메모리의 가용 공간의 부족으로 인한 상기 크래시가 야기됨을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 또 다른 예를 들면, 상기 수신된 신호는, 상기 로컬 모드 내에서 상기 게임을 전자 장치(105) 내에서 실행하는 동안 수신되는 사용자 입력과 관계없는 현상이 야기되는지 여부를 지시하기 위한 정보를 포함할 수 있다. 전자 장치(103)는, 상기 정보로부터 상기 현상이 야기됨을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 전자 장치(103)는, 상기 API에 기반하여 획득된 상기 신호 내의 코드를 통해, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 예를 들면, 상기 코드는 표 1과 같이 표현될 수 있다.
Figure 112021044193176-pat00001
예를 들면, 상기 API는, 지정된 주기(예: 120 초)마다 표 1을 통해 표현된 코드들을 식별하기 위한 데이터를 전자 장치(105)로부터 획득할 수 있다. 실시예들에 따라, 상기 API는, 상기 획득된 데이터가 표 1을 통해 표현된 코드들에 대응하는 경우, 상기 신호를 획득하고, 상기 신호를 전자 장치(105)로부터 전자 장치(103)에게 송신할 수 있다. 하지만, 이에 제한되지 않는다.
상술한 동작 507의 설명은, 상기 제1 데이터가 상기 하나 이상의 프로그램들의 업데이트와 관련된 경우를 기재하고 있지 않으나, 이는 설명의 편의를 위한 것이다.
동작 509에서, 전자 장치(103)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별하는 것에 기반하여, 전자 장치(105)에게 상기 클라우드 모드를 제공함을 지시하기 위한 신호를 전자 장치(101)에게 송신할 수 있다. 다양한 실시예들에서, 상기 신호는, 전자 장치(105) 또는 전자 장치(105)의 사용자를 특정하기 위한 정보를 포함할 수 있다. 예를 들면, 상기 신호는, 전자 장치(105)의 식별 정보 및/또는 전자 장치(105)의 사용자의 식별 정보(또는 계정 정보)를 포함할 수 있다. 한편, 전자 장치(101)는, 상기 신호를 전자 장치(103)로부터 수신할 수 있다.
동작 511에서, 전자 장치(101)는, 전자 장치(102)와의 연동에 기반하여, 전자 장치(105)에게 상기 클라우드 모드를 이용할 수 있는 권한을 부여하기 위한 적어도 하나의 동작을 실행할 수 있다. 예를 들면, 전자 장치(101)는, 전자 장치(102)와의 연동에 기반하여, 상기 신호 내의 상기 정보에 기반하여 전자 장치(105) 및/또는 전자 장치(105)의 사용자를 특정하고, 특정된 전자 장치(105) 및/또는 특정된 전자 장치(105)의 사용자를 대상으로 상기 클라우드 모드를 이용할 수 있는 권한을 부여하기 위해, 전자 장치(105) 및/또는 전자 장치(105)의 사용자에 대한 정보를 상기 클라우드 모드를 위한 데이터베이스 내에 등록할 수 있다. 하지만, 이에 제한되지 않는다.
상술한 동작 509는, 전자 장치(103)가 전자 장치(101)에게 상기 클라우드 모드를 전자 장치(105)에게 제공함을 지시하기 위한 상기 신호를 송신하는 예를 도시하고 있으나, 상기 신호는 전자 장치(102)에게 송신될 수도 있다. 이러한 경우, 동작 511은 전자 장치(102)의 트리거에 기반하여 전자 장치(101)와 전자 장치(102) 사이의 연동을 통해 실행될 수 있다.
한편, 동작 513에서, 전자 장치(103)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별하는 것에 기반하여, 상기 게임의 상기 클라우드 모드를 전자 장치(105)에게 제공하기 위한 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 상기 제2 데이터는, 상기 클라우드 모드를 위해 전자 장치(101) 및/또는 전자 장치(102)에 접속하기 위해, 전자 장치(103)로부터 전자 장치(105)에게 송신될 수 있다. 예를 들면, 상기 제2 데이터는, 상기 클라우드 모드를 위해, 전자 장치(101) 및/또는 전자 장치(102)에 접속하기 위한 정보를 포함할 수 있다.
도 5는 동작 509를 실행한 후, 동작 513을 실행하는 예를 도시하고 있으나, 이는 설명의 편의를 위한 것이다. 실시예들에 따라, 전자 장치(103)는, 동작 513을 실행한 후 동작 509를 실행하거나, 동작 509 및 동작 513을 동시에 실행할 수도 있다.
또한, 도 5는 전자 장치(103)가 전자 장치(101) 및/또는 전자 장치(102)로부터 전자 장치(105)에게 상기 제2 데이터를 송신하는 것을 트리거하는(또는 개시하는) 정보를 수신하지 않는 예를 도시하고 있으나, 이는 설명의 편의를 위한 것이다. 실시예들에 따라, 전자 장치(101) 및/또는 전자 장치(102)는, 동작 511을 실행한 후 전자 장치(103)에게 상기 제2 데이터를 전자 장치(105)에게 송신하는 것을 트리거하라는(또는 개시하라는) 요청을 송신하고, 전자 장치(103)는, 전자 장치(101) 및/또는 전자 장치(102)로부터 상기 요청을 수신하는 것을 조건으로, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다.
또한, 도 5는 전자 장치(103)가 전자 장치(105)에게 상기 제2 데이터를 송신하는 예를 도시하고 있으나, 이는 설명의 편의를 위한 것이다. 실시예들에 따라, 상기 제2 데이터는, 동작 511을 실행한 후, 전자 장치(101) 및/또는 전자 장치(102)로부터 전자 장치(105)에게 송신될 수 있다. 이러한 경우, 상기 제2 데이터를 송신한 전자 장치(101) 및/또는 전자 장치(102)는, 상기 제2 데이터가 전자 장치(150)에게 송신됨을 지시하기 위한 신호를 전자 장치(103)에게 송신할 수도 있다.
한편, 전자 장치(105)는, 상기 제2 데이터를 전자 장치(103)로부터 수신할 수 있다.
동작 515에서, 전자 장치(105)는, 상기 제2 데이터를 수신한 후, 전자 장치(101)에게 상기 클라우드 모드를 위해 전자 장치(101)에 접속한다는 요청을 송신할 수 있다.
예를 들면, 전자 장치(105)는, 상기 제2 데이터를 전자 장치(103)로부터 수신하는 것에 응답하여, 전자 장치(105)의 디스플레이를 통해 상기 클라우드 모드를 통해 상기 게임을 실행할 것인지 여부를 문의하는 메시지를 표시할 수 있다. 예를 들면, 상기 메시지는, 팝업 메시지(pop-up message) 또는 푸쉬 메시지(push message)일 수 있다. 다른 예를 들면, 상기 메시지는, 알림 메시지(notification message)일 수 있다. 예를 들면, 상기 메시지는, 상기 제2 데이터에 기반하여 전자 장치(105)의 디스플레이를 통해 표시될 수 있다. 예를 들면, 상기 메시지는, 상기 클라우드 모드를 위해, 전자 장치(101)에 접속하기 위한 실행가능한 객체를 포함할 수 있다. 예를 들면, 상기 실행가능한 객체는, 전자 장치(101)의 주소 정보를 포함하는 하이퍼링크로 구성될(configured with) 수 있다. 하지만, 이에 제한되지 않는다.
전자 장치(105)는, 상기 메시지에 대한 사용자 입력을 수신할 수 있다. 전자 장치(105)는, 상기 사용자 입력을 수신하는 것에 응답하여, 전자 장치(101)에게 상기 요청을 송신할 수 있다. 다양한 실시예들에서, 상기 요청은, 동작 511을 통해 등록된 전자 장치(105) 및/또는 전자 장치(105)의 사용자에 대한 정보에 대응하는 데이터를 포함할 수 있다.
한편, 전자 장치(101)는, 전자 장치(105)로부터 상기 요청을 수신할 수 있다.
동작 517에서, 전자 장치(101)는, 상기 요청을 수신하는 것에 기반하여, 전자 장치(102)와의 연동에 적어도 일부 기반하여, 전자 장치(105)에 의해 요청된 접속을 인증할 수 있다. 예를 들면, 전자 장치(101)는, 상기 요청 내에 포함된, 데이터를 식별할 수 있다. 실시예들에 따라, 상기 데이터는, 전자 장치(101) 및 전자 장치(102)의 연동에 기반하여 식별될 수 있다. 하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 전자 장치(101)는, 상기 식별된 데이터가 동작 511을 통해 등록된 전자 장치(105) 및/또는 전자 장치(105)의 사용자에 대한 상기 정보에 대응하는지 여부를 식별함으로써, 전자 장치(105)에 의해 요청된 상기 접속을 인증할 수 있다. 실시예들에 따라, 상기 접속의 인증은, 전자 장치(101) 및 전자 장치(102)의 연동에 기반하여 식별될 수 있다. 하지만, 이에 제한되지 않는다.
동작 519에서, 전자 장치(102)는, 동작 517을 통해 상기 인증을 완료한 후, 상기 클라우드 게임을 통한 상기 게임의 플레이를 위해, 전자 장치(102) 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 전자 장치(105)에게 송신할 수 있다. 예를 들어, 도 5에 도시하지 않았으나, 전자 장치(102)는, 동작 517을 통해 상기 인증을 완료한 후, 전자 장치(105)로부터 상기 클라우드 모드를 통한 상기 게임의 플레이를 제공하라는 요청을 수신할 수 있다. 예를 들면, 상기 요청은, 전자 장치(105)의 디스플레이를 통해 표시된 실행가능한 객체에 대한 사용자 입력에 기반하여 전자 장치(105)로부터 전자 장치(102)에게 송신될 수 있다. 예를 들면, 상기 실행가능한 객체는, 상기 제2 데이터에 기반하여 전자 장치(105)의 디스플레이를 통해 표시된 상기 메시지 내에 포함될 수 있다. 상기 실행가능한 객체가 상기 메시지 내에 포함되는 경우, 상기 메시지 내의 상기 실행가능한 객체는 상기 인증이 완료된 후 활성화될 수 있다. 다른 예를 들면, 상기 실행가능한 객체는, 상기 인증이 완료된 후 전자 장치(101) 및/또는 전자 장치(102)가 제공함으로써 전자 장치(105)의 디스플레이를 통해 표시되는 홈 화면 내에서 제공되는, 상기 클라우드 모드를 위한 새로운 아이콘(icon)일 수 있다. 예를 들면, 상기 새로운 아이콘은, 상기 클라우드 모드를 위한 사용자 인터페이스를 제공하기 위해 전자 장치(101) 및/또는 전자 장치(102)로부터 제공될 수 있다. 또 다른 예를 들면, 상기 실행가능한 객체는, 상기 인증이 완료된 후 전자 장치(101) 및/또는 전자 장치(102)가 제공함으로써 전자 장치(105) 내에 미리 설치된(pre-installed) 어플리케이션의 사용자 인터페이스 내에서 표시되는, 상기 클라우드 모드를 위한 새로운 실행가능한 객체일 수 있다. 예를 들면, 상기 어플리케이션의 사용자 인터페이스는, 웹 브라우저 어플리케이션의 사용자 인터페이스이고, 상기 새로운 실행가능한 객체는 상기 웹 브라우저 어플리케이션의 상용자 인터페이스 내의 즐겨찾기 공간 내에서 새롭게 삽입될 수 있다. 하지만, 이에 제한되지 않는다.
한편, 전자 장치(102)는, 상기 요청에 대한 응답으로, 상기 적어도 하나의 콘텐트를, 전자 장치(105)에게 송신할 수 있다. 전자 장치(105)는, 상기 적어도 하나의 콘텐트를 전자 장치(102)로부터 수신할 수 있다.
동작 521에서, 전자 장치(105)는, 상기 클라우드 모드를 통해 상기 게임을 플레이하기 위해, 전자 장치(102) 내에서 실행되는 상기 게임의 상기 적어도 하나의 콘텐트를, 상기 적어도 하나의 콘텐트의 수신에 응답하여, 표시할 수 있다. 예를 들면, 상기 적어도 하나의 콘텐트는, 도 3 내에 도시된 상기 게임의 실행 화면(315)을 표시할 수 있다. 예를 들면, 상기 적어도 하나의 콘텐트는, 전자 장치(105) 내에 설치된 웹 브라우저 어플리케이션의 사용자 인터페이스 내에서 표시될 수 있다. 다른 예를 들면, 상기 적어도 하나의 콘텐트는, 상기 클라우드 모드를 위해 전자 장치(105) 내에 설치된 어플리케이션의 사용자 인터페이스 내에서 표시될 수 있다. 하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 상기 적어도 하나의 콘텐트는, 상기 게임 내에서 전자 장치(105)의 사용자를 지시하기 위한 캐릭터에 대응하는 시각적 객체를 포함할 수 있다. 다양한 실시예들에서, 상기 적어도 하나의 콘텐트는, 상기 게임 내에서 다른 클라이언트 장치(예: 다른 클라이언트 장치(327))의 사용자를 지시하기 위한 캐릭터에 대응하는 시각적 객체를 포함할 수 있다. 다양한 실시예들에서, 상기 적어도 하나의 콘텐트는, 상기 게임 내에서 전자 장치(105)의 사용자를 지시하기 위한 상기 캐릭터에 대응하는 상기 시각적 객체를 제어하기 위한 적어도 하나의 실행가능한 객체(예: 실행가능한 객체(317))를 포함할 수 있다. 상기 적어도 하나의 실행가능한 객체는, 사용자 입력을 수신할 수 있도록 구성될 수 있다. 하지만, 이에 제한되지 않는다.
동작 523에서, 전자 장치(105)는, 상기 적어도 하나의 콘텐트를 표시하는 동안 수신되는 사용자 입력에 대한 정보를 전자 장치(101)에게 송신할 수 있다. 예를 들어, 도 3을 참조하면, 전자 장치(105)는, 상기 클라우드 모드 내에서 상기 적어도 하나의 콘텐트를 포함하는 상기 게임의 실행 화면(315)를 표시하는 동안, 실행가능한 객체(317)에 대한 사용자 입력(319)을 수신할 수 있다. 전자 장치(105)는, 사용자 입력(319)을 수신하는 것에 응답하여, 사용자 입력(319)에 대한 정보를 전자 장치(101)에게 송신할 수 있다. 한편, 전자 장치(101)는, 사용자 입력(319)에 대한 상기 정보를 전자 장치(105)로부터 수신할 수 있다.
동작 525에서, 전자 장치(101)는, 사용자 입력(319)에 대한 정보를 전자 장치(102)에게 송신할 수 있다. 예를 들면, 전자 장치(105)를 이용하여 상기 클라우드 모드 내에서 플레이하는 동안, 상기 게임의 실행 주체는, 전자 장치(105)가 아닌 전자 장치(102)이기 때문에, 전자 장치(101)는, 사용자 입력(319)에 대한 상기 정보를 전자 장치(102) 내에서 실행되는 상기 게임에 반영하기 위해, 사용자 입력(319)에 대한 상기 정보를 전자 장치(102)에게 송신할 수 있다.
도 5는 전자 장치(105)가 동작 523에서 상기 사용자 입력에 대한 정보를 전자 장치(101)에게 송신하고, 전자 장치(101)가 동작 525에서 전자 장치(102)에게 상기 사용자 입력에 대한 정보를 전달하는 예를 도시하고 있으나, 이는 설명의 편의를 위한 것이다. 전자 장치(105)는, 전자 장치(101)에게 상기 정보를 송신하는 대신, 전자 장치(102)에게 상기 정보를 송신할 수도 있다. 이러한 경우, 전자 장치(101)는, 상기 정보가 전자 장치(105)로부터 전자 장치(102)에게 송신됨을 지시하기 위한 신호를 전자 장치(102)로부터 수신할 수 있다. 예를 들면, 전자 장치(102)는, 전자 장치(105)로부터 상기 정보를 수신하는 것에 응답하여, 전자 장치(101)에게 상기 신호를 송신할 수 있다. 하지만, 이에 제한되지 않는다.
한편, 전자 장치(102)는, 전자 장치(101)로부터 사용자 입력(319)에 대한 상기 정보를 수신할 수 있다.
동작 527에서, 전자 장치(102)는, 전자 장치(101)로부터 수신된 사용자 입력(319)에 대한 상기 정보에 기반하여, 전자 장치(105)의 디스플레이를 통해 표시되는 상기 적어도 하나의 콘텐트 중 적어도 일부를 변경하기 위한 신호를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 전자 장치(102)는, 전자 장치(101)로부터 수신된 상기 정보에 기반하여 전자 장치(102) 내에서 전자 장치(105)의 상기 클라우드 모드를 위해 실행되고 있는 상기 게임의 상태를 변경함으로써, 전자 장치(105)의 디스플레이를 통해 표시되는 상기 적어도 하나의 콘텐트 중 적어도 일부를 변경하기 위한 신호를 획득할 수 있다. 전자 장치(102)는, 상기 획득된 신호를 전자 장치(105)에게 송신할 수 있다.
한편, 전자 장치(105)는, 상기 신호를 전자 장치(102)로부터 수신할 수 있다. 도 5에 도시하지 않았으나, 전자 장치(105)는, 상기 신호에 기반하여, 전자 장치(105)의 디스플레이를 통해 표시되는 상기 적어도 하나의 콘텐트 중 적어도 일부를 변경할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(103) 및 전자 장치(105)는, 전자 장치(105) 내에서 상기 게임의 상기 로컬 모드가 가용하지 않는 경우, 전자 장치(101) 및/또는 전자 장치(102)와의 연동에 기반하여, 상기 클라우드 모드를 통해 상기 게임을 플레이하는 서비스를 제공할 수 있다. 다시 말해, 다양한 실시예들에 따른 전자 장치(103) 및 전자 장치(105)는, 상기 게임의 상기 로컬 모드가 가용하지 않을 지라도, 전자 장치(101) 및/또는 전자 장치(102)와의 연동에 기반하여, 상기 클라우드 모드를 통해 상기 게임을 플레이하는 서비스를 제공함으로써, 상기 게임의 연속성을 유지할 수 있다.
도 7은 다양한 실시예들에 따라 제1 데이터의 일부 수신에 기반하여 제2 데이터를 송신하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1, 도 4, 및 도 5 내에 도시된 전자 장치(103) 또는 전자 장치(103)의 적어도 하나의 프로세서에 의해 실행될 수 있다.
도 7의 동작 710 내지 동작 730은, 도 5의 동작 505, 동작 507, 및 동작 513과 관련될 수 있다.
도 7을 참조하면, 동작 710에서, 전자 장치(103)는, 전자 장치(105)로부터 상기 제1 데이터 내에 포함된 상기 API에 기반하여 획득된 상기 신호를 수신할 수 있다.
동작 720에서, 전자 장치(103)는, 상기 수신된 신호에 기반하여, 상기 로컬 모드를 위해 상기 게임을 설치하기 위한 상기 제1 데이터 내의 상기 정보가 전자 장치(104)로부터 완전히(fully) 수신되지 않음을 식별함으로써, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다. 예를 들면, 전자 장치(103)는, 표 1의 코드 A03 및/또는 B02가 상기 신호 내에 포함됨을 식별함으로써, 상기 제1 데이터 내의 상기 정보가 완전히 수신되지 않음을 식별하고, 상기 제1 데이터 내의 상기 정보가 완전히 수신되지 않음을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다.
동작 730에서, 전자 장치(103)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별하는 것에 기반하여, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 전자 장치(103)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않는 동안 전자 장치(105)의 사용자가 상기 클라우드 모드를 통해 상기 게임을 플레이할 수 있도록, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 상기 제2 데이터는, 전자 장치(105)의 상태가 상기 로컬 모드를 통해 상기 게임을 플레이할 수 있는 상태로 변경될 때까지, 상기 게임을 플레이할 수 있는 공간을 전자 장치(105)의 사용자에게 제공하기 위해, 전자 장치(103)로부터 전자 장치(105)에게 송신될 수 있다. 하지만, 이에 제한되지 않는다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(103)는, 전자 장치(105)가 전자 장치(104)로부터 상기 게임의 상기 로컬 모드를 위한 설치 데이터(예: 상기 제1 데이터 내의 상기 정보)를 완전히 수신하지 못하는 것에 의해 전자 장치(105) 내에서 상기 로컬 모드가 가용하지 않는 동안, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 다양한 실시예들에 따른 전자 장치(103)는, 상기 설치 데이터를 완전히 수신하지 못하더라도 전자 장치(105)의 사용자가 상기 게임을 상기 클라우드 모드 내에서 플레이할 수 있도록, 상기 제2 데이터의 송신을 통해 전자 장치(105)에게 상기 클라우드 모드를 제공할 수 있다. 다시 말해, 다양한 실시예들에 따른 전자 장치(103)는, 상기 제2 데이터의 송신을 통해 상기 게임의 지속성을 제공함으로써, 상기 게임의 사용자의 편의성을 강화할 수 있다.
도 8은 다양한 실시예들에 따라 게임 설치 중 오류에 기반하여 제2 데이터를 송신하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1, 도 4, 및 도 5 내에 도시된 전자 장치(103) 또는 전자 장치(103)의 프로세서에 의해 실행될 수 있다.
도 8의 동작 810 내지 동작 830은, 도 5의 동작 505, 동작 507, 및 동작 513과 관련될 수 있다.
도 8을 참조하면, 동작 810에서, 전자 장치(103)는, 전자 장치(105)로부터 상기 제1 데이터 내에 포함된 상기 API에 기반하여 획득된 상기 신호를 수신할 수 있다.
동작 820에서, 전자 장치(103)는, 상기 수신된 신호에 기반하여, 상기 로컬 모드를 위해 상기 게임을 설치하는 동안(또는 상기 게임의 플레이를 위한 상기 하나 이상의 프로그램들을 설치하는 동안) 오류(error)가 야기됨을 식별할 수 있다. 예를 들면, 상기 오류는 크래시(crash), 행(hang), 또는 프리즈(freeze) 중 적어도 하나를 포함할 수 있다. 하지만, 이에 제한되지 않는다. 예를 들면, 전자 장치(103)는, 표 1의 코드 A01, A02, B01, B02, 및/또는 B03이 상기 신호 내에 포함됨을 식별함으로써, 상기 로컬 모드를 위해 상기 게임을 설치하는 동안 상기 오류가 야기됨을 식별할 수 있다. 전자 장치(103)는, 상기 로컬 모드를 위해 상기 게임을 설치하는 동안 상기 오류가 야기됨을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다.
동작 830에서, 전자 장치(103)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별하는 것에 기반하여, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 전자 장치(103)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않는 동안 전자 장치(105)의 사용자가 상기 클라우드 모드를 통해 상기 게임을 플레이할 수 있도록, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 상기 제2 데이터는, 전자 장치(105)의 상태가 상기 로컬 모드를 통해 상기 게임을 플레이할 수 있는 상태로 변경될 때까지, 상기 게임을 플레이할 수 있는 공간을 전자 장치(105)의 사용자에게 제공하기 위해, 전자 장치(103)로부터 전자 장치(105)에게 송신될 수 있다. 하지만, 이에 제한되지 않는다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(103)는, 전자 장치(105)가 상기 오류로 인하여 상기 로컬 모드를 위해 상기 게임을 설치하지 못하는 동안, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 다양한 실시예들에 따른 전자 장치(103)는, 전자 장치(105)가 상기 로컬 모드를 위해 상기 게임을 설치할 수 없더라도 전자 장치(105)의 사용자가 상기 게임을 상기 클라우드 모드 내에서 플레이할 수 있도록, 상기 제2 데이터의 송신을 통해 전자 장치(105)에게 상기 클라우드 모드를 제공할 수 있다. 다시 말해, 다양한 실시예들에 따른 전자 장치(103)는, 상기 제2 데이터의 송신을 통해 상기 게임의 지속성을 제공함으로써, 상기 게임의 사용자의 편의성을 강화할 수 있다.
도 9는 다양한 실시예들에 따라 상기 로컬 모드 내에서의 게임의 실행 중 오류에 기반하여 제2 데이터를 송신하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1, 도 4, 및 도 5 내에 도시된 전자 장치(103) 또는 전자 장치(103)의 프로세서에 의해 실행될 수 있다.
도 9의 동작 910 내지 동작 930은, 도 5의 동작 505, 동작 507, 및 동작 513과 관련될 수 있다.
도 9를 참조하면, 동작 910에서, 전자 장치(103)는, 전자 장치(105)로부터 상기 제1 데이터 내에 포함된 상기 API에 기반하여 획득된 상기 신호를 수신할 수 있다.
동작 920에서, 전자 장치(103)는, 상기 수신된 신호에 기반하여, 상기 로컬 모드를 통해 상기 게임을 전자 장치(105) 내에서 플레이하는 동안 오류가 야기됨을 식별할 수 있다. 예를 들면, 상기 오류는, 크래시(crash), 행(hang), 또는 프리즈(freeze) 중 적어도 하나를 포함할 수 있다. 하지만, 이에 제한되지 않는다. 예를 들면, 전자 장치(103)는, 표 1의 코드 C01, C02, D01, E01, 및/또는 E02가 상기 신호 내에 포함됨을 식별함으로써, 상기 로컬 모드를 통해 상기 게임을 전자 장치(105) 내에서 실행하는 동안 상기 오류가 야기됨을 식별할 수 있다. 전자 장치(103)는, 상기 로컬 모드를 통해 상기 게임을 전자 장치(105) 내에서 실행하는 동안 상기 오류가 야기됨을 식별하는 것에 기반하여, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별할 수 있다.
동작 930에서, 전자 장치(103)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않음을 식별하는 것에 기반하여, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 전자 장치(103)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않는 동안 전자 장치(105)의 사용자가 상기 클라우드 모드를 통해 상기 게임을 플레이할 수 있도록, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 상기 제2 데이터는, 전자 장치(105)의 상태가 상기 로컬 모드를 통해 상기 게임을 플레이할 수 있는 상태로 변경될 때까지, 상기 게임을 플레이할 수 있는 공간을 전자 장치(105)의 사용자에게 제공하기 위해, 전자 장치(103)로부터 전자 장치(105)에게 송신될 수 있다. 하지만, 이에 제한되지 않는다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(103)는, 전자 장치(105)가 상기 오류로 인하여 상기 로컬 모드를 통해 상기 게임을 실행하지 못하는 동안, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 다양한 실시예들에 따른 전자 장치(103)는, 전자 장치(105)가 상기 로컬 모드를 통해 상기 게임을 실행할 수 없더라도 전자 장치(105)의 사용자가 상기 게임을 상기 클라우드 모드 내에서 플레이할 수 있도록, 상기 제2 데이터의 송신을 통해 전자 장치(105)에게 상기 클라우드 모드를 제공할 수 있다. 다시 말해, 다양한 실시예들에 따른 전자 장치(103)는, 상기 제2 데이터의 송신을 통해 상기 게임의 지속성을 제공함으로써, 상기 게임의 사용자의 편의성을 강화할 수 있다.
도 10은 다양한 실시예들에 따라 상기 클라우드 모드를 제공하는 것을 중단하는 것을 결정하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1, 도 4, 및 도 5 내에 도시된 전자 장치(103) 또는 전자 장치(103)의 프로세서에 의해 실행될 수 있다.
도 11은 다양한 실시예들에 따른 전자 장치에 수신되는 제2 데이터의 예들을 도시한다.
도 10을 참조하면, 동작 1010에서, 전자 장치(103)는 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 동작 1010은 도 5의 동작 513에 대응할 수 있다.
동작 1020에서, 전자 장치(103)는, 상기 제2 데이터를 전자 장치(105)에게 송신한 후, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 유지할 것인지 여부를 결정하기 위한 다른(another) 신호를 수신할 수 있다. 예를 들면, 상기 다른 신호는, 동작 505에서 전자 장치(105)로부터 전자 장치(103)에게 송신되는 상기 신호와 구별될 수 있다.
다양한 실시예들에서, 상기 다른 신호는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 유지할 것인지 여부를 식별하기 위한 API(application programming interface)에 기반하여 전자 장치(105)에 의해 획득될 수 있다. 예를 들면, 상기 API는 상기 클라우드 모드를 통해 상기 게임을 전자 장치(105) 내에서 플레이하기 전에, 전자 장치(103)로부터 전자 장치(105)에게 송신될 수 있다. 예를 들면, 전자 장치(103)는 상기 API를 포함하는 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다. 예를 들어, 도 11을 참조하면, 상기 제2 데이터는 포맷(1100)과 같이, 구성될 수 있다. 예를 들면, 상기 제2 데이터는, 하나의(single) 패킷으로 구성되고(configured with), 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 유지할 것인지 여부를 식별하기 위한 API(1110) 및 상기 클라우드 모드를 위한 접속 정보(1120)를 포함할 수 있다. 상기 하나의 패킷으로 구성된 상기 제2 데이터는, 전자 장치(105)가 전자 장치(103)로부터 API(1110)를 수신한 후 접속 정보(1120)를 수신하도록, 구성될 수 있다. 예를 들면, API(1110)는 잡음에 강건하도록 구성될 수 있다. 예를 들면, 전자 장치(105) 내에 수신된 API(1110)는, 접속 정보(1120)보다 먼저 전자 장치(105)에 의해 수신됨으로써, 접속 정보(1120)가 상기 클라우드 모드를 위해 이용되는지 여부를 모니터링하도록 구성될 수 있다. 다른 예를 들어, 도 11을 참조하면, 상기 제2 데이터는, 포맷(1150)과 같이, 구성될 수 있다. 예를 들면, 상기 제2 데이터는, 복수의 패킷들로 구성될 수 있다. 예를 들면, 상기 복수의 패킷들은, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 유지할 것인지 여부를 결정하기 위한 API를 포함하는 패킷(1160) 및 상기 클라우드 모드를 위한 접속 정보를 포함하는 패킷(1170)을 포함할 수 있다. 패킷(1160)은, 전자 장치(105)가 전자 장치(103)로부터 패킷(1160)을 수신한 후, 패킷(1170)을 수신하도록, 구성될 수 있다. 예를 들면, 패킷(1160)은 잡음에 강건하도록 구성될 수 있다. 예를 들면, 전자 장치(105) 내에 수신된 패킷(1160)은 패킷(1170)보다 먼저 전자 장치(105)에 의해 수신됨으로써, 패킷(1170) 내의 상기 접속 정보가 상기 클라우드 모드를 위해 이용되는지 여부를 모니터링하도록 구성될 수 있다.
다른 예를 들면, 전자 장치(103)는, 상기 제2 데이터를 전자 장치(105)에게 송신한 후, 상기 API를 전자 장치(105)에게 송신할 수 있다. 또 다른 예를 들면, 전자 장치(103)는, 동작 517에서 실행된 상기 인증이 완료된 후 전자 장치(101) 또는 전자 장치(102) 중 적어도 하나로부터 상기 인증이 완료됨을 지시하기 위한 신호를 수신하고, 상기 인증이 완료됨을 지시하기 위한 상기 신호의 수신에 응답하여, 상기 API를 전자 장치(105)에게 송신할 수 있다. 또 다른 예를 들면, 전자 장치(103)는, 동작 517을 통해 상기 인증이 완료된 후 전자 장치(105)로부터 상기 클라우드 모드를 통한 상기 게임의 플레이를 제공하라는 요청을 수신한 전자 장치(102)로부터 전자 장치(105)로부터의 상기 요청을 지시하기 위한 신호를 수신하고, 상기 요청을 지시하기 위한 상기 신호의 수신에 응답하여, 전자 장치(105)에게 상기 클라우드 모드가 제공되기 전에 상기 API를 전자 장치(105)에게 송신할 수 있다. 하지만, 이에 제한되지 않는다.
동작 1030에서, 전자 장치(103)는, 상기 다른 신호에 기반하여, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단함을 결정할 수 있다. 예를 들면, 전자 장치(103)는, 상기 다른 신호 내에서 표 1과 유사하게 구성된 적어도 하나의 코드를 식별하고, 상기 적어도 하나의 코드의 식별에 기반하여 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단함을 결정할 수 있다.
동작 1040에서, 전자 장치(103)는, 상기 결정에 기반하여, 상기 클라우드 모드를 통해 전자 장치(105)에게 상기 게임을 플레이하는 것을 중단하기 위한 적어도 하나의 동작을 실행할 수 있다. 예를 들면, 전자 장치(103)는, 상기 결정에 기반하여, 전자 장치(101) 및/또는 전자 장치(102)와의 시그널링을 통해, 전자 장치(105)(또는 전자 장치(105)의 사용자)가 상기 클라우드 모드를 이용할 수 있는 권한을 박탈하거나(deprive) 회수하거나(revoke) 취소함으로써, 상기 적어도 하나의 동작을 실행할 수 있다. 다른 예를 들면, 전자 장치(103)는, 상기 결정에 기반하여, 전자 장치(103)와 전자 장치(105) 사이의 연결을 통해 상기 클라우드 모드의 제공을 위해 전자 장치(105) 내에 삽입된(inserted) 실행가능한 요소(executable element)(예: 도 5의 설명을 통해 예시된 상기 새로운 아이콘, 상기 새로운 실행가능한 객체 등)를 비활성화함으로써, 상기 적어도 하나의 동작을 실행할 수 있다. 하지만, 이에 제한되지 않는다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(103)는, 상기 로컬 모드를 제공하는 동안 전자 장치(105)에게 제공되는 상기 클라우드 모드를 중단하는 것이 요구됨을, 상기 API에 기반하여 획득된 상기 다른 신호를 전자 장치(105)로부터 수신함으로써, 식별할 수 있다. 다양한 실시예들에 따른 전자 장치(103)는, 이러한 식별을 통해, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단함으로써, 상기 클라우드 모드와 관련된 자원의 효율성을 강화할 수 있다. 예를 들면, 전자 장치(103)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용한 경우, 상기 API에 기반하여 획득되고 전자 장치(105)로부터 수신되는 상기 다른 신호에 기반하여 상기 클라우드 모드를 제공하는 것을 중단하고, 상기 중단에 따라 획득된 자원을 전자 장치(105)와 구별되는 다른 전자 장치에게 제공되는 상기 클라우드 모드를 위해 사용함으로써, 상기 클라우드 모드와 관련된 자원의 효율성을 강화할 수 있다. 다른 예를 들면, 전자 장치(103)는, 상기 클라우드 모드의 제공에도 불구하고 전자 장치(105) 내에서 상기 클라우드 모드가 이용되지 않는 경우, 상기 API에 기반하여 획득되고 전자 장치(105)로부터 수신되는 상기 다른 신호에 기반하여 상기 클라우드 모드를 제공하는 것을 중단하고, 상기 중단에 따라 획득된 자원을 전자 장치(105)와 구별되는 다른 전자 장치에게 제공되는 상기 클라우드 모드를 위해 사용함으로써, 상기 클라우드 모드와 관련된 자원의 효율성을 강화할 수 있다.
도 12는 다양한 실시예들에 따라, 상기 클라우드 모드를 통해 게임을 플레이할 수 있는 기간의 만료에 기반하여, 상기 클라우드 모드를 제공하는 것을 중단함을 결정하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1, 도 4, 및 도 5 내에 도시된 전자 장치(103) 또는 전자 장치(103)의 적어도 하나의 프로세서에 의해 실행될 수 있다.
도 12의 동작 1210 내지 동작 1220은, 도 10의 동작 1020 내지 동작 1030과 관련될 수 있다.
도 12를 참조하면, 동작 1210에서, 전자 장치(103)는, 상기 다른 신호를 수신할 수 있다. 예를 들면, 동작 1210은, 도 10의 동작 1020에 대응할 수 있다.
동작 1220에서, 전자 장치(103)는, 상기 다른 신호에 기반하여 상기 클라우드 모드를 통해 상기 게임을 플레이할 수 있는 기간이 만료됨을 식별함으로써, 상기 클라우드 모드를 제공하는 것을 중단할 수 있다. 예를 들면, 도 10 및/또는 도 11의 설명을 통해 정의된 상기 API는 타이머를 포함할 수 있다. 다양한 실시예들에서, 상기 타이머는, 지정된 타이밍으로부터 전자 장치(105) 내에서 활성화될 수 있다. 예를 들면, 상기 지정된 타이밍은, 전자 장치(105) 내에 상기 API가 포함된 타이밍일 수 있다. 다른 예를 들면, 상기 지정된 타이밍은, 전자 장치(105) 내에서 상기 클라우드 모드를 개시하는 타이밍일 수 있다. 하지만, 이에 제한되지 않는다. 다양한 실시예들에서, 상기 API는, 상기 타이머를 이용하여 상기 기간이 만료됨을 식별하고, 상기 기간이 만료됨을 식별하는 것에 기반하여 상기 다른 신호를 전자 장치(105) 내에서 획득하고, 상기 획득된 다른 신호를 전자 장치(105)로부터 전자 장치(103)에게 송신할 수 있다. 한편, 전자 장치(103)는, 상기 API에 기반하여 획득된 상기 다른 신호를 전자 장치(105)로부터 수신하고, 상기 다른 신호에 기반하여 상기 클라우드 모드를 통해 상기 게임을 플레이할 수 있는 기간이 만료됨을 식별함으로써, 상기 클라우드 모드를 제공하는 것을 중단할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(103)는, 전자 장치(103)로부터 전자 장치(105)에게 제공된 상기 API를 이용하여 상기 클라우드 모드를 통해 상기 게임을 플레이할 수 있는 기간이 만료됨을 식별할 수 있다. 다양한 실시예들에 따른 전자 장치(103)는, 이러한 식별을 통해, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단함으로써, 상기 클라우드 모드와 관련된 자원의 효율성을 강화할 수 있다. 예를 들면, 전자 장치(103)는, 상기 클라우드 모드를 통해 전자 장치(105) 내에서 상기 게임을 플레이할 수 있는 기간이 만료된 경우, 상기 API에 기반하여 획득된 전자 장치(105)로부터 수신되는 상기 다른 신호에 기반하여 상기 클라우드 모드를 제공하는 것을 중단하고, 상기 중단에 따라 획득된 자원을 전자 장치(105)와 구별되는 다른 전자 장치에게 제공되는 상기 클라우드 모드를 위해 사용함으로써, 상기 클라우드 모드와 관련된 자원의 효율성을 강화할 수 있다.
도 13은 다양한 실시예들에 따라, 상기 클라우드 모드를 통해 지정된 기간 동안 상기 게임을 플레이하지 않음을 식별하는 것에 기반하여, 상기 클라우드 모드를 제공하는 것을 중단함을 결정하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1, 도 4, 및 도 5 내에 도시된 전자 장치(103) 또는 전자 장치(103)의 적어도 하나의 프로세서에 의해 실행될 수 있다.
도 13의 동작 1310 내지 동작 1320은, 도 10의 동작 1020 내지 동작 1030과 관련될 수 있다.
도 13을 참조하면, 동작 1310에서, 전자 장치(103)는, 상기 다른 신호를 수신할 수 있다. 예를 들면, 동작 1310은, 도 10의 동작 1020에 대응할 수 있다.
동작 1320에서, 전자 장치(103)는, 상기 다른 신호에 기반하여, 상기 제2 데이터를 수신한 후 상기 지정된 기간 동안 상기 클라우드 모드를 통해 상기 게임을 플레이하지 않음을 식별함으로써, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단함을 결정할 수 있다. 예를 들면, 상기 지정된 기간은, 상기 클라우드 모드를 통해 상기 게임을 플레이하는 것이 전자 장치(105)의 사용자에게 선호되는지 여부를 식별하기 위한 파라미터일 수 있다. 예를 들면, 상기 제2 데이터를 수신한 후 상기 지정된 기간 동안 상기 클라우드 모드를 통해 상기 게임을 전자 장치(105) 내에서 플레이하지 않음은, 상기 클라우드 모드를 통해 전자 장치(105)의 사용자가 상기 게임을 플레이하는 것을 선호하지 않음을 의미할 수 있다. 예를 들면, 도 10 및/또는 도 11의 설명을 통해 정의된 상기 API는, 상기 제2 데이터를 수신한 후 상기 지정된 기간 동안 상기 게임을 상기 클라우드 모드를 통해 전자 장치(105) 내에서 플레이하는지 여부를 모니터링하기 위한 데이터를 포함할 수 있다. 다양한 실시예들에서, 상기 API는, 상기 데이터를 이용하여 상기 제2 데이터를 수신한 후 상기 지정된 기간 동안 상기 게임을 상기 클라우드 모드를 통해 전자 장치(105) 내에서 플레이하지 않음을 식별하고, 상기 식별에 기반하여 상기 다른 신호를 전자 장치(105) 내에서 획득하고, 상기 획득된 다른 신호를 전자 장치(105)로부터 전자 장치(103)에게 송신할 수 있다. 한편, 전자 장치(103)는, 상기 API에 기반하여 획득된 상기 다른 신호를 전자 장치(105)로부터 수신하고, 상기 다른 신호에 기반하여 상기 제2 데이터를 수신한 후 상기 지정된 기간 동안 상기 클라우드 모드를 통해 상기 게임을 플레이하지 않음을 식별함으로써, 상기 클라우드 모드를 제공하는 것을 중단할 수 있다.
도 13은, 상기 제2 데이터를 수신한 후 상기 지정된 시간 동안 상기 클라우드 모드를 통해 상기 게임을 플레이하는지 여부를 식별하는 예를 도시하고 있으나, 이는 설명의 편의를 위한 것이다. 상기 지정된 시간의 개시 타이밍은 실시예들에 따라 변경될 수 있음에 유의하여야 한다. 예를 들면, 상기 API는 상기 제2 데이터의 수신 타이밍 대신 상기 클라우드 모드를 통해 상기 게임을 전자 장치(105) 내에서 플레이하는 것을 가장 최근 종료한 타이밍을 상기 지정된 시간의 개시 타이밍으로 설정하도록 구성될 수 있다. 이러한 경우, 전자 장치(103)는, 동작 1320에서, 상기 클라우드 모드를 통해 상기 게임을 전자 장치(105) 내에서 플레이하는 것을 가장 최근 종료한 타이밍으로부터 상기 지정된 기간 동안 상기 클라우드 모드를 통해 상기 게임을 플레이하지 않음을 식별함으로써, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(103)는, 전자 장치(103)로부터 전자 장치(105)에게 제공된 상기 API를 이용하여 상기 클라우드 모드를 통해 상기 게임을 플레이하지 않음을 식별할 수 있다. 다양한 실시예들에 따른 전자 장치(103)는, 이러한 식별을 통해, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단함으로써, 상기 클라우드 모드와 관련된 자원의 효율성을 강화할 수 있다. 예를 들면, 전자 장치(103)는, 상기 클라우드 모드를 통해 전자 장치(105) 내에서 상기 게임이 상기 지정된 기간 동안 실행되지 않는 경우, 상기 API에 기반하여 획득된 전자 장치(105)로부터 수신되는 상기 다른 신호에 기반하여 상기 클라우드 모드를 제공하는 것을 중단하고, 상기 중단에 따라 획득된 자원을 전자 장치(105)와 구별되는 다른 전자 장치에게 제공되는 상기 클라우드 모드를 위해 사용함으로써, 상기 클라우드 모드와 관련된 자원의 효율성을 강화할 수 있다.
도 14는 다양한 실시예들에 따라, 상기 로컬 모드를 통한 상기 게임의 플레이가 다른 전자 장치 내에서 활성화됨을 식별하는 것에 기반하여, 상기 클라우드 모드를 제공하는 것을 중단함을 결정하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1, 도 4, 및 도 5 내에 도시된 전자 장치(103) 또는 전자 장치(103)의 적어도 하나의 프로세서에 의해 실행될 수 있다.
도 14를 참조하면, 동작 1410에서, 전자 장치(103)는, 상기 제2 데이터를 전자 장치(105)에게 송신한 후, 전자 장치(105)의 사용자의 식별 정보가 전자 장치(105)와 구별되는 다른 전자 장치 내에서 상기 로컬 모드를 통해 상기 게임을 플레이하기 위해 이용됨을 식별할 수 있다. 예를 들면, 전자 장치(103)는, 상기 제2 데이터를 송신한 후, 전자 장치(101)에게, 전자 장치(105)의 사용자의 상기 식별 정보(예: 계정 정보)가 전자 장치(105)와 구별되는 상기 다른 전자 장치 내에서 상기 로컬 모드를 통해 상기 게임을 플레이하기 위해 이용되는지를 전자 장치(103)에게 알리라는(notify) 요청을 송신할 수 있다. 전자 장치(103)는, 상기 요청에 대한 응답으로, 전자 장치(101)로부터 상기 식별 정보가 상기 다른 전자 장치 내에서 상기 로컬 모드를 통해 상기 게임을 플레이하기 위해 이용됨을 지시하기 위한 응답을 수신하는 것에 기반하여, 상기 식별 정보가 상기 다른 전자 장치 내에서 상기 로컬 모드를 통해 상기 게임을 플레이하기 위해 이용됨을 식별할 수 있다.
동작 1420에서, 전자 장치(103)는, 상기 식별에 기반하여, 상기 클라우드 모드를 제공하는 것을 중단함을 결정할 수 있다. 예를 들면, 상기 식별 정보가 상기 다른 전자 장치 내에서 상기 로컬 모드를 통해 상기 게임을 플레이하기 위해 이용됨은 전자 장치(105)의 사용자가 상기 클라우드 모드를 이용하지 않더라도 상기 게임을 상기 다른 전자 장치를 이용하여 상기 로컬 모드 내에서 플레이할 수 있음을 의미하기 때문에, 전자 장치(103)는, 상기 식별에 기반하여, 상기 클라우드 모드를 제공하는 것을 중단함을 결정할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(103)는, 상기 제2 데이터를 전자 장치(105)에게 송신한 후, 전자 장치(101)과의 연동에 기반하여, 전자 장치(105)의 사용자의 식별 정보가 상기 다른 전자 장치 내에서 상기 로컬 모드를 통해 상기 게임을 플레이하기 위해 이용됨을 식별할 수 있다. 다양한 실시예들에 따른 전자 장치(103)는, 이러한 식별을 통해, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단함으로써, 상기 클라우드 모드와 관련된 자원의 효율성을 강화할 수 있다. 예를 들면, 전자 장치(103)는, 전자 장치(105)의 사용자가 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않는 동안 다른 수단을 통해 상기 로컬 모드로 상기 게임을 플레이할 수 있는 경우, 상기 클라우드 모드를 제공하는 것을 중단하고, 상기 중단에 따라 획득된 자원을 전자 장치(105)와 구별되는 다른 전자 장치에게 제공되는 상기 클라우드 모드를 위해 사용함으로써, 상기 클라우드 모드와 관련된 자원의 효율성을 강화할 수 있다.
도 15는 다양한 실시예들에 따라, 상기 클라우드 모드를 제공하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1, 도 4, 및 도 5 내에 도시된 전자 장치(103) 또는 전자 장치(103)의 적어도 하나의 프로세서에 의해 실행될 수 있다.
도 15를 참조하면, 동작 1501에서, 전자 장치(103)는, 전자 장치(105)에게 상기 제1 데이터 내의 상기 API의 송신을 완료함을 식별할 수 있다. 예를 들면, 상기 식별은, 전자 장치(103)와 전자 장치(104) 사이의 연동에 기반하여 실행될 수 있다. 다른 예를 들면, 상기 식별은, 전자 장치(103)와 상기 API를 수신한 전자 장치(105) 사이의 연동에 기반하여 실행될 수도 있다. 하지만, 이에 제한되지 않는다.
동작 1503에서, 전자 장치(103)는, 상기 식별에 기반하여, 상기 로컬 모드를 통한 상기 게임의 설치를 위한 정보를 전자 장치(105)에게 제공하는 것이 완료되는지 여부를 식별할 수 있다. 예를 들면, 상기 로컬 모드를 통한 상기 게임의 설치를 위한 정보를 전자 장치(105)에게 제공하는 것이 완료되는지 여부를 식별하는 것은 전자 장치(105) 내에 포함된 상기 API에 기반하여 전자 장치(105)로부터 송신되는 신호(예: 도 5의 동작 505의 설명을 통해 정의된 상기 신호) 내의 정보에 기반하여 실행될 수 있다. 전자 장치(103)는, 상기 로컬 모드를 통한 상기 게임의 설치를 위한 정보를 전자 장치(105)에게 제공하는 것이 완료되는 경우, 동작 1505를 실행하고, 그렇지 않으면(otherwise) 동작 1509를 실행할 수 있다.
동작 1505에서, 전자 장치(103)는, 상기 로컬 모드를 통한 상기 게임의 설치를 위한 상기 정보를 전자 장치(105)에게 제공하는 것이 완료됨을 식별하는 것에 기반하여, 상기 로컬 모드를 통한 상기 게임의 설치가 완료되는지 여부를 식별할 수 있다. 예를 들면, 상기 로컬 모드를 통한 상기 게임의 설치가 완료되는지 여부를 식별하는 것은, 전자 장치(105) 내에 포함된 상기 API에 기반하여 전자 장치(105)로부터 송신되는 상기 신호 내의 정보에 기반하여 실행될 수 있다. 전자 장치(103)는, 상기 로컬 모드를 통한 상기 게임의 설치가 완료되는 경우, 동작 1507을 실행하고, 그렇지 않으면 동작 1509를 실행할 수 있다.
동작 1507에서, 전자 장치(103)는, 상기 로컬 모드를 통한 상기 게임의 설치가 완료됨을 식별하는 것에 기반하여, 상기 게임이 상기 로컬 모드를 통해 정상적으로(successfully) 실행되는지 여부를 식별할 수 있다. 예를 들면, 상기 게임이 상기 로컬 모드를 통해 정상적으로 실행되는지 여부를 식별하는 것은, 전자 장치(105) 내에 포함된 상기 API에 기반하여 전자 장치(105)로부터 송신되는 상기 신호 내의 정보에 기반하여 실행될 수 있다. 전자 장치(103)는, 상기 게임이 상기 로컬 모드를 통해 정상적으로 실행되는 경우, 동작 1507을 지속적으로 실행하고, 그렇지 않으면 동작 1509를 실행할 수 있다.
동작 1509에서, 전자 장치(103)는, 상기 로컬 모드를 통하 상기 게임의 설치를 위한 상기 정보를 제공하는 것이 완료되지 않음을 식별하거나, 상기 로컬 모드를 통한 상기 게임의 설치가 성공적으로 완료되지 않음을 식별하거나, 상기 게임이 상기 로컬 모드를 통해 성공적으로 실행되지 않음을 식별하는 것에 기반하여, 상기 클라우드 모드를 제공하는 것을 인가하는지 여부를 문의하기 위한 메시지를 전자 장치(105)에게 송신할 수 있다. 예를 들면, 전자 장치(105)에 의해 수신된 상기 메시지는, 전자 장치(105)의 디스플레이를 통해, 표시될 수 있다.
동작 1511에서, 전자 장치(103)는, 상기 메시지를 송신한 후, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것이 전자 장치(105)의 사용자에 의해 인가되는지 여부를 식별할 수 있다. 예를 들면, 전자 장치(103)는, 상기 메시지를 송신한 후, 전자 장치(105)로부터, 전자 장치(105)의 디스플레이를 통해 표시된 상기 메시지에 대한 사용자 입력에 대한 정보를 수신하는지 여부를 식별함으로써, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것이 전자 장치(105)의 사용자에 의해 인가되는지 여부를 식별할 수 있다. 예를 들어, 상기 메시지에 대한 상기 사용자 입력에 대한 정보가 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 인가함을 지시하는 경우, 전자 장치(103)는 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 인가함을 식별할 수 있다. 다른 예를 들어, 상기 메시지에 대한 상기 사용자 입력에 대한 정보가 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 인가하지 않음을 지시하는 경우, 전자 장치(103)는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 인가하지 않음을 식별할 수 있다. 또 다른 예를 들어, 상기 메시지에 대한 상기 사용자 입력에 대한 정보가 지정된 시간 동안 전자 장치(103)에 수신되지 않는 경우, 전자 장치(1030)는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 인가하지 않음을 식별할 수 있다. 예를 들면, 상기 지정된 기간은, 전자 장치(105)의 사용자가 상기 클라우드 모드에 관심이 있는지 여부를 식별하기 위한 파라미터일 수 있다. 다시 말해, 상기 지정된 기간은, 상기 메시지에 대한 상기 사용자 입력을 전자 장치(105)의 사용자가 상기 지정된 기간 동안 야기하지 않는 것은 상기 사용자가 상기 클라우드 모드에 관심이 없음을 의미함을 고려하여 정의되는 파라미터일 수 있다. 하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 전자 장치(103)는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것이 전자 장치(105)의 사용자에 의해 인가되는 겨우, 동작 1511를 실행하고, 그렇지 않으면 동작 1513을 실행할 수 있다.
동작 1513에서, 전자 장치(103)는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것이 인가되지 않음을 식별하는 것에 기반하여, 지정된 동작을 실행할 수 있다. 예를 들면, 상기 지정된 동작은, 상기 클라우드 모드가 전자 장치(105)에 대하여 이용되지 않음에 따라, 실행되는 전자 장치(103)의 동작일 수 있다. 예를 들면, 전자 장치(103)는, 전자 장치(105)에 대한 상기 로컬 모드의 복구의 우선순위를, 상기 클라우드 모드를 제공하는 것이 인가된 다른 전자 장치에 대한 상기 로컬 모드의 복수의 우선순위보다, 높게 설정할 것을 요청하는 메시지를 상기 로컬 모드의 복구와 관련된 장치에게 송신하는 것을 상기 지정된 동작으로, 실행할 수 있다. 예를 들면, 상기 메시지는, 상기 장치의 디스플레이를 통해 표시될 수 있다. 다른 예를 들면, 상기 메시지는, 전자 장치(105)에 대한 상기 로컬 모드의 복구의 우선순위 및 상기 다른 전자 장치에 대한 상기 로컬 모드의 복수의 우선순위를 상기 장치 내에서 사용자 입력 없이 조정하기 위해 이용될 수 있다. 하지만, 이에 제한되지 않는다.
동작 1515에서, 전자 장치(103)는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것이 인가됨을 식별하는 것에 기반하여, 상기 제2 데이터를 전자 장치(105)에게 송신할 수 있다.
동작 1517에서, 전자 장치(103)는, 상기 제2 데이터를 송신한 후, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단하는 것이 요구되는지 여부를 식별할 수 있다. 전자 장치(103)는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단하는 것이 요구되는 경우, 동작 1519를 실행하고, 그렇지 않으면 동작 1517을 지속적으로 실행할 수 있다.
동작 1519에서, 전자 장치(103)는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단하는 것이 요구됨을 식별하는 것에 기반하여, 상기 클라우드 모드를 제공하는 것을 중단하기 위한 적어도 하나의 동작을 실행할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(103)는, 도 15의 동작들을 통해, 상기 로컬 모드를 전자 장치(105)에 대하여 복구하는 동안, 전자 장치(105)의 사용자가 상기 게임을 플레이하는 것이 단절되지 않도록, 상기 클라우드 모드를 제공할 수 있다. 다양한 실시예들에 따른 전자 장치(103)는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 동안 상기 클라우드 모드를 제공하는 것을 중단하는 것이 요구되는지 여부를 모니터링함으로써, 상기 클라우드 모드의 자원 효율성을 강화할 수 있다.
도 16은 다양한 실시예들에 따라, 상기 로컬 모드가 가용하지 않는 동안 상기 클라우드 모드를 통해 상기 게임을 실행하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 내지 도 5 내에 도시된 전자 장치(105) 또는 전자 장치(105)의 적어도 하나의 프로세서에 의해 실행될 수 있다.
도 16을 참조하면, 동작 1610에서, 전자 장치(105)는, 상기 제1 데이터의 적어도 일부를 전자 장치(105)의 적어도 하나의 메모리 내에 저장할 수 있다. 예를 들면, 전자 장치(105)는, 상기 제1 데이터 내의 상기 API 및 상기 제1 데이터 내의 상기 정보 모두를 수신함으로써, 상기 제1 데이터 전부를 상기 적어도 하나의 메모리 내에 저장할 수 있다. 다른 예를 들면, 전자 장치(105)는, 상기 제1 데이터 내의 상기 API를 수신하고 상기 제1 데이터 내의 상기 정보의 적어도 일부를 수신하지 못함으로써, 상기 제1 데이터의 일부를 상기 적어도 하나의 메모리 내에 저장할 수 있다.
동작 1620에서, 전자 장치(105)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않는 동안, 전자 장치(103)로부터 상기 제2 데이터를 수신할 수 있다. 예를 들면, 전자 장치(105)는, 상기 제1 데이터를 완전히(fully) 수신하지 못하는 것, 상기 로컬 모드를 위해 상기 제1 데이터에 기반하여 상기 게임을 성공적으로 설치하지 못하는 것, 또는 상기 설치된 게임을 상기 로컬 모드 내에서 성공적으로 실행하지 못하는 것 중 적어도 하나에 의해 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않는 동안, 전자 장치(103)로부터 상기 제2 데이터를 수신할 수 있다.
동작 1630에서, 전자 장치(105)는, 상기 제2 데이터에 기반하여 수립된, 전자 장치(102)와 전자 장치(105) 사이의 통신 연결을 이용하여, 전자 장치(102)로부터 수신되는 상기 적어도 하나의 콘텐트를, 상기 클라우드 모드를 통한 상기 게임의 플레이를 위해, 표시할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(105)는, 상기 로컬 모드가 전자 장치(105) 내에서 가용하지 않는 동안, 전자 장치(103)로부터 수신되는 상기 제2 데이터를 이용하여 전자 장치(102)와 전자 장치(105) 사이의 통신 연결을 수립할 수 있다. 다양한 실시예들에 따른 전자 장치(105)는, 상기 클라우드 모드를 통해 상기 게임을 플레이하도록, 상기 통신 연결을 이용하여 상기 적어도 하나의 콘텐트를 전자 장치(102)로부터 수신하고, 상기 수신된 적어도 하나의 콘텐트를 표시할 수 있다. 다시 말해, 다양한 실시예들에 따른 전자 장치(105)는, 상기 로컬 모드가 가용하지 않음을 조건으로 상기 클라우드 모드를 이용하는 서비스를 제공함으로써, 상기 게임의 사용성을 강화할 수 있다.
도 17은 다양한 실시예들에 따라 제2 데이터를 수신하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 내지 도 5 내에 도시된 전자 장치(105) 또는 전자 장치(105)의 적어도 하나의 프로세서에 의해 실행될 수 있다.
도 17의 동작 1710 내지 1730은 도 16의 동작 1620과 관련될 수 있다.
도 17을 참조하면, 동작 1710에서, 전자 장치(105)는 상기 로컬 모드가 가용한지 여부를 지시하기 위한 신호를 획득할 수 있다. 예를 들면, 전자 장치(105)는, 전자 장치(101), 전자 장치(102), 또는 전자 장치(103)로부터 획득된 API를 이용하여, 상기 로컬 모드와 관련하여 전자 장치(104)로부터 정보가 성공적으로 다운로드되는지 여부를 지시하기 위한 정보를 포함하는 상기 신호를 획득할 수 있다. 다른 예를 들면, 전자 장치(105)는, 상기 API를 이용하여, 상기 로컬 모드와 관련하여 전자 장치(104)로부터 다운로드된 상기 정보가 성공적으로 설치되는지 여부를 지시하기 위한 정보를 포함하는 상기 신호를 획득할 수 있다. 또 다른 예를 들면, 전자 장치(105)는, 상기 API를 이용하여, 상기 로컬 모드와 관련하여 상기 설치된 정보가 성공적으로 실행되는지 여부를 지시하기 위한 정보를 포함하는 상기 신호를 획득할 수 있다. 하지만, 이에 제한되지 않는다.
동작 1720에서, 전자 장치(105)는, 상기 획득된 신호를 전자 장치(103)에게 송신할 수 있다. 예를 들면, 상기 신호는, 상기 API에 기반하여 송신될 수 있다.
동작 1730에서, 전자 장치(105)는, 상기 신호를 송신한 후, 전자 장치(103)로부터 상기 제2 데이터를 수신할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(105)는, 전자 장치(101), 전자 장치(102), 또는 전자 장치(103)로부터 획득된 상기 API를 이용하여 상기 로컬 모드가 전자 장치(105) 내에서 가용한지 여부를 식별하기 위한 신호를 획득함으로써, 상기 게임의 사용성을 강화할 수 있다.
도 18은 다양한 실시예들에 따라, 상기 클라우드 모드를 통해 상기 게임을 플레이하는 것을 유지하거나 중단하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 내지 도 5 내에 도시된 전자 장치(105) 또는 전자 장치(105)의 적어도 하나의 프로세서에 의해 실행될 수 있다.
도 18의 동작 1810 내지 동작 1840은, 도 16의 동작 1620과 관련될 수 있다.
도 18을 참조하면, 동작 1810에서, 전자 장치(105)는, 상기 제2 데이터를 수신할 수 있다. 예를 들면, 상기 제2 데이터는, 상기 클라우드 모드를 전자 장치(105)에서 제공하는 것을 유지할 것인지 여부를 식별하기 위한 API를 포함할 수 있다.
동작 1820에서, 전자 장치(105)는, 상기 제2 데이터를 수신한 후, 상기 제2 데이터 내의 상기 API에 기반하여 획득된, 상기 클라우드 모드를 전자 장치(105)에서 제공하는 것을 유지할 것인지 여부를 결정하기 위한 다른 신호를 획득할 수 있다. 예를 들면, 전자 장치(105)는, 상기 API에 기반하여, 전자 장치(105) 내에서 상기 클라우드 모드를 제공하는 기간이 만료되는지 여부를 지시하기 위한 정보, 전자 장치(105) 내에서 상기 클라우드 모드가 이용되지 않는지 여부를 지시하기 위한 정보, 전자 장치(105) 내에서 상기 클라우드 모드를 이용하는 빈도가 기준 빈도 미만인지 여부를 지시하기 위한 정보, 또는 전자 장치(105)의 상태가 상기 로컬 모드를 지원하는 상태로 변경되는지 여부를 지시하기 위한 정보 중 저어도 하나를 포함하는 상기 다른 신호를 획득할 수 있다. 하지만, 이에 제한되지 않는다.
동작 1830에서, 전자 장치(105)는, 상기 획득된 다른 신호를 전자 장치(103)에게 송신할 수 있다.
동작 1840에서, 전자 장치(105)는, 상기 다른 신호에 기반하여 전자 장치(103) 내에서 실행된 결정에 따라, 상기 클라우드 모드를 통해 전자 장치(105)에서 상기 게임을 플레이하는 것을 유지하거나 중단하기 위한 동작을 실행할 수 있다. 예를 들면, 전자 장치(103)는, 전자 장치(105)로부터 수신된 상기 다른 신호에 기반하여, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단할 것인지 여부를 결정할 수 있다. 예를 들면, 전자 장치(103)는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 유지함을 결정하는 것에 기반하여, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 유지함을 알리기 위한 신호를 전자 장치(105)에게 송신할 수 있다. 전자 장치(105)는, 전자 장치(103)로부터 수신된 상기 신호에 기반하여, 전자 장치(105) 내에 포함된(또는 저장된, 설치된) 상기 클라우드 모드와 관련된 요소들을 유지함으로써, 상기 클라우드 모드를 통해 전자 장치(105)에서 상기 게임을 플레이하는 것을 유지할 수 있다. 다른 예를 들면, 전자 장치(103)는, 상기 클라우드 모드를 전자 장치(105)에게 제공하는 것을 중단함(cease)을 결정하는 것에 기반하여, 상기 클라우드 모드를 전자 장치(105)에서 비활성화하기 위한 신호를 전자 장치(105)에게 송신할 수 있다. 전자 장치(105)는, 전자 장치(103)로부터 수신된 상기 신호에 기반하여, 전자 장치(105) 내에 포함된 상기 클라우드 모드와 관련된 요소들을 비활성화함으로써, 상기 클라우드 모드를 통해 전자 장치(105)에서 상기 게임을 플레이하는 것을 중단할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(105)는, 상기 클라우드 모드를 유지할 것인지 여부를 결정하기 위한 동작들을 실행함으로써, 상기 클라우드 모드의 이용에 따른 자원의 효율성을 강화할 수 있다. 예를 들어, 상기 클라우드 모드와 상기 로컬 모두가 전자 장치(105) 내에서 가용한 경우, 전자 장치(105)는, 상기 클라우드 모드를 통해 상기 게임을 플레이하는 것을 중단함으로써, 상기 클라우드 모드를 위해 불필요한 자원이 할당되는 것을 방지할 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램들은, 전자 장치(device) 내의 하나 이상의 프로세서들에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램들은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 하나 이상의 프로그램들(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 광학 저장 장치(예: 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs)), 마그네틱 카세트(magnetic cassette), 또는 이들의 조합으로 구성된 메모리 내에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크 상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시예들에서, 본 개시에 포함되는 전자 장치의 구성 요소는 제시된 구체적인 실시예에 따라 단수 또는 복수로 표현되었다. 그러나, 상기 구성 요소에 대한 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며 후술하는 청구의 범위뿐만 아니라 이 청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체에 있어서, 상기 하나 이상의 프로그램들은, 통신 회로를 가지는 제1 전자 장치의 적어도 하나의 프로세서에 의해 실행될 시,
    게임의 실행을 위한 제1 데이터의 적어도 일부를 수신하였던 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 데이터에 기반하여 상기 게임을 상기 제2 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 상기 게임의 로컬(local) 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 지시하기(indicate) 위한 신호를 수신하고,
    상기 신호의 수신에 기반하여, 상기 제2 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드(cloud) 모드를 상기 제2 전자 장치에게 제공하기 위한 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 송신하도록,
    상기 제1 전자 장치를 야기하는 인스트럭션들을 포함하는, 컴퓨터 판독가능 저장 매체.
  2. 청구항 1에 있어서, 상기 제1 데이터는,
    상기 로컬 모드가 상기 제2 전자 장치 내에서 가용한지 여부를 식별하기 위한 API(application programming interface)를 포함하고,
    상기 신호는,
    상기 API에 기반하여 획득되고,
    상기 제2 전자 장치로부터 상기 제1 전자 장치에게 송신되는, 컴퓨터 판독가능 저장 매체.
  3. 청구항 2에 있어서, 상기 제1 데이터는,
    상기 로컬 모드를 통해 상기 게임을 상기 제2 전자 장치 내에서 플레이하기 위해 상기 제2 전자 장치 내에 상기 게임을 설치하기 위한 정보를 더(further) 포함하는, 컴퓨터 판독가능 저장 매체.
  4. 청구항 3에 있어서, 상기 제1 데이터 내의 상기 API는,
    상기 제1 데이터 내의 상기 정보가 상기 제2 전자 장치에 수신되기 전에, 상기 제2 전자 장치에 수신되는, 컴퓨터 판독가능 저장 매체.
  5. 청구항 4에 있어서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시,
    상기 제1 데이터 내의 상기 API에 기반하여 획득된 상기 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해 수신하고,
    상기 제1 데이터 내의 상기 정보가 완전히(fully) 상기 제2 전자 장치에 수신되지 않음을 상기 신호에 기반하여 식별함으로써, 상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하고,
    상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하는 것에 기반하여, 상기 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게 송신하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함하는 컴퓨터 판독가능 저장 매체.
  6. 청구항 4에 있어서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시,
    상기 제1 데이터 내의 상기 API에 의해 획득된 상기 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해 수신하고,
    상기 로컬 모드를 위해 상기 제1 데이터 내의 상기 정보에 기반하여 상기 제2 전자 장치 내에 상기 게임을 설치하는 동안 오류(error)가 야기됨을 상기 신호에 기반하여 식별함으로써, 상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하고,
    상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하는 것에 기반하여, 상기 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게 송신하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함하는 컴퓨터 판독가능 저장 매체.
  7. 청구항 4에 있어서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시,
    상기 제1 데이터 내의 상기 API에 기반하여 획득된 상기 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해 수신하고,
    상기 로컬 모드를 통해 상기 게임을 상기 제2 전자 장치 내에서 플레이하는 동안 오류가 야기됨을 상기 신호에 기반하여 식별함으로써, 상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하고,
    상기 로컬 모드가 상기 제2 전자 장치 내에서 가용하지 않음을 식별하는 것에 기반하여, 상기 제2 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게 송신하도록, 상기 제1 전자 장치를 야기하는 인스트럭션들을 포함하는 컴퓨터 판독가능 저장 매체.
  8. 청구항 1에 있어서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시,
    상기 제2 데이터를 송신한 후, 상기 클라우드 모드를 상기 제2 전자 장치에게 제공하는 것을 유지할 것인지 여부를 결정하기 위한 다른(another) 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해, 수신하고,
    상기 다른 신호에 기반하여, 상기 클라우드 모드를 상기 제2 전자 장치에게 제공하는 것을 중단함을 결정하고,
    상기 결정에 기반하여, 상기 클라우드 모드를 통해 상기 제2 전자 장치 내에서 상기 게임을 플레이하는 것을 중단하기 위한 적어도 하나의 동작을 실행하도록,
    상기 제1 전자 장치를 더(further) 야기하는 인스트럭션들을 포함하는, 컴퓨터 판독가능 저장 매체.
  9. 청구항 8에 있어서, 상기 제2 데이터는,
    상기 클라우드 모드를 상기 제2 전자 장치에게 제공하는 것을 유지할 것인지 여부를 식별하기 위한 API(application programming interface)를 포함하고,
    상기 다른 신호는,
    상기 API에 기반하여 획득되고,
    상기 제2 전자 장치로부터 상기 제1 전자 장치에게 송신되는, 컴퓨터 판독가능 저장 매체.
  10. 청구항 9에 있어서, 상기 API는,
    상기 클라우드 모드를 통해 상기 게임을 상기 제2 전자 장치 내에서 플레이하기 전에, 상기 제1 전자 장치로부터 상기 제2 전자 장치에게 송신되는,
    컴퓨터 판독가능 저장 매체.
  11. 청구항 10에 있어서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시,
    상기 제2 데이터 내의 상기 API에 기반하여 획득된 상기 다른 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해 수신하고,
    상기 클라우드 모드를 통해 상기 제2 전자 장치 내에서 상기 게임을 플레이할 수 있는 기간이 만료됨을 상기 다른 신호에 기반하여 식별함으로써, 상기 클라우드 모드를 상기 제2 전자 장치에게 제공하는 것을 중단함을 결정하도록,
    상기 제1 전자 장치를 더(further) 야기하는 인스트럭션들을 포함하는, 컴퓨터 판독가능 저장 매체.
  12. 청구항 10에 있어서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시,
    상기 제2 데이터 내의 상기 API에 기반하여 획득된 상기 다른 신호를, 상기 제2 전자 장치로부터 상기 통신 회로를 통해 수신하고,
    상기 제2 데이터를 수신한 후 지정된 기간 동안 상기 클라우드 모드를 통해 상기 제2 전자 장치 내에서 상기 게임을 플레이하지 않음을 상기 다른 신호에 기반하여 식별함으로써, 상기 클라우드 모드를 상기 제2 전자 장치에게 제공하는 것을 중단함을 결정하도록,
    상기 제1 전자 장치를 더(further) 야기하는 인스트럭션들을 포함하는, 컴퓨터 판독가능 저장 매체.
  13. 청구항 1에 있어서, 상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시,
    상기 제2 데이터를 송신한 후, 상기 제2 전자 장치의 사용자의 식별 정보가 상기 로컬 모드를 통해 상기 제2 전자 장치와 구별되는 제4 전자 장치 내에서 상기 게임을 플레이하기 위해 이용되는지 여부를 식별하고,
    상기 식별 정보가 상기 로컬 모드를 통해 상기 제4 전자 장치 내에서 상기 게임을 플레이하기 위해 이용됨을 식별하는 것에 기반하여, 상기 클라우드 모드를 통해 상기 제2 전자 장치 내에서 상기 게임을 플레이하는 것을 중단하기 위한 제3 데이터를, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 송신하도록,
    상기 제1 전자 장치를 더(further) 야기하는 인스트럭션들을 포함하는 컴퓨터 판독가능 저장 매체.
  14. 하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체에 있어서, 상기 하나 이상의 프로그램들은, 적어도 하나의 디스플레이, 적어도 하나의 메모리, 및 통신 회로를 가지는 제1 전자 장치의 적어도 하나의 프로세서에 의해 실행될 시,
    게임의 실행을 위한 제1 데이터의 적어도 일부를 상기 적어도 하나의 메모리 내에 저장하고,
    상기 적어도 하나의 메모리 내에 저장된 상기 제1 데이터를 이용하여 상기 게임을 상기 제1 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 로컬(local) 모드가 가용하지 않는(unavailable) 동안, 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드 모드를 위해, 상기 제3 전자 장치에 접속하기 위한 제2 데이터를 수신하고,
    상기 클라우드 모드를 통한 상기 게임의 플레이를 위해, 상기 제2 데이터에 기반하여 수립된 상기 제1 전자 장치와 상기 제3 전자 장치 사이의 통신 연결을 이용하여 상기 제3 전자 장치로부터 상기 통신 회로를 통해 수신되는 상기 적어도 하나의 콘텐트를 상기 적어도 하나의 디스플레이를 통해 표시하도록,
    상기 제1 전자 장치를 야기하는 인스트럭션들을 포함하는 컴퓨터 판독가능 저장 매체.
  15. 청구항 14에 있어서, 상기 적어도 하나의 메모리 내에 저장된 상기 제1 데이터의 적어도 일부는,
    상기 로컬 모드가 상기 제1 전자 장치 내에서 가용한지 여부를 식별하기 위한 API(application programming interface)를 포함하고,
    상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시,
    상기 통신 회로를 통해 상기 제2 전자 장치에게, 상기 로컬 모드가 상기 제1 전자 장치 내에서 가용한지 여부를 지시하기 위한 신호를, 상기 API에 기반하여 송신하고,
    상기 신호에 대한 응답으로, 상기 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제2 데이터를 수신하도록,
    상기 제1 전자 장치를 야기하는 인스트럭션들을 포함하는 컴퓨터 판독가능 저장 매체.
  16. 청구항 15에 있어서, 상기 제1 데이터는,
    상기 로컬 모드를 통해 상기 게임을 상기 제1 전자 장치 내에서 플레이하기 위해 상기 제1 전자 장치 내에 상기 게임을 설치하기 위한 정보를 더 포함하고,
    상기 제1 데이터 내의 상기 API는,
    상기 제1 데이터 내의 상기 정보가 상기 제1 전자 장치에 수신되기 전에, 상기 제1 전자 장치에 수신되는, 컴퓨터 판독가능 저장 매체.
  17. 청구항 16에 있어서, 상기 신호는,
    상기 제1 데이터의 적어도 일부 내에 포함된 API에 기반하여 획득된, 상기 제1 데이터 내의 상기 정보가 완전히 상기 제1 전자 장치에 수신되지 않음을, 지시하기 위한 데이터를 포함하는 컴퓨터 판독가능 저장 매체.
  18. 청구항 16에 있어서, 상기 신호는,
    상기 API에 기반하여 획득된, 상기 제1 데이터 내의 상기 정보에 기반하여 상기 제1 전자 장치 내에 상기 게임을 설치하는 동안 오류가 야기됨을, 지시하기 위한, 데이터를 포함하는 컴퓨터 판독가능 저장 매체.
  19. 청구항 14에 있어서, 상기 제2 데이터는,
    상기 클라우드 모드를 상기 제1 전자 장치에서 제공하는 것을 유지할 것인지 여부를 식별하기 위한 API(application programming interface)를 포함하고,
    상기 하나 이상의 프로그램들은, 상기 제1 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 시,
    상기 제2 데이터 내의 상기 API에 기반하여 획득된, 상기 제1 전자 장치에서 상기 클라우드 모드를 제공하는 것을 유지할 것인지 여부를 결정하기 위한, 다른 신호를, 상기 통신 회로를 통해 상기 제2 전자 장치에게, 송신하고,
    상기 다른 신호에 기반하여 상기 제2 전자 장치 내에서 실행된 결정에 따라, 상기 클라우드 모드를 통해 상기 제1 전자 장치에서 상기 게임을 플레이하는 것을 유지하거나, 또는 중단하도록,
    상기 제1 전자 장치를 더(further) 야기하는 인스트럭션들을 포함하는, 컴퓨터 판독가능 저장 매체.
  20. 적어도 하나의 디스플레이, 적어도 하나의 메모리, 및 통신 회로를 가지는 제1 전자 장치를 동작하기 위한 방법은,
    게임의 실행을 위한 제1 데이터의 적어도 일부를 상기 적어도 하나의 메모리 내에 저장하는 동작과,
    상기 적어도 하나의 메모리 내에 저장된 상기 제1 데이터를 이용하여 상기 게임을 상기 제1 전자 장치 내에서 실행함으로써 상기 게임을 플레이하는, 로컬(local) 모드가 가용하지 않는(unavailable) 동안, 제2 전자 장치로부터 상기 통신 회로를 통해, 상기 제1 전자 장치가 제3 전자 장치 내에서 실행되는 상기 게임의 적어도 하나의 콘텐트를 수신함으로써 상기 게임을 플레이하는, 상기 게임의 클라우드 모드를 위해, 상기 제3 전자 장치에 접속하기 위한 제2 데이터를 수신하는 동작과,
    상기 클라우드 모드를 통한 상기 게임의 플레이를 위해, 상기 제2 데이터에 기반하여 수립된 상기 제1 전자 장치와 상기 제3 전자 장치 사이의 통신 연결을 이용하여 상기 제3 전자 장치로부터 상기 통신 회로를 통해 수신되는 상기 적어도 하나의 콘텐트를 상기 적어도 하나의 디스플레이를 통해 표시하는 동작을 포함하는, 방법.
KR1020210049344A 2021-04-15 2021-04-15 오류의 검출에 기반하여 게임의 모드를 적응적으로 전환하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체 KR102523008B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210049344A KR102523008B1 (ko) 2021-04-15 2021-04-15 오류의 검출에 기반하여 게임의 모드를 적응적으로 전환하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체
US17/717,716 US20220331690A1 (en) 2021-04-15 2022-04-11 Electronic device, method, and computer readable storage medium for adaptively switching mode of game based on detection of error

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210049344A KR102523008B1 (ko) 2021-04-15 2021-04-15 오류의 검출에 기반하여 게임의 모드를 적응적으로 전환하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체

Publications (2)

Publication Number Publication Date
KR20220142831A KR20220142831A (ko) 2022-10-24
KR102523008B1 true KR102523008B1 (ko) 2023-04-19

Family

ID=83602108

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210049344A KR102523008B1 (ko) 2021-04-15 2021-04-15 오류의 검출에 기반하여 게임의 모드를 적응적으로 전환하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체

Country Status (2)

Country Link
US (1) US20220331690A1 (ko)
KR (1) KR102523008B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101997649B1 (ko) 2014-03-10 2019-07-09 에스케이플래닛 주식회사 클라우드 스트리밍 서버를 테스트하기 위한 기준 서버 변경 방법, 이를 위한 장치 및 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130097559A (ko) * 2012-02-24 2013-09-03 한국전자통신연구원 이종 클라우드 환경에서의 클라우드 브로커링 방법 및 그 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101997649B1 (ko) 2014-03-10 2019-07-09 에스케이플래닛 주식회사 클라우드 스트리밍 서버를 테스트하기 위한 기준 서버 변경 방법, 이를 위한 장치 및 시스템

Also Published As

Publication number Publication date
US20220331690A1 (en) 2022-10-20
KR20220142831A (ko) 2022-10-24

Similar Documents

Publication Publication Date Title
US9384114B2 (en) Group server performance correction via actions to server subset
US9386075B2 (en) Flexible download destination
US10743252B2 (en) Method for identifying access point and hotspot and terminal
US20130067527A1 (en) System and Method for Transmitting a Services List to a Playback Device
CN112015475A (zh) 一种应用程序启动方法及装置
US10452469B2 (en) Server performance correction using remote server actions
WO2014015732A1 (zh) 一种终端能力描述信息的生成方法及系统
JP2009523268A (ja) ネットワークを介するアプリケーションの提供
CN106027631B (zh) 一种数据传输方法及装置
US20140189133A1 (en) Real-Time Sharing Method, Apparatus and System
CN107835984B (zh) 热减轻用户体验
US9253228B2 (en) Cloud computing method, computing apparatus and server using the same
US20230221784A1 (en) System and method for power state enforced subscription management
JP5836919B2 (ja) ゲームシステム、並びにそのゲーム処理中断制御方法及びコンピュータプログラム
CN106575414B (zh) 上下文平台特征推荐
KR102523008B1 (ko) 오류의 검출에 기반하여 게임의 모드를 적응적으로 전환하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체
US9191445B2 (en) Systems and methods for managing emulation sessions
CN115454576A (zh) 一种虚拟机进程管理方法、系统及电子设备
US20170317940A1 (en) System and Method for Executing a High Bandwidth Network Activity as a Background Activity in a Virtual Desktop Environment
EP3394815A1 (en) Delegation of detailed content and app reviews between nearby devices
EP3145123B1 (en) Apparatus, method and program product for data bandwidth optimization
US20230026715A1 (en) Electronic device, method, and computer readable storage medium for allocating virtual machine for executing application
EP2766815B1 (en) Establish client-host connection
US20240152389A1 (en) Direct launch for asynchronous actions
JP5384566B2 (ja) フロントエンドサーバ、インタプリタ型プログラム及び方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right