게임 제작의 첫걸음: 유니티로 시작하기 모든 것

게임 제작의 첫걸음: 유니티로 시작하기 모든 것

게임 제작에 대한 꿈을 가진 많은 이들이 유니티를 통해 그 첫걸음을 내딛으려 합니다. 유니티는 강력한 게임 엔진으로, 초보자부터 전문가까지 모두에게 적합합니다. 이 글에서는 유니티를 사용하는 방법, 게임 제작의 기초, 실제 게임 개발 프로세스를 자세히 설명하겠습니다.

Table of Contents

게임 제작의 첫걸음: 유니티로 시작하기 모든 것

유니티란 무엇인가? 유니티로 시작하기 위한 기초 지식

유니티는 게임 개발을 위한 강력한 엔진이자 플랫폼으로, 다양한 장르의 게임을 쉽게 만들 수 있도록 도와주는 도구예요. 다양한 기능과 직관적인 인터페이스 덕분에 초보자부터 전문가까지 많은 개발자들이 유니티를 선택하고 있답니다. 하지만 유니티가 무엇인지, 어떻게 시작해야 하는지는 많은 분들에게 생소할 수 있어요. 이번에는 유니티의 기본 개념과 함께 시작하는 데 필요한 기초 지식을 소개할게요.

1. 유니티의 기본 개념

유니티는 주로 2D 및 3D 게임을 제작하기 위한 통합 개발 환경(IDE)이에요. 다음과 같은 특징이 있어요:

  • 멀티 플랫폼 지원: 유니티로 개발한 게임은 PC, 모바일, 콘솔 등 다양한 플랫폼에서 실행할 수 있어요. 이를 통해 한 번의 제작으로 여러 기기에서 즐길 수 있는 장점이 있죠.
  • 비주얼 스크립팅: 코드 작성을 잘 모르는 초보자도 쉽게 접근할 수 있도록 visual scripting 기능을 제공해요. 블록을 조립하듯 쉽게 게임 로직을 구성할 수 있는 것이죠.
  • 커뮤니티와 자료: 유니티는 전 세계적으로 큰 커뮤니티를 가지고 있어요. 다양한 튜토리얼, 포럼, Q&A 사이트를 통해 정보를 쉽게 찾을 수 있어요.

2. 유니티를 시작하기 위한 기초 지식

유니티를 사용하기 전에 알아야 할 기본적인 지식들이 몇 가지 있어요:

  • C# 프로그래밍: 유니티의 스크립팅 언어는 C#이에요. 따라서, C#의 기본적인 문법과 객체지향 프로그래밍 개념을 알아두면 좋답니다.
  • 게임 엔진의 구조: 게임 엔진이 어떻게 작동하는지 간단한 이해가 필요해요. 예를 들면, 유니티는 게임 오브젝트, 컴포넌트, 씬 등을 기반으로 작동하죠. 게임 오브젝트는 게임 내 모든 요소로, 컴포넌트는 그 오브젝트에 특정 기능을 추가하는 요소랍니다.
  • 자원 관리: 유니티에서 사용하는 그래픽, 사운드, 애니메이션 등의 자원을 어떻게 관리할지를 미리 생각해두는 것이 중요해요. 프로젝트의 크기가 커질수록 자원 관리가 복잡해지니까요.

3. 유니티와의 첫 만남

유니티를 설치하면 첫 화면에서 여러 템플릿을 선택할 수 있어요. 초보자라면 기본 3D 템플릿이나 2D 템플릿을 선택하는 것이 좋어요. 이렇게 시작하면 간단한 프로젝트부터 손쉽게 든든한 경험을 쌓을 수 있답니다.

게다가 유니티는 다양한 뱃지(Asset Store의 자산)를 제공해요. 무료 또는 유료 자원을 쉽게 수집하고 사용할 수 있기 때문에, 자신의 아이디어에 맞는 리소스를 간편하게 추가할 수 있어요.

4. 유니티를 통해 가능해지는 것들

유니티는 강력한 도구이지만, 자기 아이디어를 실현시키는 것은 오롯이 개발자의 몫이에요. 그래도 유니티의 다양한 기능 덕분에 그 가능성은 무한해요. 예를 들어, 한 유저가 만든 재미있는 게임이 유튜브에서 엄청난 인기를 얻어 상업적인 성공을 거두기도 하죠.

