C에서만 게임 개발. 가능합니까? [닫은]


18

저는 인도의 첫해 대학생이며 이번 학기 프로젝트로 작은 게임을 만들고 싶습니다.

나는 C에 능숙하고 빠르게 배우고 있지만 C (C ++ 또는 C # 없음)로 완전히 게임을 개발할 것인지 묻고 싶었지만 대학 프로젝트에는 C 만 사용해야한다는 엄격한 요구 사항이 있습니다.

내가 찾고있는 것은 간단한 탑 뷰 드라이빙 게임입니다. 멋진 것은 없으며 시각적 인 것조차 단순한 캐릭터로 강화됩니다. 예를 들어, 사용자 제어 차량은 일련의 |로 ▓ 및 도로 가장자리로 표시 될 수 있습니다. 어떻게 생각해?



8
SDL은 C로 작성되었습니다. OpenGL은 C입니다. 더 필요한 것이 무엇입니까?
공산주의 오리

2
또한, 퀘이크는 모두 C에서 이루어집니다.
공산주의 오리


1
RollerCoaster Tycoon은 거의 순결하게 조립되었으므로 왜 안 되겠습니까?
Ramon Zarazua B.

답변:


23

C로 게임을 할 수 있습니다. 예를 들어, Quake II 는 순수하게 C로 작성되었으므로 C로 다른 게임을 작성해도 전혀 문제가되지 않습니다. C ++보다 C에 능숙하고 편안하면 더 나은 선택 일 수 있습니다.


2
@Ishan Sharma : 사실, 많은 게임 (엔진) 개발은 여전히 ​​C 나 최소한 C : ish C ++에서는 여전히 돈입니다. C ++ 게임이 C ++이기 때문에 더 좋거나 더 잘 쓰여질 것이라고는 아무것도 말하지 않습니다.
void

6
@void : 문제의 프로그래머가 C ++을 효과적으로 사용하는 방법에 대해 전혀 모르는 경우에만 해당됩니다. 라이터가 기본적으로 객체 방향을 이해하는 곳에서 작성된 C ++ 프로그램은 동등한 C 프로그램보다 훨씬 안전하고 신뢰할 수 있습니다.
DeadMG

8
@DeadMG [인용 필요]
Bob Somers

6
@ 밥 소머 : 쉬워요. 비교 std::stringchar*. std::string어떤 상황에서도 항상 자체 메모리를 정리하고 매번 올바른 양을 할당합니다. char*, 여유 공간 확보 또는 이중 여유 공간 확보 또는 메모리 할당 부족을 잊어 버릴 수 있습니다. 으악. 기본 논리에 따르면 C ++ 프로그램은 C 프로그램보다 안전하고 안전합니다.
DeadMG

12
@DeadMG 좋은 프로그래머는 모든 언어로 안전하고 좋은 코드를 작성할 수 있습니다. 반대로, 나쁜 프로그래머는 모든 언어로 끔찍하고 안전하지 않은 코드를 작성할 수 있습니다. 가난한 목수는 자신의 도구를 비난합니다.
밥 소머

11

나는 순수한 C 인 AAA MMORPG 코드베이스에서 일하고 있습니다. 그렇습니다.


5
나는 그것이 당신을 Cryptic에 넣는 것 같아요. 어떤 종류의 스크립팅 언어를 사용하십니까?
Dan Olson

3
우리는 기본적으로 모든 것에 대해 디자이너가 사용하는 내부 표현 언어를 가지고 있으며, 파이썬과 루아를 혼합하여 사용합니다 (오프라인 처리, 통계를 위해 게임 DBS에서 맵 축소).하지만 게임 자체에는 실제 스크립팅 언어가 없습니다.
coderanger

6

예, 완벽하게 가능합니다. POSIX 및 Windows, DirectX 및 OpenGL과 같은 많은 OS 수준 API에는 모두 C 호환 인터페이스가 있습니다.


6

Fabien Sanglard는 3D 엔진에 관한 기사를 C로 작성했습니다. 레딧에서이 기사는 흥미로운 토론을 만들었습니다.

언어는 도구 일 뿐이므로 현명하게 사용하십시오. 좋은 게임을 만들려면 XNA 또는 Unity3D를 사용하는 것이 더 쉽습니다. C를 마스터하는 것은 좋은 첫 단계이지만 C ++, D, python, lua를 배워야합니다. C ++은 매우 어려운 언어입니다. 주의해서 사용하십시오.


3

C는 게임 개발에 좋습니다.

3D 플랫 포머에서 일하고 있는데 언어에 아무런 문제가 없었습니다. 유일한 문제는 충돌 감지 및 음영 처리에 관한 것입니다.

실제로 C # 및 Java와 같은 언어보다 훨씬 쉽습니다. 난 항상 포인터 (사용 기관에 반복 내 코드에서 예를 ) 및 fread지도 로더를 만드는 많은 시간을 저장.

객체 방향과 모듈성을 원한다면 함수 포인터의 구조를 만들 수 있습니다.


1

의심없이. 게임 개발에 유용한 많은 라이브러리 (예 : SDL, PhysFS 등)에는 C API가 있습니다.

확장 가능한 고급 프로그래밍을 수행하려는 경우 lua 와 같은 스크립팅 언어를 포함하는 것이 좋습니다. 많은 사람들이 AI, 이벤트 등과 같은 것들에 루아를 사용하는 C 프레임 워크 프로그래밍의 매력을 느끼기 시작했습니다.

행운을 빕니다.


1

이 질문에 대한 간단한 대답은 모든 프로그래밍 언어에서 이와 같은 간단한 텍스트 기반 게임을 할 수 있다는 것입니다. 심지어 파스칼, 기본 또는 x86 어셈블러 :]

