We Haul by Swordfish

Welcome new hires to We Haul!
As I'm sure you know we have one of the best ratings among our competitors in customer satisfaction. And really that all comes down to speed, the faster they get moved the happier they are, right?
That's why the one rule here at We Haul is that you must be off the job site within two minutes, strictly. Cram as much as you can into the truck and get going!
We Haul is a truck packing simulator; cram as many oddly shaped packages into the truck as possible within two minutes. At the end your score is calculated by adding up the points awarded by each package and then graded based on how efficiently you packed the truck. Any transparent pixels left in the truck at the end will go against your score. As a general rule the stranger the package's shape the more points it's worth.
To move packages simply click on them with your mouse and use the scrollwheel to rotate them (alternatively "[" and "]" rotate by 5 degrees per press) then click again to drop the package.
I used python with pygame as the basic engine, along with some base code I have for simplifying pygame development (https://github.com/FRadford/pygame-systems). I created the sprites with aesprite, sound effects with bfxr and background "music" with bosca ceoil.
Note: The score shown at the top of the screen is before applying the final grade, it tends to be a lot lower than the final score.
Gallery

Woo! One image!
Download Note
I can only build a binary for windows right now, but if you have python, pygame and cx_Freeze installed you should be able to download the source and run:
python setup.py build
From the root folder of the project, and it should build some kind of executable for you if all goes according to plan.
| Windows | https://github.com/FRadford/LDJam42/releases/tag/v0.1-alpha |
| Source code | https://github.com/FRadford/LDJam42 |
| Original URL | https://ldjam.com/events/ludum-dare/42/we-haul |
Ratings
| Overall | 568th | 3⭐ | 36🧑⚖️ |
| Fun | 620th | 2.682⭐ | 35🧑⚖️ |
| Innovation | 419th | 3.094⭐ | 34🧑⚖️ |
| Theme | 63th | 4.191⭐ | 36🧑⚖️ |
| Graphics | 464th | 2.985⭐ | 36🧑⚖️ |
| Audio | 548th | 1.969⭐ | 34🧑⚖️ |
| Humor | 326th | 2.466⭐ | 31🧑⚖️ |
| Mood | 559th | 2.379⭐ | 31🧑⚖️ |
| Given | 31🗳️ | 31🗨️ |
@eric-kulbiej Thanks! I'd say it's pretty good for a first attempt, getting the collisions pixel perfect gave me a lot of grief yesterday but it worked out eventually.
@rytannic Thank you as well, the music probably suffered most from being rushed. What it ended up being is an early placeholder that was going to be replaced, but so much for that.
Good to see no horrible bugs so far!
Art was simple, but worked --- I think it would have been interesting to have a greater variety of shapes, though.
Audio was pretty simple and repetitive, but hey, you made everything in 48 hours.
Very valid complaints, the physics ended up a little janky, the plan was to add in some smaller shapes so you could fill in some of the smaller gaps (though with the current physics that might just cause more problems), and I think I only spent all of five minutes on the audio so it does get pretty repetitive.
I think I could have managed my time a lot better honestly, I spent probably far too much time on the truck and the collisions took me far longer to figure out than they should have. I wish I could have spent more time on the sound but I really left it to the last minute, I would have liked it to be more polished but it is what it is. Overall a pretty successful first attempt I think.
It was pretty easy to get the furniture to overlap and collide, I ended up stacking multiple tables inside of each other somehow. Creative idea. Music is repetitive though.
...I also realized (after playing) that you can rotate the furniture... whoops
@shane That's a bit odd, are they different resolutions maybe? The idea is that it sets the resolution to that of your monitor. It runs fine with my 2 monitor setup but they are the same resolution.
If you're really committed you could change
```
self.screen = pygame.display.set_mode((monitor_info.current_w, monitor_info.current_h), pygame.FULLSCREEN)```
on line 27 of main.py to say
```
self.screen = pygame.display.set_mode((800, 400))```
And then it won't try to open fullscreen, but if you don't already have python installed that might be a little overkill.
@darkmonkey-inc what OS is your computer running? I might be able to help.
@jamison That's great, *do you think you could get an A+?* I'm not entirely sure why you can place objects inside of others, I noticed that as well while I was testing it but it was too late to fix anything unfortunately. Music is very repetitive, I probably should have opted out of that category honestly. I wasn't aiming for greatness and I'm no musician to begin with so 😋.
@hungare *Here at We Haul everyone is a world class mover, regardless of whether or not anything makes it through the move intact.* Jokes aside, Thanks! I would have liked to have made the music progress more slowly, so that the tension would build up a little slower; but clearly it had the intended effect anyway, which is good. I agree that the overall feel is a little off and the collisions are pretty screwy sometimes. I think a bunch more smaller items to really fill all the nooks and crannies would help make it a little more fun, but I never got the chance sadly 😭.
@fluffy-kaeloky Thanks, in retrospect it might have been better to just leave out the background music; I'm not sure.
@jamison I'm not convinced it's possible but try your best!
@mike-inprinciple I'd say it's more like one bug that's very prevalent but yes, I'm aware that happens. I think it's due to the nature of the collision system I'm using, if you happen to move an object far enough into another it will clip to the other side of that object regardless of whether or not there's another object in the way. I'm not sure if I'm going to fix, seeing as it isn't really game breaking.
Sticky movement, glitchy collisions and a pretty steep difficulty ramp (cliff?) if you try to pack "properly" held it back from being super fun but it was quite creative and I can see it polishing up nicely.
As for the game its good, the mechanics are simple, graphics nice, audio ok (could use work), and fits the theme well. There are problems with the controls. Sometimes I had to click object several times to select. As well it was tricky to get objects into the van after it started to get full. [ ] might not have been good choices for rotation. Maybe something closer to WASD keys as that is normally were the hand rests. Over all good entry :)
Fun interpretation of the theme, well done!

