- 언리얼 = C++로 만들어짐
- 유니티 = C++로 만들어진 엔진에 mono라는 번역기(C# -> C++)가 달려있음
- 자체엔진 = C++엔진
기계어(1세대) -> C(2세대) -> C++(2.5세대) -> Java, C#(3세대) 등등
고급언어는 기계어로 변역된다고급언어로 갈수록
- 편의성, 생산성 증가
- 로우레벨 제어, 하드웨어 제어 권한 감소
번역이 끝났을 때 기계어 줄 수가 더 작은 C++이 유리
일반적인 메신저나 브라우저 같은 곳에서는 조금 느리거나 이런 걸 잘 신경안씀.
게임에서는 1프레임 떨어져도 타격이 많이감.
그래서 속력이 더 빠를 가능성이 높은 언어인 C++이 주역
C는 빠르지만 언어의 생산성이 낮음
cf) 언어의 생산성 증가시키는 요소
-> 인간을 생각한 직관적인 문법
-> 객체지향적
비야네 스트롭 스트룹 개발
외줄 타는 언어
-> 따라쟁이 (Java에서 있으면 C++에서 생김 -> 불쾌한 골자기형 문법들이 많이 생김)
-> 성능이랑 생산성에서 외줄을 타는 느낌
오묘한 밸런스가 결국 속력과 생산성을 다 잡아야하는 게임에서 사용
프로그램이란
- xxx.exe 프로그램 실행파일
-> xxx.exe 파일을 만들어내는 사람 => 프로그래머
솔루션
- exe파일을 뽑아낼 수 있는 프로젝트를 여러개 모을 수 있는 단위
- 프로젝트 파일 전체를 포함하는 파일
- 솔루션 밑에 프로젝트 파일
프로젝트
- exe파일을 뽑아내는 파일
- ex)
-> 게임 실행 파일
-> 유지보스 파일
-> 도움을 주는 파일
- LoLItemEditor.exe = LoL 게임 내 Item을 만들고 데이터화 시키는 exe 파일
- LolCampEditor.exe = LoL 게임 내 캐릭터를 만들고 데이터화 시키는 exe 파일
- LoL.exe = 게임을 시작하는 파일
tip) 어느정도 프로젝트가 진행됐으면 자주 커밋을 하자 (2시간에 1번은 커밋하자)
-->에러가 안나는 상태로 커밋할 것
전처리기 (PreProcess)
- 전처리문 = 컴파일이 되기전에 컴파일 이전에 처리되는 것
-> 1. 실제적인 코드와 관련, 의미 없는 것
--> ex) 주석 삭제// 삭제 되는 것(주석) int main() { return 0; }
-> 2. 코드로 치환되어야 하는 전처리문
--> #이 붙는 것 삭제
--> ex) include문 삭제#include <iostream> // 삭제 되는 것 int main() { return 0; }
-> 윈도우 = C++ 기반 코드를 전부 보관
-> Visual Studio = 코드 위치를 사용한다는 설정 되어있음
ex)#include <iostream> 사용하겠다(복사붙여넣기) iostream을(파일)
cf) 확장자 = 사용자가 구분하는데 편리하게 하기위해 넣은 것
행동 (Behavior)
- C++에서 다음과 같은 문법을 지키도록 설계
- (행동의 결과 = 리턴값) (행동의 이름 = 이름) (행동의 조건 = 인자)
// 리턴값 이름 인자 int main () { // 행동의 시작 // 행동의 내용 } // 행동의 끝
// ex)
// 자료형 변수명 대입연산자 초기값(리터럴) 세미콜론(
int Att = 10 ;
// Att라는 공격력을 만들고 초기값을 10으로 넣어줬다.
대입연산자 : 왼쪽에 있는 메모리를 오른쪽에 있는 메모리로 덮어 씌워라
자료형 종류
- void : 아무것도 없음
- int : 정수 (4Byte)
cf) 데이터 크기
1Bit -> 1Byte -> 1KByte -> 1MByte -> 1GByte -> 1TByte
cf) 상태 = 변할 수 있는 것
// 전처리기 (복 붙)
#include <iostream>
// 프로세스 시작
int main()
{ // 행동 시작
// 행동 내용
// -> Att라는 변수는 int(정수) 타입이고 10(상수)이라는 리터럴값(초기값)을 대입연산자로 대입한다.
int Att = 10;
// 1. 스택영역 만들기
// 2. 스택영역에 Att 공간(int 크기) 만들기
// 3. 10이라는 값을 코드 영역에서 가져오기
// 4. 코드영역에 존재하는 대입연산자의 연산 코드 가져오기
// 5. CPU에 Att라는 좌측 메모리와 10이라는 우측메모리를 보내고 복사 연자를 보내기
// 6. Att 메모리에 10을 대입
// ->> Att는 주소값(Byte번지)으로 변함
} // 행동 끝
F5
-> 디버깅 시작
커서 + ctrl + shift + G
-> 커서에 해당하는 파일의 내용
//
// 내용
-> 한줄 주석
/*내용*/
-> 범위 주석
ctrl + K + C
-> 주석(단축키)
파일의 위치 확인
-> 파일에서 우클릭하여 상위 폴더 열기 클릭
cf) 프로그램과 프로세스의 용량 차이가 나는 이유