Profile image

Infinite Flight Project Metal

관제사 | Infinite Flight | 조회 수 1 | 2020.01.27. 13:56
출처주소 https://infiniteflight.com/blog/infinite...ect-metal/

 

우리는 앱을 구성하는 핵심 코드베이스 중 일부를 업데이트하는 임무를 시작했습니다.

우리가 부르는 것, Project Metal. 무한 비행은 시간의 시험에 서 있으며, 우리는 계속해서 발전하고 향상시킬 것입니다.

이렇게하려면 때로는 '오래된 사람과 함께'라고 말해야 할 때가 있습니다. 이것이 우리가 지금하고있는 일이며, 그 이유입니다.

 

[배경설명]
다양한 개발자 인터뷰를 삼키지 않은 사람들은 Infinite Flight가 2011 년에 Windows Phone 용으로 원래 개발되었음을 알지 못할 수 있습니다.

Windows Phone을 대상으로 결정한 데는 몇 가지 이유가 있지만 주로 더 친숙했기 때문입니다.

당시의 Microsoft 개발 환경. 이를 통해 첫 번째 버전을 더 빨리 배송 할 수있었습니다.

 

Windows Phone에서는 XNA를 그래픽 API로 사용했습니다. 이것이 유일한 선택 이었기 때문입니다.

XNA는 게임 개발자가 최소한의 코드 변경으로 Windows PC, Windows Phone 및 Xbox를 대상으로하는 프레임 워크였습니다.

예, Xbox 360에서 IF의 개발 버전을 실행했습니다!

 

불행히도 XNA는 더 이상 사용되지 않으며 Windows Phone도 마찬가지입니다.

고맙게도 그 전에 언젠가 iOS 버전으로 작업을 시작했지만 모든 것을 다시 코딩 할 필요가 없도록 많은 플랫폼에서 XNA 구현 인 MonoGame을 사용했습니다.

iOS (및 Android)에서 MonoGame은 OpenGL ES를 저수준 그래픽 API로 사용합니다.

 

[현재 상황]
안타깝게도 iOS 기기에서는 OpenGL ES가 더 이상 사용되지 않으며 Apple은 Metal 사용을 권장합니다.

보다 현대적인 저수준 그래픽 API. OpenGL ES는 여전히 작동하지만 제한된 기능을 가진 이전 버전에 머물러 있으며 무기한으로 계속 작동하는지 여부는 알 수 없습니다 (사례가 더 이상 사용되지 않는 것이 Apple이 선호합니다).

 

무한 비행에는 우리가 고수 한 제한된 기능 세트로 구현하기가 매우 복잡한 많은 기능이 있습니다.

 

앞으로 나아갈 수있는 유일한 방법은 렌더링 백엔드를 정밀 검사하여 최신 그래픽 API (iOS의 금속 및 Android의 Vulkan)를 활용할 수있는 것입니다.

이 작업은 많은 엔지니어링 시간이 필요하고 최종 사용자에게 즉각적인 시각적 이점을 제공하지 않는 매우 복잡한 작업입니다.

모든 것이 잘 진행되면 아무 것도 느끼지 못할 것입니다! 주요 이점은 성능입니다.

Metal과 Vulkan은 OpenGL ES보다 훨씬 "낮은 수준"이므로 처리 오버 헤드가 적고 예측 가능합니다.

이로 인해 전체 프레임 속도가 향상되고 "스 터터"가 줄어 듭니다. 또 다른 이점은 개발자가 멋진 새 기능을 구현할 수있는 많은 가능성을 열어 준다는 것입니다.

 

우리가 구현하고 싶지만 불가능하거나 너무 성능을 저해하는 일부 기능은 다음과 같습니다.

 

동적 조명 : 항공기 조명 (공항 조명 등)이 환경을 동적으로 비추는 기능

               주변 환경에서 나오는 빛을 고려한 항공기 음영 개선

실시간 그림자

짙은 3D 구름 및 더 나은 안개와 같은 체적 효과
멀티 플레이어에서보다 눈에 띄는 항공기를 허용하는 텍스처 스트리밍 개선


물론 Project Metal과 같은 업데이트는 사소한 것이 아닙니다.

이를 위해 많은 작업이 진행되고 있습니다. Google 개발자는 업데이트 된 그래픽 API로 전환하기위한 토대를 마련하기 위해 열심히 노력하고 있습니다.

다른 작업이 포기되는 것은 아닙니다. 클라우드 구현 작업과 마찬가지로 B777-200 작업도 빠르게 진행되고 있습니다.

 

궁극적으로 이러한 변경 사항은 눈에 띄지 않더라도 무한 비행 사용자에게 희소식입니다. 항상 그렇듯이 계속 진행하면서 업데이트를 유지합니다.

 

 

We're embarking on a mission to update some of the core codebase that makes up our app; something we're calling, Project Metal. Infinite Flight is standing the test of time, and we will continue to build on it and improve. To do this, sometimes it’s necessary to say, 'out with the old'. This is what we’re doing now, and here’s why.

The backstory

