To answer the platform game specific part of your question:
Platform games are traditionally tile based. Tiles are fixed size rectangles which comprise the building blocks of each level; they can have the appearance of stone, or grass or any surface you can imagine within reason. The best way to design them is to ensure that when two identical tiles are placed next to each other, the texture seamless repeats.
A good example of how to design repeating tile sets is here:
http://www.wildbunny.co.uk/blog/2012/03/01/designing-a-retro-pixel-art-tile-set
Tiles are laid out in memory in what is called a 'map'. Each tile is given an identifying number; maps are rectangular arrays containing numerical tile references. An example map might look like this:
byte[] map =
{
01,01,01,01,01,01,01
01,00,00,00,00,00,01
01,00,02,02,02,00,01
01,00,00,00,00,00,01
01,01,01,01,01,01,01
};
Most platform games have multiple layers of these maps; background tiles generally have no collision information associated with them and are purely decorative, mid-ground tiles can be used to mark locations associated with game-logic, like entrances and exits, or for placing AI characters. Foreground tiles are used for collision information and the main body of the actual platforms.
Maps can be connected together using special tiles which indicate an entrance or exit, when collided with the system can unload the current map and load in the new one.
You can read more about platform games in general here:
http://www.wildbunny.co.uk/blog/2011/12/11/how-to-make-a-2d-platform-game-part-1/
Hope that helps!
Cheers, Paul.