일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Game Developement
- Unreal
- HLSL
- unreal niagara
- hlsl with unreal
- CSS
- niagara.pdb 로드되지 않음
- render target2d
- Agile 게임 개발
- unreal compute shader
- scroll-snap
- Niagara
- Riot Games
- unreal niagara with compute shader
- visual studio integration tool 상태
- Compute Shader
- unreal visual studio
- texture render target
- Fluid simulation
- unreal compute shader #unreal niagara #unreal #compute shader #unreal niagara with compute shader
- JavaScript
- page dot
- unreal c++ #unreal #unreal build #unreal
- IntersectionObserver
- kanban
- render target
- League of Legend
- jquery
- carousel indicator
- HTML
- Today
- Total
Nephrite21
게임 프로그래밍 언어로의 C# 본문
게임 프로그래밍을 하는 데 필요한 언어는 Unreal에서 사용하는 C++과 Unity에서 사용하는 C#이 주류를 이루고, Phython, Lua, Javascript 등의 스크립트 언어도 사용하는 경우가 있다. 하지만 스크립트 언어의 경우에는 로딩 및 실행 속도가 C/C++에 비해 느리고(binary 실행 파일이 없는경우가 많으므로), 시스템을 구현하는데 제약이 존재한다. 따라서 대부분의 경우에서 C++과 C#를 사용하는데, 그 중 C#에 대해서 자세히 알아보겠다.
1.C#
C#의 개발 동기
C#은 2000년도에 Anders Hejilsberg 의해 개발된 언어이다. 그때 당시 큰 프로그램을 제작하는 데 C의 한계가 있었고, 이를 보완하기 위해 객체지향의 C++이 개발되었다. 하지만 C++은 언어의 이식성이 부족하다고 여겨졌고, 이를 보완한 Java가 나타났다. 이러한 상황에서 C#은 Java에서 부족하다고 여겨진 다른 프로그래밍 언어와의 상호 운용성을 보완하기 위해 만들어졌다.
C# Design Philoshophy
- It is intended to be simple, modern, general purpose, and object oriented programming language.
- It should include strong type checking, array bound checking, detection of attempts to use uninitialized variables, source code portability and automatic garbage collection.
- It is intended for use in developing software components than can take advantage of distributed environments.
- As programmer portability is very much important, especially for those programmers already familiar with C & C++, C# is best suitable.
- Provide support for internationalization, as it was very important.
- It is intended to be suitable for writing applications for both hosted and embedded systems.
위에서부터,
- C#은 심플하고 모던하며 특정 목적으로만 사용이 아닌 일반 프로그래밍 언어이며, 객체 지향적 언어이다.
- C#은 strong type checking, array bound checking, uninitialized된 변수들의 사용 감지, 소스 코드의 이식성과 자동 garbage collection을 포함해야 한다.
- C#은 distributed 환경에 맞는 software component를 개발하기 위한 목적을 가지고 있는 언어이다.
- 개발자 유입이 중요하므로,C와 C++를 아는 개발자들이 쉽게 사용할 수 있도록 C#을 만들어야 한다.
- 국제화가 굉장히 중요하므로 C#은 이에 따른 서포트를 제공해야 한다.
- C#은 host와 embedded 시스템에서 사용하는 모든 프로그램을 작성하는 것을 목적으로 가지고 있는 언어이다
정리하자면 범용적으로 사용될 수 있는 객체 지향적 언어라고 볼 수 있다.,
C#의 장점과 단점
장점:
- 코드의 이식성(OS에 구애를 덜 받음)
- 엄격한 문법 (암묵적 오류 방지)
- 메모리 관리(garbage collection)
- 다양한 라이브러리
단점
- 속도(.Net framework를 통해 작동 -> 속도 저하)
- 매크로와 템플릿 사용 불가능(C++에 비해 제한사항이 많음)
- 게임 개발 방면 이외에는 user 수가 적어서 자료 양이 적음
C#을 이용해 만든 프로그램들
C#을 이용해서 만드는 프로그램으로는 윈도우 데스크톱 애플리케이션/ 웹 애플리케이션/ 모바일 앱 개발/ 인공지능/빅데이터 등등이 있을 수 있지만, 게임 개발자를 희망하는 나는 게임 개발 쪽으로의 C#프로그램에 대해 알아보겠다.
1.Unity
유니티는 3D및 2D게임 개발용 게임 엔진으로, 언리얼 엔진과 더불어 게임 개발 분야에서 손꼽히는 게임 엔진이다. 멀티 플랫폼을 매우 활발하게 지원중으로, 윈도우,MacOS,웹,앱,콘솔 등에서 작동하는 프로젝트를 만들 수 있고, 지원 영역도 확장중이다. 또한 오픈소스는 아니지만 취미로 이용 시에는 무료로 사용 가능하다.
2.Godot
고도는 OKAM에서 만든 게임 엔진으로 MIT 라이선스에 따라 완전 무료로 배포되었다. 메인 언어는 GDScript라는 전용 언어이지만 C#과 추가로 C++도 지원한다.
3.Stride
스트라이드는 실리콘 스튜디오에서 개발한 게임엔진으로, 유니티와 유사하며, 완성도가 높다고 한다. 2018년 MIT 라이선스로 변경되어 오픈소스화 되었다. 이 엔진 또한 사용료는 무료이며, 로열티도 없는 형태로 배포중이다.
출처:
[TheCompleteReference C# 4.0]
[C# Roadmap]
https://github.com/dotnet/roslyn/blob/main/docs/Language%20Feature%20Status.md
'개발자의 생각' 카테고리의 다른 글
게임 개발에서의 Agile에 대한 고찰 (0) | 2023.04.02 |
---|