I've written a quick review of both engines. It's only slightly longer than a Radiant Silvergun boss fight as seen on super-play.co.uk. So on that note...
WARNING
data install
NO REFUGE
ENCOUNTERED AN ASSAILANT.WALL OF TEXT
BE ATTITUDE FOR GAINS...
1:RELAX EYES
2:MOUSE SCROLL WHEEL
3:CAFFEINEReview: GUINEASPRITES
/ Actual mask sprites are neither monochrome nor floodfilled
- Origins not centered anywhere
- Some masks have questionable bounding boxes
SCRIPTS
+ Extensive whole-script documentation
/ Scripts ordered by action
/ Arguments listed in numerical format
- Very little specific-line documentation
OBJECTS
- Objects not arranged by hierarchy
- Questionable object visibility and depth for controllers
ROOMS
(No observations)
SYNTAX
/ I still read the abbreviation "prn_" as something other than "parent"
/ Mixes /*comments*/ with //comments
- Execute code used instead of execute script
WORLD
- No object activation system
- No enemy management system
- No views
CONTROLS
+ Key assignments defined as globals
+ Prohibits left+right and up+down
/ Key state constants save storage space but are hard to read
/ Left+right and up+down treated as neutral
- Key status and L+R/U+D in separate functions
CONTINUITY
/ Object variables/constants/countervars prefixed by v, c, and ct.
/ Moving platforms responsible for changing passengers' position
- Object variables/countervars prefixed by v and ct.
- Players treated as special objects
- Some objects move during begin step and others move during step step
- Moving platforms treated as special objects
METHOD
+ Uses function pointers
+ Uses pro/lite switch
+ Adjustable step events
/ Overrides GM default movement and gravity
/ Overrides GM default draw event
/ No distinction between onground and offground physics
/ Adjustable step events
- Single script handles all player actions
- Object capabilities can be enabled/disabled
- Incomplete documentation
FULL OVERVIEW
/ GM6 lite
Object Hierarchy:
Objects
* Main
* * Important
* * Nonsolids
* * * Players
* * * Enemies
* Blocks
* * Jumpthrus
* * Solidblocks
* * * Slopes
* * MovingPlatforms
* Enemies
* Items
Behaviour:
Update physical keyboard status in controller's end step
Update player's keyboard status in begin step
During player's step step:
* Set hspeed2 by input
* Set vspeed2/impetus by input
* Set jumping by input/assign ducking mask
* Set ducking by input
* Set/move walleject
* Move vertically/collision check
* Move horizontally/collision check
* Check ground status
Set draw info in end step
Block collision found by collision_line with bbox_ and handled by do not move
Do you think the engine is a good base?Yeah sure okay
Do you think YOU could use the engine yourself?It's not how I do things, but I'll cope
Point out possible limits you see ... so you can be proven wrong or something can be done about it.Object hierarchy is ... questionable. Your player behaviour script claims it was specifically written for the player. It would work for enemies too, right? Right...?
Review: XNSPRITES
+ Object origins centered
/ Actual mask sprites are monochrome and floodfilled
SCRIPTS
+ Extensive specific-line documentation
/ Scripts ordered by object
/ Arguments listed as C function prototype
- Very little whole-script documentation
OBJECTS
/ "D&D" object group for map editing
- D&D object group not arranged by hierarchy
- Object depth not supported
ROOMS
+ Object-specific creation code required for entry points
- Object-specific creation code required for entry points
SYNTAX
/ Mix of execute script and execute code
/ Objects prefixed with obj_, par_, and con_
WORLD
/ Object activation system is untested
/ Enemy management system is untested
- Views don't scroll
CONTROLS
+ Prohibits left+right and up+down
/ Key state constants are easy to read but require extra storage space
/ Left+right and up+down treated as last direction pressed
- Key assignments defined as constants
- Keystate read and status update in separate functions
CONTINUITY
/ Object constants prefixed by stat_
/ Passenger responsible for changing position during their own step event
/ Block sprite origins not centered (snaps to grid)
- Some scripts aren't named for the correct objects
- Object hierarchy is questionable for some families
- Constants' names are questionable
METHOD
+ Uses function pointers
+ Uses pro/lite switch
/ Overrides GM default gravity
/ Distinction between onground and offground physics
/ Object capabilities set by pointer
- Incomplete documentation
FULL OVERVIEW
/ GM7 lite
Object Hierarchy:
Objects
* Game objects
* * Instances
* * * Simples
* * * * Jumpthrus
* * * * * Solidblocks
* * * * * Slopes
* * * Mobiles
* * * * Player-controlled
* * * * * Bros
* * * * AI
* * * * * Enemies
* * * * * Moving platforms
* * Controllers
* * * Entry points
* * * Cue cards
* Extra objects
Behavior:
Update physical keyboard status in keyboard's begin step
Update mobile's keyboard status in begin step
During mobile's step step:
* Set key states
* Set walleject
* Set ducking by input
* Set hspeed by input
* Attempt button actions
* Assign ducking mask
* Set gravity
* Set onground status
* Move object on slope
* Move object on platform
* Vertical collision check
* Horizontal collision check
* Determine animation status
* Throw custom step/timer events
Update mobile's draw info in end step
Update walleject in collision event
Block collision handled found by place_meeting with stat_platformcollisiongroup and handled by move_contact_solid
Do you think the engine is a good base?Yeah sure okay
Do you think YOU could use the engine yourself?Yes, but I'd still rather use VB6 or C.
Point out possible limits you see ... so you can be proven wrong or something can be done about it.Collision detection is a bit sketchy, and multiple objects will kill the framerate rather quickly. Also the engine wasn't initially meant to handle slopes, so you may encounter some bugs there too.
...
Clearly, the superior engine of the two is...
Eh? I wrote one of them? I'd best not vote then.