이런 멋진 결과를 얻기 위해서는 기초부터 확실하게 다져야 해요. 유니티의 다양한 기능을 활용하기 위해서는 지속적인 학습과 실습이 반드시 필요하답니다.

이처럼 유니티는 게임 개발의 첫걸음을 떼는 데 있어 강력한 파트너가 되어줄 수 있어요. 기초 지식이 쌓이면, 점차 더 깊이 있는 기능들을 탐구해보는 것이 중요해요. 최종적으로 여러분만의 게임을 만드는 그날까지 계속해서 흥미로운 여정을 이어나가길 바래요!

유니티의 특징

  • 크로스 플랫폼: 다양한 플랫폼으로 게임을 배포할 수 있습니다. (PC, 모바일, 웹 등)
  • 사용자 친화적 인터페이스: 직관적인 뷰와 편리한 툴을 제공하여 초보자도 쉽게 접근할 수 있습니다.
  • 커뮤니티와 자료: 방대한 자료와 커뮤니티가 있어 언제든지 도움을 받을 수 있습니다.

유니티 설치 및 기본 설정

  1. 유니티 공식 웹사이트에서 계정을 생성하고 설치 파일을 다운로드합니다.
  2. 설치 중 Unity Hub를 통해 원하는 버전을 선택할 수 있습니다.
  3. 기본 설정을 마친 후 프로젝트를 생성합니다.

게임 제작의 핵심 단계: 기획에서 배포까지

게임 제작 과정은 여러 단계로 나누어질 수 있어요. 각각의 단계는 성공적인 게임 개발을 위해 필수적이에요. 여기서는 기획부터 배포까지의 핵심 단계를 자세히 설명해드릴게요.

단계설명주요 활동
1. 기획게임의 아이디어와 목표를 구체화하는 단계에요. 어떤 게임을 만들고 싶은지 명확하게 정해야 해요.– 게임 콘셉트 정의
– 목표 및 타겟 시장 설정
– 기획 문서 작성
2. 디자인게임의 구조와 시나리오를 설계하는 단계에요. 플레이어 경험을 설계하죠.– 캐릭터 및 환경 디자인
– 레벨 디자인
– 사용자 인터페이스 설계
3. 개발실제로 게임을 만드는 단계에요. 선택한 엔진, 즉 유니티를 활용해 코드와 자산을 구현해요.– 게임 메커니즘 구현
– 그래픽 및 사운드 추가
– 프로토타입 개발
4. 테스트게임이 제대로 작동하는지 확인하는 단계에요. 품질 보증(QA)을 통해 버그를 수정해요.– 게임 플레이 테스트
– 버그 신고 및 수정
– 사용자 피드백 수집
5. 배포완성된 게임을 플레이어에게 전달하는 단계에요. 마케팅과 홍보도 중요해요.– 플랫폼 선정
– 출시 일정 계획
– 게임 마케팅 전략 수립

1. 기획: 가능성을 열어주는 첫걸음

기획 단계에서는 게임의 기본 성격을 결정해요. 어떤 게임 장르인지, 어떤 이야기를 담을지 등이 포함돼요. 여기서 명확한 목표를 설정해야 해요.

2. 디자인: 플레이어의 상상력을 자극하다

디자인 단계는 게임을 시각적이고 상호작용적으로 만드는 과정이에요. 캐릭터의 외모, 게임의 배경, 레벨 구조 등을 설계하게 돼요. 이때 사용자의 경험을 고려해야 해요.

3. 개발: 아이디어를 현실로 변환하기

개발 단계에서 유니티를 사용해 실제 코드를 작성하고, 게임의 모든 요소를 프로그래밍해요. 이 과정에서 그래픽, 사운드, 효과 등을 추가하여 플레이어가 느낄 수 있는 독특한 환경을 만들어야 해요.

4. 테스트: 품질 보증의 중요성

게임이 출시되기 전, 철저한 테스트가 필요해요. 버그와 오류를 찾아내고, 사용자 피드백을 통해 개선점을 마련해요. 이 단계는 출시 전 게임의 품질을 보장하기 위한 필수 절차에요.

5. 배포: 최종 목표에 도달하다