Nice and fun game. It probably have some problem with the collision boxes both in the stacking and in the iteam selection. The music is kind of annoying. Other than that it's really good.
@adonisdevs, @dimesto52 The original idea was to have some other levels, but here we are. Same goes for the music really, time always seems to go faster when you're trying to get something done.
@max-cahill It really is never a good idea to rush a move, but where's the fun in that? I was planning on adding a lot of smaller items so you can fill small spaces easier and quicker, I think that might have helped with the difficulty. I could have always made the grades more lenient as well, but I like the idea of basically always getting a terrible rating. Getting to a few more features would have been nice...
@darkguardsman How slow is amazingly slow exactly? It takes about 10 seconds on my machine, which I'll admit is slower than some of the other entries here but it doesn't seem that long to me. I probably spent too long getting the graphics how I liked them and not nearly enough on the music, hindsight's 20/20 though. I think the main issue with the controls arises from mouse collisions being checked against the bounding box of an object rather than pixel perfect. Unfortunately after you pack everything into the truck pixel perfect, bounding boxes overlap and it checks collisions from the top of a list so it often ends up choosing the wrong object. In hindsight q and e would have probably been much better rotation keys but I wasn't using them anyway since I'd been testing with the scrollwheel so the thought never crossed my mind.
@fork0 collisions need work and not nearly enough time was spent on music, but it was a learning experience overall.
@ekilibr Yeah, I probably could have made the controls more obvious, or added some kind of reference in the game itself. I'm lucky there's even a title screen though.
@kromeboy That's a safe way to pack a truck for sure, the collision really do need work as I mentioned earlier I probably should have made the selection collisions pixel perfect as well. I'm not sure how much of a performance hit that would be though.
I feel like with a few quality of life changes, improvements to presentation, and simple upgrades to your truck it could make a really neat mobile/web "coffee break" game :slight_smile: appeals to the tetris perfectionism but forces you to be "imperfect" due to the time pressure and the irregularly shaped items.
Glad it was a learning experience either way, thanks for the fun experience.
@max-cahill I think I'm going to try and Polish it up and release either a mobile or Web version. Ive never actually done either with python, but I'm sure there's a way. And thanks for playing!
@predominant I'm with you on the mobile game, with a few tweaks I think it could work quite well. Thanks for playing