[인디게임 개발일지 #번외] 인디팀의 시행착오, 그리고 우리가 ‘아트’를 다시 구하게 된 이유
·
인디게임 개발일지
👉 아트 공고를 보고 오신 분께선 3번 항목으로 바로 이동하시면 됩니다! 0️⃣ 인디팀의 시행착오와 현실 그동안의 우리 포스팅을 봐온 사람이라면 "이햐~ 제법 잘 만들고 있는 게임이잖아?!" 라고 생각할 사람들이 많았을 것이다. 물론 나도 그런 상태로 고양 되어 있어서 상당히 즐겁게 게임을 만들고 있었다. 우리 게임, 제법 잘 되고 있을지도?! 라는 생각이었지만 지난 일주일간 겪은 가슴 아픈 성장통에 대해서 이야기 해보겠다. 난 이번 기회에 정말 성장했다고 느꼈다. 혹시나 모를 이야기를 위해서, 기존 우리팀의 소개는 아래 게시글에서 확인할 수 있다. [인디게임 개발일지 #2] 턴제 RPG의 시작! 세계관 시나리오부터 캐릭터 원화, 게임 루프 설계까지0️⃣ 첫오프라인 회의 첫 개발일지를 쓴 지 2주가 ..
C# 문법 : Dart와 비교해서 C# 데이터 타입 살펴보기
·
C#
0️⃣ 우선 C#이란 C#은 Microsoft 사에서 개발한 객체지향형 프로그래밍 언어로 Windows 애플리케이션 및 웹 애플리케이션 개발에 사용된다. 비슷한 언어로는 Java, C++, 그리고 Dart가 있다! Dart 90%에 Kotlin 10% 조금 섞은 게 C#이라고 하니 아마 내가 새로 배우기에도 크게 어렵지 않을 거라 생각한다. 두근두근 신나는 마음으로 C# 공부를 시작해보자. (사실 C#보다 유니티라는 툴 자체에 익숙해지는 게 더 어려울 것 같다.) Dart를 기준으로 설명할 것이기 때문에 왕초보가 보기엔 바로 이해하기에 어려울 수 있다는 점 미리 고지한다. ~ C#으로 만드는 프로그램 ~윈도우 프로그램: 윈도우에서 돌아가는 건 다 만듦ex) Visual Studio, 주식 매매 프로그램..
[인디게임 개발일지 #4] 아트워크 대공개, 플랫포머 게임의 배경은 어떻게 그릴까? (배경편)
·
인디게임 개발일지
0️⃣ 결국 분위기는 배경! 이전에 사랑스러운 주인공의 2D 애니메이션을 공개했던 것, 기억나는가! 설마 아직도 안 보았다면 아래 게시물을 보고 오자. (정신 없이 움직이는 머핀 gif 썸네일이 아주 킹 받긴 하지만 실제로 보면 정말 귀엽다.) [인디게임 개발일지 #3] 아트워크 대공개, Spine 없이 한땀한땀 움직이는 2D 애니메이션! (캐릭터편)0️⃣ HAPPY NEW YEAR! 2026년 신년이 밝았다. 인디게임 개발을 시작한지도 어느덧 3개월 째... 두 달 동안은 미친듯이 기획과 스토리에만 매달렸지만 12월 한 달은 나의 본분, 아트워크에만 매진했었다kkevido.tistory.com 게임의 주인은 '캐릭터'라면 분위기를 좌지우지 하는 것은 '배경'이라고 생각한다. 배경이 어떠냐에 따라 그 ..
Flutter의 핵심, Element Tree
·
Flutter
0️⃣ 오랜만에 Flutter 이론 공부다... 마지막으로 Flutter 이론 공부한 게 2년 전 쯤 같은데, 아무래도 좀 더 심화 버전으로 공부를 더 해야할 것 같아서 복습 겸 적어본다. 우선, 내가 처음 Flutter를 공부하면서 처음 깨달음을 얻고 흥미를 느꼈던 부분이 바로 context다. 이때부터 Flutter를 아주 재미있게 공부하며 실무에 적용한 것 같다. Flutter에서 context란 도대체 무엇일까?Flutter의 context란 도대체 무엇일까?context의 개념을 이해하기 위해선 먼저 Widget Tree에 대해 알아야한다.1️⃣ Widget Tree Widget은 Flutter의 모든 것이라고 해도 과언이 아닐 정도로 위젯으로 시작해서kkevido.tistory.com 위 포스..
Dart는 Single Thread 언어! 비동기는 어떻게?
·
Dart
0️⃣ Single Thread Dart는 싱글 스레드 언어라는 말, 많이 들어보았을 것이다. Javscript도 싱글 스레드 언어이기 때문에 두 언어가 비슷하게 동작할 것이라고 보통 예상하지만 실상은 전혀 다르다. 우선 싱글 스레드가 무엇인지에 대해서부터 알아보자. (프로세스와 스레드의 개념에 대해서도 이해하고 있어야 하므로 아래 글을 먼저 읽고 와서 다시 보자!) [얼레벌레 공부하는 CS] 프로세스와 스레드0️⃣ 프로세스란?프로세스는 현재 실행중인 프로그램을 의미한다. 프로그램 그 자체는 보조기억장치에 보존되어있는 데이터지만 이 프로그램을 RAM에 적재하여 실행하는 순간 프로세스라고 부kkevido.tistory.com 위 글을 다시 읽고 와서 스레드가 무엇인지 다시 정의해보자면,프로세스가 할당 받..
[인디게임 개발일지 #3] 아트워크 대공개, Spine 없이 한땀한땀 움직이는 2D 애니메이션! (캐릭터편)
·
인디게임 개발일지
0️⃣ HAPPY NEW YEAR! 2026년 신년이 밝았다. 인디게임 개발을 시작한지도 어느덧 3개월 째... 두 달 동안은 미친듯이 기획과 스토리에만 매달렸지만 12월 한 달은 나의 본분, 아트워크에만 매진했었다. 루시는 기획자 겸, TA로서 레벨 디자인에 맞춰서 맵을 찍고 아트워크의 방대한 분량 때문에 배경 작업에 붙어 작업해주고 있다. 마크는 우리 게임의 하이라이트 턴제 전투 시스템을 루시의 기획에 맞추어 새로이 개발하고 있는데 저번에 회의하며 살짝 보았을 땐 완전 멋있었다! 레벨 디자인과 전투 시스템은 순차적으로 공개하도록 하고, 우선 내가 열심히 그린 우리 캐릭터들이나 보자! 1️⃣ 전체적인 아트 컨셉 우리 게임의 첫 이름은, (실은 아직도 가제긴 하지만) 인형공장이었다. 지금 Figma ..
Dart가 효율적으로 메모리를 관리하는 방법, DartVM
·
Dart
0️⃣ DartVM을 이해하기 전에 먼저 알아야 할 지식들 DartVM, 즉 Dart Virtual Machine에 대해서 제대로 알기 위해선 약간의 사전지식들이 필요하다. 기본적인 OS의 메모리 관리 개념과, Flutter의 release모드, debug모드를 관리하는 JIT,AOT 엔진에 대해 알아야 한다. 우선 Heap과 Stack Heap과 Stack에 대해서 알아야한다. 모르면 처음부터 이해가 안 된다. 작년에 CS 공부를 열심히 할 때 보다 이해하기 쉽게 정리해놓은 내용이 있으니 꼭 읽어보자. 특히 4번의 Heap영역이 지나치게 크다면? 이라는 항목은 DartVM을 이해하기 위해선 빼놓을 수 없다. 결국 핵심은 Heap 영역에서 이루어지는 GC이기 때문이다. [얼레벌레 공부하는 CS] Heap..
Flutter는 컴파일 언어? 인터프리터 언어? JIT와 AOT의 원리
·
Flutter
0️⃣ Flutter는 컴파일 언어인가요 인터프리터 언어인가요? 어느날 갑자기 동료가 물어보았다! "Flutter는 컴파일 언어인가요, 인터프리터 언어인가요?" 컴파일 언어와 인터프리터 언어에 대해 구분하여 공부해본 적은 있어도 정작 내가 주로 사용하는 언어가 어떤 유형의 언어인지는 궁금해 한 적이 없다. 그래서 얼렁뚱땅 컴파일 언어인 걸로 알고 있었어요... 라고 대답했지만 정작 이 부분에 깊게 공부해보니 JIT와 AOT의 개념이 등장하기 시작했다. 하지만 JIT와 AOT를 제대로 알기 위해선 컴파일 언어와 인터프리터 언어에 대해서 알고 있어야 한다. 컴파일 언어와 인터프리터 언어에 대한 구체적인 차이점은 이전 블로그 포스팅을 통해 확인할 수 있다. 대충 이런 내용이니 아래 내용을 통해 확인해보자. [..
[인디게임 개발일지 #번외] 🎄'나노바나나'가 그림을 잘 그린다고?! 배경투명화도 못 한다.
·
인디게임 개발일지
🍌 Nano Banana! 나노 바나나가 대유행이라는 것, 이미 다들 알고 있을 것이다. 덕분에 많은 아티스트들과 디자이너들이 일자리 걱정을 하게 된 원인이기도 하다. Gemini 3.0 Pro를 결제하여 사용하고 있는 개발자 겸 아트디렉터로서 나노바나나를 사용해보지 않을 수가 없다. 우선, 나노바나나가 뭔지 알아보자. 나노 바나나(Nano Banana)는, 구글의 AI모델인 Gemini에 탑재된 최신 이미지 생성 엔진의 정식 명칭이다. Gemini에도 여러 엔진이 있는데 Gemini 2.5 Flash Image와 Gemini 3 Pro Image 모델의 공식 이름이라고 보면 된다. 25년 11월 19일에 3.0이 나오며 AI에 혁명이 일어났다! 라고 난리가 났었으며, 다들 Gemini DeepMin..
10년 묵은 레거시... Gemini와 Claude를 200% 활용한 바이브 코딩 후기
·
etc
0️⃣ 도대체 내가 왜 PHP를...여전히 의문이다 (젠장)... 도대체 내가 왜 PHP를 하고 있는지가... 의문은 고이 접어두고 PHP를 아예 할 줄 모르는 모바일 개발자로서 완전히 꼬여버린 스파게티 레거시 코드, PHP를 어떻게 풀어나가는지에 대해 설명하겠다. (내가 PHP를 완전히 할 줄 모른다 뿐이지, HTML/CSS는 할 줄 알고, React/Next.js의 간단한 퍼블리싱 정도 및 라이브러리 연동은 할 줄 아는 초보 웹개발자 수준에 가깝다는 걸 미리 알린다.)1️⃣ PHP 레거시 현황부터 알아보자 개발자라면 응당 AI를 사용해서 개발하기 마련. 몇 년 전만 해도 AI는 커녕 구글 서치에 의존하여 버그를 고치곤 했었는데 덕분에 구글 서치력 하나는 끝내주게 늘어서 지금까지 유용한 능력으로 활용되..
localhost:8080 모바일에서 열기
·
etc
0️⃣ 모바일에서 localhost를 열어야만 하는 상황 F12를 통해 모바일 반응형을 보는 게 한계가 있을 때가 있다. 물론 여러상황이 있겠지만 나 같은 경우엔 반응형 Swiper 화면이 PC에서 반응형으로 보면 제대로 Swipping 되지 않는데, 실제 디바이스에서는 제대로 Swipping 되는 버그가 발생했었다. 이를 확실하게 확인하기 위해서 모바일 디바이스에서 로컬 환경을 열어야만 했다.1️⃣ 같은 WIFI 연결하기 우선 맥북을 기준으로 설명하겠다. 우선 맥북이 현재 연결되어있는 와이파이와 내가 로컬에 접속하고 싶은 모바일 디바이스의 와이파이가 일치해야한다. 때문에 이렇게 연결되어 있는 와이파이를 확인하고, 맥북과 휴대폰의 와이파이를 일치시킨다. 2️⃣ 현재 WIFI IP 주소 확인하기 맥북의 와..
Dart의 final과 const의 차이, 네트워크 관점에서 바라보기
·
Dart
0️⃣ Prefer const with constant constructors Flutter 개발을 하다 보면 IDE에서 정말 지겹게 보는 경고문이 있다. 사실 이제는 자주 안 보지만, 어쩌다 한 번씩 까먹게 되면 파란 밑줄이 생기면서 아래와 같은 경고문이 나온다.Prefer const with constant constructors. 이 경고는 사실 무시하고 넘어가도 되는 부분이지만 굳이 안 고칠 이유도 없고 방법도 간단해서 무조건 고치고 넘어간다. 그냥 선언한 위젯, 변수 앞에 const를 붙여주기만 하면 된다. 그리고 이 과정에서 필연적으로 생기는 의문이 있다.도대체 왜! Dart는 const와 final을 굳이 나눴을까? 그리고 왜 const를 붙여야 할까? 둘 다 한 번 선언하면 값을 바꿀 수..