마지막 단계인 배포에서는 완성된 게임을 알리고, 출시하는 작업을 해요. 다양한 플랫폼에 게임을 배포하고, 많은 사용자들이 게임을 즐길 수 있도록 마케팅 전략을 수립해야 해요.

게임 제작의 과정은 여러 단계로 구성되며, 각 단계가 성공적으로 진행될수록 게임의 품질이 보장된다는 점을 인식해야 해요.

이렇게 해서 기획에서 배포까지의 전반적인 과정을 살펴보았어요. 각 단계가 어떻게 연결되고 중요한지를 이해하면, 게임 제작이 한층 수월해질 거예요.

기획: 아이디어를 현실로

게임의 기획 단계에서는 게임의 목적과 목표, 캐릭터, 스토리라인 등을 설정해야 합니다. 이 단계에서의 철저한 계획이 성공적인 게임 제작의 첫걸음입니다.

아이디어 정리하기

  • 장르: RPG, 액션, 퍼즐 등 다양한 장르 중 선택
  • 플롯: 게임의 스토리를 작성
  • 대상 사용자: 어떤 연령층을 타겟할지 결정

디자인: 시각적 요소 강화

디자인 단계에서는 게임의 비주얼을 만드는 과정입니다. 유니티의 다양한 툴을 활용하여 아트워크를 만들 수 있습니다.

디자인 요소 목록

  • 캐릭터 디자인: 주인공과 적 캐릭터의 아트워크
  • 배경 아트: 게임의 배경과 레벨을 디자인
  • UI/UX 설계: 사용자 편의를 위한 인터페이스 설계

게임 개발: 유니티에서의 기능 구현

게임 개발에서 기능 구현은 매우 중요해요. 이 과정은 게임의 기초적인 동작뿐만 아니라, 플레이어가 경험하는 재미와 몰입감을 결정하는 핵심 요소랍니다. 아래는 유니티에서 기능을 구현하기 위한 주요 단계와 팁을 정리해 보았어요.

1. 유니티 환경 설정
  • 유니티 설치: 유니티 Hub를 통해 최신 버전의 유니티를 설치하세요.
  • 프로젝트 생성: ‘New’ 버튼을 클릭하여 새 프로젝트를 시작하세요. 템플릿에서 2D 또는 3D를 선택해요.
2. 게임 오브젝트 생성
  • 오브젝트 추가: Hierarchy 창에서 오른쪽 클릭 후 3D Object 또는 2D Object를 선택하여 기본 오브젝트를 생성할 수 있어요.
  • 프리팹 사용: 자주 사용하는 오브젝트는 프리팹으로 만들어 관리하면 효율적이에요.
3. 컴포넌트 이해와 추가
  • 컴포넌트란?: 게임 오브젝트에 기능을 추가하는 요소에요. 예를 들어 Transform, Rigidbody, Collider 등이 있어요.
  • 컴포넌트 추가 방법: 게임 오브젝트 선택 후 Inspector 패널에서 Add Component 버튼을 클릭해요.
4. 스크립트 작성
  • C# 스크립트: 유니티에서는 C#으로 게임 로직을 구현해요. Assets 폴더에서 오른쪽 클릭 후 Create > C# Script를 선택하세요.
  • 스크립트 연결: 작성한 스크립트를 해당 게임 오브젝트에 드래그하여 연결하면 돼요.
5. 기본적인 게임 메커니즘 구현
  • 플레이어 이동: 키 입력을 통해 플레이어 캐릭터를 움직이는 간단한 코드를 작성해요.
    csharp
    void Update() {
    float move = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
    transform.Translate(move, 0, 0);
    }
  • 충돌 감지: OnCollisionEnter 메서드를 이용해 충돌 시 행동을 정의할 수 있어요.
6. UI 요소 구현
  • UI 캔버스 추가: Hierarchy에서 UI > Canvas를 선택해 UI 요소를 추가해요.
  • 버튼 및 텍스트: UI 요소를 사용하여 시작 버튼, 점수 표시 등을 구현할 수 있어요.
7. 사운드 효과 및 음악 추가
  • 사운드 클립 임포트: Assets 폴더에 오디오 파일을 드래그하여 추가해요.
  • AudioSource 컴포넌트: 게임 오브젝트에 AudioSource를 추가하고 사운드 클립을 연결하세요.
