Jump to content

Rithmatist: The Game


smartycope

Recommended Posts

I'm going to learn Unity and attempt a month long game jam to see what I can get done before I leave for 2 years. Wish me luck!

It'll just be a 2D game for now, if I can get a line of vigor to bounce off a line of forbiddance and break a line of warding I would be ecstatic 

Link to comment
Share on other sites

I don't know really anything about Godot but I'll look into it. I'm using the free version of unity (idk how much the paid one changes but it might not be much) and once I'm in college I should be able to get the student version.

Anyway I've been brainstorming ideas and problem solving and I have lots of cool concepts in mind, but I need input on some concerns!

I'd like to take this to discord if you have that so it would be easier to communicate but here's my idea vomit from a note on my phone:

Screenshot_20220920-130057.thumb.png.be632ff2144f2e346fddde7477f0028c.png

I imagine you would press a key to change what kind of line you were going to draw (like changing your mouse function in Photoshop) and then click to place it.

My next biggest questions would be about controls for your character. I think the right click controls like for MOBAs would work nicely but I also kinda hate those so idk.

Link to comment
Share on other sites

  • 4 weeks later...

Well I'm trying to crank out what I can on Godot over the next 2 days (I leave on Monday!) but there's just a couple things I could use input on.

First, how would one animate a vigor line? For that matter what do they even look like when they move? I always assumed they would wiggle with the front point moving forward and the back one erasing as it goes. But it never said that did it? The whole thing might just scoot in the direction you point it which would also make sense, especially with reflecting off of forbiddance lines. But anyway animating the movement and reflections sounds annoying. I'll just use a single point for now.

Second is a bigger deal. As I said before I'm leaving on a mission for 2 years. I don't want my game to just sit around in case anyone else wants to work on it, but I also don't just want to put it out on the internet for anyone to use in case I want to take ownership back when I come home. So does someone here want to take it when I'm done? You can share it with people here or discord or wherever but I ask you don't put it anywhere public.

Lastly, does anyone know what the heck they're doing with netcode for Godot? I have absolutely no clue how any of that would work. There's a lot to go before I should even worry about it but I'm just asking ahead of time.

Link to comment
Share on other sites

On 3/6/2021 at 6:20 PM, smartycope said:

Honestly, I had some vague concept of taking a few points before and after a given point and getting their slope, but using calculus makes way more sense. 
As for chalklings, yeah, I have no idea. I’ve just been ignoring them for now, because they’re the looser bit of the magic system. I have a vague idea of using something in place of chalklings, like an x, or some other small shape that I can evaluate, then creating a premade chalkling in place of it. 
Also, I think I’m gonna rewrite it all in python, because python is just so easy. 

I don’t know if this would work in programming or anything, but you could offer several choices of chalklings that take different amounts of time to draw, have different stats (speed, attack, defense, you know the drill), and are differently detailed. Maybe you could offer a very large variety and when it’s time for a battle, the player picks three or four or some amount for use in the battle. 

I don’t know how that would work in programming. I’m not smart enough for that. I don’t know if my idea is helpful, or just wouldn’t work at all, so yes. 

—Haly 

Link to comment
Share on other sites

  • 1 month later...

I still stand by the chalking library (in which a user creates chalklings that are judged either through programming or upkeep).

For some reason I wasn't notified when there was a response here, so sorry for taking so long. I'd be happy to take over it for now, but may have to shelve it for a while.

I believe that vigor lines move like light waves (you described it as wiggling) due to WoBs stating it acts like light and the way the redirecting picture is drawn (pre-chapter arithmetic diagram).

Link to comment
Share on other sites

  • 5 weeks later...

Hey smartycope,

I was wondering if I could Contribute to this amazing game you are working on.

If so I am a Semi-experienced coder and now how to properly test programs for bugs and other errors.

Could you tell me an email to send my GitHub account to?

Thanks so much for all this hard work, I'd love to see it.

I'm going to go wait for a reply now bye!

Link to comment
Share on other sites

To be honest, I haven't touched this project in several years. If I were to go back, I'd probably restart from scratch, I'm a much better programmer than I was then. But if you really want:

My old repo: https://github.com/smartycope/Rithmatist-Game

This is the old repo CrypticSpren and I were working on briefly: https://github.com/liunicholas6/RithmaticsOld

This is apparently the new one he started that I didn't notice: https://github.com/liunicholas6/Rithmatics

 

Link to comment
Share on other sites

Thx for replying, I would love to help you start from scratch.

I would really like to help in the development of this to be amazing game.

I think that continuing the project would be a good idea as it would give me a cool thing to help with and look forward to.

