내가 일하며 알게 된 프로그래밍
article thumbnail
C# Winform vs WPF
프로그래밍/ETC 2024. 5. 13. 16:40

최근 개인 프로젝트를 진행하면서어떤 모델로 개발을 해야할까 싶은 생각에뉴비 시절 WPF를 썼던 기억이 다시금 떠올라이번에는 Winform으로 개발을 해봐야겠다는 생각이 들었다.(WPF을 수준급으로 하는것도 아니지만 Winform도 궁금했다)큰 규모의 프로젝트는 아니고연애 시뮬레이션처럼 지문과 선택지 노드들을 생성하고 노드끼리의 순서를 연결하여데이터 형태로 추출하는 프로젝트가 필요했다.(절대로 내가 미연시를 하려고 시작한 건 아니다)아직 프로젝트 개발중이지만 지금까지의 느낀점을 몇가지 적어보려고한다. 렌더링 차이- 진행하는 프로젝트가 [대화상자를 이어가는 툴] 이라고 생각했기에 굳이 렌더링에 대한 필요도는 높지 않았다.Winform : GDI+에 의존하여 렌더링을 한다.WPF : DirectX로 렌더링을 ..

article thumbnail
다양한 충돌 체크 방법
프로그래밍/ETC 2023. 11. 15. 02:50