8. 디버깅 및 최적화
  • 콘솔 사용: 오류 메시지를 확인하고 코드를 디버깅하는 데 도움이 돼요.
  • 성능 최적화: 프로파일러를 통해 게임의 성능을 분석하고 필요에 따라 최적화하세요.
9. 유니티 에셋 스토어 활용
  • 에셋 구매 및 다운로드: 다양한 무료 및 유료 에셋을 이용하여 게임 개발을 쉽게 진행할 수 있어요.
  • 에셋 커스터마이징: 가져온 에셋을 자신의 게임 스타일에 맞게 수정해 보세요.
결론: 즐거운 게임 개발 여정 시작하기

기능 구현 과정은 게임의 재미와 품질을 결정하는 중요한 단계에요. 게임의 각 요소를 효과적으로 구현해 나가면, 언젠가는 멋진 게임을 완성할 수 있을 거예요!

이제 여러분도 유니티에서 다양한 기능을 구현하면서, 여러분만의 독창적인 게임을 만들어 나가보세요! 응원할게요! 😊

기본 프로그래밍: C# 이해하기

C# 기본 문법을 이해하고, 변수, 조건문, 반복문 등 활용법을 익히세요. 유니티의 경우 스크립트 컴포넌트를 사용하여 오브젝트에 동작을 부여합니다.

스크립트 예시

public class PlayerController : MonoBehaviour
{
void Update()
{
if (Input.GetKey(KeyCode.W))
{
transform.Translate(Vector3.forward * Time.deltaTime);
}
}
}

위의 예제는 기본적인 플레이어 이동 스크립트입니다.

게임 제작의 첫걸음: 유니티로 시작하기 모든 것

테스트: 게임 품질 보증

게임 개발에서 테스트는 매우 중요한 단계로, 개발자가 구상한 모든 요소가 제대로 작동하는지 확인하는 과정이에요. 유니티로 게임을 만드는 과정에서도 이 테스트 단계는 필수적이니, 꼼꼼하게 진행해야 해요.

1. 테스트의 중요성

테스트는 단순히 버그를 발견하는 것을 넘어, 게임의 전반적인 품질을 보증하는 과정이에요. 품질이 높을수록 사용자 경험이 좋고, 이는 게임의 성공에 큰 영향을 미친답니다. 테스트를 소홀히 하면, 출시 후 사용자에게 나쁜 경험을 줄 수 있어요.

2. 테스트의 종류

테스트에는 여러 방식이 존재하며, 각각의 목적이 있어요. 이 중 일부를 소개해 드릴게요:

  • 기능 테스트: 게임의 각 기능이 의도한 대로 작동하는지 확인해요.
  • 성능 테스트: 게임이 다양한 시스템에서 원활하게 실행되는지 점검해요.
  • 호환성 테스트: 다양한 기기와 플랫폼에서 게임이 잘 작동하는지 확인해요.
  • 사용자 테스트: 실제 사용자들로부터 피드백을 받으면서 개선할 부분을 찾아요.

3. 유니티에서의 테스트 도구

유니티에는 여러 도구와 기능이 있어, 테스트를 효과적으로 진행할 수 있도록 도와줘요. 유용한 도구 몇 가지를 소개할게요:

  • Unity Test Framework: 유닛 테스트와 통합 테스트를 위한 기본 제공 프레임워크에요. 코드의 각 부분을 개별적으로 테스트할 수 있어요.

  • Profiler: 성능 이슈를 분석하고 최적화 포인트를 찾아주는 도구에요. 게임이 원활하게 동작하도록 최적화하는 데 큰 도움이 돼요.

  • Debugging Tools: 유니티의 디버그 기능을 활용하면, 코드에서 발생하는 문제를 쉽게 추적하고 수정할 수 있어요.

4. 테스트 단계의 실제 진행 방법

테스트를 진행하는 단계에서 주의할 부분을 정리해보면:

  1. 테스트 계획 수립: 먼저 어떤 테스트를 진행할지 계획을 세워요. 이 때, 목표와 범위도 명확히 해야 해요.

  2. 테스트 케이스 작성: 각 기능마다 테스트 케이스를 작성해요. 예상되는 입력과 출력을 명시해두면 좋답니다.

  3. 테스트 실행: 이전 단계에서 작성한 케이스에 따라 실제로 테스트를 실행해요. 발견된 문제는 기록하고, 우선 순위를 매겨요.

  4. 결과 분석: 테스트 결과를 분석하고, 문제를 해결하기 위한 방안을 모색해요. 필요시 재테스트도 진행해야 해요.

  5. 피드백과 수정: 사용자의 피드백을 수집하고, 수정해야 할 부분을 파악하여 게임을 개선해요.

