Soother

Rithmatist mobile game

32 posts in this topic

Not sure if anyone will be notified of posts over a year later, but I've put quite a bit of time into thinking about this. VR is becoming much more accessible with standalone versions of the Vive and Oculus not requiring a high end computer. Also, more "lower end" computers are becoming VR capable as standard hardware improves. And VR tech in general is coming down in price as newer systems are being released. Ideally I would love to see this game in AR with the ability to battle other people, but so far I have not seen anything that is accessible. I have several friends who have either a Vive or Oculus Rift, and all of them happen to be big Sanderson Fans. And then there was that little VR game about Stormlight. So things are happening. 

Anyway, my purpose in posting in this seemingly dead thread is to see if anyone has done any more research on developing this kind of game. Even a simple mobile game where you draw your stuff on your screen and either play against AI or you shoot off lines of vigor at your living opponents on their own devices. I do software development for a living, but this was my first foray into animation. Here are my findings so far: 

  • Object recognition is a significant challenge, but not insurmountable. 
    • Lines of Forbiddance are the easiest.
      • You must be able to distinguish imperfect straight lines from narrow lines of Vigor. I believe this could be accomplished with some sort of threshold of variance from the vector between the start and end point. 
    • Lines of Vigor
      • I would love to hear more from Sanderson (perhaps in book 2) about what happens when a person intends to draw one thing and does a poor job of it. It is clear with lines of warding (bad circles = bad strength) but for vigor lines, if the peaks and valleys of the "sine wave" aren't very consistent does it ruin it altogether or does it change the strength/speed of the attack? Distinguishing between these shapes and lines of Revocation might be a bit more challenging however I think it can be done with what I will describe below for lines of Making (chalklings). 
    • Lines of Making (Chalklings)
      • This is the real challenge that has made me start and give up several times on this project. But recently I have been reading more about machine learning and object recognition. I have a pretty rudimentary understanding of how it works, but (and one of the triggers for me posting this) I found someone who is already managing to classify doodles, and their system works brilliantly! Google Quickdraw and checkout their data. If you haven't tried the game, do it and you will be impressed. It won't allow for unlimited creativity like you see in the examples of chalklings from the book but it would certainly make for an interesting game. 
      • I think recognizing the commands (go, attack, wait, turn) would be similar, but there would need to be some sort of game mechanic that says (I'm done with my chalkling, now I'm writing commands, so that the object recognition tool can distinguish them. 
      • One thing that would be very advanced would be to first, recognize the type of creature, but then also recognize features of that creature, like a shell, or wings or claws to augment the stats of the chalkling in combat. This will also be important in animation (see below).
  • Animation 
    • This game would still be impressive if all that happened was a simple translation (sliding) of the drawings on the 2D plane. However what I really would like to do would be to animate as much as possible. I have very limited experience with animation but the basics are this. 
      • First You have to recognize the object. 
      • Then you have to recognize a few points to build a sort of "skeleton" for the object. Google Human pose detection for an example of what I'm talking about.
        • For Lines of Vigor you would want to recognize the peaks and valleys of the "sine wave" and extrapolate it so that it can "slither" toward the enemy rather than just slide.
        • For Chalklings you would want to be able to bind to points of interest like heads, arms, legs (however many), tails, and wings.
      • Then you have to have an animation profile that knows how to manipulate that skeleton. And while I was thinking it would all be 2D animation, it would actually probably be closer to 3D if you think about seeing a dragon flying towards the enemy from a top down perspective. It would be traveling along the 2D plane, but the wings would likely need to transform to appear as if they are flapping in the 3D plane. But even if the Chalklings could just wiggle around in their simple 2D form that would be impressive. 

If anyone is interesting in discussing this further, I am all ears. I can't commit a ton of time but it would be an incredible hobby project. Quite honestly, if done right, it could be an incredible PhD project in some particular fields of study. And the tech for automated doodle classification and animation could be used in several different contexts. Reply here if you have any interest 

5

Share this post


Link to post
Share on other sites

for recognizing chalkling stats here are some ideas:

area above a certain threshold = large health

area of weapon = damage

legs = speed

of course, this is probably way too simple

0

Share this post


Link to post
Share on other sites
On 6/21/2018 at 5:14 AM, nat the geek said:

for recognizing chalkling stats here are some ideas:

area above a certain threshold = large health

area of weapon = damage

legs = speed

of course, this is probably way too simple

It is simple, but I think it would work for a start. But how could it tell what are legs, what are weapons, and what is the body.

0

Share this post


Link to post
Share on other sites

Posted (edited)

Nobody has commented on this for a while, but I thought I'd add my two cents.
I also think a rithmatist game would be amazing, and I have been experimenting with programming one for the past couple months. I was excited to see that some other people had already discussed. I have been coding it in Khan Academy JavaScript, but it is starting to get complicated enough that I need a better engine, so I think I might switch to Unity soon.

My thoughts on the program:

For Chalkings, I had very similar thoughts as tyjoti89, Google quick-draw seems almost exactly what we need, and its base is open source! Google has developed a machine learning program called Magenta that they let anyone use for experiments, etc. For chalkling recognition, it could compare you're drawing to all the other drawings the game has had to assess what it is. (In 'Beta Testing' of your game you could develop your initial library.) The hard part, like the others who have commented on this thread have said, would be one of the hardest parts. Next year in I am doing an 'Extended Learning Internship' class in High School where I get to study and work on a project of my choice, and find mentors who study similar things in their career. I am hoping to experiment with Google Magenta and find a way to animate users drawings then, so I might have more to contribute to this in a year or so.

Lines of Forbodance need to be judged in strength as to how straight they are, but specifically each part of the line, because in the book I seem to remember it mentioned that you can look for flaws in drawings and target them because they are the weak points. Ideally the program would have some way of making lines thicker as well, like in the books where thicker lines were stronger and extended farther upwards. (I think.)

Lines of Vigour can be differentiated from Forbodance based on the average deviation of the slope of the line, i.e. if the line bends a lot vs if it is roughly straight. The 'stats' for the line can be calculated on the sine waves attributes. I think that the speed should be the frequency, the strength/impact should be the magnitude, and the accuracy should be how close it is to an 'ideal' sine wave.

Lines of Warding's strength should be based on the change in the slope of the line in that area. This would make it so that when drawing an almost perfect circle, it has even strength all around, but if you see the flaw in the circle where it caves inward or is flat, you can target that because it is weaker. That would also take into account that ellipses are stronger on the front and back ends than the sides, because the slope of each line making up the ellipse has a greater change and thus a tighter curve on the front and back. Bind points on a circle can be calculated based on the following: Wherever a line touches a line of warding, a bind point is made. The program then calculates the angles of the bind points from the center of the circle (based on the average of every point in the circle) in relation to each other. The bind point is strong if it is 60 or 90 degrees away from eachother, weaker otherwise. The bind point's strength would also be influenced by it's distance from the center of the circle compared to other points distance from the center. The more similar the distances from the center the stronger the bind points. This would make it so that bind points are stronger in a more perfect circle, but also take care of the fact that there are only two bind points on an ellipse. I am not yet sure how to do 9-point bind points, (based on an 'imaginary' triangular prism and where it contacts the edges of a circle). I have to think about that a bit more.

You could obviously duel others, and I like the idea of a survival mode against waves of wild chalklings. It would be cool if in survival you went until they touched you not until they broke your circle, so you could move throughout the room to survive longer. I also think there should be a melee mode where you are in an arena with many other players and some people who are on your team.

I would love to see a VR version of this game! I am going to keep working on this, but like severeal other people who have said they are working on it, it is a hobby that might not make it to completion. 

Keep posting if any of you guys make progress!

Edited by Ammon Kunzler
1

Share this post


Link to post
Share on other sites
3 hours ago, Ammon Kunzler said:

Nobody has commented on this for a while, but I thought I'd add my two cents.
I also think a rithmatist game would be amazing, and I have been experimenting with programming one for the past couple months. I was excited to see that some other people had already discussed. I have been coding it in Khan Academy JavaScript, but it is starting to get complicated enough that I need a better engine, so I think I might switch to Unity soon.

My thoughts on the program:

For Chalkings, I had very similar thoughts as tyjoti89, Google quick-draw seems almost exactly what we need, and its base is open source! Google has developed a machine learning program called Magenta that they let anyone use for experiments, etc. For chalkling recognition, it could compare you're drawing to all the other drawings the game has had to assess what it is. (In 'Beta Testing' of your game you could develop your initial library.) The hard part, like the others who have commented on this thread have said, would be one of the hardest parts. Next year in I am doing an 'Extended Learning Internship' class in High School where I get to study and work on a project of my choice, and find mentors who study similar things in their career. I am hoping to experiment with Google Magenta and find a way to animate users drawings then, so I might have more to contribute to this in a year or so.

Lines of Forbodance need to be judged in strength as to how straight they are, but specifically each part of the line, because in the book I seem to remember it mentioned that you can look for flaws in drawings and target them because they are the weak points. Ideally the program would have some way of making lines thicker as well, like in the books where thicker lines were stronger and extended farther upwards. (I think.)

Lines of Vigour can be differentiated from Forbodance based on the average deviation of the slope of the line, i.e. if the line bends a lot vs if it is roughly straight. The 'stats' for the line can be calculated on the sine waves attributes. I think that the speed should be the frequency, the strength/impact should be the magnitude, and the accuracy should be how close it is to an 'ideal' sine wave.

Lines of Warding's strength should be based on the change in the slope of the line in that area. This would make it so that when drawing an almost perfect circle, it has even strength all around, but if you see the flaw in the circle where it caves inward or is flat, you can target that because it is weaker. That would also take into account that ellipses are stronger on the front and back ends than the sides, because the slope of each line making up the ellipse has a greater change and thus a tighter curve on the front and back. Bind points on a circle can be calculated based on the following: Wherever a line touches a line of warding, a bind point is made. The program then calculates the angles of the bind points from the center of the circle (based on the average of every point in the circle) in relation to each other. The bind point is strong if it is 60 or 90 degrees away from eachother, weaker otherwise. The bind point's strength would also be influenced by it's distance from the center of the circle compared to other points distance from the center. The more similar the distances from the center the stronger the bind points. This would make it so that bind points are stronger in a more perfect circle, but also take care of the fact that there are only two bind points on an ellipse. I am not yet sure how to do 9-point bind points, (based on an 'imaginary' triangular prism and where it contacts the edges of a circle). I have to think about that a bit more.

You could obviously duel others, and I like the idea of a survival mode against waves of wild chalklings. It would be cool if in survival you went until they touched you not until they broke your circle, so you could move throughout the room to survive longer. I also think there should be a melee mode where you are in an arena with many other players and some people who are on your team.

I would love to see a VR version of this game! I am going to keep working on this, but like severeal other people who have said they are working on it, it is a hobby that might not make it to completion. 

Keep posting if any of you guys make progress!

Wow, cool

0

Share this post


Link to post
Share on other sites

it seems like the only really problem would be lines of making. I think you would have to have 10 or 20 set chocking and you would have to tell the game which one you are trying to make

2

Share this post


Link to post
Share on other sites
On 6/5/2019 at 11:50 AM, hutonahill said:

it seems like the only really problem would be lines of making. I think you would have to have 10 or 20 set chocking and you would have to tell the game which one you are trying to make

Yeah, you could draw it before hand in like a "Chaulking Creation" and draw it as quick as you can. Then you just click and drag and it redraws it for you. In the same time you drew it on the creation menu. In the creation menu you can specify the speed, strength, and health based on the drawing where you identify the parts, either legs or claws or teath or a shell. Size would also help with health. Overall detail adds a overall buff to all stats!!

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.