Physics and you (~6 hours into the jam)


OKAY. I got something. But god, what a ride to get to this point.
First things first, I want to say, I love Love2D. It takes the ideas of the likes of SDL, of Pygame and such and put it into a simple little framework with everything you need, in Lua, and with as much control as you want as long as you're speaking about the Canvas. Yeah, that maybe because of the last part that a lot of projects can't scale down to Love2D.

You're limiting yourself to a lot of things, mainly OS and thread management. Which is sometimes good, having an abstraction of the OS means crossplatform is key, and with Love2D it is: just install the Love2D interpreter and you can run that game, or, the other way around, you can compile your game for anything. But, when you speak bigger projects, somethings which are needed aren't here.

The keyword here is bigger projects. The scope of Love2D always has been small projects, small prototypes, and it should stay that way. But, that's a curse as well: there's a lot of libraries for Love2D, but a lot of these libraries are people who do a small quick project, a quick challenge, and never come back to it, never maintains it, and so there's a lot of theses libraries which become obseletes with some Love2D updates - which still gets regularly updated, that's a project that's still kickin'.

(At least, those are my impressions)

That brings me to my little adventure. Going blindly back to Love2D after 6 years of not touching the thing, I though to myself that what I learned the first time, that these libraries come and go, was a thing of the past. That was a major mistake.

I said in my previous post that I would be using breezefield (https://github.com/HDictus/breezefield here), which itself was a fork of Windfield (https://github.com/adnzzzzZ/windfield there). Alrighty, but I haven't looked at the date of their last commits yet that I already pasted breezefield into my dependencies. Going through my prototyping, I had to adapt breezefield to my workflow by hand since Love2D and Lua workflow kinda evolved since 2016. Then, I said to myself, wait, why do I have to adapt that code? Ono! It's an old library, noooo!

Why the reaction tho? Well, two things: on the surface, I may think I need to adapt one or two things to make that old library work with the latest Love2D, but I may encounter way more issues along the way, way more things to edit, which means way more time to lose, not a good thing. There could be not much to edit, but it's a bet, and I'm not betting the time I could use to finish my game. Second thing, well, since it isn't maintained anymore, I checked to see if anyone has posted any issue on github and yup, there were some, issues that could get in my way later, again loss of time, again not good. It doesn't mean that those libraries are bad or anything or those issues are code-breaking but I don't have the time to thorougly check if that's the case. But please, if you want to check them out, go ahead! And souhout to HDictus and adnzzzzZ!

So, after all that reflexion, my attention was switched to another library, Phys1cs (https://github.com/4v0v/phys1cs over there) which seemed like the most recent alternative, plus 4v0v seems still active in the Love2D community (https://twitter.com/4v0v_/ check him out on Twitter!), so I mad the final choice: the physic wrapper that I'm going to use in Chuchu was going to be this one.

this is me with phys1cs
Again, thanks to everyone who contributs to Love2D and its community! Even if it's for a small period of time, even if you leave a small footprint on the community, I'm positive that you have helped at least one person achieve their goals at that time!

To clarify, I'm not saying coming and going into the Love2D community is bad, no! Everyone should go with the wind, go make some new projects and everything. If you maintained a project for more than 1 month, you have my total respect, cause I couldn't bring myself to do that. I, too, need to switch from project to project, always searching for new things to try and learn. There's no bad or good way to live your contribution life, just, do it the way you feel it!

Anywho, uhm, back to topic.
Like I said in my previous post, there will be a key that's used to switch between side left and right. Maybe the crates will be on the left side and you need to place them on the right side, I don't know yet, but that was my initial though. Problem, what happens when a crane does a 180°? Does the line move when only the crane rotate? Nah, it stays on its axis! Which means, in my case, I need to mirror the position of the magnet to keep that impression. Alrighty, done!

I think I may forget one or two things I've done. Oh well, see you next time, I will make sure to keep my log more condensed and less... Well, less going-into-another-topic-entirely.

Leave a comment

Log in with itch.io to leave a comment.