5. 결론

게임 품질 보증을 위해서는 테스트가 필수적입니다. 테스트를 통해 발견되는 문제점은 개선의 기회가 되고, 사용자의 기대를 뛰어넘는 좋은 게임을 만들어낼 수 있어요. 유니티에서는 강력한 도구들을 제공하니, 이를 적극 활용해 여러분의 게임을 품질 높은 경험으로 발전시키세요. 지속적인 테스트가 좋은 게임의 시작이란 사실을 잊지 마세요!

지금까지 테스트와 품질 보증에 대해 알아보았어요. 다음 단계는 게임 배포에 대한 내용이니, 기대해 주세요!

버그 발견 방법

  • 게임플레이 테스트: 실제로 플레이하여 문제를 찾아보세요.
  • 사용자 피드백: 다른 사람에게 테스트를 요청하고 피드백을 수집하세요.

게임 배포: 최종 목표에 도달하기

게임 개발의 마지막 단계인 배포는 그동안의 노력과 시간을 결실로 만들기 위한 중요한 과정이에요. 게임을 성공적으로 배포하기 위해서는 몇 가지 주의점과 준비 사항이 필요해요. 이 과정은 단순히 게임을 출시하는 것에서 그치지 않고, 플레이어와의 소통, 마케팅 전략, 업데이트 및 유지 관리 등 다양한 요소를 포함해요.

1. 플랫폼 선택

배포할 플랫폼을 선택하는 것은 매우 중요해요. 여러 플랫폼이 있기 때문에, 타겟 오디언스에 맞는 곳을 선택해야 해요. 예를 들어:

  • PC: Steam, Epic Games Store 등.
  • 모바일: iOS, Android.
  • 콘솔: PlayStation, Xbox, Nintendo Switch.

각 플랫폼은 특징과 요구사항이 다르기 때문에, 이에 맞춰 게임을 최적화하는 것이 필요해요.

2. 게임 스토어 등록과 요구 사항

플랫폼에 따라 게임의 등록 프로세스가 달라요. 예를 들어 Steam에 게임을 배포할 경우, Steamworks에 가입하고 게임 정보를 등록해야 해요. 이때, 다음과 같은 요구 사항을 충족해야 해요:

  • 게임 설명 및 스크린샷.
  • 개발자 및 게임 스튜디오 정보.
  • 가격 책정 및 배포 지역 설정.

3. 마케팅 및 홍보 전략

게임이 출시되기 전에 효과적인 마케팅 전략을 수립해야 해요. 자신의 게임을 알려주기 위한 방법으로는:

  • 소셜 미디어 활용: Twitter, Instagram, YouTube 등에서 커뮤니티와 활발히 소통해요.
  • 트레일러 영상 제작: 게임의 핵심 기능과 매력을 보여주는 영상을 만들어 예비 플레이어의 관심을 끌어요.
  • 베타 테스트: 초기 사용자로부터 피드백을 받아 개선점을 찾고 입소문을 유도해요.

4. 출시 후 관리와 업데이트

  • 버그 수정: 플레이어가 보고한 버그는 신속하게 수정해요.
  • 콘텐츠 업데이트: 새로운 콘텐츠나 이벤트를 추가하여 플레이어의 흥미를 지속적으로 유도해요.
  • 커뮤니티 관리: 팬들과의 활발한 소통을 통해 충성도 높은 플레이어를 확보해요.

결론: 꿈의 게임 상용화에 한 걸음 더

게임을 성공적으로 배포하는 것은 단순히 판매를 시작하는 것에서 그치지 않아요. 게임이 제대로 실행되고, 좋은 반응을 얻기 위해서는 모든 요소에 신경 써야 해요. 배포는 개발 과정의 마지막 단계이지만, 이는 또한 지속적인 관계의 시작점이기도 해요. 여러분의 게임이 많은 사랑을 받을 수 있도록 최선을 다해보세요. 게임 제작의 꿈은 이제 여러분의 손에 달려 있어요.

