Hedra는 제가 고등학생 때 바닥부터 직접 만든 3D 오픈 월드 게임입니다

Hedra is a 3D open world game I wrote from scratch while in highschool

github.com/maxilevi ▲ 183 댓글 32 maxilevi

요약

고등학생이 OpenGL을 배우려고 시작한 Hedra가 10만 줄짜리 3D 게임과 엔진으로 자랐습니다.

개발자 maxilevi가 약 10년 전 고등학생 때 시작한 게임의 코드를 GitHub에 공개했습니다. 만들다 보니 범위가 계속 커져 로우폴리(적은 다각형으로 단순하게 표현한 그래픽) 오픈 월드 RPG와 자체 엔진이 됐고, Steam에도 올라와 있습니다.

왜 중요한가

  • 한 사람이 렌더링부터 월드 생성, 모드 API까지 갖춘 게임 엔진을 직접 짤 수 있다는 사례입니다.
  • 작성자는 AI 코딩이 흔해진 지금 보면 10만 줄을 손으로 쓴 일이 다른 시대의 유물 같다고 했습니다.

핵심 내용

  • C#(.NET)으로 썼고, OpenGL 렌더링에 Bullet 물리 엔진과 OpenAL 사운드를 붙여 리눅스와 윈도를 지원합니다.
  • 월드와 퀘스트, 보스를 절차적 생성(규칙에 따라 자동으로 만드는 방식)으로 만듭니다.
  • 저장 파일에는 플레이어 정보와 월드 시드만 담고, 나머지는 실행할 때마다 다시 생성합니다.
  • 게임 자체를 엔진 위의 모드로 만들어 모드 API가 늘 관리되도록 했고, 파이썬 스크립트도 지원합니다.
  • 월드 전체를 물, 지형, 인스턴스 묶음의 그리기 호출 세 번 정도로 렌더링하는 등 성능에도 공을 들였습니다.

HN 반응

  • AI 없이 혼자 만든 작품이라 영감을 준다는 찬사가 많았고, 직접 손으로 만드는 프로젝트를 계속 이어 가자는 목소리도 나왔습니다.
  • '바닥부터 직접 썼다'는 말이 예전엔 외부 패키지 없이 짰다는 뜻이었지만 이제는 AI를 안 썼다는 뜻으로 바뀌고 있다는 지적도 나왔습니다.

댓글

