• Projects
  • Hi, new here! Sharing my little project. Hope you like!

@Erich_L said: I am frightened imagining how much time these take, but they really look good! If I were you I'd take a break from Aseprite and work on the game from another angle- you might discover something you missed and'll end up going back in Aseprrite with a new perspective.

Thank you for your advice. :) I have it all in my head., the animations and it's directions Except for the coding. The coding is what is limiting me. cause I know very little and I read like bits of the Godot manual. (lazy reader). I am still thinking of the GUI. maybe stone ruins with vines hanging. something like this if I could make this into a GUI.

Too soon, but it crossed my mind that I should make a free version of this game that lacks other items/features.

i know how much time goes into 2d animation as im a trained 2d animator myself i would like to see more action/reaction in your animations. it lacks "weight" take this as constructive criticism please coding also slows me down. u cant be good at everything ;)

@DJM said: i know how much time goes into 2d animation as im a trained 2d animator myself i would like to see more action/reaction in your animations. it lacks "weight" take this as constructive criticism please coding also slows me down. u cant be good at everything ;)

Thank you. I don't know how to fix those yet. i think what you mean is distortin the body somewhat to make it look more fluid? like a bouncing ball will be shaped oval when it hits the ground and taller when it is going up. that what u mean?

@ami7mina said:

@DJM said: i know how much time goes into 2d animation as im a trained 2d animator myself i would like to see more action/reaction in your animations. it lacks "weight" take this as constructive criticism please coding also slows me down. u cant be good at everything ;)

Thank you. I don't know how to fix those yet. i think what you mean is distortin the body somewhat to make it look more fluid? like a bouncing ball will be shaped oval when it hits the ground and taller when it is going up. that what u mean?

yep basic principals of animation

Not much update just working on making a day night cycle.. actually done but it's real tim e cycle I wanted to make it 24 mins for 24 hours.

When I was making games to cope with depression, my mental health was too dependent on a grandiose vision of becoming the eventual creator of an amazing game on my (basically) first try. (Do you see how that's not a setup for success? Depression is hard enough to fight without it also having long-term survival mechanics.) If I went back-in-time and told my younger, depressed, teenage self that I needed to scope my scifi-fantasy open-world RPG down and make something WAY smaller, young-me would not have listened. So I don't really expect you to listen right now, either. But I'll try to say the things anyway.

Game design is a type of science. No one starts their personal study of physics by first building a particle accelerator. Instead, some start by watching an apple fall from a tree.

This might not be a safe time for you to reassess your goals, especially if you consider them life-goals. However, the next time you have a day or two where you aren't struggling just to keep your head above water, I highly recommend you take that opportunity to scope your game down. WAY down. What's a game you could make in a week? cough visual novel cough Make that.

Make the smallest thing you can, first. Get a taste of what its like to finish something you started. If you are doing this for the cake at the end, make sure you like the flavor... And (of course) that the cake is not a lie.

Good luck!

@DJM said:

@ami7mina said:

@DJM said: i know how much time goes into 2d animation as im a trained 2d animator myself i would like to see more action/reaction in your animations. it lacks "weight" take this as constructive criticism please coding also slows me down. u cant be good at everything ;)

Thank you. I don't know how to fix those yet. i think what you mean is distortin the body somewhat to make it look more fluid? like a bouncing ball will be shaped oval when it hits the ground and taller when it is going up. that what u mean?

yep basic principals of animation

I thought that was called squash and stretch, isn't action/reactions something different?