배포 방법 요약

  1. 게임 최종 빌드
  2. 플랫폼별 규정에 맞춰 배포
  3. 마케팅 및 프로모션 전략 수립

결론: 유니티로 게임 제작에서 한걸음 더 나아가기

게임 제작 여정을 시작하며 유니티를 활용하는 방법을 살펴보았습니다. 유니티는 단순한 게임 엔진 이상의 도구로, 크리에이티브한 아이디어를 실현할 수 있는 강력한 플랫폼이에요. 그럼 이제 이 플랫폼에서 한걸음 더 나아가기 위해 어떤 방향으로 발전할 수 있을지에 대해 이야기해볼까요?

첫 번째로, 지속적인 학습이 필요해요. 유니티는 지속적으로 업데이트되고 새로운 기능들이 추가되기 때문에, 최신 정보를 지속적으로 습득하는 것이 중요해요. 무료 강좌, YouTube 영상, 포럼 등을 통해 최신 트렌드와 도구에 대한 정보를 끊임없이 찾아보세요. 예를 들어, 새로운 AR/VR 툴이나 AI 기반의 게임 제작 기술을 배우는 것은 여러분의 게임 개발 역량을 크게 끌어올릴 수 있죠.

두 번째로, 프로젝트의 다양화를 고려해야 해요. 처음에는 간단한 캐주얼 게임 또는 모바일 게임을 만들어 보세요. 이후에는 더 복잡한 멀티플레이어 게임이나 VR 게임 같은 도전적인 프로젝트에 도전해 보세요. 예를 들어, 간단한 퍼즐 게임을 만든 후 다음 단계로 RPG 게임을 개발해보면 여러분의 기술이 한층 향상될 거예요.

세 번째로, 커뮤니티와의 연결을 만들 필요가 있어요. 유니티 사용자 커뮤니티, 개발자 포럼 또는 관련 소셜 미디어 그룹에 참여해 보세요. 다양한 피드백을 통해 자신의 아이디어를 확장하고, 다른 개발자들과 경험을 공유할 수 있는 기회를 가지는 것 또한 큰 도움이 돼요. 예를 들어, 유명한 “Unity Forum”이나 “Discord” 채널에서 매주 진행되는 게임 제작 모임에 참여하면 서로의 노하우를 나눌 수 있는 기회를 가질 수 있죠.

마지막으로, 실패를 두려워하지 않는 태도가 중요해요. 모든 개발자는 실패를 경험합니다. 실패는 학습의 일부이며, 이를 통해 다음 프로젝트에서 더 나은 결정을 내릴 수 있어요. 비록 귀찮고 힘든 과정을 마주하더라도, 각각의 경험이 여러분을 더욱 뛰어난 개발자로 만들어줄 거예요. 예를 들어, 처음 만든 게임이 실패하더라도, 그 게임에 대해 분석하고 피드백을 받는다면 다음 게임에서는 그것을 개선할 수 있겠죠.

결론적으로, 유니티는 게임 개발의 진입장벽을 낮춰주는 훌륭한 도구입니다. 하지만 한 단계 더 나아가려면 지속적인 학습, 다양화된 프로젝트, 커뮤니티와의 연결, 그리고 실패에 대한 긍정적인 접근이 필요해요. 여러분의 게임 개발 여정을 계속 이어가며 더 많은 경험을 쌓아 가세요. 여러분의 다음 게임이 더욱 빛나는 작품이 되길 바랍니다!

자주 묻는 질문 Q&A

Q1: 유니티를 사용하기 위해 어떤 기본 지식이 필요한가요?

A1: 유니티를 사용하기 위해서는 C# 프로그래밍, 게임 엔진의 구조, 자원 관리 등의 기본 지식이 필요합니다.

Q2: 유니티에서 게임 개발의 주요 단계는 무엇인가요?

A2: 유니티에서 게임 개발의 주요 단계는 기획, 디자인, 개발, 테스트, 배포입니다. 각 단계가 성공적으로 진행되어야 합니다.

Q3: 게임 테스트의 중요성은 무엇인가요?

A3: 게임 테스트는 버그 발견 뿐만 아니라, 게임의 전반적인 품질을 보증하는 과정으로, 사용자 경험을 향상시키기 위해 필수적입니다.