처음으로 만든 PC 게임이 드디어 오늘 얼리액세스를 시작했음
림월드나 팩토리오를 가장 좋아해서 그러한 게임을 만들고 싶었는데, 정작 이 게임은 배니쉬드 비슷한 게임이야.
아직 좀 더 공부하고 림월드 비슷한 게임을 만들어야 할 것 같아.
혼자 만들기에는 벅차서 사운드는 최대한 무료 위주로 사용했고,
그래픽은 전체적으로 흑백으로 외관만 그리고 외주로 해결했어.
왼쪽이 전, 오른쪽이 후.
그래픽 변경 전에는 사람들 반응이 별로였는데, 오른쪽으로 바꾸니깐 그럭저럭 반응하더라
일례로 레딧에 올려서 추천 90개 받음. 변경 전에는 3개 받았는데 ㅠㅠ
아직 판매 성적은 알 수 없지만, 외주라는 결과가 나름 좋은 투자였나 봐
<간략한 게임 설명>
다양한 자원을 생산하고 시민들을 행복하게 만들어서, 작은 마을에서 대도시까지 발전시키는 도시 건설 게임
이번에 만들면서 유니티 DOTS를 활용해서 멀티 스레딩을 비교적 손쉽게 구현해 낼 수 있었어.
자세히 설명하기엔 내용이 많으니까 내가 제일 유용했다고 생각하는 유튜브 링크 올려둘게
아직 공부 중이지만, 궁금한 점이 있으면 알고 있는 선에서 최대한 알려줄게.
게임에 흥미가 있다면 구경하러 와줘
스팀 링크 https://store.steampowered.com/app/1323860/
읽어줘서 고마워
출시추
고마워~
확실히 오른쪽이 낫네
ㅎㅎ 확실히 그런듯
출시추!!
감사!
흑백도 좋은뎅
열에 아홉은 별로라고 해서 슬펐음
와 개멋있다 ECS써서 게임만드는거 이론만 세우고 실제로 실행은 못했는데 진짜로 만들다니..
고마워 ㅎㅎ 모르는거 있으면 물어봐줘
DOTS 쓰는데 큰 문제나 어려움은 없었음?
구글에 검색해도 자료가 적으니 유튜브 영상 외의 기능을 구현하는데 힘들었고, 버전업되면서 일부 기능이 폐기되기도 해서 더 어려웠는데 의외로 유니티 메뉴얼이 꾸준히 업데이트되어서 유용했음. 그래서 메뉴얼이랑 동영상, 커뮤니티 자료랑 번갈아 보면서 사용법을 익혔음
아 그러면 멀티 스레딩 구현했다는건 Thread를 생성해서 함수 돌렸다는 이야기임? DOTS쓰면 멀티스레딩 하기가 기존 방식에 비해 편한가봄?
dots를 사용하면 클래스 비슷한 system 안에 update마다 job이란 걸 실행할 수 있는데, job 안에 매번 실행될 코드를 적어 놓으면 이게 알아서 멀티스레딩으로 실행됨. cpu 코어가 다들 쉴틈없이 돌아감. 게다가 멀티스레딩 전용 배열, 리스트, 해쉬맵, 큐 등을 제공하니깐 반복작업 하기에 편하더라
오 하긴 ECS구조상 같은 애들은 묶여있을수밖에 없으니까 그렇겠네. 그걸 바로 제공해주는건 좋은듯 근데 잡시스템에서 실행되는 함수에서 다른 Entity를 참조하는것도 자유로웠음?
예를들면 저기 스샷에 사람들은 대부분 같은 Entity 클래스가 붙어있을텐데 update에서 서로 같은 클래스내에서 참조하는데 문제는 없었음?
잡시스템이 엔티티를 다룰 경우에는 chunk라는 단위로 똑같은 엔티티가 여러개 뭉치는데, 이때는 멀티 스레딩으로 계산해서 서로 정보 교환은 불가능함. 그래서 그 엔티티를 다루는 잡 시스템 내에서 큐나 해쉬맵 등을 사용해서 변경되거나 필요한 정보를 저장하고 다른 잡시스템에서 가져와서 정보를 교환했어.
자꾸 질문해서 미안한데 그럼 위에서 말한 다른 잡시스템은 참조하는 엔티티들 처리 다음에 돌아야 하는데 그 순서는 설정이 가능했던거야?
잡시스템의 경우엔 [UpdateAfter(typeof(시스템이름))]을 시스템 위에 적어두면 순서 지정이 가능해. 잡시스템끼리 정보 교환하기도 하는데, 같은 잡시스템 안에서 잡끼리 nativecontainer를 사용해서 정보를 주고받고 그 안에서 해결이 가능했어
쒸발 이거살바에 팩토리오하지 차별점 좆박았네