전체 글277 모든 자연수의 합은 음수? - 라마누잔 합 약간 제목이 좀 유치해졌는데 다들 이런거 해보길래 해봤다.라마누잔 합에 대해서 설명하자면 모든 자연수의 합이 -1/12라는 장난?이다.물론 당연히 모든 자연수의 합은 양의 무한으로 발산하지만, 이런 값이 나오는 이유는 조건의 오류에 있다.많은 증명들을 보면 일정한 패턴의 끝없는 자연수 무리의 합을 S라는 값으로 놓고 있는 것을 볼 수 있는데,애초에 이것부터가 잘못이다. 혹시 무한대 + 무한대가 뭐라고 생각하는가? 2x무한대일까? 사실 무한대는 상태이지 수가 아니다.물론 연산이 가능한 경우도 가끔있긴 하지만 우리가 통상적으로 생각하는 계산이 불가하다. 따라서 이런 오류가 발생하는 이유는 이 값들이 "수렴"한다고 가정하고 있기 때문이다.모든 자연수의 합은 양의 무한대로 발산하지만, 수렴한다고 가정하면 -1/.. 수학 2024. 12. 17. 바젤 문제 증명 (테일러 급수 활용) 리만 가설에서 중요한 리만 제타 함수가 나오게 된 역사 중 하나로 바젤 문제가 중요하게 나와서마지막은 리만 가설로 가는 일환 중 하나로 바젤 문제에 대한 글을 적겠다. 먼저, 바젤 문제란 모든 자연수의 역수의 제곱의 합이 pi^2/6이라는 식을 의미한다.오일러가 이 식을 알아낸 이후로 제타 함수에 대한 관심도가 증가하여 리만 제타 함수가만들어지는 데 영향을 주었다는 그런 맥락인데, 위 식은 제타 함수에 2를 넣은 값과 같기 때문에 그런 말이 나오는 것이다.시그마를 알고 있다면 이해가 갈 것이다. 아무튼, 문제 설명은 이 정도로 하고 증명을 해보도록 하자. 테일러급수를 통해서 sin x를 전개하면 위와 같은 식이 나온다. 인터넷에 찾아보면 시그마로 이루어진간단한 식도 볼 수 있을 것이며, 테일러급수를 모른.. 수학 2024. 12. 17. 실전 게임 시나리오 쓰기 - 책 리뷰 이 책을 마지막으로 한국에 정식 발매된 모든 게임 시나리오에 관한 책을 모두 읽었다.물론 미래에 더 발매될 가능성이 있지만 말이다. 이 책 또한 두서없이 평가를 작성하겠다.너무 편한 길을 찾는 것 같기도 하지만 시간 쓰고 싶지 않다. 우선 이 책이 다른 책들과 분명하게 차이나는 점은 "실전"이라는 단어에 있다.제목부터 실전 게임 시나리오 쓰기인데 내용도 실전에 초점이 맞춰져 있다.다른 모든 책들은 나름대로 작성하는 과정에 대해서 자세히 서술했지만직접 해보는 것은 미래의 일로 미루는 경향이 있었다. 하지만 이 책은 과정을 설명하고 내가 직접 만들어보는 단계로 책이 진행된다.서식도 주어져있으며 그래서 책을 읽으면서 적어도 나쁘지는 않은 시나리오 한편을기획할 수 있게 된다. 꼭 시나리오에서 멈추는 게 아니라 .. 책리뷰 2024. 12. 12. C# 코드 생략 기법 - 메서드 체이닝(Method Chaining) 메서드 체이닝이란 한 객체를 대상으로 실행되는 여러 메서드 코드에서첫 줄에만 객체를 적고 아래로는 코드를 생략하여 같은 객체에서 실행만 달리할 수 있는 기법이다.설명만 들으면 이해가 안 갈 것 같다. 코드로 설명하겠다.class Program{ static void Main(string[] args) { Builder builder = new Builder(); string result = builder.Append("Hello, ") .Append("World!") .Build(); Console.WriteLine(result); // 출력: Hel.. 게임 개발/C# 2024. 12. 11. 유니티) 셰이더와 변수(프로퍼티) 연결하기 https://alpaca-code.tistory.com/253 (앞선 글) 유니티) 셰이더 변수(프로퍼티) 만들기아무 셰이더나 머티리얼에 적용시켜 보면 Aperture, Cube, Yaw, Fuzz 같은 변수들이 있다.이러한 변수들의 값을 기반으로 재질의 색상이나 반짝임, 반사 정도 등 시각적인 걸 변화시킨다. 이번 글에서alpaca-code.tistory.com 앞선 글에서 변수(프로퍼티)를 만드는 과정을 소개했었다.명도와 채도 등을 예시로 그런 변수를 실제 값에 연결만 해준다면우리가 흔히 머티리얼에서 재질의 느낌을 조작하는 역할을 수행할 수 있다고 언급했다.이번 글에서는 그 기능을 재현해보고자 한다. 셰이더를 만들면 이런 모습일 것이다.이전 글에서는 예시로 Float를 만들었지만 이번에는 색상 조절.. 게임 개발/유니티 2024. 12. 10. 유니티) 셰이더 변수(프로퍼티) 만들기 아무 셰이더나 머티리얼에 적용시켜 보면 Aperture, Cube, Yaw, Fuzz 같은 변수들이 있다.이러한 변수들의 값을 기반으로 재질의 색상이나 반짝임, 반사 정도 등 시각적인 걸 변화시킨다. 이번 글에서는 기초적으로 셰이더에서 이런 변수들을 만드는 방법에 대해서 설명하겠다.우선 머티리얼에 셰이더를 적용시킬 수 있다는 것을 알아야 하고,물체의 재질을 변화시키는 것은 결국 머티리얼의 역할이다. 즉, 머티리얼이 셰이더보다 위에 있는 개념이다.따라서 머티리얼과 셰이더를 하나씩 만들어주자. (Project 탭에서 Create -> Shader, Material) 아무튼 만들면 이런 아이콘으로 표시가 된다. 머티리얼은 익숙해서 많이들 알 것 같지만셰이더의 기본 아이콘은 저렇게 생겼다. 셰이더를 머티리얼에 .. 게임 개발/유니티 2024. 12. 10. 라프 코스터의 재미이론 - 책 리뷰 오늘은 라프 코스터의 재미 이론에 대해서 읽어봤습니다.해외에서 특히 유명한 책이라고 하더라고요. 학교에서 책 지원이 너무 많이 들어와 얼떨결에 구매하게 되었습니다.게임 개발자의 필독서라고 불릴 만큼 꽤나 유명한 책입니다. 길벗의 특성상 많은 그림이 있어서 읽기 좋았고책 절반이 그림일 정도라서 그림책인가 싶을 정도였습니다. 내용도 좋았는데, 게임을 비관적으로 바라보는 사람에게 읽어보라고 권하고 싶은 책이었습니다.게임을 어떻게 바라봐야 하는가에 대한 내용이 주를 이루고 게임 개발자조차 고민했던 게임의 여러 가지문제점들을 때로는 긍정적으로, 때로는 부정적으로 설명하면서 나만의 가치관을 만드는 데 도움을 주었습니다. 스토리에 대한 이야기도 나와서 게임을 분석하는 걸 좋아하시는 분이라면 읽어보시길 추천하고,가장 .. 책리뷰 2024. 12. 9. C# Generic의 기능, 사용법, 예시 이번에는 말로만 듣던 C#의 제네릭에 관해서 이야기해볼까 한다.우선 제네릭은 타입과 상관없이 여러 상황에 같은 클래스, 메서드를 적용시키기 위한 편리한 방법 중 하나이다.예시를 보는 것이 이해에 도움이 될 것이다.1. 제네릭 클래스using System;public class GenericList{ private T[] items; private int count; public GenericList(int size) { items = new T[size]; count = 0; } public void Add(T item) { if (count = 0 && index 인스턴스 생성 GenericList intList .. 게임 개발/C# 2024. 11. 25. C# Interface의 기능, 사용법 오랜만에 순수 C#의 기능 중 하나인 Interface에 대해서 설명해 보겠다.Interface의 거시적인 의미를 설명하자면 여러 클래스에서 같은 메서드를공유하고 싶을 때, 이를 효율적으로 관리할 수 있게 해주는 기능을 가진다.이런 건 설명만으로 이해하기 불가능하다. 의미만 알고 예시를 보자.public interface IVehicle{ void Start(); void Stop();}public class Car : IVehicle{ public void Start() { Console.WriteLine("Car started."); } public void Stop() { Console.WriteLine("Car stopped."); .. 게임 개발/C# 2024. 11. 24. C# 에서 문자열을 반복하는 가장 간단한 방법 - new string 별 찍기 같은 문제에서, 띄어쓰기나 별을 여러 번 사용해야 하는 경우가 나온다.만약에 파이썬에서 * 하나를 가지고 ***을 만들어야 한다면 어떻게 표현할까? star = "*"print(star*3) 뭐 아마도 이런 식으로 3번 복사를 하지 않을까 싶다.하지만 안타깝게도, C#에서는 문자열에 곱연산을 지원하지 않는다.그럼 뭐... 반복문이라도 써야 하는 것일까? string star = "*";string star3 = "";for(int i = 0; i 이렇게라도 표현해야 할까..?다행히도, C#에는 문자를 반복하기 위한 기능인 new string이 있다.일반적으로 new를 통해서 새로운 string 객체를 생성하는 것이지만뒤쪽에 파라미터가 하나 더 입력될 수 있게 되어 있는데, 이게 반복을 의미한다.. 게임 개발/C# 2024. 11. 3. God of War - 게임 리뷰, 분석 이번에 또 좋은 할인 기회로 God of War라는 게임을 플레이 보았다.메타 크리틱 스코어가 굉장히 높고 게임의 사전 설명에도 깊은 스토리라고명시되어 있어 개인적으로 스토리가 좋은 싱글 플레이형 게임을 선호하기에 구매했다. 물론 내가 플레이한 버전은 PC 버전이지만, PS4 기준으로 94점이라는 점수를 받았다.사람들과 전문가들이 굉장히 높게 평가했다는 뜻이다. 이 글에서는 내가 감명을 받은몇 가지 부분을 소개해볼까 한다.1. 조력자이 게임에서 가장 중요한 점 중 하나이다. 나는 아빠의 시점이고 아들이 한 명 있다.아들은 활 쏘기를 연습하면서 처음으로 교류하게 되는데, 점점 발전하고 강해지면서전투를 돕는 조력자의 역할을 하게 된다. 꽤나 많은 영향을 받은 게임인 젤다의 전설 왕국의 눈물도 조력자의 요소.. 작품 2024. 11. 3. 픽셀 계단 현상 해결하기 - Anti ailasing (AA, 안티 앨리어싱) 좁게는 게임에서, 넓게는 스크린 전체에서, 표현되는 사물에 비해서 픽셀이 적을 경우 계단 현상이 눈으로 보이게 된다. 계단 현상은 예시를 보면 쉽게 이해할 수 있다.물론 위 사진이 조금 과장된 예시지만 저런 현상을 해결하는 기술이Anti-ailasing (안티 앨리어싱)이다. 이건 픽셀로 선을 표현하는 데에 한계가 있기 때문에 발생하는 문제이다.물론 이런 픽셀이 엄청 작고 많아서 계단모양인 것이 티가 안 날 수 있다.하지만 보이지 않을 뿐 항상 나타나고 있는데, 이걸 안 보이게 하기 위해선 여러 방법이 있다.https://www.youtube.com/watch?v=_c_ffkt9Lio설명 영상원래는 이런 유튜브 영상을 가져다 놓는걸 정말 안 좋아하지만..이미 이해한 내용에 자료를 만드는 것에 많은 시간.. 기록용 2024. 8. 30. 이전 1 2 3 4 5 6 7 ··· 24 다음