2009-10-29 2 views
1

그래픽/코드가 많은 멀티 플레이어 플래시 게임을 만들고 있습니다.Flash/AS3를위한 유용한 리소스 Perforamace 게임에 대한 팁/트릭

내 기상 효과와 같은 성능 문제가 있습니다.

큰 리소스의 무거운 게임에서 비트 맵 그래픽을 사용하거나 "벡터"(플래시 이미지가 플래시 이미지를 플로팅 한 것) 그래픽을 사용하는 것이 더 좋은지 궁금합니다. 사전로드 시간에 신경 쓰지 않고 게임 플레이 시간에 게임 성능에 대해 걱정하면됩니다.

답변

5

Flash 렌더링 네이티브 Shape/Sprite/MovieClip은 단순한 수의 simpe 애니메이션에 적합하지만 많은 애니메이션 또는 복잡한 애니메이션을 한꺼번에 처리하는 경우 상당히 빨리 벽에 부딪칩니다.

렌더링이 병목 현상 (프로필 링은 친구) 인 경우, 게임에서 '보기'로 비트 맵을 만들고 BitmapData의 copyPixels 함수를 사용하여 BitmapData 표현을 블리트함으로써 훨씬 빠른 성능을 얻을 수 있습니다 애니메이션 프레임을 모든 프레임에서 볼 수 있습니다.

내 최신 게임에서 나는 정확하게 이런 이유로 정확하게 이것을하고 있습니다. BitmapData의 draw() 메서드를 사용하여 프레임을 단계별로 실행하고 각 프레임의 bitmapData 표현을 캐싱하면 (느린 속도 인)로드 타임에 프레임을 렌더링 한 다음 copyPixels를 사용하여 실행시 뷰에 그립니다. 시간 (초고속).

아무 것도 없으므로이 경우 메모리 공간에 대한 CPU주기를 바꿔야한다는 점에 유의해야합니다. 긴 애니메이션이 많은 경우 앱 메모리 사용량이 급격히 증가 할 것입니다.

+1

흥미 롭습니다. 블리 팅은 내가 들여다 보았지만 아직 손이 더러워지지 않았습니다. 나는 [http://www.photonstorm.com/archives/160/is-pixel-blitting-in-as3-really-worth-the-effort](http://www.photonstorm.com/archives/160)을 읽었습니다./is-pixel-blitting-in-as3-really-worth-the-effort) 과 그 결과는 당신 것과 다를 수 있습니다. 속도는 비슷하지만 블리 팅으로 메모리 사용량은 훨씬 적습니다. – Allan

+1

Sprite 대신 멀티 프레임 MovieClips를 사용하여 테스트를 다시 수행하고 믹스에 회전을 추가합니다 (픽셀 블리 팅 셋업에서 캐시 된 버퍼를 미리 회전하여 설명). 성능 차이가 훨씬 더 빨리 드러납니다. cacheAsBitmap이 설정된 모든 동일한 비 회전/스케일링 단일 프레임 스프라이트의 시나리오는 본질적으로 픽셀 블리 팅을 내부적으로 사용합니다. – JStriedl

+1

그걸 축하해! – Allan

0

"비트 맵 또는 벡터"에 대한 일반적인 대답은 생각지도 않습니다. 게임과 다른 많은 변수들 ... 어쩌면 당신은 몇 가지 아이디어를 줄 수있는보다 구체적인 질문들로 그것을 좁힐 수 있습니다.

현재 플래시 플레이어 내부 정보, 그래픽 및 벡터 렌더링 방법에 대한 정보를 확인하는 것이 좋습니다 ... 그런 다음 몇 가지 테스트를 통해 일반적인 상황 (큰 그래픽 대 큰 벡터 등)을 벤치마킹합니다.) 애플리케이션을 최적화하는 방법과 방법을 더 잘 이해할 수 있습니다.

0

질문에 대한 직접적인 답변은 상황에 따라 크게 달라질 수 있습니다. 그러나 최근에 나는 BirdEye AS3 그래픽 라이브러리를 보았습니다. 데모를 기반으로하면 상당히 효과적입니다. 당신은 그것을 사용하거나, 적어도 그것으로부터 배우고 싶을지도 모른다.

업데이트 : 이것은 플래시 라이브러리이므로 플래시를 직접 사용하는 경우 관심이 없을 수 있습니다.

관련 문제