It may give you an insight to how much things have changed with your coding skills and finish something that you started so many years ago.

I love the idea of starting this project from scratch and I am hoping you say yes,

Bye now, going to wait for a reply.

Link to comment
Share on other sites

Woah a lot of stuff has been done in this thread since I last checked! I don't know for sure how much time I'll have this upcoming college semester but assuming I have any free time to do projects, I would love to return to building a Rithmatics game.

Hopefully, I should be much better prepared to pull off a project of the scale of Rithmatics now: I basically had no experience outside of AP Comp Sci when I first started, so I was definitely not ready for such a big project. By the way, the current repo was an experiment in using a functional programming paradigm for Rithmatics, but it really didn't work well with Godot being super OOP. Let's start from scratch.

I'd make a repo, but I'm not sure what tech stack we want to use. I'm happy to work in Godot/DotNet or do C++ stuff. I did my last project in C++ with QtCreator so that's what I'm most familiar with at the moment, and I know @smartycope is a C++ fan too. Additionally, the physics of Rithmatics is wacky enough that it might be easier to get desired behavior with the direct control we can get from accessing Box2D directly instead of doing stuff through the more limited Godot interface.

But I also know Godot probably has a lot of useful game engine features that I just don't know about, so I'll let y'all make a decision.

@smartycope @SPLATPLAYS let me know y'alls thoughts. Also if we're doing this we should have some means to communicate other than 17th shard; I'm usually most responsive on discord and telegram but text is fine too. Thanks for being interested in this - I've always wanted to give something to the awesome Sanderfan community.

P. S. I don't have access to a windows computer at the moment (I have a mac laptop and my desktop is in my college dorm) so I can't play the Chalked game, but I like a lot of what its feature list describes. However, I feel like it would be a real shame to not have actual drawing since chalk drawings are what gives Rithmatics its flavor. Maybe we can set up 2 different modes where you can choose to do skill checks or mouse drawings? Anyhow, I'm very excited to see what @Showman has pulled off.

Link to comment
Share on other sites

All good @IlstrawberrySeed! I'm also not that experienced; all the projects I've worked on so far have had a lot of scaffolding so the level of self-direction this project will have is definitely new for me too.

One thing I really haven't been able to figure out is how to determine the strength of bind points of a drawn 9-point circle, and you seem to hint that you have some ideas there.

I am aware of the simpler construction for the 9 points than using the triangle properties (pick 3 points to become the triangle midpoints, then bisect each possible arc across 2 of those points) but I'm still not sure how to check how well a particular set of 9 points fits that construction intelligently.

Math ideas for the detection of various Rithmatic lines would also be appreciated. There are implementations, but they're all questionable.

They calculate using a set of points as the representation of a drawn curve, under the (possibly incorrect) assumption that the points are evenly distributed and without any regard to the order of points. And the detection of lines of vigor is really finicky and bad, being based on a peak and trough detection strategy that totally fails if there's any jitter in the drawn line.

The code for all curve fitting is all here if you want to take a look, but feel free to pitch suggestions without looking at it or to ask for a text explanation if you're confused (justifiably considering that my code here is kinda bad).

Apologies for the long ramble. Anyhow, your help would be much appreciated.

Link to comment
Share on other sites

I don't have time to look at it right now, and I don't know if we (the community) have good theories on % of non-bind point strength a true bind point and a fake bind point has, however detecting wether a bind point is real or fake is something that shouldn't be too hard to do, so I'll get back to you with some code. What language would you like it in? (If I don't know it, I'll probably do java since that's what I use most right know, unless you list a few others).

Link to comment
Share on other sites

First of all sorry for not talking for quite a few days, I was not with my pc.

Second thanks @CrypticSprenor volunteering to help in the making of a new and improved Rythmatist game.

My discord is SPLATPLAYS#1090 And I would like to work with both of you.

Third I have notes on everything in the rythmatist, And can't wait to share them with you. 

Also I have some pages on how 9 point circles work.

Please reply with your Discord username and I will accept your friend requests.

Please reply quick, I can't wait for this fun project to start. 

Link to comment
Share on other sites

Wow, I don't check my email for a few days...

The general consensus seems like we're all college students with varying levels of programming ability who think this is a cool hobby, but all have limited free time to work on it. I think we should make a new repo, start from scratch, and use a good version control to all chip away at it whenever we have time. I'll make a repo and try to get it organized with a README and a todo and things, and then share it with y'all.

As much as I love Qt and C++, the more I learn about games the more I realize a legitimate game engine is usually a better choice. @CrypticSpren is right, we're probably gonna have to do some complicated stuff with the math/graphics, but I'm confident Godot has enough tools, they have functions specifically for drawing directly to the screen. It'll be easier than trying to hand code OpenGL calls and such (that's what I did before and it was a mess).