@Maaack said: When I was making games to cope with depression, my mental health was too dependent on a grandiose vision of becoming the eventual creator of an amazing game on my (basically) first try. (Do you see how that's not a setup for success? Depression is hard enough to fight without it also having long-term survival mechanics.) If I went back-in-time and told my younger, depressed, teenage self that I needed to scope my scifi-fantasy open-world RPG down and make something WAY smaller, young-me would not have listened. So I don't really expect you to listen right now, either. But I'll try to say the things anyway.

Game design is a type of science. No one starts their personal study of physics by first building a particle accelerator. Instead, some start by watching an apple fall from a tree.

This might not be a safe time for you to reassess your goals, especially if you consider them life-goals. However, the next time you have a day or two where you aren't struggling just to keep your head above water, I highly recommend you take that opportunity to scope your game down. WAY down. What's a game you could make in a week? cough visual novel cough Make that.

Make the smallest thing you can, first. Get a taste of what its like to finish something you started. If you are doing this for the cake at the end, make sure you like the flavor... And (of course) that the cake is not a lie.

Good luck!

Thank you so much! Well, I only intend to make just one game. 2 tops but I don't see myself making any more than 3 games.

This is a game I'm making with low expectations. But I do expect nice art. Cause it's more my forte than coding. For now, the gameplay is like Mario but you only jump on enemies.

Also, I think a visual novel would take mel onger jsut drawing many illustrations.

No inventory, no hp yet. I have downloaded youtube godot video tutorials. Taking it easy to not be stressed though I wish I work as hard as Eric Barone who I learned worked on Stardew Valley for 10 hours everyday IIRC.

I just love seeing my game and testing it. Even though it has no inventory etc just that video. I still love it. I like the Terraria world but I just wanted something more detailed regarding the player so I made my own. Butstill, this is different from Terraria. It's more.. peaceful. lol

I have to create my own culture though. Like from another world. But that's way off for now. I'm not thinking of money why I am doing this game, I am thinking of being lost in another world in a 2d world. Likebeing lost in Skyrim.. but warmer and 2d. lol.

Also just discovered the heart emoji which is "awesome!" lol i didn't notice that.

@OpinionatedGamer said:

@DJM said:

@ami7mina said:

@DJM said: i know how much time goes into 2d animation as im a trained 2d animator myself i would like to see more action/reaction in your animations. it lacks "weight" take this as constructive criticism please coding also slows me down. u cant be good at everything ;)

Thank you. I don't know how to fix those yet. i think what you mean is distortin the body somewhat to make it look more fluid? like a bouncing ball will be shaped oval when it hits the ground and taller when it is going up. that what u mean?

yep basic principals of animation

I thought that was called squash and stretch, isn't action/reactions something different?

squash and stretch is actually action reaction in a way. what i was trying to say is that for example the character doesn't feel grounded imo. theres' no impact motion when lets say landing ,or up /down movement when walking, altho up/down movement is less noticeable in a classic female walk cycle and needs to be more subtle

what i would do for such a customiseable character is use a cutout animation approach. this way u can easily swap parts and focus on the animation in the editor, and maybe add some IK , but i dont know if thats possible in godot2D

I love your art. The game looks beautiful. Good luck with the project.

The art is beautiful and amazingly detailed. Is Aseprite a pixel painting frame by frame only? if so then you must spend crazy amount time on it.

You could try (on your next project maybe) doing it with a vector 2d animation program, most of them have the bone IK system which make animating a bit easier and more natural. Then render out the frames and use another program to do the pixelate effect. Then go back and retouch the pixels if need to.

!> @Ghost said:

I love your art. The game looks beautiful. Good luck with the project.

Thank you so much!

Here's a preview of the Forest tree Tileset. I just don't know how to code them so the tree branches/tree in general would generate to a different looking tree by using these branches and leaves.

Here's the Forest Tileset. with some others mixed in. This was the first tileset I made.

Strangely, I don't know why my taskbar has no icons so Im gonna restart my computer. Have a good day everyone!

@OpinionatedGamer said:

I thought that was called squash and stretch, isn't action/reactions something different?

If you take a moment to think about it, isn't squash and stretch a kind of action -> reaction?

Hi y'all just playing with the node scales (I just discovered I could edit all the scene's scale) The scale here is .25.

Will definitely put a screenshot feature on this game so people could make their own homes someday.

Doing Idle facing right left animations atm. Will only update a few times so as to not make this thread "spammy". Hope I finish everything in these frames (except for running animations) in a week.

4 months later

Hi y'all!

Update on this game.. Since I'm such a noob that just started this like.. March? well, i'm still learning the fundamentals.

THANK YOU to GDQuest and other CC on Youtube - like Gonkee, Zenva, ( i am looking at youtube while searching for the other youtubers) endritDev.. and others. (I am very grateful for all your help even if I never contacted them,, just by watching their videos)

OK. with the game changes:

  • Still working on that running animation.. I am almost done.. The reason it is taking me soo long is that recently my pen tablet broke.. so I am doing everything by mouse..

  • I have done my company logo and its sound. (vocals were from my friend, cause she has a sultry voice lol)

  • know how to apply a vertex shader to make the trees, flowers sway.

  • This game will take a really long time cause I want the animationsand everything to be..so.. meticulous lol.

  • I somehow know how to instance a node into a scene.. thru code.. well, somehow.. I'm still not confident haha.

