User Tools

Site Tools


proton_features

Differences

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

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
proton_features [2010/10/25 02:35] – created sethproton_features [2013/07/26 01:34] seth
Line 1: Line 1:
 {{:proton_header_black.png?|}} {{:proton_header_black.png?|}}
 === Features === === Features ===
-  * Create 2D and 3D games that run on WindowsiPod TouchiPhone, iPad, Android, and Palm WebOS in C++ +  * Create games and apps that run on eight platforms in C++:  OSXWiniOS, Android, WebOS, RIM Playbook, Linux, Flash 
-  * Entire engine based on GL (OpenGL ES 1.or standard Open GL modes+  * Entire engine based on GL (OpenGL ES 1.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. (no unicode yet..) 
-  * 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 rotatation/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.  Supports multi-touch on most platforms including Win7/Win8 
-  * 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 Proton Entity System === +=== The Insane Proton Sigslot based Entity/Component System === 
-  * No messy C++ hierarchy - Only a single entity type that lets you add components to+  * 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 - normally 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: 2018/07/28 07:54 by seth