I just took linear algebra last semester, and I'd like to think I'm pretty familiar with Godot, but I would love for all your ideas on the math and algorithms to do things. I'll make a separate folder in the repo for notes everyone has.

What do y'all think?

Also, if we're making a new project, it needs a good name. Should we stick with Rithmatics, or does anyone have any better ideas?

Link to comment
Share on other sites

Ok cool let’s use Godot :). I don't remember how Godot works that well but I'm sure it can't be that hard (let's use Mono though because GDScript drives me insane). Glad to hear that you have experience - it's easy to make architecture that completely falls apart when nobody totally knows what they're doing.

I have a bunch of boilerplate classes for making OpenGL stuff lying around but I still agree that OpenGL is pain.

I will say that it's not the math and graphics that scares me for Godot: we can just convert stuff into Math.NET Numerics whenever we need to do real math, and the SurfaceTool/Mesh classes are pretty robust.

It's more the physics. Lines of Warding and Lines of Forbiddance are approximately circles and lines, but not quite. Thus, might be optimal to do preliminary checks for collisions with the simple geometry (circle for Warding, bounding box for Forbiddance) before checking collisions with the actual true geometry. Without access to Box2D directly, a Line of Warding's geometry might have to be a many-faced convex polygon or line segment collection and the engine might end up doing dozens of checks for a line of vigor that doesn't even get close to impact.

On a screen with tons of Rithmatic lines this could cause significant lag.

To be fair, this problem wouldn't be worth addressing until we're way down the line and maybe there is an intelligent way to get such behavior from Godot. There's a very high chance I'm worrying about nothing.

As for a name: how do you feel about Principia Rithmatica?

Finally, how do we feel about a Discord server? 17th shard is really annoying for back and forth communication and I think it would be nice for there to be a bunch of channels just for us devs to discuss.

Anyhow, I'm traveling back to school today so there's a good chance I'll disappear until tomorrow. Adios until then.

Edited by CrypticSpren
Link to comment
Share on other sites

I'm okay with moving to Discord. Honestly, I've never really used Discord, but I think I have an account lying around somewhere...

Really, you'd rather use C#? I love GDScript. It's like Python, but with slightly better syntax and slightly worse typing. I'm biased though, cause I don't know C#. I'd be willing to learn, but I'm not sure how good my architecture would be. Also, if we do end up using C#, we should try to move to Godot 4 at some point. I'm told it has official .NET support, now that it's open source.

I'm not too worried about the efficiency, Godot is pretty well optimized. 

Principia Rithmatica? Ha! That's amazing, but do you think most people will get it?

Link to comment
Share on other sites

The main reason I fear GDScript is the dynamic typing. I just feel like it takes unnecessary extra cognitive load to keep track of types when you can just let the compiler handle it in a statically typed language. Plus, when your IDE knows types autocomplete is a lot more powerful (ReSharper is really good). Very much a personal preference.

Also, doing linear algebra beyond the in-built geometric transformation methods was a hassle. I really don’t want to calc splines perform regression without proper matrix support. 

But the last time I took a serious look at it was 2 years ago so I’m also biased.

It’s pretty easy to access C# classes that extend Godot nodes from GDScript, so something that we can (and probably should) do is use a mix. For example, we could use GDScript for small scripts and UI, but handle crunchier things like line detection and bind point calcs in C#.

Anyhow, C# is basically just Java with some extra nice features sprinkled on top, so if you know the latter you’ll be fine (properties, yield syntax, ND-arrays, and LINQ in particular are big upgrades from Java). I don’t have much experience with C# either but just from programming in Java I feel like I can wield C# somewhat proficiently.

Also even if people don’t get the Principia Rithmatica reference I still think it sounds pretty cool.

Edited by CrypticSpren
Link to comment
Share on other sites

Okay, you're weird. It takes more cognitive effort to keep track of types in a dynamically typed language, not less?? I've never heard that from literally anyone. To each their own, I guess.

Oh, C# is like Java? Dang. I hate Java. With a fiery burning passion. But I've heard good things about C# from my friend who also hates Java, so maybe it'll be okay. It does sound like it has good matrix support. I thought GDScript had that too? But to be fair, I've never actually tried to do linear algebra using GDScript, so IDK.

I agree though. I didn't really realize you could mix them. I think that's probably the best option, just cause menus using GDScript is super easy. I'd totally be find with writing the more complicated parts in C#.

Also, I sent a friend request to @CrypticSpren and @SPLATPLAYS on Discord. I'm honestly not sure how to set up a group DM on Discord.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...