17개 표시 · 전체 32개
  1. maxilevi HN

    이 게임은 거의 10년 전 고등학생 때 OpenGL을 배우려고 시작했습니다. 금세 범위가 걷잡을 수 없이 커졌고, 결국 애니메이션, 렌더링 효과, 동적 지형 등을 갖춘 본격적인 3D 게임이자 엔진이 되었습니다. 코드는 약 10만 줄이고, 리눅스와 윈도를 네이티브로 지원합니다.

    공유해 보면 좋겠다 싶었습니다. 요즘은 AI로 코딩하는 시대라 이 게임이 지난 시대의 유물처럼 느껴집니다. 지금 10만 줄을 손으로 쓴다니, 상상하기 어렵네요!

  2. adamddev1 HN

    정말 멋집니다. 공유해 주셔서 감사합니다! 한 사람이 이런 걸 만들어 낼 수 있다는 걸 보니 힘이 납니다. 물론 'AI가 만든 티'는 전혀 나지 않습니다. 슬쩍만 봐도 직접 만든 독창적인 작품이라는 게 느껴집니다. 이 모든 걸 직접 고민하고 손으로 코딩하면서 얻으신 것만큼 배우지 못할 사람이 많을 거라 생각하면 안타깝기도 합니다.

    "이제는 AI 코딩 시대니까 뭐든 AI로 코딩한다"는 생각에는 계속 맞서야 한다고 봅니다. 계속 무언가를 만들어 갑시다. 특히 애정을 쏟는 프로젝트는 손으로 정성껏 만들고, 그것을 당연하게 여기게 만들어 가요. AI 없이 코딩하는 사람도 여전히 많습니다.

  3. jh3nd3rs0n HN

    공유해 주셔서 감사합니다. AI 없이 만든 게임을 보니 반갑네요.

  4. aoguerrero HN

    게임을 받아서 해 봤는데, 오래된 제 PC에서도 부드럽게 돌아가서 정말 재미있게 즐겼습니다.

    여기에 들인 노력과 실력에 진심으로 감탄합니다. 저는 3D 게임 프로그래밍과 OpenGL에 여러 번 도전해 봤지만, 제 실력과 인내심으로는 어림도 없더군요.

    그야말로 예술 작품입니다. 프로그래밍에 대한 열정으로 만드신 작품이네요. 감사합니다!

  5. panza HN

    고등학생 때, 그것도 AI 없이 만들었다니 정말 겸손해지게 됩니다.

    여담이지만, 2026년에 '처음부터 직접 썼다'거나 '손으로 썼다'는 말이 쓰이는 방식이 흥미롭습니다. 말 그대로 전부를 뜻하는 경우도 봤고, 엔진 핵심만 직접 짜고 군데군데 SDL을 곁들였다는 뜻인 경우도 있습니다. 이제는 그저 'AI를 전혀 쓰지 않았다'는 뜻일 수도 있겠네요.

  6. serf HN

    맞아요.

    제 머릿속에는 아직도 "처음부터 작성"이라면 패키지 없이 순수한 언어만으로 짠 걸 뜻하던 시절이 박혀 있어요.

    저보다 나이 많은 분들은 이미 잘 돌아가는 컴파일러를 그냥 받아 쓸 수 있다는 것 자체를 코웃음 치며 보시잖아요..

    '컴퓨터' 분야는 나이나 기대치 면에서 팬층이 주변 어떤 분야보다 다양한 편인데, 우리는 분명 새로운 시대로 들어서고 있어요.

  7. skyberrys HN

    로우폴리 감성이 마음에 듭니다. 아마 당신이나 이 사이트 사람들 절반쯤은 고등학생 때 게임 하나쯤 만들어 봤을 거예요. 이 이야기를 하기에 딱 맞는 곳에 오셨네요.

  8. chrysoprace HN

    모드 API를 중심으로 게임을 만드신 게 정말 멋지다고 생각합니다. 모든 게임이 이렇게 만들어야 한다고 생각하고, 장인 정신으로 만든 프로젝트를 정말 좋아합니다.

  9. djmips HN

    (2016) 지금 우리가 사는 시대라서 더욱 중요합니다.

  10. KolmogorovComp HN

    제 기억이 맞다면 CubeWorld가 떠오르네요. 칭찬입니다!

  11. chrysoprace HN

    Cube World의 외형은 좋았지만 그 뒤에 나온 모습은 별로였다면, Veloren[0]이 마음에 들 수도 있습니다. Cube World에서 영감을 받아 만드는 무료 GPLv3 프로젝트입니다.

    [0] https://veloren.net/

  12. skizm HN

    OpenGL은 어디서 시작하셨나요? 따라 하신 튜토리얼이 있나요?

  13. mrmckizzle HN

    스팀 위시리스트에 담았습니다. 공유해 주셔서 감사합니다.

  14. dead_hn_theory HN

    와, 진짜... Collada요? 정말 오랜만에 듣는 이름이네요. 저는 Ogre3D와 Sauerbraten(Cube)에 아직도 애틋한 추억이 있어요.

  15. 0x23alfonso HN

    감성이 마음에 듭니다. 완성도 있는 게임으로 자리 잡길 바랍니다.

  16. sabujp HN

    훌륭한 작품입니다. 그런데 손으로 썼다고 하셨을 때, 자동 완성이 코드를 채워 주거나 메서드 호출의 인라인 문서를 보여 주는 정도는 썼다는 뜻인가요, 아니면 자동 완성 없이 정말 전부 손으로 쓰셨다는 뜻인가요?

  17. ideasphere HN

    저는 자동 완성을 썼는데 그게 반칙 같아서 모든 프로그램을 냅킨에 손으로 쓰고, 스캔해서 tesseract로 디지털화했거든요. 근데 그것도 반칙 같아서 스캔본을 mspaint에서 직접 따라 그린 다음 제가 만든 OCR로 변환했는데, 그것도 반칙 같아서...

Hacker News에서 보기 ↗