Ok, the second time, I was able to play… not sure how I have activated that bug… I will try to reproduce it…
All things aside, I can see al the effort. The game looks beautiful.
Ok, the second time, I was able to play… not sure how I have activated that bug… I will try to reproduce it…
All things aside, I can see al the effort. The game looks beautiful.
I have an optimization idea.
So a huge source of lag is the engine getting the activeNamedChildren
of the closest ancestor clip whenever a script runs (This is so scripts can get references to other clips). The game loop is located in the frame in the functions
layer, meaning the closest ancestor clip is the Project clip. (Which has a lot of children). So if we put everything game loop-related in a clip instead of in a frame which is a direct child of the Project, we should experience a performance boost (in theory). We’ll also probably need to fix the clip references after this has been done.
activeNamedChildren
function. This is also in my optimization mod, where I tried optimizing it to use that function less. I say I tried because looking at the profiler data, it appears that it doesn’t work as I intended.
(Our target is at most 33 ms per frame, which would achieve 30 FPS)
tl;dr put main game script in a clip, which is inside another clip.
Another thing is, you can make a png of the entire stage… and only separate the animated things like the tree in other pngs. So you will end having only few pngs, and some hidden colliders.
Wow, how do you do that? Do you do that within Chrome, or do you have another software for that?
In the dev tool’s performance tab
Well the answer would be both.
A more simple enemy (such as the one you are coding now) would just move back and forth helplessly
But more advanced enemies WiLL be more then happy to jump around if it means it can attack you
Okay. So the more advanced enemies pathfind.
Wait why are we working on enemy ais? shouldn’t we be working the fighters like the attacks and stuff?
Also, I’d like to be working on networking, since I think that’s kinda important, but I’m not sure how the game’s garbage performance would affect the way I’d like the netcode to be designed – In vanilla Wick Editor anyway. In my mod it can run at around 25 FPS. (I’d like to share a link to it for development but I guess it’s probably against the ruIes. Maybe I’ll make a pull request sometime.)
works fine for me
well we have 2 major goals;
create a wide, fun and immersive world of single player through level design, world building, enemy design, stroyline, character development, and much more
create a balanced and competitive PvP mode with perfected controls and attacks, for multiple players to play to together and have a reason to improve beyond the skill level that the OG game requires
i believe both are important BUT, the single player mode has a higher chance of being able to stand up on its own. further more, completing the single player mode includes attacks and controls and all the little bits that are needed in PvP anyway
as of networking, that FPS problem might be the first hurdle. last i played the game (H.a’s music filing update) game ran at a nice and beautiful 5-4 fps according to the counter.
and my computer isnt THAT bad, so we need to find the real source of the problem here first.
and who says enemy ai wont be used in PvP ;)
That gives me an idea
What if there was a practice mode, where you can choose an enemy ai, and fight against it
Good idea. Maybe the player can choose if they want to fight another forum member, or if they can fight a boss. It’s like a sandbox.
I’m thinking more along the lines of using hitboxes or something similar to detect things. I haven’t thought that far ahead, but it’s more of something like this:
Maybe I could change some things if I were to try to implement it on something else. Maybe it wouldn’t be hitboxes. maybe I’ll attempt to use ray-casts instead to check if it’s sees any players (2D ray-casts! not 3D! >:( ).
…so apparently the hitbox got messed up when you change the scaleX of a character.
changed that so that both widthDist and heightDist takes the absolute of the clip’s widths and heights instead. Now negative numbers on the width and height of a clip will not cause consequences to its hitbox!
That still means we have to work on the fighters though. I guess I’ll finish working on the enemy later. Only thing lacking is that Peon should see the player, then charge.
It didn’t work. I also tried to do the same by also playing all the sounds without volume. It was the closest to what we were trying to achieve, but the sound plays a short blip of almost every sound in one almost instantaneous second until each sound cuts off.
Oh . Right. About your song… I think it sounds okay if I don’t think too hard about it:
There are also some things that aren’t helping this song:
Thus, I would compare this song to a sketch. It was interesting, maybe just okay at worse, but you should do a bit more with the little time you spent on it.
If that IS your best, however, then play with the settings of your sounds more, do experiments, maybe look up things to know how your DAW works.
The experience with the tool you use is one of the factors to making music.
I understand the concept.
Give attributes to those hitboxes, like “mustJump” vs “optionallyJump” and put random decision-making on the optionallyJump ones, so it could look/behave more natural.
Random decision-making for “optionallyJump” (example)
i made some tiny changes to the start screen and credits
FFR 1.5.1 - WIP 16-25-2022_19-39-44.wick (2.6 MB)
Based on kringle’s latest file
I had another idea in mind for wall detection that doesn’t include hitboxes. As I wrote this I just realized it’s probably better if the AI jumped before hitting a wall, rather then on collision. As a result I discarded this idea. In retrospect I should be deleting this paragraph.
But I have a more fleshed out idea for jumping across gaps. On every frame, the bot takes the right/left edge of the floor it’s currently on from the object.collisions
array. If it’s moving right, it takes the right side of the platform, and if it’s moving left, it takes the left side of the platform. Using its X position, it can determine whether or not the bot is on the edge.
If it’s on the edge, it will “raycast” each platform with its jump arc, and then jump towards the closest intersection. If there are no valid intersections, it will instead turn around. If it determines it can’t return to the original platform after jumping onto it, it will instead turn around.
The “raycast” procedure with the jump arc would be done by getting where the jump arc intersects with y=(top of the platform)
. This gives 1-2 X positions. We take the result with a negative or zero slope (the bot can’t land on platforms while travelling upwards) and then do a bounds check with the left and right side of the platform. If the bounds check succeeds, then that means it is a valid intersection. The procedure wouldn’t actually have to get the differential, we could instead just determine which one goes downwards by looking at the direction of the player. The intersections with y=(top of the platform)
could also be determined with the quadratic formula. (Good thing I paid attention in math class)
(Maybe this algorithm could also be used for wall detection.)
The Wick Editor engine does tick absolutely everything per frame for scripts to run. So the more stuff we have, the laggier the game will run, even if they aren’t in frames that are on screen.
the max fps it can achieve on my computer is like 35 fps
Also, we should decrease or eliminate warm-up time for attacks, especially low-damage ones such as Baron’s knife
You clicked the “back” button after completing a game.
It took you back to the menu, then you tried playing again- and the characters were already selected, but the button was disabled. It’s usually enabled when characters are chosen. So unselecting the characters and reselecting them will re-enable it.
It’s an issue with resetting the selection. But I think its been somehow fixed in the latest file version.
Speaking of bugs- I’ve found another one with the projectiles and “hitting effects.”
Here, Jumbleton creates a projectile to finish the game and kill Baron (sorry Baron)
The projectile froze on this scene, which prevented it from getting “removed.”
Same for the “hitting effects” (the triangles next to Baron). They’ve frozen in motion :0
Now… let’s click rematch - and there it still is in the same position.
I fixed this bug by adding a simple line in the default script when this.isClone is true for these clips:
this.addScript('default','this.remove()');
on the other hand.
Is it worth it? Not really and I don’t think so. It’s a nice to have but the task wasn’t progressed.
Taking a shot at changing the character select screen helped somewhat. I think. I feel a little more knowledgeable now.
Plus that change recommendation is now out of the way, so you guys (and co-leaders) tell me if you think the time I spent on it is worth it.
I wanna start helping more so I’m gonna ask peon was made to just be a simple bot right? if so I want to help with the ai for peon as i feel ive been useless.