게임에서 충돌 체크를 하는 방법은 여러가지가 있다. 물론 이 글에서 모든 충돌 방법을 설명하기는 어려울 것이고, 알고 있는 충돌 방법 이외에 다른 충돌 체크 방법도 있기에 모든 충돌 체크를 설명한다는 것은 불가능할 것이다. 가장 많이 쓰였던 혹은 많이 쓰이는 충돌 체크 방법들을 알아보자 픽셀 충돌 이미지들의 텍스쳐 픽셀 데이터를 통해 픽셀들이 동일한 위치에 존재하는지 체크 하는 방식이다. 포트리스나 웜즈 같은 게임이 픽셀 충돌을 이용하여 자연스러운 이동을 표현할 수 있다. 충돌 체크 코드는 비교적 단순하지만 단순한 for문 연산이기때문에 픽셀의 사이즈가 커질수록 연산 횟수가 증가한다. private bool CheckPixelCollision(ObjectClass objectA, ObjectClass o..

article thumbnail
Early Return 코드가 정말 옳은 걸까?
프로그래밍/ETC 2023. 11. 7. 13:09

Early return(얼리 리턴)은 프로그래밍에서 조건을 미리 만족하는 경우 함수나 메서드 실행을 중간에 중단하고 값을 반환하는 프로그래밍 기법을 의미한다. 코드의 가독성을 높이고, 불필요한 연산을 방지하는 장점이 있긴한데 일단 예시 코드를 보자. public static bool CheckFunction(int value) { if(value > 0) { if(value > 5) { if(value < 10) { return false; } } else { //todo value... } } return true; } 이런 코드가 있다고 하면 CheckFunction의 함수는 return false를 리턴하기 위해선 3번의 if문을 검사해야한다. 이를 Early Return 형식의 코드로 수정하게 되..

article thumbnail
도트를 더욱 이쁘게? XBR Shader 소개합니다
프로그래밍/ETC 2023. 9. 18. 22:43

XBR는 텍스처 스케일링 및 업샘플링 기술에 대한 쉐이더지만 주로 픽셀아트형 게임의 그래픽을 개선하는데 주로 사용된다. XBR 쉐이더의 기본 이해는 각 픽셀의 주변 픽셀 값을 분석하여 보간을 하는 작업이 이루어지는 쉐이더입니다. 던파모바일에서 보여주듯 주변 픽셀의 계산을 얼마나 할지에 대한 차이에따라 선명도차이가 극명하게 나타난다 https://docs.libretro.com/shader/xbr/ xbr - Libretro Docs xbr Background Preview Image External Links Last update: 2023-09-03 docs.libretro.com Libretro 라는 개발자가 설명하는 XBR 쉐이더의 적용법에 따르면 같은 이미지지만 다른 느낌으로 표현할 수 있는 모습..

article thumbnail
IntelliJ - Grep Console 을 소개합니다
프로그래밍/ETC 2023. 9. 1. 13:22

인텔리제이로 서버 개발을 진행하며 로그가 많다면, 내가 원하는 로그만 보기 어렵다. 이럴때 유용한 플러그인이 Grep Console이 있다. 설치방법 (Windows 기준) 1. Shift + Shift 후 plugins 검색 후 실행 2. Marketplace -> grep console 검색 후 설치 Grep Console 플러그인 설치 후 Settings 화면에서 Grep Console에서 Highlighting 옵션을 활성화 한 후 각 로그 타입에 대한 색상을 지정해주면 색으로 표시되어 더욱 구분이 되는 콘솔창을 만들 수 있다. 추가로 콘솔릭 우클릭 후 Grep을 누르면 로그에 대한 필터링 또한 사용 가능하다.

article thumbnail
SDK와 API의 차이는 무엇인가요?
프로그래밍/ETC 2022. 8. 21. 01:10

유튜브를 보며 IBM 채널에서 API와 SDK의 차이를 설명해주는 동영상을 시청했다. 쉽게 이해한 결과 SDK : 소프트웨어 개발 키트 (Software development kit) API : 어플리케이션 프로그램 인터페이스 (Application Programming Interface) 프로그래밍적으로 말하자면 SDK는 API를 포함한다. (SDK > API , SDK가 더 큰 개념) SDK는 API, Doc, Lib, 에셋 등 프로그램을 개발함에 있어 필요한 집합체를 말하고 API는 API 제공자가 제공하는 기능들을 얘기한다. 어릴적 생각하면 과학상자는 만들고 싶은 부품들을 제공하니 SDK인셈이다. 과학상자 SDK에는 모터, 톱니바퀴, 철판 등 여러가지 부품(모듈)과각 부품들이 무슨 역할을 하는지 ..

article thumbnail
지금 너의 상태는 - FSM (유한기계상태)
프로그래밍/ETC 2022. 8. 8. 00:35

몬스터 혹은 자동사냥 기능을 만들다보면 AI 작성은 꼭 필요하다. 그 중 많이 사용되는 FSM(유한기계상태)과 BT(행동트리) 중 이번에는 FSM에 대해 설명을 하려고한다. FSM의 장점 1. 디버깅이 쉽다 2. 상태에 대한 코딩이 해당 상태에서만 작동하기 때문에 코드 작성이 쉽다. 3. 문제가 되는 상태만 수정하면 되기때문에 버그 수정이 쉽다. 단점 1. 상태의 규모가 커지면 복잡해진다. 2. 해당 상태에 대한 적용만 가능하다. 사실 위와같이 장단점만 작성하면 느낌이 잘 오지않는다. 예를들어 -IDLE (대기상태) -ATTACK (공격상태) -DEAD (사망상태) 3가지 상태가 있다고 가정하자. "가만히 있는데 몬스터에게 맞아도 반격을 하지 않아요." 라는 버그제보가 들어왔다. 가만히 서있다는 것은 I..

article thumbnail
데이터 관리 - Excel
프로그래밍/ETC 2022. 8. 7. 23:57

Xml을 사용하는 데이터 관리에 이어 이번에는 Excel Sheet를 사용하여 관리하는 방법에 대해 장단점을 작성해보려고 한다. 엑셀로 데이터를 관리하게 된다면 장점으로는 1. 보편화되어 누구나 쉽게 접근이 가능하다. 2. 보편화되어 있기 때문에 정보가 많아 Data Extract 툴 제작도 쉽다. 3. 함수를 통해 파일 내에서 자체 검증이 가능하다. 4. 데이터누락을 허용하지 않는다. (회사마다 차이는 있을 수 있다) 5. 구글 스프레드 시트를 사용한다면 공동작업이 가능하다. 단점으로는 1. 함수를 사용하며 파일과 파일간의 데이터 참조가 많아지면 스파게티형식이 될 우려가 있다. 2. 구글 스프레드 시트를 사용한다면 데이터 실수가 발생할 수 있다. 위와 같은 장단점에 대해 많이 느꼈다. 하지만 무엇보다 ..