Also learning how to code. (aside from learning french) I'm still just here:

Thank you for all your positive energy and love. I'll never give up on this sandbox game that is Terraria inspired.

The difference between the animations in the Aether Debug video you linked and this last gif .. is staggering.

It's a paid course but Heartbeasts 1-Bit course was what finally made everything in Godot click for me and gives such a great foundation, along with Godot Tutorial's "GDScript Fundamentals Tutorial Series". It really gave me a lot of confidence as opposed to just copy pasting with slight alterations different tutorials I found into my projects.

Keep it up, I'd love to see more video demos of the game.

    ArcaneInput
    Thank you very much! I will look into those you mentioned.

    That was the walking on the video, the gif is the running (which I don't know how to code a double tap right/tap left yet to make it dash)

    As of now, I am having some problems: I resized my animations, made the canvas size larger. and now, when I reimport on the game, it still follows the original sprite size. How do I change that to not make it follow the previous size? Even if I do a new sprite on the same Player scene, it still follows the previous size.


    I see the problem more clearly now:

    Is there any work around for this? I think this is a Godot limitation?
    All my sprite sheets are only horizontal strips.

      You can make a second row in the image. When you setup the sprite animation in Godot, you can specify the grid, so you won't have to change any code.

      ami7mina Thank you, thank you so much! I just tweaked around the bit.. The other problem I failed to notice is that the png I was exporting was a different size on aseprte so no matter how much I align the, I can't lol. figured that out now.

      I have the feeling I know you. Are you that girl on Youtube with the colored hair and doing videos of Godot? I forgot their channel name.

      my sprite size canvas has increased in size.. from 250 x 350 to a 400 x 400 Yeah, I need to increase size for the wings, the cape, the very long hair animations.

      I'm so excited! 😃

      The animation part will be the only thing that makes this project VERY long.
      for example:
      Right boot.. has:
      4 animation frames for IdleRight
      4 animation frames for IdleLeft
      6 animation frames for IdleStartRight (Or Prolonged Idle facing right)
      6 animation frames for IdleStartLeft
      8 animation frames for WalkRight
      8 animation frames for WalkLeft
      4 animation frames for JumpRight
      4 animation frames for JumpLeft
      12 animation frames for Run_right
      12 animation frames for Run_left
      3 animation frames for misc
      and hopefully i put the attack frames (which thankfully will be only arm/hand animations.)that I will just put in the future.

      See below: If I was rich I would definitely hire! lol

      Also like to apologize if I ask questions here and not their respective thread topics cause I only have short questions. I feel desperate. 🙁

      I just want a game where you could mine underground(Terraria), tame monsters (Pokemon), while also collecting NPCS or putting them in your designated places (Suikoden) and eventually make a family with one or more of them (Stardew Valley/Tokimeki).

      Oh, I forgot about that girl. Yeah, she's the best.

      Only watched the first minute and what she said is utter nonsense. "Unity is ok, Unreal is strong, Godot more on the weak side". Really ? That is not exactly an intelligent analysis, if I may say so.

      Maybe she was just talking to her fish :-)

      Oh yeah, total nonsense. But the video was good entertainment. I mean, Unreal is strong in performance? You're lucky to get 60 fps with a $4,000 computer. Just look at unoptimized trash like PUBG. When that game came out, I couldn't even run 4K with a Titan X (Pascal) and the graphics barely looked better than Counter Strike, LOL.

      Disclaimer: I have not seen the video, but let’s not get too off-topic nor go after someone for sharing their opinion (I am not saying that is happening here necessary, but do not want this to turn into a “this person is nonsense” thread). Everyone has a right to their option on Godot, one way or another 🙂

      I am sorry if I hurt anyone's feelings. That was not my intention. It was a bit robust from my side and I should have chosen another wording. And all the people in here have my respect.

      Hrm, posts that get too off topic can be split into another discussion topic. @ami7mina just let us know if you want us to do so.

      Okay, sure. I won't continue with it. But I think you should watch the video, you'd probably agree with us.

      Yeah I'm just referring to the topic as defined by the OP(opening post).

      Very frustrated atm..

      Problem: I changed the position of the Node2D of the Player. that's it.


      Now, when I go to the animationPlayer, it shows aligned animations..

      but everytime I hit that f6 debug it always goes back to separate and misaligned body parts, If anyone knows why this is happening, I'd appreciate it.

      It means the numbers you put in for H and V frames is incorrect. It has to match the sprite sheet.

        cybereality Thank you! I just don't know which one of those since most of the textures are empty and there are ones that remain but still play well.. also,

        I somehow fixed it, my problem (the misaligned ones). I deleted those sprites, replaced them one by one and saved animations. and it appeared correctly.. but there are some errors that appear (at least 100+ errors) but seem to be working fine. I hope I fix them soon. If I am not doing the game, I'm listening to tips. Hope I release a prototype of this game but I don't know where to put it. ZERO EXPERIENCE.

        I would start by fixing all the error. You may not notice but something is definitely broken.

          cybereality
          Thank you! I wish I knew which sprite the program is having errors with. I'll try focusing on other stuff and get back to this eventually.

          Current issues facing atm: Lag from the game engine. My character can hardly walk. Is there a limit to preloaded stuff?

          This is just the PlayerClothingLoader attached to the Player (can't upload the gd here) :

          extends Node
          
          #These are the selection sprites for loading the character customization
          const BackArm_spritesheet = {
          	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFBackArm.png")
          }
          
          # missing const OutsleevesBack_spritesheet = {
          #	0 : preload
          #}
          
          const HeadgearBehind_spritesheet = {
          	0 : preload("res://Assets/Sprites/Items/Clothes/Unisex/Headgear/HGb-F-0004Hood.png")
          }
          
          const HairBack1_spritesheet = {
          	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0001.png"),
          	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0002.png"),
          	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0003.png"),
          	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0004.png"),
          	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0005.png"),
          	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0006.png"),
          	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0007.png"),
          	7 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0008.png")
          }
          
          const HairBack2_spritesheet = {
          	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0001.png"),
          	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0002.png"),
          	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0003.png"),
          	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0004.png"),
          	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0005.png"),
          	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0006.png"),
          	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0007.png")
          }
          
          const BackLeg_spritesheet = {
          	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFBackLeg.png")
          }
          
          #const BackShoes_spritesheet = {
          #	0 : preload()
          #}
          
          # const BangsBelowBack_spritesheet = {
          #	0 : preload()
          #}
          
          const Torso_spritesheet = {
          	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFTorso01.png")
          }
          
          # const Undies_spritesheet = {
          #	0 : preload
          #}
          
          const Weapons_spritesheet = {
          	0 : preload("res://Assets/Sprites/Items/Weapons/AerthWeapons001.png")
          }
          
          const Head_spritesheet = {
          	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFHead01.png")
          }
          
          const HairFrontBase_spritesheet = {
          	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/FemaleHairFrontBase0001.png"),
          	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/FemaleHairFrontBase0002.png")
          }
          
          const Frontleg_spritesheet = {
          	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFFrontLeg.png")
          }
          
          #const FrontShoes_spritesheet = {
          #	0 : preload()
          #}
          
          #const Outfit_spritesheet = {
          #	0 : preload
          #}
          
          #const BangsBelow_spritesheet = {
          #	0 : preload
          #}
          
          const FrontArm_spritesheet = {
          	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFFrontArm.png")
          }
          
          #const OutfitSleevesFront_spritesheet = {
          #	0 : preload ()
          #}
          
          const Eyes_spritesheet = {
          	0 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0001.png"),
          	1 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0002.png"),
          	2 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0003.png"),
          	3 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0004.png"),
          	4 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0005.png"),
          	5 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0006.png"),
          	6 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0007.png"),
          	7 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0008.png"),
          	8 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0009.png"),
          	9 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0010.png"),
          	10 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0011.png"),
          	11 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0012.png"),
          	12 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0013.png"),
          	13 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0014.png"),
          	14 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0015.png"),
          	15 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0016.png"),
          	16 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0017.png"),
          	17 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0018.png"),
          	18 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0019.png"),
          	19 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0020.png")
          }
          
          const Lips_spritesheet = {
          	0 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0001.png"),
          	1 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0002.png"),
          	2 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0003.png"),
          	3 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0004.png"),
          	4 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0005.png"),
          	5 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0006.png"),
          	6 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0007.png"),
          	7 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0008.png"),
          	8 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0009.png"),
          	9 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0010.png"),
          	10 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0011.png"),
          	11 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0012.png"),
          	12 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0013.png"),
          	13 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0014.png"),
          	14 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0015.png"),
          	15 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0016.png"),
          	16 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0017.png"),
          	17 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0018.png")
          }
          
          const Nose_spreadsheet = {
          	0 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0001.png"),
          	1 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0002.png"),
          	2 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0003.png"),
          	3 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0004.png"),
          	4 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0005.png"),
          	5 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0006.png"),
          	6 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0007.png"),
          	7 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0008.png"),
          	8 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0009.png"),
          	9 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0010.png"),
          	10 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0011.png"),
          	11 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0012.png")
          }
          
          const Eyebrows_spreadsheet = {
          	0 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0001.png"),
          	1 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0002.png"),
          	2 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0003.png"),
          	3 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0004.png"),
          	4 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0005.png"),
          	5 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0006.png"),
          	6 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0007.png"),
          	7 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0008.png"),
          	8 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0009.png"),
          	9 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0010.png"),
          }
          
          const Earrings_spritesheet = {
          	0 : preload("res://Assets/Sprites/Items/Clothes/Female/Earrings/Earrings0001.png")
          }
          
          #const BangsSide_spritesheet = {
          #	0 : preload()
          #}
          
          const Bangs_spritesheet = {
          	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0001.png"),
          	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0002.png"),
          	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0003.png"),
          	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0004.png"),
          	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0005.png"),
          	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0006.png"),
          	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0007.png"),
          	7 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0008.png"),
          	8 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0009.png"),
          	9 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0010.png"),
          	10 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0011.png"),
          	11 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0012.png"),
          	12 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0013.png"),
          	13 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0014.png"),
          	14 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0015.png"),
          	15 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0016.png")
          }
          
          const Headgear_spritesheet = {
          	0 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0001Crown.png"),
          	1 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0002BigRibbon.png"),
          	2 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0003Rose.png"),
          	3 : preload("res://Assets/Sprites/Items/Clothes/Unisex/Headgear/HG-F-0004Hood.png")
          }

          I only have 5 errors now. compard to 400 -1000 errors

          Help would be appreciated. Will also search around the net.

          You can post code on the forum using copy and paste, but you have to type 3 tildes ~~~ on a line by themselves directly above and directly below the code. I fixed it for you. In terms of your question, I don't think there is a limit to what you can load. Obviously it will take longer the more stuff you load, but it should happen once when the scene is opened, not while the game is being played.

          Probably those errors could be causing issues. The yellow text is just warning, if you read it it tells you how to fix it. The red text is about the physics engine or collision polygons. They need to be convex (this means no caves). A convex polygon means you can draw a straight line through any part of the object, and it only hits two lines (one of each side). If it hits more than 2 lines, that means there is a cave or mouth type of shape, which won't work.

            cybereality
            Thank you very much!

            I don't remember any polygons in my game except for a color rect or some tilemap in diagonal? don't think those were the issues though. Anyway, here is my player.gd this is for the character:

            extends Actor
            
            onready var BackArmSprite = $Position2D/BackArm
            onready var OutfitSleevesBackSprite = $Position2D/OutfitSleevesBack
            onready var HeadgearBehindSprite = $Position2D/HeadgearBehind
            onready var HairBack1Sprite = $Position2D/HairBack1
            onready var HairBack2Sprite = $Position2D/HairBack2
            onready var BackLegSprite = $Position2D/BackLeg
            onready var BackShoesSprite = $Position2D/BackShoes
            onready var BangsBelowBackSprite = $Position2D/BangsBelowBack
            onready var TorsoSprite = $Position2D/Torso
            onready var UndiesSprite = $Position2D/Undies
            onready var WeaponsSprite = $Position2D/Weapons
            onready var HeadSprite = $Position2D/Head
            onready var HairFrontBaseSprite = $Position2D/HairFrontBase
            onready var FrontLegSprite = $Position2D/FrontLeg
            onready var ForeShoesSprite = $Position2D/FrontShoes
            onready var OutfitSprite = $Position2D/Outfit
            onready var BangsBelowSprite = $Position2D/BangsBelow
            onready var FrontArmSprite = $Position2D/FrontArm
            onready var OutfitSleevesFrontSprite = $Position2D/OutfitSleevesFront
            onready var EyesSprite = $Position2D/Eyes
            onready var LipsSprite = $Position2D/Lips
            onready var NoseSprite = $Position2D/Nose
            onready var EyebrowsSprite = $Position2D/Eyebrows
            onready var EarringsSprite = $Position2D/Earrings
            onready var BangsSideSprite = $Position2D/BangsSide
            onready var BangsSprite = $Position2D/Bangs
            onready var HeadgearSprite = $Position2D/Headgear
            
            const PlayerClothingLoader = preload("res://Source/Actors/PlayerClothingLoader.gd")
            
            #This is the CURRENT euipped clothing/hair etc:
            var curr_BackArm: int = 0
            var curr_OutfitSleevesBack: int = 0
            var curr_HeadgearBehind: int = 0
            var curr_HairBack1: int = 0
            var curr_HairBack2: int = 0
            var curr_BackLeg: int = 0
            var curr_BackShoes: int = 0
            var curr_BangsBelowBack: int = 0
            var curr_Torso: int = 0
            var curr_Undies: int = 0
            var curr_Weapons: int = 0
            var curr_Head: int = 0
            var curr_HairFrontBase: int = 0
            var curr_FrontLeg: int = 0
            var curr_FrontShoes: int = 0
            var curr_Outfit: int = 0
            var curr_BangsBelow: int = 0
            var curr_FrontArm: int = 0
            var curr_OutfitSleeveFront: int = 0
            var curr_Eyes: int = 0
            var curr_Lips: int = 0
            var curr_Nose: int = 0
            var curr_Eyebrows: int = 0
            var curr_Earrings: int = 0
            var curr_BangSide: int = 0
            var curr_Bangs: int = 0
            var curr_Headgear: int = 0
            
            func _ready():
            	BackArmSprite.texture = PlayerClothingLoader.BackArm_spritesheet[curr_BackArm]
            #	OutfitSleevesBackSprite.texture = PlayerClothingLoader.OutfitSleevesBack_spritesheet[0]
            	HeadgearBehindSprite.texture = PlayerClothingLoader.HeadgearBehind_spritesheet[curr_HeadgearBehind]
            	HairBack1Sprite.texture = PlayerClothingLoader.HairBack1_spritesheet[curr_HairBack1]
            	HairBack2Sprite.texture = PlayerClothingLoader.HairBack2_spritesheet[curr_HairBack2]
            	BackLegSprite.texture = PlayerClothingLoader.BackLeg_spritesheet[curr_BackLeg]
            
            
            
            
            
            #THIS is for the Buttons for charactercustomization
            func _on_ChangeHairBack1_pressed(): 
            	curr_HairBack1 = (curr_HairBack1 + 1) % PlayerClothingLoader.HairBack1_spritesheet.size()
            	HairBack1Sprite.texture = PlayerClothingLoader.HairBack1_spritesheet[curr_HairBack1]	
            	
            export var stomp_impulse = 1000.0
            
            func _on_EnemyDetector_area_entered(area:Area2D) -> void:
            	_velocity = calculate_stomp_velocity(_velocity, stomp_impulse)
            
            func _on_EnemyDetector_body_entered(body:PhysicsBody2D) -> void:
            	queue_free()	
            
            func _physics_process(delta: float) -> void:
            	var is_jump_interrupted: = Input.is_action_just_released("jump") and _velocity.y < 0.0
            	var direction: =  get_direction()
            	_velocity = calculate_move_velocity(_velocity, direction, speed, is_jump_interrupted)
            	_velocity = move_and_slide (_velocity, FLOOR_NORMAL)
            
            export var slide_friction = 400
            
            func get_direction() -> Vector2:
            	return Vector2(
            		Input.get_action_strength("move_right") - Input.get_action_strength("move_left"),
            		-1.0 if Input.is_action_just_pressed("jump") and is_on_floor() else 1.0
            		)
            
            onready var position2D=$Position2D
            
            func calculate_move_velocity(
            		linear_velocity: Vector2,
            		direction: Vector2,
            		speed: Vector2,
            		is_jump_interrupted: bool
            		) -> Vector2:
            		var out: = linear_velocity
            		out.x = speed.x * direction.x
            		out.y += gravity * get_physics_process_delta_time()
            		if direction.y == -1.0: 
            			out.y = speed.y * direction.y
            		if direction.x == 0:
            			$AnimationPlayer.play("Idle_Right")
            		#if Input.action_pressed(KEY_LEFT, 1.0):
            		#	$AnimationPlayer.play("Idle_Left")
            		if direction.x == 1.0:
            			position2D.scale.x=1
            			$AnimationPlayer.play("Run_Right")
            		if direction.x == -1.0:
            			position2D.scale.x=-1
            			$AnimationPlayer.play("Walk_Right")
            		if Input.is_key_pressed(KEY_SPACE):
            			var scene = load("res://Assets/Sprites/Items/ForestObjects/Flower001.tscn")
            			var player = scene.instance()
            			add_child(player)
            			player.position = Vector2(30, -200)
            		if is_jump_interrupted:
            			out.y = 0.0
            		return out
            
            
            #	if Input.is_mouse_button_pressed(true):
            	
            #func _input(event):
            #	if Input.is_action_pressed("move_left"):
            #		$AnimationPlayer.play("Jump")
            #		scale.x = -1.0
            
            	
            	
            func calculate_stomp_velocity(linear_velocity: Vector2, impulse: float) -> Vector2:
            	var out: = linear_velocity
            	out.y = -impulse
            	return out
            
            
            
            
            #func _ready():
            #	print("AERTH VERSION 0.0001")
            
            #func _ready():
            #	$AnimationPlayer.play("Walk")

            and this one is for the Actor.gd

            extends KinematicBody2D
            class_name Actor
            
            
            const FLOOR_NORMAL: = Vector2.UP
            
            export var speed: = Vector2(300.0, 1000.0)
            export var gravity: = 3000.0
            
            var _velocity: = Vector2.ZERO

            This one is for the PlayerClothingLoader.gd

            extends Node
            
            #These are the selection sprites for loading the character customization
            const BackArm_spritesheet = {
            	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFBackArm.png")
            }
            
            # missing const OutsleevesBack_spritesheet = {
            #	0 : preload
            #}
            
            const HeadgearBehind_spritesheet = {
            	0 : preload("res://Assets/Sprites/Items/Clothes/Unisex/Headgear/HGb-F-0004Hood.png")
            }
            
            const HairBack1_spritesheet = {
            	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0001.png"),
            	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0002.png"),
            	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0003.png"),
            	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0004.png"),
            	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0005.png"),
            	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0006.png"),
            	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0007.png"),
            	7 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0008.png")
            }
            
            const HairBack2_spritesheet = {
            	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0001.png"),
            	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0002.png"),
            	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0003.png"),
            	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0004.png"),
            	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0005.png"),
            	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0006.png"),
            	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0007.png")
            }
            
            const BackLeg_spritesheet = {
            	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFBackLeg.png")
            }
            
            #const BackShoes_spritesheet = {
            #	0 : preload()
            #}
            
            # const BangsBelowBack_spritesheet = {
            #	0 : preload()
            #}
            
            const Torso_spritesheet = {
            	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFTorso01.png")
            }
            
            # const Undies_spritesheet = {
            #	0 : preload
            #}
            
            const Weapons_spritesheet = {
            	0 : preload("res://Assets/Sprites/Items/Weapons/AerthWeapons001.png")
            }
            
            const Head_spritesheet = {
            	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFHead01.png")
            }
            
            const HairFrontBase_spritesheet = {
            	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/FemaleHairFrontBase0001.png"),
            	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/FemaleHairFrontBase0002.png")
            }
            
            const Frontleg_spritesheet = {
            	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFFrontLeg.png")
            }
            
            #const FrontShoes_spritesheet = {
            #	0 : preload()
            #}
            
            #const Outfit_spritesheet = {
            #	0 : preload
            #}
            
            #const BangsBelow_spritesheet = {
            #	0 : preload
            #}
            
            const FrontArm_spritesheet = {
            	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFFrontArm.png")
            }
            
            #const OutfitSleevesFront_spritesheet = {
            #	0 : preload ()
            #}
            
            const Eyes_spritesheet = {
            	0 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0001.png"),
            	1 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0002.png"),
            	2 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0003.png"),
            	3 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0004.png"),
            	4 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0005.png"),
            	5 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0006.png"),
            	6 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0007.png"),
            	7 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0008.png"),
            	8 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0009.png"),
            	9 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0010.png"),
            	10 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0011.png"),
            	11 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0012.png"),
            	12 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0013.png"),
            	13 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0014.png"),
            	14 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0015.png"),
            	15 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0016.png"),
            	16 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0017.png"),
            	17 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0018.png"),
            	18 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0019.png"),
            	19 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0020.png")
            }
            
            const Lips_spritesheet = {
            	0 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0001.png"),
            	1 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0002.png"),
            	2 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0003.png"),
            	3 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0004.png"),
            	4 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0005.png"),
            	5 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0006.png"),
            	6 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0007.png"),
            	7 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0008.png"),
            	8 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0009.png"),
            	9 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0010.png"),
            	10 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0011.png"),
            	11 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0012.png"),
            	12 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0013.png"),
            	13 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0014.png"),
            	14 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0015.png"),
            	15 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0016.png"),
            	16 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0017.png"),
            	17 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0018.png")
            }
            
            const Nose_spreadsheet = {
            	0 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0001.png"),
            	1 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0002.png"),
            	2 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0003.png"),
            	3 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0004.png"),
            	4 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0005.png"),
            	5 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0006.png"),
            	6 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0007.png"),
            	7 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0008.png"),
            	8 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0009.png"),
            	9 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0010.png"),
            	10 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0011.png"),
            	11 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0012.png")
            }
            
            const Eyebrows_spreadsheet = {
            	0 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0001.png"),
            	1 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0002.png"),
            	2 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0003.png"),
            	3 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0004.png"),
            	4 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0005.png"),
            	5 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0006.png"),
            	6 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0007.png"),
            	7 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0008.png"),
            	8 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0009.png"),
            	9 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0010.png"),
            }
            
            const Earrings_spritesheet = {
            	0 : preload("res://Assets/Sprites/Items/Clothes/Female/Earrings/Earrings0001.png")
            }
            
            #const BangsSide_spritesheet = {
            #	0 : preload()
            #}
            
            const Bangs_spritesheet = {
            	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0001.png"),
            	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0002.png"),
            	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0003.png"),
            	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0004.png"),
            	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0005.png"),
            	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0006.png"),
            	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0007.png"),
            	7 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0008.png"),
            	8 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0009.png"),
            	9 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0010.png"),
            	10 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0011.png"),
            	11 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0012.png"),
            	12 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0013.png"),
            	13 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0014.png"),
            	14 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0015.png"),
            	15 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0016.png")
            }
            
            const Headgear_spritesheet = {
            	0 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0001Crown.png"),
            	1 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0002BigRibbon.png"),
            	2 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0003Rose.png"),
            	3 : preload("res://Assets/Sprites/Items/Clothes/Unisex/Headgear/HG-F-0004Hood.png")
            }

            This is my Enemy.gd:

            extends "res://Source/Actors/Actor.gd"
            
            
            func _ready() -> void:
            	set_physics_process(false)
            	_velocity.x = -speed.x
            
            
            func _on_StompDetector_body_entered(body: Node) -> void:
            	if body.global_position.y > get_node("StompDetector").global_position.y:
            		return
            	get_node("CollisionShape2D").disabled = true
            	$AnimationPlayer.play("Enemy0001-Vine-Dead")
            	_velocity.x = 0
            	# This code is for delay for something
            	yield(get_tree().create_timer(0.2), "timeout")
            	queue_free()
            
            onready var position2D=$Position2D
            
            func _physics_process(delta: float) -> void:
            	_velocity.y += gravity * delta 
            	if is_on_wall():
            		_velocity.x *= -1.0
            		position2D.scale.x *= -1
            	_velocity.y = move_and_slide(_velocity, FLOOR_NORMAL).y

            And these are the errors. I don't know how to fix these. Since I only saw a tutorial on Youtube and I just followed it.

            I need to read my stuff more. To be honest, It's embarrassing I don't know what I am doing. Just trying to copy stuff. Still, I'm appreciative of all your help. Most of these came from Youtube. very thankful to their videos.

            I will try to sketch some rough draft of the character customization and paste it here so you all know what it is that I am trying to achieve with all these layers of customization.