공유되고있는 자원(변수)를 여러 스레드레서 접근하면 동기 문제가 생기는데 이걸 발생하지 않게 잘 짜는게 힘들걸
병렬처리의 핵심은 큰작업을 서로 간섭하지 않는 독립적인 작은 작업으로 분할해서 여러놈한테 시킨다음에 취합해서 정리하는건데, 게임은 그 특성상 거의 모든 요소가 서로 엮여있고 다른부분이랑 독립적인 작업 같은걸 만들기가 힘들어. 그래서 병렬처리 적극적으로 쓰는겜이 드문거임
팩토리오처럼 중간에 철판 하나 빼먹으면 이후 모든 과정에 영향 받는 구조에서는 복잡하긴 함. 안꼬이게 할려면 무결성 체크 빡세게 해야 하는데 그럼 멀티 쓰레드 장점도 사라지고
사운드,그래픽,연산,물리연산 이런걸 종류별로 스레드 하나씩 돌리는 방법도 있긴함
사운드 그래픽같은건 이미 멀티쓰레딩으로 돌아가고 있음 이번에 올라온 글은 업데이트 연산을 멀티쓰레딩으로 쪼갰다는거고 ㅇㅇ
공유되고있는 자원(변수)를 여러 스레드레서 접근하면 동기 문제가 생기는데 이걸 발생하지 않게 잘 짜는게 힘들걸
병렬처리의 핵심은 큰작업을 서로 간섭하지 않는 독립적인 작은 작업으로 분할해서 여러놈한테 시킨다음에 취합해서 정리하는건데, 게임은 그 특성상 거의 모든 요소가 서로 엮여있고 다른부분이랑 독립적인 작업 같은걸 만들기가 힘들어. 그래서 병렬처리 적극적으로 쓰는겜이 드문거임
팩토리오처럼 중간에 철판 하나 빼먹으면 이후 모든 과정에 영향 받는 구조에서는 복잡하긴 함. 안꼬이게 할려면 무결성 체크 빡세게 해야 하는데 그럼 멀티 쓰레드 장점도 사라지고
사운드,그래픽,연산,물리연산 이런걸 종류별로 스레드 하나씩 돌리는 방법도 있긴함
사운드 그래픽같은건 이미 멀티쓰레딩으로 돌아가고 있음 이번에 올라온 글은 업데이트 연산을 멀티쓰레딩으로 쪼갰다는거고 ㅇㅇ