Those of you that haven’t devoured our various developer interviews might not know that Infinite Flight was originally developed for Windows Phone in 2011. There are a few reasons why we decided to target Windows Phone, but mainly it was because we were more familiar with the Microsoft development environment back in those days. This made it easier to ship the first version quickly.

On Windows Phone, we used XNA as our graphics API, since this was the only choice. XNA was a framework that allowed game developers to target Windows PC, Windows Phone, and Xbox with minimum code changes. Yes, we had a development version of IF running on an Xbox 360!

Unfortunately, XNA was deprecated and not long after, so was Windows Phone.

Thankfully, we started working on an iOS version sometime before that, but in order to not have to recode everything, we used MonoGame which is an XNA implementation for many platforms. On iOS (and Android), MonoGame uses OpenGL ES as the low-level graphics API.

Here’s where we are now

Unfortunately (again), OpenGL ES has been deprecated on iOS devices and Apple recommends using Metal; a more modern low-level graphics API. OpenGL ES still works but it is stuck at an old version with limited features and there is no telling if it will continue working indefinitely (deprecating things is Apple’s favorite).

There are many features we want to do in Infinite Flight that are very complex to implement with the limited feature set we are stuck with.

The only way for us to move forward is to overhaul our rendering backend to be able to take advantage of the newer graphics APIs (Metal on iOS and Vulkan on Android).

This is a pretty complex task that requires a lot of engineering time and won't result in any immediate visual benefit to the end-user. If all goes well, you won't notice anything! The main benefit will be performance; Metal and Vulkan are much more "low-level" than OpenGL ES, meaning they have less processing overhead and are more predictable. This should result in us seeing better frame rates and fewer "stutters" overall. Another benefit will be that it will unlock many possibilities for our developers to implement some cool new features.

Some features we'd like to implement but have been either impossible or too performance-inhibitive are things like:

  • Dynamic lighting: the ability to have aircraft lights (airport lights, and more) illuminate the environment dynamically
  • Improved aircraft shading that takes into account light coming from the environment around it
  • Realtime shadows
  • Volumetric effects like dense 3d clouds and better fog
  • Texture streaming improvements to allow more visible aircraft in multiplayer

Of course, an update like Project Metal isn’t trivial. A lot of work is going on behind the scenes to make this happen. Our developers are hard at work laying the groundwork for the move to these updated graphics APIs. It doesn’t mean other work is being abandoned. Work on the B777-200 is moving along at a great pace, as is work on implementing clouds.

Ultimately these changes are great news for Infinite Flight users, even if they aren’t immediately visible. As always, we will keep you updated as we go along.

 

 

  • |
facebook twitter google plus pinterest kakao story band
댓글 쓰기
사진 및 파일 첨부

여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.

파일 용량 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
취소
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공식] Real Flight Simulator 다운로드 - PlayStore file 운영자 19.05.16. 22
공지 [공식] Infinite Flight 다운로드 - PlayStore file 운영자 19.05.16. 55
28 Infinite Flight 19.4 업데이트 A350 관련 사진 file 관제사 20.01.27. 2
27 Infinite Flight A320 기능 추가되었네요 file 관제사 20.01.27. 2
» Infinite Flight Infinite Flight Project Metal 관제사 20.01.27. 1
25 RealFlight Real Flight Simulator v.0.9.6 - 2020-01-13 file 관제사 20.01.27. 2
24 RealFlight Real Flight Simulator v.0.9.4 - 2019-12-16 관제사 19.12.18. 34
23 RealFlight Real Flight Simulator v.0.9.1 - 2019-11-27 관제사 19.12.05. 23
22 Infinite Flight A350 업데이트 file 관제사 19.11.02. 38
21 Infinite Flight Infinite Flight 19.3 in Glorious HD 관제사 19.10.19. 8
20 RealFlight Real Flight Simulator v.0.8.8 - 2019-10-14 관제사 19.10.19. 58
19 RealFlight Real Flight Simulator v.0.8.7 - 2019-10-03 관제사 19.10.19. 15
18 RealFlight Real Flight Simulator v.0.8.5 - 2019-09-16 관제사 19.09.26. 80
17 Infinite Flight Infinite Flight 19.2 Featuring XCub [1] file 관제사 19.07.26. 25
16 RealFlight Real Flight Simulator v.0.8.0 - 07/23/2019 관제사 19.07.26. 13
15 RealFlight [메이저] Real Flight Simulator v.0.6.8 Beta - June 4, 2019 관제사 19.06.05. 35
14 RealFlight Real Flight Simulator v.0.6.6 Beta - May 16, 2019 관제사 19.05.20. 53
13 Infinite Flight Infinite Flight 19.1 Release 부조종사 19.05.08. 35
12 RealFlight Real Flight Simulator v.0.6.5 Beta - May 7, 2019 부조종사 19.05.08. 17
11 RealFlight (멀티플레이 추가) Real Flight Simulator v.0.6.4 Beta - April 29, 2019 부조종사 19.05.08. 26
10 RealFlight Real Flight Simulator v.0.6.3 Beta - April 18, 2019 부조종사 19.05.08. 10
9 Infinite Flight 새 공항과 네비게이션 업데이트 file 관제사 19.04.25. 53