Code Monkey home page Code Monkey logo

sonicworldsnext's People

Contributors

bluestaggo avatar caverns4 avatar dimensionwarped avatar enceladusx2 avatar friskthefallenhuman avatar randomname-proj avatar renhoex avatar rocketsailor avatar techokami avatar tracecalcum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sonicworldsnext's Issues

Boss Template errors on call to BossBase.gd:_on_HitBox_area_exited(area) under certain conditions

I first noticed this bug while playing at a higher resolution and then decided to try to reproduce it in the unmodified engine.

The specific error is:
Invalid get index 'parent' (on base: 'Area2D').
Stack Frames:
0 - res://Scripts/Boss/BossBase.gd:80 - at function: _on_HitBox_area_exited

I believe it is related to the position of the boss... the reason I encountered this more frequently in the higher resolution mode was because the boss was visible as it was descending and easy to hit as it was entering the frame. The easiest way I find to reproduce this error is to have the lightning shield and to hit the boss as it is coming down from the sky. The higher the more reliable.

Once the bug is first triggered it seems to persist throughout the fight and even as the boss is leaving. Simply entering his 'area' at that point makes triggering the error almost inevitable.

EDIT: Worth noting, it is accompanied by this error being logged, but not stopping the engine.

E 0:17:06.363   area_set_shape_disabled: Can't change this state while flushing queries. Use call_deferred() or set_deferred() to change monitoring state instead.
  <C++ Error>   Condition "area->get_space() && flushing_queries" is true.
  <C++ Source>  servers/physics_2d/physics_2d_server_sw.cpp:362 @ area_set_shape_disabled()
  <Stack Trace> BossBoundrySetter.gd:29 @ _on_BoundrySetter_body_entered()

The bug also intermittently happens without using the lightning shield to attack it out of frame.

Purpose of the `SonicWorldNextGD4Alpha` directory?

This seems like unnecessary duplication of the source code, especially as it doesn't seem to either work or be being updated.

It seems unnecessary in any of the existing branches, as it's obviously not intended for Godot 3.x, and with the Godot4_port and similar branches in particular it's just duplicating (and being outdated by) what's being done in the Source directory.

Sonic peelout windup animation is framerate dependent

Pretty straight forward:
On a 120hz display, the animation appears to play at the expected speed.
On a 60hz display, the animation plays at half-speed.

Included pic is just to make understood which animation I'm referring to

image

Add victory anim

I am trying to add the victory animations but now spin dash is disabled for sonic

Drowning casues a bug

when the drown timer is at 0 and you jump on a teleporter exactly when you drown all collision breaks

Bouncing Mechanics are frequently off

Big example is if I do a big drop and hit an enemy, I sometimes just kill it and then immediately land. I'll be investigating this behavior soon.

It won't open

When I try to import it. It goes back to the godot selection menu

Hanging Bar mechanics (jump off, fall through)

