User Tools

Site Tools


proton_features

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
proton_features [2010/12/14 13:06]
seth
proton_features [2012/12/13 07:14]
seth
Line 1: Line 1:
 {{:​proton_header_black.png?​|}} {{:​proton_header_black.png?​|}}
 === Features === === Features ===
-  * Create ​2D and 3D games that run on WindowsMac OS X, iOS, Android, ​and Palm WebOS in C++ +  * Create games and apps that run on eight platforms in C++:  OSXWin, iOS, Android, WebOS, RIM Playbook, Linux, Flash 
-  * Entire engine based on GL (OpenGL ES 1.X or standard Open GL modes+  * Entire engine based on GL (OpenGL ES 1.X or GL 1.3) 
-  * System specifics are totally ​abstracted, hiding the gotchas and caveats of each platform +  * **In App Purchase** integrated for iOS, Android, and webOS through a single interface (IAPManager) 
-  * Scene graph component based system that handles game and GUI objects together ​(they are the same thing)+  * Third party systems integrated: [[http://​www.tapjoy.com|Tapjoy]],​ [[http://​www.hookedmediagroup.com/​Mobile/​|Hooked]],​ [[http://​www.chartboost.com/​|Chartboost]],​ Startapp, [[http://​www.flurry.com/​|Flurry]] 
 +  * System specifics are abstracted, hiding the gotchas and caveats of each platform, while still harnessing the full power of the native hardware ​(for instance, hardware audio decoding)
   * Sigslot based (with boost::​signals) messaging system that lets you dynamically schedule calling entity and component functions, set variables   * Sigslot based (with boost::​signals) messaging system that lets you dynamically schedule calling entity and component functions, set variables
-  * Supports screen stretching ​to fit any screen sizemanual multiple resolution layouts, or mixture of both+  * Supports ​fake screen ​resolutions with stretching, ​so you can target only few sizes and automatically scale up/down to the closest one
   * Internal component based GUI system with menus, buttons, scrolling, text input (supporting hardware and soft keyboards)   * Internal component based GUI system with menus, buttons, scrolling, text input (supporting hardware and soft keyboards)
-  * Particle system (LinearParticle)+  * 2D and 3D Particle system (LinearParticle ​for 2d, and Irrlicht for 3D)
   * Font system supporting in-line coloring, kerning, scaling, wrapping. Imports BMFont generated fonts.   * Font system supporting in-line coloring, kerning, scaling, wrapping. Imports BMFont generated fonts.
-  * Simple to use Sound Manager ​with smart caching ​and streaming. (4+ implementations ​available, including AVAudioPlayer and FMOD+  * Simple to use AudioManager ​with smart cachingstreaming, and per sfx controls. (Supports 6 implementations) 
-  * Portrait and landscape ​mode support with rotation/​flip +  * Portrait and landscape ​modes support with rotation/​flip ​(on some platforms) 
-  * Automatic internal handling to get around ​power-of-2 texture limitations+  * Automatic internal handling to seamlessly deal with power-of-2 texture limitations
   * Socket and HTTP classes, in-game file downloading   * Socket and HTTP classes, in-game file downloading
   * Powerful 2D image handling with scaling, tinting, rotation, animation   * Powerful 2D image handling with scaling, tinting, rotation, animation
-  * FileManager that transparently handles decompressing files when needed, supports mounting zips as filesystems +  * FileManager that transparently handles decompressing files when needed, supports mounting zips as filesystems, automatically mounts Android .apks 
-  * Touch screenaccelerometerand vibration support +  * Get abstracted input from touchmouseDInput, iCade, Xperia gamepad, 60Beat Gamepad, accelerometer 
-  * RTPack.exe command line tool intelligently handles image conversions to .rttex format, a wrapper that handles multiple formats ​(including ​.pvrct) +  * RTPack command line tool intelligently handles image conversions to .rttex format, a wrapper that handles multiple formats including ​jpg and powerVR compression types 
-  * Requires minimum outside dependencies for portability+  * Requires minimum outside dependencies for portability, most are included (such as libjpg, libpng, a small subset of boost, etc)
   * Large group of cross platform utility functions suitable for stealing if you want (Such as RemoveDirectoryRecursively,​ CreateDirectory Recursively,​ LaunchURL, etc)   * Large group of cross platform utility functions suitable for stealing if you want (Such as RemoveDirectoryRecursively,​ CreateDirectory Recursively,​ LaunchURL, etc)
   * Supports premultiplied alpha, can optionally convert on load   * Supports premultiplied alpha, can optionally convert on load
   * Separate "​system"​ and "​game"​ timers make pausing the game easy   * Separate "​system"​ and "​game"​ timers make pausing the game easy
-  * Built-in database system can serialize to/​from ​storage+  * Built-in database system ​(VariantDB) ​can serialize ​key/data pairs to/​from ​disk or raw memory easily
   * All C++ source is "right there" making debugging easier - don't know how to use a component? Look at its source   * All C++ source is "right there" making debugging easier - don't know how to use a component? Look at its source
   * 3D features provided by the optional pre-integrated [[http://​irrlicht.sourceforge.net/​|Irrlicht]] component - Proton SDK doesn'​t use any of its window setup or input code, but only the rendering pieces   * 3D features provided by the optional pre-integrated [[http://​irrlicht.sourceforge.net/​|Irrlicht]] component - Proton SDK doesn'​t use any of its window setup or input code, but only the rendering pieces
   * Liberal [[http://​www.rtsoft.com/​proton/​license.txt|open source license]]   * Liberal [[http://​www.rtsoft.com/​proton/​license.txt|open source license]]
-  * Used in the games [[http://​www.rtsoft.com/​pages/​dscroll_mobile.php|Dungeon Scroll]], [[http://​www.codedojo.com/?​p=138|Mind Wall]], [[http://​www.rtsoft.com/​pages/​bliparcade.php|Blip Arcade]], ​and [[http://​www.rtsoft.com/​pages/​dink.php|Dink Smallwood HD]]+  * Used in the games [[http://​www.rtsoft.com/​pages/​dscroll_mobile.php|Dungeon Scroll]], [[http://​www.codedojo.com/?​p=138|Mind Wall]], [[http://​www.rtsoft.com/​pages/​bliparcade.php|Blip Arcade]], [[http://​www.rtsoft.com/​pages/​dink.php|Dink Smallwood HD]], [[http://​www.rtsoft.com/​pages/​tanked.php|Tanked (Free 3d game)]], and [[http://​www.growtopiagame.com|Growtopia]]. 
 +  * Even if you don't plan on selling a desktop version of your game, having a native desktop binary makes it a breeze to debug and record high speed movies of your app for promotion purposes
  
 === The Insane Proton Sigslot based Entity/​Component System === === The Insane Proton Sigslot based Entity/​Component System ===
-  * No messy C++ hierarchy - Only a single entity type that lets you add components+  * No messy C++ hierarchy - Only a single entity type that lets you add components ​and additional entities as children
   * No hard-coded Render or Update functions, a very different way to think about and use entities   * No hard-coded Render or Update functions, a very different way to think about and use entities
   * Loose coupling, can call functions, get/set variables without knowing anything about the entity/​class - directly or scheduled   * Loose coupling, can call functions, get/set variables without knowing anything about the entity/​class - directly or scheduled
-  * Dynamic ​function/​variable ​creation ​at an entity or component level using a variant data type+  * Dynamic creation ​and runtime binding of function and variables. Supports reflection, remote procedure calls, tweening
   * Components can share data and work together - for example, adding the RenderTrailComponent will add a '​trail'​ without knowing anything about the component (s) that is actually handling rendering   * Components can share data and work together - for example, adding the RenderTrailComponent will add a '​trail'​ without knowing anything about the component (s) that is actually handling rendering
   * Can request callbacks when data is changed or functions are called   * Can request callbacks when data is changed or functions are called
   * You can just ignore the entire entity system if you want, or just use it for your app menus/GUI   * You can just ignore the entire entity system if you want, or just use it for your app menus/GUI
proton_features.txt · Last modified: 2013/07/26 01:34 by seth