don't click here

New Game Maker Studio Sonic Engine

Discussion in 'Fangaming Discussion' started by AeroGP, Jul 14, 2013.

  1. AeroGP

    AeroGP

    Member
    130
    1
    18
    Los Angeles, CA
    Sonic for GameMaker: Studio
    The problem is you're using the HTML5 client. You need Game Maker Studio Standard.

    Standard only exports as .gmz and .gm81 and, even if I were to export the later, it would just import corrupted into your client because it's incompatible.
     
  2. Mr Lange

    Mr Lange

    A wise guy eh. I know how to DEAL with wise guys. Member
    1,286
    11
    18
    The Land of Waldos
    Sonic Utopia, Sonic Overture
    Still haven't figured out how to import this correctly. I have no idea what you just explained. Why are there so many variations of Game Maker now?
    Is there no way to export this into a Game Maker 8.1 project? There must be some way to open it.
     
  3. Overbound

    Overbound

    Member
    607
    21
    18
    Iowa
    Sonic Time Twisted Creator
    You cannot use a free version of Game Maker Studio. You need at least the standard version. Here's a chart showing the different versions of Game Maker Studio. You need at least standard. The engine requires features from Game Maker Studio that are not present in 8.1. That's why you must have Game Maker Studio.
    http://www.yoyogames.com/gamemaker/studio/standard
     
  4. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    I'm using the Professional Edition of Studio. It's just not importing properly. Would it be too much to ask to have an .rar of the exported resources that I could backport to 8.1?

    (Yes, I'm fully aware that it wouldn't work as is... and I know what to do to fix that.)
     
  5. Mr Lange

    Mr Lange

    A wise guy eh. I know how to DEAL with wise guys. Member
    1,286
    11
    18
    The Land of Waldos
    Sonic Utopia, Sonic Overture
    If you could do that I would really appreciate it.
    Aero, please help us with this.
     
  6. AeroGP

    AeroGP

    Member
    130
    1
    18
    Los Angeles, CA
    Sonic for GameMaker: Studio
  7. Quick question(s). I've gotten 8-dir ground rotation to work properly, but I'm having some issues with setting the angle while Sonic's in the air. Normally in this engine, when Sonic runs up a curve and into the air, his angle gradually sets back to 0 using 360 degree movement. But I want it to look like the genesis games, where his angle is changed in increments of 45 degrees (I think that's how it's done). I believe this code is used to change the angle in air in the player_state_fall script:

    Code (Text):
    1. if not spinning and (image_angle!=angle) image_angle = angle_wrap(image_angle+2.8125*sign(angle_distance(image_angle, angle)));
    As I believe I'm on the right part of the code, so my first question is, what exactly is this code doing? And how would I make it so that the player's angle is set back to 0 in increments of 45 degree movement rather than picking up every angle in the air. I hope I worded this correctly so that someone understands.

    Also: Last post as a Trial Member so I probably won't be able to respond again until validation, so thanks in advance if the question gets answered.
     
  8. AeroGP

    AeroGP

    Member
    130
    1
    18
    Los Angeles, CA
    Sonic for GameMaker: Studio
    In psuedo-code: if the player is not spinning and his visual angle does not match his actual angle, increase the visual angle by 2.8125 times the sign of whatever direction the actual angle is from the visual angle, then wrap the result to 360 degrees.

    to snap this to degrees of 45:

    Code (Text):
    1. if not spinning and (image_angle!=angle) image_angle = angle_wrap(round((image_angle+2.8125*sign(angle_distance(image_angle, angle)))/45)*45);
    You just divide the result by 45, round it, then re-multiply 45 to get the nearest degree of 45.

    That line is a bit loaded, so you could also split it to make it easier to read:

    Code (Text):
    1. if not spinning and (image_angle!=angle)
    2. {
    3.     image_angle += 2.8125*sign(angle_distance(image_angle, angle));
    4.     image_angle = angle_wrap(round(image_angle/45)*45);
    5. }
    It'd probably be better, however, to apply this same wrapping where the image_angle is used in the draw event:

    Code (Text):
    1. if sprite_index>-1 draw_sprite_ext(sprite_index, image_index, floor(x), floor(y), image_xscale*facing, image_yscale, round(image_angle/45)*45, image_blend, image_alpha);
    EDIT: Ninja'd.
     
  9. Lapper

    Lapper

    Lappering Tech Member
    1,765
    956
    93
    England
    Sonic Studio, Sonic Physics Guide, Kyle & Lucy, Freedom Planet 2
    I simply used round(image_angle/45)*45 in the draw event, covering all angles all the time.
     
  10. AeroGP

    AeroGP

    Member
    130
    1
    18
    Los Angeles, CA
    Sonic for GameMaker: Studio
    If you do the above, remember to apply it to all objEffects that use the same angle. (ie. objTailsEffect)
     
  11. AeroGP

    AeroGP

    Member
    130
    1
    18
    Los Angeles, CA
    Sonic for GameMaker: Studio
    Opening post updated with a new build. To encourage updating, I've killed all the old links.

    Before anyone asks, yes, all the sound issues are gone AFAIK.
     
  12. AeroGP

    AeroGP

    Member
    130
    1
    18
    Los Angeles, CA
    Sonic for GameMaker: Studio
    Promotional video added to the OP. Check it out.
     
  13. Um... Is the ground all supposed to be invisible, or did something happen like you were using flickering to try and get a transparent effect and YouTube's frame rate screwed you over? From what I could see, it looks really good, and I wish I had Studio so I could play with it.
     
  14. Aerosol

    Aerosol

    Not here. Moderator
    11,163
    573
    93
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    Me too. Too bad I don't really have $50 to throw around to learn how to use an engine. I guess I could use the free edition, but I won't be able to use this engine.

    Is there a...reason why this engine needs at least Standard? I'm sure there are more differences, but going by the GameMaker website, the only difference between the free version and the Standard version is "unlimited resources".
     
  15. Lilly

    Lilly

    Member
    2,428
    238
    43
    United States
    Shang Mu Architect
    I'm pretty sure sprite rotation, among other visual effects, are still limited to paid editions of Game Maker. So the game engine should boot for you if you disable a few things, (Manual 8-way rotation with sprites isn't as RAM hoggy as you'd think.) unless it needs external resources and/or DLLs from startup, then it's going to act picky.

    That's if Game Maker Studio still behaves much the same way as with previous versions, however; I don't know if a file itself would be restricted to either Lite or Pro users.
     
  16. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    Game Maker Studio is terrible. I'm simply backporting to 8.1.
    If you have a previous version, paid or free, stick with it... Studio just blows.
     
  17. AeroGP

    AeroGP

    Member
    130
    1
    18
    Los Angeles, CA
    Sonic for GameMaker: Studio
    The free edition has a resource cap that impedes the amount of scripts and objects needed for the engine to run successfully, and some functionality is limited in the free version compared to standard, such as functions for manipulating surfaces.
     
  18. AeroGP

    AeroGP

    Member
    130
    1
    18
    Los Angeles, CA
    Sonic for GameMaker: Studio
    New version now available! Here's a changelog: (it is also included with the editable)
    GENERAL NOTES

    New control scheme for global game functionality:
    Alt + F4: force-quit.
    F3: Double window size.
    F4: Fullscreen.
    F5: Scanlines.
    "C" key: Free-roaming state. (Debug mode only)

    Made various adjustments to code complexity too numerous to list.
    Added inline documentation to almost all scripts.
    objPath and objExampleQuicksand are now deprecated. (See "Rooms\Zones\Examples" for new examples)
    Added proper Sonic 2 Title Card and Sonic 1 drown popup. (See "Objects\Scene\Overlays")
    "Perfect Bonus" now added to objScoreCard.
    Music queuing and playback is now handled by objMusic. (See "Objects\Game")
    Direct playback overriding the priority queue is possible. (music_play)
    Music overlays (eg. 1up music) now have their own playback function. (music_play_overlay)
    Global sound effect volume can be adjusted. (audio_set_volume_sound)
    Basic loading and saving functionality is available. (See "Scripts/Game/File")
    On failure, the input_check* functions now return -1, not 0.
    Can now "pause" the game from anywhere. (game_set_active)
    Can travel directly to a specific scene as long as you know its scene index number. (scene_goto)
    in_view now accepts a second argument for adjusting the offset of the view boundary.
    The transition_* scripts were merged into transition_to. (See "Scripts/Scene/Overlays/Transitions")
    Player bounding box size is now determined at character selection. (player_change_character)
    State and state change scripts were merged together; state changes are now accessed by calling the corresponding state script using a negative number as an argument (usually -1; some special cases use lower numbers, such as jumping)
    Listener position now updated in objZone instead of objPlayer.
    DASH-style angle detection implemented for those wanting to construct custom masks. (See "Objects\Scene\Zone Objects\Parents\Collider")
    objBridge code reworked to be one single platform instead of several smaller ones.
    objSignPost must be deliberately touched now; simply passing its x-position is no longer enough.
    objWater is now a customizable object that can be stretched to "fill" specific areas. (See "Rooms\Zones\Examples" for example usage)
    Water-running can be disabled per-instance of objWater.
    objConveyorBelt created in response to confusion around objExampleMovingPlatformH. The later no longer works like a conveyor belt.
    objExampleCorkscrew now available. (See "Objects\Scene\Zone Objects\Specific\Examples")


    RESOURCE CHANGES

    SPRITES
    New: sprTitleCardBorder (in "Scene\Overlays\Title Card")
    New: sprTitleCardGame (in "Scene\Overlays\Title Card")
    New: sprDrownPopup (in "Scene\Overlays")
    New: sprWaterMask (in "Scene\Zone Objects\General\Water")
    New: sprKnucklesFlipReverse (in "Scene\Zone Objects\Player\Characters\Knuckles")
    New: sprSonicFlipReverse (in "Scene\Zone Objects\Player\Characters\Sonic")
    New: sprTailsFlipReverse (in "Scene\Zone Objects\Player\Characters\Tails")
    New: sprRhinobotDust (in "Scene\Zone Objects\Specific\Enemies\Rhinobot")
    New: sprExampleConveyorBelt (in "Scene\Zone Objects\Specific\Examples")
    New: sprExampleCorkscrew (in "Scene\Zone Objects\Specific\Examples")

    Removed: sprExampleBreakableDebris
    Removed: sprExampleQuicksand
    Removed: sprPath

    Edited: sprExampleEnemy renamed sprRhinobot


    SOUNDS
    Edited: bgmClear, bgmDrowning, bgmGameOver changed into .wav files.
    Edited: bgmTest renamed bgmZoneEH


    BACKGROUNDS
    New: backScanlines (in "Game")


    SCRIPTS
    New: audio_set_volume_sound (in "Game\Audio")
    New: music_play (in "Game\Audio")
    New: music_play_overlay (in "Game\Audio")
    New: load_controls (in "Game\File")
    New: load_settings (in "Game\File")
    New: save_controls (in "Game\File")
    New: save_settings (in "Game\File")
    New: scene_goto (in "Game\Program")
    New: game_set_active (in "Game\Program")
    New: collision_box_vertical (in "Scene\Genera\Collision")
    New: transition_to (in "Scene\Overlays\Transitions")
    New: player_reaction_corkscrew (in "Scene\Player\Physics\Reactions\Specific")
    New: player_reaction_sign_post (in "Scene\Player\Physics\Reactions")
    New: player_reaction_water (in "Scene\Player\Physics\Reactions")
    New: player_get_surface_angle (in "Scene\Player\Physics\Rotation")
    New: player_get_surface_angle_air (in "Scene\Player\Physics\Rotation")
    New: player_set_wall (in "Scene\Player\Physics\Update")
    New: player_is_slipping (in "Scene\Player\State\Functions")
    New: player_is_debugging (in "Scene\Player\State\Specific")

    Removed: transition_fade
    Removed: transition_titlecard
    Removed: player_landing
    Removed: player_is_slide_standing

    Edited: audio_clear_priority renamed music_delete
    Edited: audio_play_priority renamed music_play_priority
    Edited: audio_set_priority renamed music_add
    Edited: level_goto_next renamed scene_goto_next
    Edited: angle_distance renamed distance_to_angle
    Edited: player_collision_ceiling renamed player_get_collision_ceiling
    Edited: player_collision_floor renamed player_get_collision_floor
    Edited: player_collision_object renamed player_get_collision_soft
    Edited: player_collision_wall renamed player_get_collision_wall
    Edited: player_movement_air renamed player_move_air
    Edited: player_movement_ground renamed player_move_floor
    Edited: player_update_ramp renamed player_can_launch
    Edited: player_get_terrain_angle renamed player_get_angle
    Edited: player_wall_eject renamed player_get_wall_offset
    Edited: player_get_reaction renamed player_react
    Edited: player_update_cliff renamed player_set_cliff_facing
    Edited: player_get_terrain renamed player_set_floor
    Edited: player_get_terrain_list renamed player_set_local_list
    Edited: player_floor_transfer renamed player_set_mask_rotation
    Edited: player_slope_factor renamed player_set_slope_friction
    Edited: all player_state_* and player_is_* scripts were merged together; see general notes
    Edited: player_state_standby renamed player_is_waiting


    TIME LINES
    New: animKnucklesCorkscrew (in "Zone Objects\Player\Characters\Knuckles")
    New: animSonicCorkscrew (in "Zone Objects\Player\Characters\Sonic")
    New: animTailsCorkscrew (in "Zone Objects\Player\Characters\Tails")
    New: animShieldLightning (in "Zone Objects\Player\Effects")

    Removed: animShieldLightningFront
    Removed: animShieldLightningBack


    OBJECTS
    New: objMusic (in "Game")
    New: objSceneObject (in "Scene")
    New: objDrownPopup (in "Scene\Overlays")
    New: objCurveConcaveAuto (in "Scene\Zone Objects\General\Terrain Masks\Experimental")
    New: objExampleConveyorBelt (in "Scene\Zone Objects\Specific\Examples\Moving Platforms")

    Removed: objInputDummy
    Removed: objCapsuleSwitch
    Removed: objPath
    Removed: objExampleQuicksand

    Edited: objProgram renamed to objGame
    Edited: objTitlecard renamed objTitleCard
    Edited: objScorecard renamed objScoreCard
    Edited: objLevel renamed objZone
    Edited: objField renamed objTrigger
    Edited: objNonSolid renamed objColliderSoft
    Edited: objSolid renamed objColliderHard
    Edited: objSceneObject renamed objZoneObject
    Edited: objExampleEnemy renamed objRhinobot
    Edited: objExampleBackground1 renamed objExampleBack1
    Edited: objExampleBackground2 renamed objExampleBack2


    ROOMS
    New: zoneTest3

    Edited: startup renamed roomStart
    Edited: test_level renamed zoneTest
    Edited: test_level_2 renamed zoneTest2
     
  19. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    Just to update... Standard is now free... just need to register your email.
     
  20. Lapper

    Lapper

    Lappering Tech Member
    1,765
    956
    93
    England
    Sonic Studio, Sonic Physics Guide, Kyle & Lucy, Freedom Planet 2
    The only thing I can think to fix is the bumpy collision on enlarged shapes. Make it calculate a vector for Sonic to travel on or something. Nice stuff.