전체 글

C#, 유니티 게임 개발자
이전 포스팅에서 한번 다루었던 OOP에 대해 다시 한번 그 중요성을 느꼈기에 한번 더 다뤄 보고자 한다. 이전 글: https://nybot-house.tistory.com/53 1. OOP 란? - 객체 지향 프로그래밍 소개 C++의 OOP란, 객체Object 가 중심이 되서 프로그래밍하는 패러다임. C++ 는 여러가지 패러다임을 제공해 주는 멀티 패러다임 언어이다. 1) procedural 2) functional 3) OOP - ( Object-Oriented Programming ) 4) generic 를 nybot-house.tistory.com 게임 개발을 하는 데 있어 객체 지향 프로그래밍, 즉 OOP (Object Oriented Programming)의 중요성은 다시 말할 필요 없이 핵심..
static 키워드 C#에서 static 키워드는 클래스의 멤버(필드, 프로퍼티, 메서드 등)가 클래스 인스턴스에 속하지 않고, 해당 클래스 자체에 속한다는 것을 의미한다. 즉, 클래스의 인스턴스를 생성하지 않고도 해당 멤버에 접근할 수 있으며 클래스 이름을 통해 직접 접근할 수 있다. 이는 메모리 관리에서 효율적이며, 일반적으로 유틸리티 함수나 공유 데이터를 관리할 때 사용된다. Unity 개발에서 'static' 키워드의 사용은 특히 중요한데, 이는 게임 개발 시 흔히 발생할 수 있는 다양한 상황에서 전역적으로 접근할 필요가 있는 데이터나 기능을 제공하기 때문이다. 예를 들어, 게임 내에 단 하나만 존재해야 하는 게임 매니저, 설정, 유틸리티 함수 등을 구현할 때 'static'을 사용할 수 있다. ..
C#에서 생성자는 클래스나 구조체가 인스턴스화될 때 자동으로 호출되는 특별한 메서드이다. 생성자의 주요 목적은 객체를 초기화하는 것으로, 필드 또는 속성에 초기 값을 할당하는 등의 작업을 수행할 수 있다. 생성자는 클래스 또는 구조체의 이름과 동일하며, 반환 형식을 지정하지 않는다. 생성자는 객체 지향 프로그래밍에서 중요한 역할을 하며, 클래스의 인스턴스가 올바르게 초기화되어 사용될 수 있도록 보장한다. 기본 생성자 기본 생성자(Default Constructor)는 매개변수를 받지 않는 생성자이다. 사용자가 명시적으로 생성자를 정의하지 않으면, C# 컴파일러는 기본 생성자를 자동으로 제공한다. 그러나 사용자가 어떠한 생성자라도 정의하면, 컴파일러는 기본 생성자를 자동으로 제공하지 않는다. public ..
스택과 힙 메모리에 대한 설명은 여러 포스트들에서 다루었지만, 체계적으로 한번에 비교해서 설명이 되었다고 하기엔 조금 난잡한 포스트들이었다고 생각한다. 이번 포스팅에서는 C#의 관점에서 스택 메모리와 힙 메모리를 비교해보고 각각의 특성을 살펴보고자 한다. c#의 경우 포인터가 직접적인 기능을 하지는 않지만 간접적으로 기능을 하고 있기에, c++보다는 이해하기 쉽지만, 그럼에도 불구하고 복사와 참조를 이해하기 위해서는 메모리 구조, 그리고 변수가 메모리에 어떻게 저장되는지 잘 이해하고 있어야 한다. Stack 스택 1) stack은 임시메모리, 즉 잠시 사용하는 메모리이다. 메서드 호출 시 메서드의 지역 변수를 저장하는데 사용된다. 2) 이 메모리 영역은 LIFO(Last In First Out, 후입선출..
구글 플레이 스토어에 전설의 대장장이 이야기 게임이 출시되었습니다.플플레이 스토어 링크 전설의 대장장이 이야기 - Google Play 앱무기를 제작하고 판매해서 전설적인 대장장이가 되어보세요!play.google.com 이번 포스팅에서는 이 게임에 대해 간단히 소개하고, 개발 배경과 과정에 대해 간단히 글로 정리해 보려 한다.1. 게임 아이디어 얻기 게임을 개발하기에 앞서 가장 선행되어야 하는 것은 아이디어 얻기다. [전설의 대장장이 이야기] 게임은 중세의 대장간에서 무기를 만들어 보는 경험을 제공하는 게임을 만들어 보자는 아이디어에서 시작 되었다. 또한 얼마 전 인상 깊게 했었던 타이쿤 게임인 '좋은 피자 위대한 피자' 게임처럼 잔잔하게 가게를 운영해 보는 힐링 타이쿤 게임을 만들어 보고 싶었기 때문..
현제 개발 중인 모바일 게임, '전설의 대장장이 이야기-The Legend Of BlackSmith'가 출시되었다.구글 플레이 스토어 링크 전설의 대장장이 이야기 - Google Play 앱무기를 제작하고 판매해서 전설적인 대장장이가 되어보세요!play.google.com게임 유저라면 안드로이드 폰으로 게임을 다운받을 때 이런 화면이 상단에 뜨며 동시 로그인 되는 장면을 보았을 것이다.게임 출시를 앞두고 요즘 모바일 게임의 기본인 구글 플레이 게임즈와 연동하는 과정에서 최신 버전의 정보가 적어 상당히 많은 시행착오를 겪었기에 이와 관련해 정리를 해보고자 한다.사용한 유니티 버전은 2022.3.15f1 사용한  Google Play Games Plugin for unity 버전은 현재 24년 3월 27일 ..
ref out 게시글에서 복사와 참조에 대하여 잠깐 다뤘었다. C++ 게시글에서 심도 있게 다루었던 내용이지만, C#에서도 한번 정리하고 넘어가야 맘이 편할 것 같아서 이번 게시글에서는 복사와 참조, 깊은 복사에 대해 다뤄보려고 한다. Struct 복사, Class 참조 우선 c#에서 struct는 기본적으로 복사를 하고, class는 참조를 한다. 예시를 통해 살펴보자. using System.Numerics; namespace CSharp { class Program { class Warrior { public int hp; public int attack; public void Move() { Console.WriteLine("Warrior Move"); } public void Attack() {..
지난 포스트에서 플레이어를 구현하였으니, 이어서 이번에는 플레이어가 마을과 필드에 입장하고, 몬스터와 전투를 진행하는 부분까지 구현해 보려고 합니다. 완성된 형태의 출력 결과물은 다음과 같습니다. 우선 메인 함수에서 EnterGame() 함수를 만들어서 게임에 접속시키는 기능을 구현해 봅시다. EnterGame() 함수에서 구현해야 하는 기능은 다음과 같습니다. 1) 마을에 도착 2) 필드로 갈 것인지, 로비로 돌아가서 다시 캐릭터 선택창으로 갈 것인지 선택. 3) 필드로 갔을 때 몬스터와 전투를 진행하기 (EnterField() 메서드를 만들어서 구현할 예정) static void EnterGame(ref Player player) { while (true) { Console.WriteLine("시작의..
HeadlessCreator
머리없는개발자