I have a little attachment to the hanging bar gimmick having created the original rendition of it in the old Sonic Worlds... and visiting the current implementation of it (and I'm not sure how much of it I did this right the first time around) and comparing it to the variant of it that appears in Sonic 2's wing fortress stage made me realize there's a couple discrepancies.

  1. In Sonic 2 when you disembark from a hanging bar (via jump, the only way to get off it as far as I'm aware), you will still be in the animation for hanging until you hit the ground. Honestly, I could take this behavior or leave it. Going back into jump is fine and leaves players less vulnerable (and I find a lot of forced vulnerability while falling in Sonic games to be annoying).

  2. The current implementation appears to have no way to allow the player to fall through the hanging bar. Sonic 2 has a rather awkward mechanic for deciding whether or not you'll fall through... if you jump while holding left or right off of a bar, the next time you would grab onto the bar you will always fall through it (regardless of whether you are holding left or right at the time). If you jump while not holding left or right, you will catch the bar. Personally, I think this should be swapped to a simple check for whether or not the player is holding down (regardless of previous interactions with the bar) when the player would catch it, they should fall through it. Easy to implement, hard to screw yourself over when you don't to.

I also personally think I allowed the player to accrue speed by holding in a direction while hanging onto the bar in the original (meaning the player could have a full velocity jump coming getting off the bar if they held in that direction for a while), but that mechanic is perhaps poorly communicated and largely unnecessary. That said, it would probably feel better if the horizontal speed coming off of the bar is at least slightly affected by whether you are holding left or right when you drop off instead of having to accelerate from 0. In the case of moving bars especially, ideally the current velocity of the bar would be applied to the player's speed at the time of jumping off.

I can submit a pull request to implement these if such improvements are desired.

Colliding rings when hurt don't collect them

I have been hurt by a motobug and fell on rings, while falling hurt the rings weren't collected, which feels odd to me, I may be misremembering but I think in the classics they would have been collected.

Layout is weird

Well, i'm making this bcs the layout is way too short. I'm using godot 4 for Android, the Play Store version. And in it, the layout is way too tiny. I've already made some minor changes at least to make that tiny layout some more comfortable, but it is not really good to make something on such tiny viewport. It is like playing at a TV viewport on a cellphone. So, it needs to be fixed to a 1920 x 1080 version, or it needs to have an option that can change from TV viewport, to cellphone viewport and so on. Hope this gets fixed soon, because i really liked the engine.

Explanative screenshots:
Screenshot_2024-01-22-17-06-51-236_org godotengine editor v4
Screenshot_2024-01-22-17-07-00-460_org godotengine editor v4

TextDisplay.gd - Middle Aligned Text is off-center

Visible in the character select screen, the text is moderately right of where it should be. This becomes more apparent with a larger number of characters in the label.

image

In this screenshot where I'm working on a simple level select feature, the up and down arrows are at the center point of the screen. The S in Sonic is three vertical bars in the background left of center while S in Tails is 4 vertical bars to the right. Both text objects are supposed to be at horizontal position zero (dead center)

About the renderer (Godot 4)

Hi! I just cloned your project and I noticed that it was using the Forward+ renderer, which is to say, that is a Vulkan project. Would the Godot 4 port of Sonic Worlds Next also work on the Compatibility renderer (OpenGL) of Godot 4, specially as this gives us a few additional targets (like web for instance) and more? Or does the project uses features that the Forward+ renderer only has? Would like to know.

Cheers!
MetalMaxMX

Collision issues when switching from normal to rolling hitbox

test.webm

On sharp corners like this, if landing on the very edge while holding down to roll after landing, the player will collide with the corner in a very jarring way without his movement being affected. Ideally the player should either ignore the corner entirely or have the y velocity set to 0 in a situation like this.
I haven't been able to recreate this issue without rolling as I land.

This issue is somewhat more evident and grating with sound enabled (due to the rolling sound effect), but I unfortunately cannot record sound at the moment.
Please note that only the first and third jumps in this video clip display the issue, the second works as intended.

Perhaps this bug is a result of a move_and_slide or move_and_collide collision with the tile that falls outside the range of the player's Raycast2D sensors? If so, an adjustment of the floor sensors for PhysicsObjects could solve the problem, if I might speculate.

An interesting note: this exact same glitch is present in Sonic Superstars. I have never experienced it in any other 2D Sonic game.

When i change the super music it doesnt stop playing

All I did to make this issue happen is change the super track

here's the original code

Global.currentTheme = 0
Global.effectTheme.stream = Global.themes[Global.currentTheme]
Global.effectTheme.play()
To this, this is a example
Global.currentTheme = 5
Global.effectTheme.stream = Global.themes[Global.currentTheme]
Global.effectTheme.play()
And when I let super sonic run out the music wouldn't stop

There is weird glitch one when it comes to Special Ring with Invincibility and Super mode

After Special Stage, they stay with Invincibility/Super mode (Super mode changes back to normal sprite only left with Super pallet and still as fast as Super) (Invincibility mode more kind of like Super mode except normal. When it comes to shields, you can't use it as an ability rather end up using drop dash instead) leaving those who can still lose rings (like getting hit) after Special Stage
https://youtu.be/hIQWp7POpQw

[Bug] While controller is plugged in, I can't crouch unless both the keyboard down and the controller down are held simultaneously.

To elaborate further, I can sometimes roll with just one or the other if I very deliberately press down while going at high speed, but it seems button presses aren't persistent (IE if I'm holding down on the controller I never get more than a single frame where I'm actually considered to be holding down) which makes things rather awkward.

Test performed with a PS5 controller using Steam for compatibility plus Godot 3.5

Bridges don't have anti-pixel perfect options

Usually the framework likes to do things like add a comment for if you're not a pixel perfect game, like this

	# Camera lock
	# remove round() if you are not making a pixel perfect game
	var getPos = (global_position+Vector2(0,camLookOff)+camAdjust)

Bridges mysteriously don't have this, despite their target being pixel-aligned, which looks wierd.
I "fixed" this on 3.5 by removing the floor() like this on line 90: (with smoothDrop = true)

bridges[i].position.y = lerp(bridges[i].position.y,(maxDepression * sin(90 * deg2rad(logDistance))),delta*10)

This is still present in 4.0 branch, the script was unmodified aside from porting.

[Bugs] Issues I've encountered up until now

Framework Build: GitHub download 07/12/2022

Godot Version: 3.5.1

First issue:
The pause menu doesn't properly reset after a level restart and breaks after the reset.
I personally fixed this by forcing the game to unpause when restarting the level.
image

Second issue:
When playing Sonic & Tails, bumping up the monitor through a pink platform while Tails is also interacting with that monitor can result in funky monitor gravity and Sonic being pulled up. I couldn't trigger this with single characters.
bugissue

Third issue:
When playing with Tails (or Sonic & Tails), when Tails holds on to a moving hanger (one that moves up and down), after a bit he starts to vibrate and then falls off. This issue doesn't seem to affect Sonic or Knuckles. I didn't record footage for this one, since the vibration isn't visible on the GIF.

Other issue I encountered:
I'm putting this here since I don't know if this is an issue related to Godot, my computer or the framework. But when modifying the sound or music volume, it seems like some values are skipped, it works fine but it's weird.
bugissue2
You can see here that 44 is skipped for some reason.

Anyways, I hope this helps, and I hope it doesn't bother anyone that I compiled all these bugs into one report. Have a nice day.

Pushing on moving objects could probably use a little work

Pushing against objects that are moving towards you right now is fine. Sonic keeps pushing while getting pushed back.

Pushing against objects that are moving with you on the other hand is gross. Sonic comes to a dead stop and doesn't keep pushing. This is probably a tricky thing to fix, not going to lie.

This is usually an issue in the actual games too, though I feel like there were times when it wasn't.

I had a hard time to fix lava that doesn't damage at all (sorry if I sounded weird or mean)

extends Area2D

@export_enum("Normal", "Fire", "Elec", "Water") var damageType = 0
var playerHit = []

func _process(_delta):
# do hit if player array isn't empty
if (playerHit.size() > 0):
for i in playerHit:
if (i.has_method("hit_player")):
i.hit_player(global_position,damageType)

func _on_body_entered(body):
if (!playerHit.has(body)):
playerHit.append(body)

func _on_body_exited(body):
if (playerHit.has(body)):
playerHit.erase(body)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.