Our Properties: Gamasutra GameCareerGuide IndieGames Indie Royale GDC IGF Game Developer Magazine GAO
My Message close
Latest News
spacer View All spacer
 
May 18, 2012
 
Could digital sales also be contracting? [15]
 
Facebook's anemic IPO takes heavy toll on Zynga [2]
 
How a mod put three-year-old Arma 2 on top of Steam's charts [3]
spacer
Latest Features
spacer View All spacer
 
May 18, 2012
 
arrow A Personal Journey: Jenova Chen's Goals for Games [3]
 
arrow Predicting Churn: Data-Mining Your Game [7]
 
arrow A Revolution in Sound: Break Down the Walls! [1]
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
May 18, 2012
 
Industrial Light and Magic
Creature ATD
 
FLOAT (hybrid entertainment)
UX/UI Designer
 
Riot Games
Fraud Prevention Manager
 
Inhance Digital Corp
HTML 5 Programmer
 
ArenaNet
Game Recruiter
 
ArenaNet
Audio Associate Producer
spacer
Blogs

  Of Large Levels and Small Devices
by Ian Wagner on 02/21/12 06:59:00 pm
Post A Comment Share on Twitter Share on Facebook RSS
 
 
  Posted 02/21/12 06:59:00 pm
 

"I suffer from short-term memory loss. It runs in my family. At least I think it does..." Speaking of which, one of the fun things we get to deal with while developing the Fixbot game engine is management of the device's short-term memory. iDevices have a very small amount of short-term memory compared to desktop computers or consoles. While it is not uncommon for a PC/Mac game to require upwards of 1GB of RAM these days, iOS apps are hard pressed to get 20MB without running the device out of memory. This presents a slight problem for games like Fixbot, whose levels can exceed 10,000 x 10,000px. As you can imagine, an image this size would consume quite a bit of memory.

In addition to the sheer memory usage of this image, there is another problem that needs addressing. Fixbot, like most other iOS games, used OpenGL to handle rendering. This imposes a texture size limitation of 1024x1024 or 2048x2048 (this limitation is device-specific). In order to handle levels up to 10 times this size, we specially designed our level editor to split the levels up into multiple images. The location of each "chunk" is then written to the level file so that the game engine knows where to draw each piece.

As previously noted, we don't have enough memory to keep the entire level loaded in memory, even if it is chunked up into manageable textures, so the engine has to be smart about which textures it keeps around and which get unloaded. We're still deciding on the proper balance for each device, but the game engine basically checks where the player is periodically and then makes sure that all chunks within about a 3x3 screen block (with the player in the middle) stays loaded. Everything else is "forgotten" as quickly as those random facts after the history test :)

Reposted from Fixbot Blog: http://demergostudios.com/fixbot/

 
 
Comments


none
 
Comment:
 




 
UBM Techweb
Game Network
Game Developers Conference | GDC Europe | GDC Online | GDC China | Gamasutra | Game Developer Magazine | Game Advertising Online
Game Career Guide | Independent Games Festival | Indie Royale | IndieGames

Other UBM TechWeb Networks
Business Technology | Business Technology Events | Telecommunications & Communications Providers

Privacy Policy | Terms of Service | Contact Us | Copyright © UBM TechWeb, All Rights Reserved.