반응형


Phaser 개발을 위한 준비를 해보자.


우선 브라우저는 크롬을 사용할 예정이다.


Web 컨텐츠를 띄우기 위해 간단한 서빙용 서버를 하나 띄워야하는데


Typescript도 사용해볼겸해서 NodeJS를 이용하기로 결정했다. (Python의 SimpleHTTPServer로도 가능)




1. nvm 설치


NodeJS 버전을 뭘 깔아야 할지 모르겠어서 일단 nvm(Node Version Manager)를 설치했다.


nvm은 원하는 Node 버전을 골라 설치할 수도 있고 설치된 버전중 어떤 버전을 사용할 것인지 정할 수도 있게 해준다.


나는 윈도우에서 개발중이므로 https://github.com/coreybutler/nvm-windows 여기서 다운받았다.


맥이나 다른 플랫폼이면 그냥 nvm을 받으면 된다.




2. NodeJS 설치


nvm install "latest"를 실행해 최신 버전을 설치해본다.


그냥 개인 개발이니까 쿨하게 최신 버전을 설치해보자. ㅎㅎ


9.11.1이라니 버전이 많이 올라갔구나...




3. Typescript 설치


npm install -g typescript


(typescript 모듈을 글로벌하게 설치한다!)




4. 막 이것 저것 설정하고 해야 하지만 귀찮다.


누군가 github에 기본틀을 만들어 놓지는 않았을까??


검색해보자.


https://github.com/troyedwardsjr/phaser3-typescript-webpack


기본 틀이 만들어져 있고 webpack으로 빌드를 내는 부분까지 만들어져 있다!


받아서 해보자!


크으 잘 된다.


zip 파일 다운받아서 코드랑 에셋만 쳐내고 기본 틀 만들어서 git 사용하자! ㅋㅋㅋ


잘 되기는 하는데 아직 TypeScript 연동이 제대로 되어 있지 않은 것 같다.


일단 Javascript로 진행하자!!!


https://github.com/nkholski/phaser3-es6-webpack


마찬가지로 잘 정리되어 있는 곳이 있어 땡겨쓰기로 함!




https://snowbillr.github.io/blog/2018-04-09-a-modern-web-development-setup-for-phaser-3/


Phaser 튜토리얼에도 올라왔는데


처음부터 설정하는 과정을 적어준 블로그가 있어서 공유한다.


아직 이런 설정하는게 익숙치 않은데 참고해서 한땀 한땀 해봐야겠다. ㅎㅎ

반응형

'프로그래밍 > 게임 엔진' 카테고리의 다른 글

[Godot] Godot 엔진 소개  (0) 2018.09.28
[Phaser] Phaser Game Framework 소개  (0) 2018.04.10
Posted by msparkms
,

Cmder

유틸리티 2018. 4. 11. 02:20
반응형

이전에 공유했던 ConEmu를 이용해서 만든 Console Emulator이다.


이쁘고 깔끔하게 잘 만든것 같아서 사용해보려고 한다.


http://cmder.net/


위 홈페이지에 들어가서 다운받으면 된다.


개인적으로는 Download Mini를 받아서 설치 없이 사용하고 있다.


이미 GIT을 설치해놓은 상태이기도 했고 터미널도 GIT Bash를 사용하고 있기 때문에


그냥 실행 후 평소에 사용하던데로 사용하면되서 편했다. ㅎㅎ


키보드 단축키만 알아두면 될 것 같다!

Keyboard shortcuts

