Game Pencil Engine Changelog

What's new in Game Pencil Engine 1.2.1 RC

Oct 10, 2019
  • Critical Changes:
  • Updated to SDL 2.0.7
  • Fixed Scene Editor Critical Bug for Layer Panels
  • Fixed Mouse X/Y bug caused by render phase in html5 runtime
  • Fixed camera positioning bug in html5 runtime caused by render phase
  • Split up "JS Compiler" settings from User Settings resource for potential enlargement and structure.
  • Fixed bug where editor was unable to process at 60 fps and above.
  • Sped up text editor to feel native thanks to the FPS bug fix.
  • Game Controller input support added with up to 8 controllers allowed.
  • GPE_Theme upgraded, minimalized and cleaned up
  • Removed many un * necessary variables related to rendering and cameras.
  • [General Stabilization and Optimizations made.]
  • Replaced support center popup with link to https://github.com/pawbyte/Game * Pencil * Engine/issues
  • Corrected replace all bug of "adkb_dton" to "add_option"
  • CONVERTED ALL .h and .cpp files to UTF * 8 format.
  • Began adding basic translation support to gui elements( Not yet fully implemented )
  • Engine changes:
  • Html5 Export
  • Added copy_rect() function to GPE_Rect class
  • Corrected Mouse X/Y bug that set camera X/Y coordinates to 0,0 every frame
  • Corrected Camera X/Y bug
  • GPE_VERSION_NUMBER updated to 2
  • GPE_VERSION_SUB_NUMBER updated to 0
  • GPE_VERSION_UPDATE_NUMBER updated to 0
  • GPE_VERSION_SUB_NUMBER updated to 0
  • GPE_VERSION_UPDATE_NUMBER updated to 0
  • GPR_MAJOR_VERSION updated to 2
  • GPR_MINOR_VERSION updated to 0
  • GPR_PATCHLEVEL updated to 0
  • Only strict mode allowed
  • Corrected rendableCameraCount increment typo.
  • Inits imageObj in GPE_GameSprite to IS_NULL;
  • GPE_JSFile close_file function updated.
  • Removed unreachable return in find_nearest_object function
  • Commented out "find_newest_object" function implementation temporarily
  • Removed unreachable code in "get_camera_mouse_x" and "get_camera_mouse_y" functions
  • Processed "split_screen" function parameters from 1 * 8
  • Removed unnecessary "this.fontFileName### [iRes] reference" variable from GPE_FontResource load_font function.
  • Removed menuIcon variable from GPE_MainMenu.
  • Removed duplicate "under_mouse" function for GPE_GameObject.
  • Removed legacy "set_depth" function for GPE_GameObject.
  • Fixed "get_path_original_size" function for GPE_GameObject.
  • Fixed "get_path_size" function for GPE_GameObject.
  • Removed typo of "33" nearby "get_direction" function.
  • When debugging now has "### [DEBUG MODE]" in title * bar of HTML file
  • Renamed "SuperSpatialPartition" class to "GPE_SuperSpatialPartition" for namespace reasons.
  • Corrected update_size function in GPE_Rect class.
  • Removed inputController variable from gpe. Users can either call gpe.check_keyboard(temporary compatibility until later version) or input.check_keyboard(actual class).
  • C++ Changes in GPE_Engine folder / RUNTIME:
  • Created GPE_Editor_Init() and GPE_Editor_Quit() functions ( gpe_editor.h & gpe_editor.cpp )
  • Created GPE_Init() and GPE_Quit() functions ( GPE_Engine.h & GPE_Engine.cpp )
  • Input object now deleted on program close.
  • Added GPE_Translator class( GPE_Translator.h and GPE_Translator.cpp )
  • Added get_file_ext_last_dot for detection of files that have extra dots in them. ( GPE_Functions.h and GPE_Functions.cpp )
  • Added GPE_Translator * mainTranslator to GPE_Shared_Resources.cpp and GPE_Shared_Resources.h
  • Added render_only_text() function to GPE_Engine.cpp and GPE_Engine.h
  • Modified all text * render functions to auto * translate when called.
  • Initiates mainTranslator in bool init() in main.cpp .
  • Renamed "userInput" global to simply "input" ( GPE_Input.h ).
  • Added constants related to game controller input ( GPE_Input.h ).
  • Added Game Controller class in GPE_Input.h and added array of them to input manager.
  • Added CURRENT_RENDERER global variable in (GPE_Globals.h and GPE_Globals.cpp ).
  • Added CURRENT_SCREEN_TEXTURE global variable in ( GPE_Globals.h and GPE_Globals.cpp ).
  • Modified all render functions to be aware of CURRENT_RENDERER or the CURRENT_SCREEN_TEXTURE
  • Modified all render functions to be aware of the current camera position
  • Fixed bug where editor was unable to process at 60 fps and above. ( GPE_Input.cpp )
  • Added set_name and get_name functions to GPE_InputManager_GameController class. ( GPE_Input.cpp )
  • Added detect_controllers function to GPE_InputManager class. ( GPE_Input.cpp )
  • Added all gamepad functions similar to its HTML5 runtime to GPE_InputManager class. ( GPE_Input.cpp )
  • Fixed bug where set_fps was not resetting Timers. ( GPE_Timer.cpp )
  • Added GPE_Translator class( GPE_Translator.h and GPE_Translator.cpp )
  • Added get_file_ext_last_dot for detection of files that have extra dots in them. ( GPE_Functions.h and GPE_Functions.cpp )
  • Created GPE_Runtime object and initialized it as GPE and gpe similar to JS * runtime.
  • Geometry rendering taken from global function level and placed into GPE_Runtime object.
  • Created GPE_Runtime object and initialized it as GPE and gpe similar to JS * runtime.
  • Created GPE_MainGame object and initialized it as GPE and gpe similar to JS * runtime.
  • Created GPE_GameObject object and initialized it as GPE and gpe similar to JS * runtime.
  • Created GPE_SuperSpatialPartition object and initialized it as GPE and gpe similar to JS * runtime.
  • Created GPE_SceneCamera object and initialized it as GPE and gpe similar to JS * runtime.
  • Changed init function to GPE_Init() for namespace sake and is in engine level versus in main.cpp
  • Removed unused constants/outdated ( GPE_Constants.h )
  • Added IS_NULL to match JS * runtime. ( GPE_Constants.h )
  • Removed loadedGPEFonts and other font related functions/variables from global level and placed inside of GPE_Runtime class. ( GPE_Engine.h and GPE_Engine.cpp )
  • Renamed "RESOURCE_kb_AREA_HEIGHT" constant to "RESOURCE_AREA_HEIGHT". ( GPE_Constants.h )
  • Renamed fpsTimer and capTimer variables to match "GPE_" namespace.
  • Added destructor for GPE_Renderer class as well as moved global "windowIcon" variable to this class ( GPE_Renderer.h and GPE_Renderer.cpp )
  • Created GPE_Shapes.h file headlined by GPE_Rect
  • Expanded variables in ProgramState class and renamed to GPE_ProgramState.
  • Moved GPE_PathPoint class to GPE_Engine.h
  • Created get_name() function for GPE_GameObject class (GPE_Engine.h and GPE_Engine.cpp)
  • Created global variable GPE_MAX_OBJECT_TYPES(GPE_Engine.h and GPE_Engine.cpp)
  • Added Texture * Streaming flag to renderer for SDL platforms ( GPE_Renderer.cpp )
  • Added set_blend_mode() function to GPE_Texture object with a choice of 4 constans starting with blend_mode_ ( GPE_Texture.h & GPE_Texture.cpp )
  • Removed GPE_Texture* destination from parameters in GPE_Texture render functions ( GPE_Texture.h & GPE_Texture.cpp )
  • Removed GPE_Texture* destination from parameters in GPE_Animation render functions ( GPE_Animation.h & GPE_Animation.cpp )
  • Added get_mono_height function to GPE_Font class ( GPE_Engine.h & GPE_Engine.cpp )
  • Removed constant MIN_WINDOW_WIDTH and MIN_WINDOW_HEIGHT from GPE_Renderer and added new function to set local variables in window sizing ( GPE_Renderer.h & GPE_Renderer.cpp )
  • Toolbar pops up if no other key but ALT is released and no other keyboard key is pressed, down or released.
  • C++ Changes in AOSGUI(name pending) folder:
  • PGUI_PATCHLEVEL updated to 2;
  • Renamed "barBox" variable to "elementBox" to make better sense.
  • Added scale_width() and scale_height() to GPE_GeneralGuiElement base class.
  • Changes to GPE_Theme class formerly known as GPE_Template
  • GPE_Theme class renamed to GPE_Theme ( ambitious_gui_library.h and ambitious_gui_library.cpp )
  • GPE_Theme now has list of colors, template name and templateName ( ambitious_gui_library.h and ambitious_gui_library.cpp )
  • GPE_Theme add_color function### [OVERLOADED as well] added ( ambitious_gui_library.h and ambitious_gui_library.cpp )
  • GPE_Theme change_color function added ( ambitious_gui_library.h and ambitious_gui_library.cpp )
  • GPE_Theme find_color function added ( ambitious_gui_library.h and ambitious_gui_library.cpp )
  • GPE_Theme load_theme function added( ambitious_gui_library.h and ambitious_gui_library.cpp )
  • GPE_Theme render_background function added( ambitious_gui_library.h and ambitious_gui_library.cpp )
  • GPE_Theme save_theme_as function added( ambitious_gui_library.h and ambitious_gui_library.cpp )
  • Removed (int xPos = 0, int yPos = 0,) from 1st two arguments for constructor for GPE_DropDown_Menu. ( ambitious_gui_library.h and ambitious_gui_library.cpp )
  • Replaced all render_new_text() with render_only_text() in text_editor.cpp ( Code/Custom text is not translated on the fly ).
  • Modified all render functions to be aware of CURRENT_RENDERER or the CURRENT_SCREEN_TEXTURE
  • Modified all render functions to be aware of the current camera position * TO DO( Translate read * only input in text_editor.cpp )
  • Sped up text editor to feel native thanks to the FPS bug fix. ( text_editor.cpp )
  • Changed comment line backtrace to 50 lines above minimum. ( text_editor.cpp )
  • Show Short Project Names boolean added to Settings ( ambitious_gui_library.h and ambitious_gui_library.cpp )
  • Renamed "load_fonts" to GPE_Load_Editor_Fonts()" ( "ambitious_gui_library.h and ambitious_gui_library.cpp )
  • Changed debug information for when this function is called ( main.cpp )
  • RESOURCE_TYPE_CLASS=10 and RESOURCE_TYPE_ACHIEVEMENT=17
  • GPE_TextInputBasic set_name function no longer sets the label value when called.
  • Modified GPE_ToolIconButton constructor for and renamed the 1st two parameters ### [ int buttonX, int buttonY ]. ( ambitious_gui_library.h & ambitious_gui_library.cpp )
  • Corrected GPE_ToolIconButton's set_image() function.( ambitious_gui_library.cpp )
  • Modified GPE_ToolIconButtonBar constructor for and renamed the 1st two parameters ### [ int buttonX, int buttonY ]. ( ambitious_gui_library.h & ambitious_gui_library.cpp )
  • Modified GPE_ToolIconButtonBar now correctly updates its sub options x/y coordinates in the process_self function. ( ambitious_gui_library.cpp )
  • Modified GPE_CheckBoxBasic box and mark shrunken. ( ambitious_gui_library.cpp )
  • Modified GPE_SelectBoxBasic check * boxs and mark shrunken. ( ambitious_gui_library.cpp )
  • Modified GPE_SelectBoxBasic texture resized and centered properly, text also centered properly. ( ambitious_gui_library.cpp )
  • GPE_DropDown_Menu set_option( std::string newSelectedOptionName) function added ( ambitious_gui_library.cpp )
  • Tool bar and pop up height reduced to 24px for better look.
  • You now select GPE_Label_Image by using space or enter ( ambitious_gui_library.cpp )
  • GPE_GuiElementRow updated for those wanting rows to have seperate alignments ( ambitious_gui_library.cpp & ambitious_gui_library.h )
  • GPE_GuiElementList updated to make use of GPE_GuiElementRow with process_self and render_self functions updated. ( ambitious_gui_library.cpp & ambitious_gui_library.h )
  • GPE_ScrollBar_XAxis and GPE_ScrollBar_YAxis are now children objects of GPE_GeneralGuiElement ( ambitious_gui_library.cpp & ambitious_gui_library.h )
  • GPE_ScrollBar_XAxis and GPE_ScrollBar_YAxis now incldue bool autoCorrect in its public variables removing it as a paramter from process_self to be a proper child class( ambitious_gui_library.cpp & ambitious_gui_library.h )
  • GPE_ScrollBar_YAxis render is fixed that had awkward mis * render of top * arrow where camera was involved.( ambitious_gui_library.cpp )
  • Context Menu now resizes by default its top level.
  • Animation Editor Changes:
  • Mode 0 Changes
  • Previewed collision shape now scales to zoomValue as well in render_self
  • Added Zoom Level Text Checkbox
  • Image dimensions text moved to be above max * dimensions text.
  • Collision Dimensions are 1 line a piece to make up for smaller size of panel.
  • Animation Speed slider added
  • Previewed animation and collision shape is now centered
  • Resized Collision Data fields to fit within editor panel in a more y * sensitive maner.
  • Mode 1 Changes
  • You can now scroll and zoom in/out of entire sprite texture.
  • Checkbox added to preview sub * image numbers within their frames.
  • Right click functionality added for quick * access to other changes.
  • Other changes
  • Commented out record_error("Beginning to Process Sprite Data...") on line 633
  • Changed editor pane with to 256
  • About Page Changes:
  • Credits updated. Thanks Patreon backers!
  • Audio Editor Changes:
  • Tweaked design.
  • Added Volume slider.
  • Bottom Log/Search Panel:
  • Default height shortened for maximum view space of editors.
  • Class Editor Changes:
  • NEW RESOURCE TYPE
  • Exports .js files
  • Exports meta data files
  • Exports into project as just a "code dump"( not complicated at the moment)
  • Code Editor Changes:
  • Colors changed and some keywords and constant mis * matches fixed.
  • Top button * bar shrunk
  • Input cleared before return of GPE_Get_Color_PopUp function to avoid input problems.
  • Compiler Tab / Section:
  • Removed "useStrictMode" checkbox
  • Examples Editors:
  • Hello World Tutorial added
  • flappy_crow updated.
  • platformer example updated.
  • super_crazy_battle_pong example updated.
  • External Editors:
  • Unchanged
  • File Open/Save Menu:
  • Unchanged
  • Font Editor Changes:
  • Unchanged
  • Functon Editor Changes:
  • Function code integrated into Search System.
  • Help Page Changes:
  • Tutorials URL updated.
  • New Project Launcher Changes:
  • Cancel button problem with cancel button still creating projects corrected.
  • Added checkbox to replicate file name as Project Name
  • Removed un * needed code borrowed from other pop up function.
  • Renamed varaibles borrowed from Show_Tip_of_The_Day function.
  • Added responsive design to pop up box.
  • Object Editor Changes:
  • Corrected segmentation fault causing bug in regards to editor mode.
  • Path Editor Changes:
  • Scene Previewer improved
  • Point options box resized for maximum screen usage.
  • Changed Radio button into checkbox and placed under scene previewer for maximum screen space coverage
  • Save/Load changes slightly to handle new changes.
  • Fixed scrolling bug where panel and scene would scroll at same time.
  • "Pawbituous Compiler" upgrades:
  • Now processes custom classes(In early Beta)
  • Handles debug mode by using "gpepower_strict_v1_1_4_debug.js"
  • Now safety, non * strict mode removed
  • Project Browser Changes:
  • Added CTRL+T Shortcut to open up Project Browser
  • Allow Examples Projects to appear in both Recent and Examples sections.
  • Fixed laggy redraw issue.
  • Project Folder Class Changes:
  • Modified constructor to take in 2 new optional parameters( projectLanguageIn and createBlankScene)
  • Added std::string projectLanguage to the class' private variables
  • Added std::string get_project_language() to the class' public functions
  • Added GPE_ResourceContainer * RESC_CLASES to public variables.
  • Project Properties/Settings Changes:
  • Padding increased.
  • Margins increased.
  • Scene Editor Changes:
  • Fixed Panel bug in which Layer specific elements were not being processed and rendered.
  • Corrected redraw problem for secondary layer when RedrawEveryFrame is disabled.
  • Removed Comment Pane in favor or showing data inside of status bar to make more room on Y * axis for editing.
  • Sprite Editor Changes:
  • Renamed to Animation Editor for dynamic reasons.
  • Syntax Highlighter Changes:
  • Added layerBeingChanged as 1st parameter for set_background function
  • Text/Code Editor Changes:
  • Sped up arrow keys to remove unwanted delay time when typing.
  • Padding improved to allow more lines in view now.
  • Button bar resized to optimize spacage and use.
  • Texture Editor Changes:
  • Image dimensions text moved to be above max * dimensions text
  • Also added "Image Size: " to front of dimension label
  • Resized right panel to make more room for texture preview.
  • Themes:
  • No new themes added to this version.
  • Text editor colors changed to be easier on the eyes.
  • Image based backgrounds are now supported in the editor.
  • Tilesheet Editor Changes:
  • Image dimensions text moved to be above max * dimensions text
  • Scaling/Zooming in the editor and it's previwer is now fully enabled. Perfection : * )
  • User Settings Changes:
  • JS compiler split into new resource type
  • Frame Cap now shows FPS_RATIO into as label
  • Split Advanced Components into new tab
  • Added Input Delay fields into Advanced Tab
  • Corrected "External Editors" section with bugged * padding issue
  • Theme Editor and loader added with brand new "Themes tab".