Forum Fighters: Rewritten (Discontinued)

Feedback

I Tested the game out and i Think it is Great! even the starting animations Is cool! I like How The combo system Works Instead of Hundreds of Buttons it is Just the Combination of Movement and Atacking! I lied that also the animations are so good made I like them so much i cant think of how much work have ben gone into this! also The Gameplay it is so much Fun i just Pluged my laptop into the Tv and Mapped some Keys on to two Controls and the MultiPlayer acction Begann! I realy Like The game and i cant wait to see Progress done!

2 Likes

@Hamzah_Alani
Do you think you can implement the jump ai Pk came up with into FF?

1 Like

Yes sir- I’ll see what I can do!

I’ll try to work on that today - though don’t expect any perfections

2 Likes

My school year just ended yesterday so i now have more time for work and making fixes and tweaks

i think we should figure out exactly who is allowed to work on the collab… there are quite a few people talking who are doing and have done nothing for the game. besides, making the collab 100% public basically just asks for disorder and getting less work done. like just now.

for a week, nothing truly productive has been done. it’s just talking about making multiplayer, making really small changes that aren’t done in the most efficient way, a bunch of is-school-over talk, and other i’ll-work-on-this talk. yet the only thing that was actually productive was pumpkinhead’s bot jumping idea.

no offense Ayden_Pierre-Fils, but you told us you would create online multiplayer, then you literally take pumpkinhead’s online platformer, and in the end you never made it. and then you told us you’d make a new bot. where did the bot go? what about the stage?

and again, no offense gamer_boi, but the majority of your contributions aren’t useful (trophy shelf), are minimal in quality (arena 1 cave, house, and hobbit hole ideas; and my animations), or are inefficient (victory screen).

for a third time, no offense MrDashell and nuggetofwisdom (yes, I know that you acknowledge this already), but both of you didn’t do much.

I know I sound very mean pointing out all that from all of you, and I’ll acknowledge I don’t know how to deliver the message in a better way. It may not be the kindest way to get the information out, but I am trying to be fair and civil with my reasoning and point of view.

I feel like this is what happens when you let anyone join a collab, whether or not they have motivation and do anything. this is why I feel that we should close the “invitation”.

1 Like

none taken

1 Like

how do you recommend we do this ?

ask someone how good they are and what do they mostly do and they have to send real proof

so the people that I think are guaranteed to stay are:

  • watrmeln (i actually don’t really know)
  • tryo
  • me
  • kringle
  • hamzah
  • pumpkinhead

and the people I think might be allowed to stay are:

  • nugget (for his music)

the other people are:

  • gamer
  • mrdashell
  • ayden

so I guess we first verify that the bottom 4 people are willing to do work (meaning work that actually contributes to the game) or give stuff (like music that is “worthy” of being in the game), and then we just close it.

idk if we should do the proof thing because not everything just comes instantly, but if they clearly don’t contribute up to the standards we’re looking for, then we kick them from the collab. or something like that. not sure.

and no, the lists of people aren’t ordered in any way other than the order they appear at the top…

@Hamzah_Alani you seem to more knowledgeable about JS then the rest of us!
How do you think we could make bots learn?

I’m still here, just waiting for a good idea to hit me

really long useless stuff

I just realized that we might be able to create a new “hits” function that may work perfectly. Every path object has points - if we reach the clip and determine the points in each of its own path (using clip.json), then see the difference between every two points to look for open spaces between the points, and insert points to close the openings within an array attached to the clip (this may be affected by curved path objects), then use the parents X & Y, and the scale size to determine the position of these points outside of the clip, then determine when these points are touching points of other clipped objects, we may have a perfect hits function… though this may take longer to make since there are so many possible areas for bugs - I figured I may just share it here since it’s an interesting concept that MIGHT work - and can help us if we want to add slopes. Sorry for the long sentence - I hope I’m making sense here lol

I may try to work on this on a separate project later - but for now, it’s just thoughts.
(This is also somewhat related to PK’s idea of having bots know their surroundings)

(sorry - I had to cross out some parts of what you said)

