fireguy
2k
2017-06-19 21:37:14.0
3
424

OpenGL/C++ 를 공부하며 느낀점..


게임 그래픽 공부를 위해서 OpenGL을 들여다 보았습니다..

아주 간단한 C++ 코드와 glfw의 glut를 이용하면.. 아름다운 삼각형과.. Teapot 그려지는 것을 보고..

깊은 감명을 받았습니다.

생각보다 어렵지 않으며...

일단 MFC나 Win32보다 훨씬 코드가 간결하고 깔끔하단 느낌을 받았습니다.

마우스나 키보드 조작도 훨씬 슆습니다... 딱 게임 프로그래밍을 하기엔 최적의 그래픽 라이브러리가 아닐까 하는 생각이들어... 조금더 파고 들어보기로 했습니다. ^^

게임 공부하시려는 분께는... 초보자 입문용으로 적극 추천합니다 ..ㅎㅎ


0
0
  • 댓글 3

  • fender
    9k
    2017-06-20 00:18:46.0 작성 2017-06-20 10:59:40.0 수정됨

    참고로, 게임 쪽도 다른 분야와 마찬가지로 꽤 계층화가 진행된 상황입니다. 그래서 OpenGL이나 DirectX 수준의 API를 공부하는 것이 의미가 있긴 하지만, 목표가 게임 제작이라면 개인적으로는 모든 초보자들이 이 곳에서 출발해야 한다고 생각하지 않습니다.

    게임 분야에는 가장 높은 추상화 계층엔 게임 메이커(GameMaker)와 같이 제한된 종류의 게임을 매우 쉽게 만들 수 있는 제품들이 있고, 반대쪽의 가장 낮은 바닥에 말씀하신 OpenGLDirectX가 있습니다.

    그 중간엔 유니티(Unity)나 언리얼(Unreal) 등 범용 게임 엔진들이나, 더 낮은 계층의 libGDX 같은 라이브러리 같은 제품들이 있습니다.

    개인적으로는 인디 게임 개발자를 목표로 한다면 최소한 범용 게임 엔진에서 출발하는 것을 권하고 싶습니다. OpenGL로 화면에 도형을 그리는 것과, 예컨대 스팀(Steam)에 등록되는 괜찮은 독립 개발자의 게임들 사이엔 꽤나 아득한 간극이 있습니다.

    아마 대부분의 개발자들에게는, 그 간극을 저수준 API만 가지고 몇 년 안에 따라 잡는 것은 사실상 불가능한 일이 될 것입니다.

    (그리고 기준이 1인 개발자 수준이 아니라 보통 게임 제작사가 내놓는 그런 게임들로 넘어가면, 그냥 딱 잘라 말해서 불가능합니다).

    반면, 범용 게임 엔진에서 출발하는 경우 그런 부류의 게임을 쉽게 만들 수도 있고, 선택에 따라 특화된 기능을 위해 필요할 때 OpenGL/DirectX나 벌컨(Vulkan) 등 API를 배워서 사용할 수도 있습니다.

    설사 본인의 목표가 게임 엔진 자체를 개발하는 것이라도 최소한 기존 게임 엔진들은 어떤 종류의 기능을 제공하는지 문제의 범위에 대한 이해가 있어야 현실적인 접근이 가능할 것입니다.

    차라리 게임 개발이 목표이고 시간이 좀 여유가 있다면, 저수준 API를 보기 이전에 블렌더(Blender) 같은 모델링/애니메이션 도구나 섭스턴스(Substance) 같은 텍스쳐링 도구를 공부해보는 것을 추천하고 싶습니다.

    게임 개발을 하다보면 모델링, 애니메이션, 텍스쳐링 등과 관련한 개념들을 이해해야 풀 수 있는 문제가 꽤 많습니다. 그래서 디자이너가 아니라도, 예컨대 노멀(normal)이 무엇인지, IK(inverse kinematics)이 무엇인지, 스페큘러 맵(specular map)이 무엇인지 등을 이해하는 것이 도움이 됩니다.

    특히 1인 개발자 입장에선 어쩔 수 없이 디자인 컨텐트를 직접 다뤄야 할 일이 생길 가능성이 많기도 하기 때문에, 그런 쪽으로 방향을 잡는다면 어느 정도는 게임 제작에 걸치는 분야는 조금씩 발 담궈 볼 필요가 있다고 봅니다.

    1
  • 꾸아앙
    509
    2017-06-20 08:41:50.0

    윗분 말씀에 동의를 못하는 부분이 있네요

    게임개발자가 목표라면 DirectX, OpenGl등으로 시작하는게 가장 좋습니다

    엔진부터 사용하면 렌더링 파이프라인 단계조차 제대로 이해를 못하게 될 확률이 높습니다

    그리고 엔진개발이 목표라면 DX, Gl보다 더 낮은레벨로 렌더링파이프라인부터 만들수있는 소프트웨어 렌더링을 공부해야합니다

    말씀하신 normal, ik 등 그런 개념은 DX나 GL로 프로젝트하나 진행하다보면 전부 이해되는 개념입니다

    오히려 엔진으로 시작한사람보다 깊게 이해해서 같은 엔진을 사용해도 더 최적화를 잘 하게됩니다

    사소한 렉, 사소한 버그로 망하는 게임이 많은데 제대로 이해하고 시작하는게 더 좋습니다

    물론 1인개발이라면 엔진으로 시작하는게 현실적이지만요

    1
  • fireguy
    2k
    2017-06-20 09:28:23.0

    두분 말씀 감사합니다..

    둘다 해봐야 할것 같아요...^^.. 조만간 유니티랑, 언리얼엔진도... 공부해볼 예정입니다 ^^

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.