Tab manipulation

  • Ctrl + ` : Global Summon from taskbar
  • Win + Alt + p : Preferences (Or right click on title bar)
  • Ctrl + t : New tab dialog (maybe you want to open cmd as admin?)
  • Ctrl + w : Close tab
  • Shift + Alt + number : Fast new tab:
    1. 1. CMD
    2. 2. PowerShell
  • Alt + Enter : Fullscreen

Shell

  • Ctrl + Alt + u : Traverse up in directory structure (lovely feature!)
  • End, Home, Ctrl : Traverse text as usual on Windows
  • Ctrl + r : History search
  • Shift + mouse : Select and copy text from buffer
  • Right click / Ctrl + Shift + v : Paste text


반응형
Posted by msparkms
,
반응형

간단하고 가볍게 2D 게임을 만들어 보고 싶었다.


이럴때 보통 Unity2D를 사용하고는 한다.


윈도우 태블릿으로 간단한 게임을 만들어 보는데 Unity2D보다 가벼운건 없을까 하고 찾아보다가


Phaser Framework를 찾게 되었다.


개인적으로 Python 공부겸 해서 Pygame을 해볼까 하다가 지속적으로 발전되고 있는 것 같기도 하고


HTML5를 사용하다 보니 웹에서 바로 켜볼 수 있는것과 조금이나마 Javascript / Typescript를 사용해본적이 있어


Phaser를 사용해보기로 했다.


https://phaser.io/


게임 개발에 필요한 기능들은 다 있고 도큐먼트나 튜토리얼도 잘 되어있다.


그리고 사용자들이 글을 많이 올려줘서 쉽게 개발해볼 수 있을 것 같다.


좀 해보다가 아니다 싶으면 다른 엔진을 찾아보거나 Unity로 가야될 것 같지만


일단 사용해보자!


https://phaser.io/tutorials/making-your-first-phaser-3-game/index


참고해서 기본 게임 하나를 만들어봐야겠다.

반응형

'프로그래밍 > 게임 엔진' 카테고리의 다른 글

[Godot] Godot 엔진 소개  (0) 2018.09.28
[Phaser] Phaser 개발을 위한 준비  (0) 2018.04.11
Posted by msparkms
,
반응형




나는 전자책을 읽을 때 리디북스를 이용한다.


리디북스는 최대 5대의 기기에서 이용이 가능하다.


이전에 이북 리더기로 교보에서 나온 SAM을 사용하고 있었는데


리디북스의 APK가 SAM의 안드로이드 버전을 지원하지 않게 되었다.

(기존의 앱을 사용하고 책을 읽을 수는 있으나 로그인이 되지 않아 추가로 구입한 책을 다운받을 수 없다. ㅠㅠ)


원래 잘 사용하지 않았었는데 리디북스도 읽을 수 없어 저렴하게 중고로 팔고


이번에 구입한 윈도우 태블릿을 등록하기로 했다.




설치 방법은 간단하다.


https://ridibooks.com/support/app/download


위의 주소에 들어가서 Windows PC용 프로그램을 설치후 로그인하고 사용하면 된다.


윈도우상에 설치된 폰트로 책을 읽을 수도 있어서 좋은 것 같다!!




다른 플랫폼의 뷰어들도 위의 주소에서 받을 수 있으니 참고하자!


안드로이드 마켓이 없는 전자책 단말기의 경우에는 


GooglePlay 불가능 기기용 APK 파일에 들어가서 원하는 APK를 받은 뒤 설치하면 된다.


일부 기기의 경우에는 외부 APK를 넣고 설치하는 부분이 막혀있을 수 있어 검색을 통해 OS를 루팅해서 사용해야 될 것 이다.



반응형

'유틸리티' 카테고리의 다른 글

윈도우 10 야간 모드 설정하기  (0) 2018.04.15
Cmder  (1) 2018.04.11
윈도우 태블릿 앱 추천  (0) 2018.04.01
An operating system wasn't found. 에러 수정  (3) 2018.01.22
IOS11 데이터로 어플 다운 받기  (0) 2017.12.31
Posted by msparkms
,
반응형

연산자 오버로딩의 경우에는 개인적으로는 구현을 해볼 일이 없었다.
엔진을 사용하기 때문에 기본적인 자료형들의 연산자들은 구현이 되어 있었기 때문이다.
최근에 연산자 오버로딩을 하는 부분을 본 것은 stream처리를 하는 부분을 추가할 때 정도였다.
개인적으로는 많이 사용하지는 않기 때문에 간략히 정리해보고자 한다.

항목5 - 사용자 정의 타입변환 함수에 대한 주의를 놓지 말자.

암시적 타입변환은 원하든 원하지 않든 컴파일러에 의해 자동으로 일어난다.
암시적 타입변환을 하는 함수는 두 가지가 있다.

단일 인자 생성자

template<class T>
class Array
{
  public:
    Array(int lowBound, int highBound);
    Array(int size);

    T& operator[] (int index);
    ...
}

bool operator == (const Array<int>& lhs, const Array<int>& rhs);

Array<int> a(10);
Array<int> b(10);

for (int i = 0; i < 10; ++i)
{
  if (a == b[i])
  {
  }
  else
  {
  }
}

a == b[i]는 오타가 나서 컴파일 에러가 나기를 원한다.
하지만 b[i]는 int 이므로 임시로 Array 생성자로 변환된다.

위와 같은 생성자에는 explicit를 넣어주자.

암시적 타입변환 연산자

class Rational
{
  public:
    ...
    operator double() const;
    ... 
}

Rational r;
double d = 0.5 * r;

cout << r;

<< 연산자를 구현하지 않았지만 동작을 한다!
원하는 결과는 아닐 수 있다.

컴파일 에러를 원한다.

이를 막기위해 암시적 타입변환 연산자를 제거하고 같은 기능을 하는 함수를 제공하자.
asDouble()과 같은 함수.

항목6 - 증가 및 감소 연산자와 전위, 후위 형태를 반드시 구분하자.

전위, 후위 증감 연산자는 인자를 넘기지 않는다.
그래서 약속된 형식이 아래와 같다.
후위 ++의 경우에는 숫자 0을 넘기는 식으로 구분하게 되었다.

class UPInt
{
  public:
    UPInt& operator++();                // 전위++
    const UPInt operator++(int);      // 후위++
    ...
}

UPInt& UPInt::operator++()
{
  *this += 1;
  return *this;
}

const UPInt UPInt::operator++(int)
{
  const UPInt oldValue = *this;
  ++(*this);
  return oldValue;
}

후위 연산자의 경우에 const를 리턴하지 않는 경우에는 i++++과 같은 이상한 문법이 가능해진다.
i.operator++(0).operator++(0); 과 같다.
그리고 oldValue와 같은 임시객체가 필요한것도 마음에 들지 않는다.
그렇기 때문에 가능하면 전위 연산자를 사용하도록 하자!
또한 구현의 일치성을 보장하기 위해 후위 연산자에서 위의 예제와 같이 전위 연산자를 호출 해주는게 좋다!

항목7 - &&, ||, 혹은 . 연산자는 오버로딩 대상이 절대로 아니다.

복잡한 조건을 검사할 때 단축처리가 가능하다.
가령 if ((p != 0) && (strlen(p) > 0)) 와 같은 조건이 있다면 p가 0(nullptr)이면 strlen()이 호출되지 않는다.

그런데 우리가 굳이 위의 &&, || 연산자를 재정의 한다면 위의 단축처리가 불가능하다.

if (expression1 && expression2)
-> expression1.operator&&(expression2)
-> operator&&(expression1, expression2)

둘 중의 하나로 해석될 것이기 때문이다.

즉 expression2가 실행이 된다는 이야기다.

, 연산자의 경우에도 마찬가지다.

항목8 - new, delete의 의미를 정확하게 구분하고 이해하자.

new 연산자의 동작

  1. 메모리 할당
  2. 객체의 생성자 호출

오버로딩할 수 있는 부분은 메모리를 할당하는 부분이다.

void* operator new(size_t size);

메모리 지정 new (placement new)

이미 할당된 메모리에 new 연산자를 사용할 수 있다.
예를 들면 new (buffer) Widget (widgetSize);

메모리를 받아서 객체를 생성해주는 기능을 만들때 사용하면 된다.

void* operator(size_t size, void* location);

#include <new>를 추가해주면 사용 가능하다!

delete 연산자의 동작

  1. 객체의 소멸자 호출
  2. 메모리 제거

  • 메모리 지정 new를 이용해 생성된 객체를 delete로 지우지 말자.
    • 메모리가 어디서 할당되었는지 모르기 때문이다.
    • 메모리 지정 new를 이용했다면 메모리 생성, 해제하는 기능이 어딘가 있을테니
    • 소멸자 호출 후에 이를 이용해 메모리를 해제해주자.

배열의 할당 해제

opearator new[], delete[]는 오버로딩 가능하기는 하지만
쉽지 않기 때문에 사용하지 않는게 좋겠다 ㅋㅋㅋ

반응형
Posted by msparkms
,
반응형

이번에 윈도우 태블릿을 구입해서 활용중이다.


윈도우 앱중 유용한 앱들을 정리해 공유하려고 한다.


이것저것 사용해보고 유용한 것들을 추려 지속적으로 추가할 예정이다.


1. Xodo PDF Reader & Editor


가장 큰 장점은 무료 PDF Viewer 이다.

제법 큰 PDF도 잘 로딩되는것 같고 무료 PDF Viewer 중에서 팬 필기등을 가장 잘 지원하는 앱인것 같다!

PDF Viewer를 사용해보고 싶으면 추천한다!

이 VIewer에서 만족을 못 한다면 유료로 넘어갈 수 밖에 없을 듯 하다.


링크 : https://www.microsoft.com/store/productId/9WZDNCRDJXP4

반응형

'유틸리티' 카테고리의 다른 글

Cmder  (1) 2018.04.11
리디북스 뷰어 다운받기  (0) 2018.04.08
An operating system wasn't found. 에러 수정  (3) 2018.01.22
IOS11 데이터로 어플 다운 받기  (0) 2017.12.31
윈도우 터치 키보드 활성화 끄기  (0) 2017.12.28
Posted by msparkms
,
반응형

Recently, a university undergraduate asked me on twitter for advice on becoming a graphics programmer within the games industry. I wrote a fairly detailed email response and thought the information was good enough to make an article for AltDevBlogADay. This is all my personal opinion of course.


최근에, 한 대학교 재학생이 나에게 트위터로 게임 산업에서 그래픽스 프로그래머가 되기 위한 조언을 구했다. 나는 꽤 상세하게 이메일 답장을 적었고 이 정보가 아티클로 만들기 충분하다고 생각했다. 이것은 물론 모두 나의 개인적인 의견이다.

 

If you're at university, you should research whether there's a programme to do a summer or year long internship at a games studio. There was nothing like that when I was at the University of Liverpool '97-'00 (or I wasn't aware of it), but I've seen people come through that kind of programme with much greater practical game development knowledge and it goes a long way towards persuading an employer to take you on. EA, Lionhead and other large companies tend to run this sort of programme so look on their job pages too. Beware that sometimes companies don't respond to intern applications for various reasons (team is deep in crunch, budget spent elsewhere, etc) and places are extremely limited.


만약 당신이 대학교에 재학중이라면, 게임 스튜디오에서 하계나 일년동안 할 수 있는 인턴쉽 프로그램이 있는지 조사해야한다. 내가 리버풀 대학교에 1997년 부터 2000년까지 다녔을때는 그런게 없었다. (혹은 내가 몰랐을 수도 있다.) 그러나 나는 훨씬 더 실용적인 게임 개발 지식을 가진 프로그램을 통해 온 사람들을 보았고 고용주에게 당신을 뽑도록 하게 끔 한다. EA Lionhead나 다른 대기업은 그들의 구인 페이지에 이런 종류의 프로그램을 볼 수 있도록 하는 경향이 있다. 몇몇 회사들은 다양한 이유로(팀이 크런치 모드에 들어갔다던가 예산이 다른곳에 낭비되었던가 등등) 인턴을 뽑지 않을 수 있으니 주의하라. 그리고 자리도 매우 제한적이다.

 

Your best bet is to make a graphics demo, either on your own or with a small group of people. You learn more by doing than by just reading. Pick a modern graphics technique that interests you and implement it. Even better, do more than one. This is also great training for motivating yourself to get a project finished which is often the hardest part of games development, for all disciplines. Make sure you're prepared to talk in detail about the choices you made, performance (in milliseconds, not frames per second!), quality, alternatives and trade offs in a job interview.


당신의 가장 좋은 베팅은 혼자서 혹은 사람들과 작은 그룹을 만들어 그래픽스 데모를 만드는 것이다. 당신은 단지 읽는 것 보다는 해보는 것에 의해 더 많이 배울 수 있다. 당신이 관심있는 최신 그래픽스 테크닉을 하나 고르고 구현해봐라. 물론 하나보다 더 많이 하면 더 좋다. 이것은 또한 게임 개발의 모든 분야에서 종종 가장 어려운 부분이라고 여겨지는 하나의 프로젝트를 완료했다는 것에 대해서 스스로에게 동기를 주는데 훌륭한 연습이 된다. 당신은 잡 인터뷰에서 만든 것, 퍼포먼스(밀리 세컨드 단위, fps아니고), 퀄리티, 대안, 트레이드오프에 대해 당신이 선택한 부분에 대해서 자세하게 말할 준비를 확실히 하라.
 

When I was in university I did a straight computer science course - there were barely any games courses available back then, but I still think that employers still value computer science graduates above games graduates as there's a perception that you learn a greater range of software engineering skills. This could be a misconception though, as games courses are a lot better than they used to be, but you may have to fight your corner in an interview and prove you know your stuff (and not just the curriculum you were taught).


내가 대학교에 다닐때, 나는 컴퓨터 사이언스 과목을 들었다. - 거의 어떠한 게임 관련 과목도 가능한 게 없었다. 하지만 나는 여전히 고용주들이 컴퓨터 사이언스 졸업생을 게임과 졸업생보다 더 넓은 범위의 소프트웨어 엔지니어링 스킬을 배웠다고 인식하고 있기 때문에 더 가치있게 본다고 생각한다. 이것은 게임 과목들이 예전보다 많이 좋아졌기 때문에 오해일 수 있지만 면접을 볼때 맞써 싸워야 하는 부분이고 당신이 알고있는 것들을 증명해야만 한다. (당신이 배웠던 커리큘럼 뿐만 아니라)
 
Computer science courses also tend to be quite maths heavy (I would hope games courses are similar), which is vital for graphics programming. Make sure you understand homogeneous coordinates, matrix maths, dot products, cross products, quaternions, normal vectors, tangent bases, etc and how these things (and countless others) are useful for transforming and lighting geometry. Learn big O notation for algorithmic execution time, understand colour spaces, gamma correction, what high dynamic range means and so on. Learn some basic lighting models - Lambert, Phong, Blinn, etc.

컴퓨터 사이언스 과목은 또한 그래픽스 프로그래밍에 필수인 꽤 깊은 수준의 수학을 배우는 경향이 있다. (나는 게임 과목도 비슷할 거라고 희망한다.) 동차 좌표계, 행렬  수학, 내적, 외적, 쿼터니언, 노말 벡터, 탄젠트 기저 등등을 확실히 이해하고 있어야 하고 이것들(셀수 없이 많은 다른 것들도)이 어떻게 변환과 조명, 기하에 유용한지를 이해해야 한다. 알고리즘의 실행 시간을 위해 빅-O 표기법을 배우고 색상 공간, 감마 보정, HDR의 무슨 의미인가 등등을 배워야 한다. 몇가지 기본적인 조명 모델을 배워야 한다. - 램버트, 퐁, 블린 등등.

 

Software

In my experience, Visual Studio is pretty much universal as a code IDE (except for Apple, Linux, Android and Nintendo games), though you can of course use your favourite editor if you really want to, as long as you know Visual Studio. There is a free Express edition available from Microsoft (http://www.microsoft.com/express/Windows/), so it won't cost you any money to learn. The PS3 is a little different as there is a separate hardware specific debugger, but you should be able to learn that on the job.

소프트웨어
물론 당신이 정말 원한다면 당신이 가장 좋아하는 에디터를 사용할 수 있지만, 내 경험으로는 Visual Studio가 꽤 많이 세계적으로 사용되는 코드 IDE이기 때문에 (애플, 리눅스, 안드로이드, 닌텐도 게임을 제외하고) 적어도 Visual Studio는 알아두자. Microsoft에서 Express 버전은 무료로 사용가능하며 배우는데 어떠한 돈도 지불하지 않는다. PS3는 별도의 하드웨어 종속적인 디버거가 있어 조금 다르지만 직장에서 그것을 배울 수 있어야 한다.
 
You should be familiar with a source control system. Perforce (www.perforce.com) is a good choice as a lot of game studios use it and it's free for single users. Try to learn it on a project with other people as merging, branching and integration are good skills to have. With all source control systems, similar concepts apply so it's essential knowledge to have. Shockingly, my university course never mentioned source control and I was naive enough to believe that people just shared code over the network or on floppy disks.
 
당신은 소스 컨트롤 시스템에도 친숙해야만 한다. 퍼포스가 많은 게임 스튜디오에서 사용하기 때문에 하나의 좋은 선택이될 수 있고 개인 사용자에게 무료다. 머징, 브랜칭, 인티그레이션은 알아둬야 할 좋은 기술이므로 다른사람들과 함께 하나의 프로젝트를 통해 배우도록 노력해라. 모든 소스 컨트롤 시스템에는 유사한 컨셉이 적용되기 때문에 필수적인 지식이다. 놀랍게도 나의 대학 강의에서는 소스 컨트롤에 대해 전혀 언급하지 않았고 나는 사람들이 단지 네트워상으로나 플로피 디스크로 코드를 공유한다고 믿었었다.

As you're unlikely to have access to devkits at home or in university, you'll most likely be learning your skills on PC. In what may come as a surprise from someone with a decade's game development experience, I don't know much OpenGL as there's never been a pressing need for me to learn it. Most PC games use DirectX, though if you learn DirectX 11, make sure you also learn DirectX 9 as it's still current for Xbox 360 and many PC games still use it to support the dwindling, but still large Windows XP market. DirectX 10 is completely superseded by DirectX 11, so it is not worth learning (you can write DirectX 11 games for DirectX 10 hardware, and even DirectX 9 hardware).

집이나 학교에서는 개발킷에 접근할 수 없기 때문에 PC에서의 기술을 배워게 될 것이다. 십년간 게임 개발 경험을 가진 사람에게 놀라움으로 다가올만한게 나는 OpenGL을 배워야만 할 필요가 없었기 때문에 잘 모른다. 대부분의 PC게임은 DirectX를 사용하고 만약 DirectX 11을 배웠더라도 Xbox 360과 줄어들고는 있지만 윈도우 XP 시장이 여전히 크기 때문에 많은 PC 게임들이 여전히 DirectX9을 사용하고 있어서 배워야 한다. (하지만 번역중인 현재는 Window 10이 나왔기 때문에 DirectX 11로 봐도 될 듯 하다!) DirectX 10은 완전히 DirectX 11에 의해 대체되었기 때문에 배울 필요는 없다. (DirectX 10 하드웨어, 심지어 DirectX 9 하드웨어에서 돌리는 게임을 DirectX 11로 작성할 수 있다.)
 
It's also definitely worth learning a graphical debugger. PIX for Windows isn't as good as the Xbox 360 version, but there are fantastic free alternatives (Intel GPA - http://software.intel.com/en-us/articles/intel-gpa/, Nvidia Parallel Nsight - http://developer.nvidia.com/nvidia-parallel-nsight). These tools are not just for performance tuning on the GPU - they're also for debugging your draw calls, working out why something doesn't draw, why it looks wrong, and so on. You can also learn about how a GPU works as you can see all the renderstates, shaders, meshes, textures, etc for any draw call in a frame and really understand what the GPU is actually doing with the data you give it.

또한 그래픽 관련 디버거는 배울 가치가 있다. PIX for Windows는 Xbox 360 버전만큼 좋지 않지만 멋진 무료 대체 프로그램들이 있다. (Intel GPA, Nvidia Parallel Nsight) 이 툴들은 GPU상에 퍼포먼스 튜닝을 위한 것 뿐만 아니라 드로우콜, 왜 어떤것이 안 그려지는가, 왜 이상하게 보이는가 등등을 디버깅할 수 있다. 한 프레임 안의 어떠한 드로우 콜에 대해서 렌더 스테이트, 쉐이더, 메쉬, 텍스쳐등 모든것을 볼 수 있기 때문에 GPU가 어떻게 동작하는지에 대해서 배울수 있고 GPU가 당신이 보낸 데이터를 가지고 실제로 어떤 일을 하는지에 대해서 이해할 수 있게 된다.
 
Other Duties
As a graphics coder you'll probably have to do some tools work too, working with mesh compilers, animation compilers, plugins for Maya/3DS Max or in-house editors for the artists to use. Remember that your job is to provide technology to support the artists in their daily work, so it needs to be presented in a friendly manner. If you give your art team a tool that lets them tweak some coefficients of a fancy rendering algorithm and they have no idea what the numbers mean, they probably won't use it. Also, technical artists are your friends - they're the best people to talk about requirements for artists and to work out the best workflow for the content creators.

다른 의무들
그래픽스 개발자로서 당신은 또한 메쉬 컴파일러, 애니메이션 컴파일러, Maya/3DS Max 플러그인이나 아티스트가 사용하는 인 하우스 에디터와 같은 몇개의 툴들을 다룰 수 있어야 한다. 당신의 일은 아티스트들이 일상 업무를 지원해주기 위한 기술을 제공하는 것임을 기억하고 그들에게 친숙한 방식을 제공해야 할 필요가 있다. 만약 당신의 아트 팀에게 환상적인 렌더링 알고리즘을 위한 몇개의 계수 값을 바꾸기 위해서 하나의 툴을 제공한다면 그들은 그 숫자들이 의미하는 것에 대해 알지 못할 것이고 아마도 사용하지 못할 것이다. 물론 테크니컬 아티스트들은 여러분의 동료이다. - 그들은 아티스트들의 요구사항에 대해서 이야기할 수 있는 가장 좋은 사람이고 컨텐츠 생성을 위한 가장 좋은 워크플로우를 찾아낸다.

It's also good to learn general performance and optimisation techniques as this often falls to the graphics/engine team to do. You probably won't have to write any (or very little) raw assembler, but you ought to be familiar with what the C/C++ compiler is doing to your code, how to spot problems and what to do about them. For example, one of the biggest performance problem will be L2 cache misses (you lose hundreds of cycles per miss on all modern hardware), so learn techniques to reduce them (almost always changing the data, not the code is the fix).

또한 그래픽스/엔진 팀이 해야하는 일반적인 퍼포먼스, 최적화 기법을 배우면 좋다. 당신은 아마도 거의(혹은 매우 적게) 어셈블리어를 작성해야만 하지는 않을 것이지만 C/C++ 컴파일러가 당신의 코드를 어떻게 하는지, 어떻게 문제점을 발견하고 그것들에 대해서 무엇을 하는지에 대해서는 친숙할 필요가 있다. 예를들어 가장 큰 퍼포먼스 문제중 하나는 L2 캐쉬 미스 문제일 것이다. (모든 현대 하드웨어에서 미스당 수백 사이클을 잃어버린다.) 그것들을 줄이기 위한 기술을 배운다. (거의 항상 코드가 아닌 데이터를 변경하는 것으로 해결한다.)

 

Online Learning Resources

Online resources are a goldmine, and there's much better stuff out there than there was when I was at university as a lot of companies publish papers on their techniques which are pretty useful stuff. A few examples...

http://www.valvesoftware.com/company/publications.html

http://publications.dice.se/

Also there are a few good blogs posting regularly about graphics. A few good examples...

http://aras-p.info/blog/ - Lost in the Triangles. Aras Pranckevičius's blog (a lead programmer for Unity).

http://www.realtimerendering.com/blog/ - Real Time Rendering has good information (also the book is a worthwhile read!)

http://www.humus.name/ - Another good graphics programming blog.

온라인 강좌
온라인 리소스는 금광과 같고 내가 대학교에 다닐때 보다 훨씬 더 좋은 것들이 많다. 많은 회사들이 자신들의 기술에 대해서 매우 유용한 자료들을 공개하고 있다. 예를들어 위 링크와 같다.
또한 그래픽스에 대해 규칙적으로 포스팅 하는 좋은 블로그들이 몇개 있다.
위에 링크 참조!
 

Make sure you read the relevant presentations from GDC (very useful) and SIGGRAPH (slightly less useful as a lot of it is for non-realtime graphics, but useful as a crystal ball for future techniques).

My last handy tip is that if you live near a big dev studio, find out which pub they go drinking at after work and join in on a Friday night. You'll learn a lot just chatting with developers. You can also join twitter and talk to many games developers there who are willing to share their experience.


GDC(매우 유용한)와 SIGGRAPH (리얼타임이 아닌 그래픽스에 대해 더 많이 유용해서 약간 덜 유용하지만 미래의 기술들에 대해 수정구슬(?)과 같이 유용한) 관련있는 발표를 읽어라. 나의 마지막 유용한 팁은 만약 당신이 큰 개발 스튜디오 근처에 산다면 그들이 업무가 끝나고 술 마시러 가는 펍을 찾고 금요일 밤에 가라. 당신은 개발자과 많은 이야기를 나누며 배울 수 있을 것이다. 또한 트위터에 가입하고 그들의 경험을 기꺼이 공유해줄 많은 게임 개발자들과 이야기를 나누어라.

 

출처: <http://www.altdev.co/2011/05/10/so-you-want-to-be-a-graphics-programmer/>

반응형
Posted by msparkms
,
반응형

오늘 노트북을 켜보니 An operating system wasn't found. 라고 하면서 부팅이 되지 않았다.


대부분의 자료들은 다른 드라이브의 하드에 있어서 복구 솔루션으로 복구할까 하다가 혹시 몰라서 검색을 해보니


해결방안이 있어서 공유차 올려본다.



1. 일단 윈도우 부팅 USB가 필요하다.


윈도우 부팅 USB를 생성하는 방법은 간단하다.


일단 8기가 이상 용량의 USB를 준비한다. (실제로는 한 4기가 정도 쓰는듯??)


https://www.microsoft.com/ko-kr/software-download/windows10


위 링크에 들어가서 지금 도구 다운로드를 받은뒤 실행을 한다.


실행하고 원하는 버전의 윈도우를 설정해준다. (나의 경우에는 Window 10 64비트)


그리고 설치할 USB를 선택해주고 기다리면 알아서 만들어준다.



2. 위에서 만든 윈도우 부팅 USB를 꼽고 재부팅해준다.


만약 별 반응이 없으면 BIOS 셋팅에 들어가서 부팅 순서를 USB를 더 위로 올려주자!


내 노트북의 경우에는 시작시점에 Del 키를 눌러주면 BIOS 셋팅 화면으로 넘어갔고


Boot 순서를 정하는 부분이 USB보다 하드가 더 앞쪽에 있어서 순서를 변경해주었다.



3. 윈도우 설치 화면이 나오는데 거기서 진행하지말고 Shift + F10 키를 눌러주자.


그러면 명령 프롬프트가 실행된다.



4. dir 명령으로 윈도우가 어디에 설치되어 있나 찾아본다.


dir a: 를 실행해본다.


아무일도 일어나지 않거나 Window 폴더가 없다면 dir b: / dir c: 등 몇몇개 드라이브에 대해서 폴더를 찾아본다.


나는 d: 에 있었다.



5. 내 디스크의 GPT 설정 여부 확인한다.


diskpart 명령어를 입력하고 조금 기다리면 프롬프트가 변경된다.


그 후에 list disk를 입력하면 디스크 목록이 나온다.


거기서 내가 윈도우를 설치했었던 디스크를 확인해보자.


GPT 설정에 * 표시가 되어 있으면 해당 하드는 GPT 설정인것이고 아닌 경우에는 MBR이다.


이 상황에 따라서 해결법이 조금 다르다.


나의 경우에는 GPT 설정이 되어 있었고 그것에 맞춰서 설명한다.


MBR인 경우는 맨 아래 참고 링크로 들어가보면 MBR일때 상황이 있으니 참고하자.



6. 디스크와 파티션을 선택한다.


list disk를 입력해서 나온 디스크 목록중 윈도우가 설치된 목록의 번호를 확인한다.


그리고 select disk 해당번호를 입력해주자. (내 경우에는 select disk 1 을 입력함)


list partition을 입력하여 나온 파티션 목록중 시스템이라고 적혀있는 목록의 번호를 확인한다.


그리고 select partition 해당번호를 입력해주자. (내 경우네는 select partition 4 을 입력함)


assign letter=S: 를 입력해서 내가 위에 선택했던 디스크와 파티션의 정보를 기준으로 S: 라는 이름을 매핑한다.


S:가 이미 등록되어 있거나 하면 다른 이름을 사용해도 된다.


그리고 exit를 입력해 diskpart툴을 꺼준다.



7. BCD 부팅 정보를 수정한다.


cd /d S:\EFI\Microsoft\Boot\를 입력해준다. (S:는 위에서 assign letter로 매핑해놓은 이름)


ren BCD BCD.bak을 입력해준다. (기존정보를 백업!)


bcdboot d:\windows /l ko-kr /s S: /f UEFI를 입력해준다. (d:는 윈도우가 있던 드라이브 이름 S:는 위에서 매핑해놓은 이름)




8. 재부팅!


명령 프롬프트창과 설치 창을 종료시켜서 재부팅을 해주자.


USB는 빼도 되고 혹시나 BIOS에서 부팅 순서를 바꿔야 되는 상황이면 다시 바꿔주자!


이러면 제대로 실행될 것이다.


나의 경우에는 재시작후에 화면이 안나와서 뭔가 망했나 했는데 노트북의 밝기 옵션이 꺼져있었다.


하여튼 이렇게만 해주면 제대로 동작할 것이다!



참고

https://support.microsoft.com/ko-kr/help/3103656/-an-operating-system-wasn-t-found-error-when-booting-windows

반응형
Posted by msparkms
,
반응형

최근에 읽은 책에 단순하지만 효과가 좋아보이는 내용이 있어서 적어보려고 한다.

바로 하루에 딱 세가지 해내기에 대한 것이다.


하루를 마무리할 때까지 성취하고 싶은 세 가지 일이 무엇인가를 생각하고 적어둔다.

이를 확장해서 한 주가 마무리될 때까지 성취하고 싶은 세 가지 일도 적어둔다.

이렇게 정한 3가지가 그 날 혹은 그 주의 핵심이 된다.

이를 이루기 위해 노력하고 달성하면 된다.


너무 사소한 것을 고르면 너무 빨리 끝나게 된다.

너무 어려운 것을 고르면 달성하기 어렵고 압박감을 느끼게 된다.

개인차가 있으니 몇번의 시도를 통해 적당한 수준의 목표를 설정하는 것을 연습해야한다.


3가지라는 개수가 중요한 일을 추려내기에 적지 않다.

또한 집중하기에 부담스럽지도 않고 적당하다.

우선순위를 비교하고 3가지를 고르기 때문에

중요하고 영향력있는 업무들에만 집중력을 유지할 수 있다.

그래서 더 많은 것을 성취할 수 있다.


단순한 방법이지만 잘 활용하면 강력한 자기계발 방법이 될 것 같다.

반응형
Posted by msparkms
,
반응형

나는 현재 데이터 무제한 요금제를 사용한다.

이번에 게임을 하나 받으려고 했는데 용량이 150메가가 넘기 때문에 데이터로는 다운을 받을 수 없을 수도 있다고 나왔고 다운이 되지 않았다.

검색해보니 조금 이상한 방법이기는 한데 테스트 해보니 잘 되서 공유차 올린다.


1. 데이터 사용 상태에서 다운을 누르면 나오는 데이터로는 다운 받을 수도 있다고 나오는 팝업에서 승인버튼을 눌러준다. 그러면 어플이 다운 상태에서 멈춰있을 것 이다.


2. 설정 - 일반 - 날짜 및 시간 - 자동으로 설정 체크를 해제해준다.


3. 시간을 직접 설정할 수 있게 되고 일주일정도 후로 시간을 바꿔준다.


4. 그러면 데이터로 다운이 시작된다.(뭐지...)


5. 끝나면 다시 자동으로 설정을 켜주자!

반응형
Posted by msparkms
,