I think the easiest way to make bots learn is from experience - so, we’ll need to use multiple arrays to have the bot record data that they can learn from. Here are EXAMPLES of the types of arrays we might have:

  • Clip.Notes
    If the bot decides to change action due to something they recognized in their arrays, add this to the bot’s notes array.

  • Clip.Actions
    Besides moving right/ left, record here all of the actions the bot makes (ex: right/ left/ top/ down/ midair attacks, jump, land, etc.)

  • Clip.Mistakes
    Record the last action the bot made before getting damaged (use Clip.Actions).

  • Clip.Memory
    Record XY positions of bot - finding a pattern here will let the bot know that they’re repeating themselves (add “Repeating” to notes).

  • Clip.Floor
    Record XY positions of where the bot was touching the floor.

  • Clip.Attacks
    Record all attacks ai makes.

  • Clip.Success
    This array should record the damage that the player takes. Have this array parallel the Clip.Attacks array so the bot knows which moves it made were successful and which ones the player is capable of dodging.

  • Clip.OAttacks
    Record all of the opponent’s attacks.

  • Clip.Failure
    This array should record all the times that the player was damaged. Have this array parallel the Clip.OAttacks array (if falling damage, add “FD” to Clip.OAttacks).

  • Clip.PF
    Record all platforms and their edges (may help with adding in PK’s idea). This is easy to add in since all platforms are currently just rectangles

I just made this list - so there’s probably some stuff that I’m missing here. We may not use all of these… but most of these arrays are really easy to add in (the hard part is having the ai read them and learn from them).

1 Like

i just don’t know what to do because I haven’t been told to do anything and I don’t know if I’m allowed to animate a character

First, @Watrmeln, do something to make players heal. preferably not natural regeneration, but maybe something like standing still (xv = 0). do this in the function called project.player().

Second, after Watrmeln does that and gives us the file, @MrDashell, you can work on making the AI run away when its health is low. when it’s health is at XX% (like 30), try make it flee. If you want, you can work on a medium health one where it attacks when it’s close but heals when it’s far from the player.

and then we should add some points on the map in which if the bot is touching it and is moving in direction X (it depends obviously), it jumps. dunno who will do that.

and after that, I have a weird but possible idea to improve the bot after it knows how to flee.

we use machine learning to make it even better.

uh, baron, how will we make them learn

so since all the numbers are hardcoded and we want to make the bot better but we don’t know how, we can use machine learning to make the numbers for us.

  1. anything hard coded (distance, bot health, etc) will be randomized. We can run maybe 4 bots at a time, aiming at a dummy that moves very little (high weight, tries to stay in middle). a generation will last maybe 300 frames, which is 10 seconds. or it can be 450 frames or something.
  2. the best bot will be determined by how much “damage” the bot deals to the dummy minus the amount of damage it takes itself (falling into the void for example).
  • The best bot will stay exactly the same.
  • The second best bot will edit all its numbers by a little bit (add a random number between -10 and 10, for example).
  • one of the last 2 will take the best one’s moves and edit them by a bit.
  • the other of the last 2 will take the best one’s moves and edit them by more than just a bit (maybe -25 to 25)
  1. the round will reset and they keep doing this. the console will log the best bot’s stats and score (damage given - damage taken).

Somewhere near the beginning or middle, when we have a bot that vaguely knows how to fight

We can bump the framerate to something like 500 or more to speed up the process. and we can also temporarily delete the fancy stuff to make the machine learning run even faster.

what do we do after making that bot?

we keep going.

you see, the dummy kinda just stands still. but we can change that. we can make the dummy inherit the best bot’s stats. we don’t do that beforehand because we need the bots to first know how to attack, but now they need to defend themselves.

of course, we can save the attack-only bot for the too-agressive bot, don’t waste it.

after that, we should have a pretty solid bot.

So if the player is standing still, regen them?
i don’t really know how to do that the way you asked

yeah, that’s my idea for now. or they have to press a key which has X cooldown and Y healing power (which is different for everyone).

um so bad news is that I don’t know how to code java

ahem
for the last time it’s javaSCRIPT

I called it java for short geez either way I don’t know how to code in it

ok, that’s fine then. maybe make some concept art for arenas? give a list of some of your strengths or what you want and don’t want to do, then we can assign you a job based on that.

and you can shorten it even more to JS or js. java is a completely different language so it can be confusing. but in a wick context i guess that’s okay.

3 Likes