Jestem twórcą niezwykle przenośnej gry mobilnej, która działa na każdym sprzęcie, od komputerów, przez telewizory, aż po Black & White Amazon Kindle (Smiles HD - http://smileshd.com - Więcej urządzeń i platform niż tam widzisz) .
Najlepszym sposobem, w jaki znalazłem obsługę dowolnego urządzenia, jest wybranie podstawowej rozdzielczości, a następnie przeskalowanie w górę (lub w dół) do bieżącego ekranu. Jeśli chcesz oszukiwać, możesz dopasować się do nowej rozdzielczości ekranu, ale najlepiej zachować ten sam współczynnik proporcji. Dopasowanie gry zaprojektowanej na ekran 4: 3 wygląda obrzydliwie na 16: 9, ale dopasowanie 16: 9 do 16:10, nikt tego nie zauważy. Zauważysz, że mam na myśli ekrany według proporcji, a nie wymiarów, co jest szczególnie pomocnym sposobem myślenia w erze całkowicie losowych rozmiarów LCD.
Aby stworzyć kompozycję pasującą do dowolnego ekranu przy zachowaniu proporcji, utwórz tła większe niż większość typowych ekranów kiedykolwiek zobaczy. Jest to podobne do koncepcji obszarów bezpiecznych z telewizją.
http://en.wikipedia.org/wiki/Safe_area
Wygenerowane tła działają naprawdę świetnie. Wzory kafelkowe, szachownice, fraktalne kształty itp. Wystarczy wygenerować nieco więcej, aby zmieścić się na nowym ekranie.
Ponadto tworzenie obrazów statycznych większych niż to, co zobaczy typowy użytkownik. Szerszy niż panoramiczny (16: 9) i kwadratowy niż standardowy def (4: 3). Ponownie wróć do bezpiecznych tytułów, umieść ważne informacje w bezpiecznym obszarze, przeskaluj nieco, aby bezpieczny obszar dotykał jednej krawędzi ekranu i pozostaw trochę spływu dla urządzeń, które są tylko trochę większe.
Odmianą, nad którą dziś pracuję, jest tworzenie obiektów 3D „bezpiecznych dla tytułu”. Ponieważ są trójwymiarowe, składają się wyłącznie z wierzchołków, dzięki czemu są większe niż ekran, zajmują praktycznie nie więcej pamięci, niż gdyby pasowały. Podobnie jak gęstość pikseli rośnie, możesz chcieć udostępnić tekstury o większej szczegółowości. Jeśli nie, no cóż, jest trochę rozmazany.
Interfejsy użytkownika, lubię dopasować główny interfejs użytkownika do idealnego kwadratu na środku ekranu. Rogi i środkowe krawędzie również stanowią naprawdę dobre miejsce do układania przedmiotów; Powinieneś obliczyć ich współrzędne jako takie (względem narożnika lub środkowych krawędzi).
http://www.smileshd.com/press/iPad/png/UI01.png
Jeśli naprawdę chcesz się zachwycić, możesz wesprzeć zarówno orientację wysoką, jak i szeroką. Niektóre urządzenia zgłaszają swoje rozdzielczości ekranu jako wyższe niż szerokie (na przykład iPhone), więc i tak możesz zrobić coś dla tych urządzeń, nawet jeśli po prostu obracasz wszystkie twoje współrzędne.
Interfejs użytkownika, który dostosowuje się zarówno do wysokich, jak i szerokich ekranów, może być dość imponującym widokiem.
Szeroki: http://www.smileshd.com/press/iPad/jpg/SmilesHD01.jpg
Wysoki: http://www.smileshd.com/press/iPad/jpg/SmilesHD02.jpg
Z drugiej strony, jeśli chodzi o design, naprawdę musisz wziąć pod uwagę tylko Wysoką i Szeroką, zamiast Portret + Odwróć Portret + Krajobraz + Odwróć Krajobraz. Kiedy wybierasz pozycje rzeczy na ekranie, zastanów się nad bardziej odpowiednią alternatywną pozycją dla drugiej orientacji.
Czy muszę utrzymywać duże wersje wszystkich obrazów i zmniejszać je w zależności od rozdzielczości (czy to nie marnuje miejsca)?
Możesz albo „marnować miejsce” i obsługiwać szerszą gamę urządzeń za pomocą jednej kompilacji, albo „marnować czas” i musieć tworzyć WIELE kompilacji i zmieniać rozmiar grafiki dla wielu urządzeń.
Najlepszy przypadek, powinieneś stworzyć swoje dzieło w wyższej rozdzielczości niż ostateczny rozmiar byłby na telewizorze 1080p (1920x1080). 2048 x 2048 powinien mieć wspólny rozmiar w kompozycji źródłowej. Albo albo rozważ użycie narzędzi do grafiki wektorowej, takich jak Flash i Adobe Illustrator.
Zdecydowanie polecam utworzenie automatycznego procesu zmiany rozmiaru grafiki. Obecnie większość urządzeń mobilnych, w tym tabletów, nie przekracza rozdzielczości większych niż 720p (1280 x 720) ... przynajmniej niewiele. Przyjdź w przyszłym roku, po prostu nie wiemy, czy to już będzie prawda (iPad 3?).
Tak czy inaczej, aby uzyskać najlepszą wydajność, należy przyzwyczaić się do grafiki źródłowej i zasobów źródłowych. Następnie możesz wykonać proces, który zoptymalizuje dane dla dowolnego urządzenia (urządzeń), na które celujesz.
Czy czcionki bitmapowe dobrze skalują się, czy też muszę użyć czegoś innego?
Dobrze skalują się, jeśli używasz dobrego filtrowania. Jeśli tworzysz grę 2D ze sprzętem 3D (OpenGL ES), to zdecydowanie zalecam użycie Filtrowania liniowego w połączeniu z MipMapping (tj. Zestawem skalowanych obrazów). Dzięki temu można uzyskać percepcyjnie doskonałe wyniki, a często mipmapy są szybsze niż nie.
http://en.wikipedia.org/wiki/Mipmapping
W każdym razie mam nadzieję, że to pomoże. Powodzenia w projekcie.
Android
tag. W każdym razie bufor jest do bani; lepiej, jeśli twoja gra się skaluje i wygląda ładnie.