(그리고 다른 것은 필요하지 않습니다)


0

그렇습니다. 가능하지만 가장 바람직한 행동이 아닐 수도 있습니다. 요즘 많은 사람들이 C와 C ++가 여러 작업에 이상적이지 않으며 높은 수준의 게임 로직이 종종 그 범주에 속한다는 것을 알고 있습니다.

C ++ 대신 C를 고집한다면 (나에게 의미가 없지만 각각 자신에게) Lua를 C와 함께 사용하는 것이 가장 좋습니다.

C가 필요한 대학 프로젝트의 경우 이것은 선택 사항이 아니지만 여가 시간 프로젝트의 경우 배우는 좋은 방법입니다.


Lua는 개발 시간에는 능숙하지만 출시 전에는 모든 것을 기본 언어로 포팅하여 성능을 향상시켜야합니다.
Triang3l

@ Triang3l 전혀 동의하지 않습니다. 당신이 설명하는 것은 조기 최적화입니다. 모국어를 사용한다고해서 코드 속도가 더 빨라지는 것은 아닙니다. 이를 수행하는 올바른 방법은 코드를 프로파일 링하고 병목 현상을 찾아 해당 코드를 개선하는 것입니다. 개발자가 Java 코드를 대체하기 위해 자체 C 코드를 작성하려고 시도하고 C 코드가 상당히 느려졌거나 개발자가 C 코드를 상당히 느린 어셈블리 코드로 대체하려고 시도한 사례가 많이 있습니다. 고급 언어 개발자와이를위한 런타임 환경을 과소 평가하지 마십시오.
user1657170

0

물론 당신은 할 수. 많은 게임들이 C로 프로그래밍되었습니다 (DOOM이 떠 오릅니다). SDL은 C로 작성된 게임 프로그래밍 라이브러리입니다.

물론 큰 프로젝트에 C ++을 사용하는 것보다 조금 더 어려울 수 있지만 가능합니다.


0

완전한 C 게임을 만드는 것이 가능하다고 생각합니다. 터보 C 컴파일러를 사용하여 2 학기 프로젝트에서 게임 (nokia 1110 mobile의 '공간 영향'과 유사)을 만들었습니다. 나는 당신이 다른 사람을 알지 않고도 (1 학년 대학생으로서)이 방법을 시도 할 수 있다고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.