Harvester 008 by Lintfordpickle

Backstory
You are an A.I. program in control of a harvester for 'Mega City'. Due to budget cuts, the fleet is in a state of ill-repair, and you are the last ship left. The city is depending on you.
Instructions
- W,A,S,D - control the ship.
- H - toggle help on/off

Motivation
I joined this LD as an opportunity to test a physics engine I programmed over the Christmas holidays (just collision detection and resolution, but with rotations). The engine was missing a few 'core' methods, which only became apparent over the weekend and were added (collision response callbacks, applyForceAtPoint etc.). I'm happy to say that for a basic games, is seems to be okay.
It would be great if you could let me know if you have any problems running the game. You should be able to just run the executable and it should start.
I've already heard from friends that the movement is lagging, so hearing from you all would be awesome!
Thanks
updated
- changes physics update from 90Hz to 60Hz
- lowered shader requirements from 460 to 330 (hopefully this fixes crashing on startup)
- lowered gravity
- removed 'spacebar' to flip
Post-Jam
As I didn't have enough time to finish all the things I wanted to include in the game during the 72 hours, I have started working on a post-jam version of the game. The features and gameplay will largely be the same, but the graphics will be improved as I finish drawing the city and add animations to the background.

Both versions are available for download on Itch.io
| Link | https://lintfordpickleld.itch.io/harvester-008 |
| Github | https://github.com/LintfordPickle/LD52_Harvest |
| Original URL | https://ldjam.com/events/ludum-dare/52/harvester-008 |
Ratings
| Overall | 316th | 3.614⭐ | 24🧑⚖️ |
| Fun | 382th | 3.409⭐ | 24🧑⚖️ |
| Innovation | 218th | 3.591⭐ | 24🧑⚖️ |
| Theme | 259th | 3.932⭐ | 24🧑⚖️ |
| Graphics | 225th | 4⭐ | 24🧑⚖️ |
| Audio | 493th | 2.278⭐ | 20🧑⚖️ |
| Humor | 626th | 2.2⭐ | 22🧑⚖️ |
| Mood | 491th | 3.31⭐ | 23🧑⚖️ |
| Given | 13🗳️ | 15🗨️ |
btw - I tried to play your game on itch, but I got the following error (using Firefox):

If you get it working, let me know and I'll give it a go.
Dissapointed because it looks so good!
Heres the last lines of the Debug file if it helps <3
16.32.15.419: ConstantsApp: [main] Registered value: DEBUG_LIVE_TEXTURE_RELOAD : true
16.32.15.423: ResourceManager: [main] Adding EntityGroupUid to protected list: -2147483647
16.32.15.429: ScreenManager: [main] Added screen 'MenuBackgroundScreen'
16.32.15.432: ScreenManager: [main] Added screen 'MainMenu'
16.32.15.432: GameWindow: [main] Loading GL content
16.32.15.473: GLDebug: [main] GL_INVALID_OPERATION (1282)
Perhaps some mechanics should be added to the game to make it less repetitive
Overral, nice entry!
The physics, while impressive, do work against the player a bit here.
To expand it I would recommend maybe toning down the spinning and gravity to make it a bit easier to control; the cyberpunk setting and atmosphere you've created is brilliant and could lead to all sorts of potential delivery / combat missions (if you added weaponry of some description).
Very interesting idea!

I have uploaded a fix now, if you have time, could you let me know if it works for you?
### Things I liked
1. The graphics were solid - very nice texturing and overall color scheme. The harvester popped out nicely from the city background
2. Contacts, collisions, forces and torques were all handled very well
3. The gameplay loop and mechanics took some getting used to, but could very possibly be mastered with time. This level might make a good candidate for speed runners (at least I'd like to see someone speed run it!)
4. The damage mechanic is a very nice addition!
### Things I noticed
1. The controls are very quirky and will probably take a bit of adjustment for most people. What you've implemented is called a "rate controller" - input from the user directly commands body rates and thrust forces. I'd recommend looking into letting the user control the orientation angle of the harvester directly using a PD (proportional/derivative) controller. The idea is that hitting `A` or `D` would command the harvester to some hard-coded angles (e.g. 25 degrees to the right or 25 degrees to the left), and when neither `A` nor `D` are pressed the harvester's orientation angle is set to zero degrees. The control flow would look like this:
```
user input --> orientation angle command --> PD --> angular velocity command --> PD --> torque command
```
This is known as a 'cascaded PID controller' where the output of one PID controller is used as the setpoint of another PID controller.
If you want to talk more about these ideas, please feel free to ping me through Discord (link in LD profile).
This is a stunning demo, and I hope you're able to use it in later game jams!
I didn't know about the different methods for controlling the ship that you mentioned, so I'll have to read up about the specifics of each one. I think lack of experience on my part led me to just implement the most basic/obvious approach.
However, it sounds like I may have tried to implement a proportional controller during the jam, but I couldn't figure out how to get both the player generated torque *and* maintain the angular velocities which result from collisions with the level geometry. I think the problem is, if the user has to counteract the effects or a collision with a building, then the controls don't feel 'tight'.
I admit though that I'm new to a lot of the concepts used in physics, so maybe this problem isn't as hard as I'm imagining.
My score only 3 food.

As to the game, it's a solid loop...once you find out where to do the things, haha. Took me three tries to finally get the water to the fields and the fields to the warehouse (I actually died the first two times because I was flying around looking for the warehouse to deliver the wheat).
The controls are difficult but after a bit of practice you start to get better and it feels really good to succesfully zip through openings. And what that means is that you take bigger risks to go faster but when you do mess up it _really_ hurts, haha.
I actually played the post-jam version (you said the features and gameplay are the same) and I didn't have any issues loading, running or lagging on Windows.
Again, well done!
Even the post-jam version hasn't been updated for a few weeks now. The lack of visual cues on where to go (and what even is happening) is something I need to fix in the next version - I'd also like to add gamepad support evtl. too
Thanks for the feedback!
Did you ever play sub-terrania? The ship controls remind me a lot of that. Some levels with different gravity would be cool.

Too bad I didn't find this during the review period.
I loved the pixelart. The city had nice feeling about it. Music or sounds would have made the experience even more immersive.
Control scheme was good but I can see people turning away from it as it required skill to control the ship. It kinda reminds me of classics like Wings2 by Miika Virpioja.
That Wing2 game you mentioned sure seems obscure - i'm downloading it now and I've give it a go :)
It seems that caveflight games were a national genre for Finnish indie developers in the 90's. There was at least Gravity Force 2, Turboraketti, Auts, Kops, Assault Wing, Wham, V-Wing, Wings... and later Wings2 for online multiplaying. The Wings2 even runs on todays computers.
I love the early 200's late 90's games like this (mainly for the aesthetics), the main problem is the lack of exposure makes them difficult to find.
And yes, they can be difficult to find. Other good ones we played back then were Liero, Slicks n' slide and Mine bombers. Which of the latter two have spiritual sequel steam versions for modern computers (with different names though)