Hacking Game with Robots

Hack into robots with randomized abilities and turn them against each other.

Hack into robots with randomized abilities and turn them against each other. Make sure anything left standing is under your control. All feedback is appreciated!

Controls:

Left Click:
-Hack Robot (Hold)
-Select Robot
-Select/Use Ability

Right Click:
-Move Robot
-Set Robot Target
-Move Camera (Hold+Drag)

Mousewheel:
-Zoom Camera In/Out

Source Requirements:
Python 3.8+
Pygame 2.0.1+
Numpy probably
Cython

Voting results

Overall
3rd
25%
7.375
Graphics
6th
63%
5.667
Audio
4th
38%
6.625
Gameplay
3rd
25%
7.125
Originality
1st
8.625
Theme
1st
8.500

This game entered in the Team competition (8 entries).

Comments (13)

Anonymous
 • 2 years ago • 

Liked the overall idea. The program pops up Script failed to execute at times. Other than that nice game :)

ratrogue
 • 2 years ago • 

I get "Failed to execute script game" when trying to start it. :-(

thomastc
 • 2 years ago • 

Great game! You managed to put a lot of content into it in such a short time, especially the abilities.

The difficulty level indications seem about right, but with some overpowered combinations of abilities I was able to beat the Very Hard level with two robots left. I didn't really feel motivated to strive for a higher score by using fewer hacks or abilities.

I might have liked this game even better if it were turn-based, because I like to think things over and am not good at quick clicking. But that's just personal preference.

Some gameplay notes:

  • Mine laying is a bit tricky because you can't control the orientation of the robot directly. Would have been simpler to just click nearby to place a mine.
  • The white flag might be overpowered, especially if your bot has the self-destruct ability. You can just drive it into the middle of a group of enemies and pull the trigger. Maybe a timer would be a solution?
  • Too much clicking is needed to activate abilities, and in the midst of a battle I found myself often being too late. More health or less bullet damage might already help.
  • Speed and swap seem underpowered, but that might just me my play style.
  • 2 × lure + white flag + self-destruct = kaboom!
  • 2 × lure + white flag + 6 × mine (from two bots) = kaboom!
  • Mines don't explode instantly, which is a nice touch that requires good tactics, but surprised me at first.
  • Pathfinding is daft sometimes. It's sometimes as if the robot is trying to route around its own previous location.

UI gripes:

  • When I select a robot, the UI pops up and blocks part of the view (possibly including the selected robot). Better to keep the UI open and just make it empty when nothing is selected.
  • Right mouse button for both scrolling and giving commands, depending on where you click, is counterintuitive and annoying. Would be better to have it work everywhere, depending on whether you click or drag. This means delaying any actions until mouse-up, but that should be fine.
  • I would love a multi-select to move groups of bots simultaneously, but it's not critical because there are at most five.
  • You can't change the AI stance to Passive without cycling through Hostile first, which is dangerous near enemies.
Baconinvader
  • 2 years ago • 

Thanks for the feedback @thomastc ! Yes I think a turn based approach might have been a lot easier to think through, and would have allowed greater freedom in move usage (like with the mine stuff you talked about). If I ever make a sequel, I'll probably do that. Pathfinding problems are due my kind of hackey pathfinding system, I really gotta get round to improving it.

I designed the game with tricks like the mine laying/self-destructing + lure in mind, since I thought people would enjoy figuring them out and exploiting them. I'm glad you liked them!

Kesslwovv
 • 2 years ago • 

I was finishing the 'very hard' Level when the following error occured (windows build):

Traceback (most recent call last):
  File "game.py", line 823, in <module>
  File "game.py", line 754, in draw
AttributeError: 'NoneType' object has no attribute 'rect'

also i noticed that the 'Abilities Used' Counter does not reset. and the game was silent (this may be an issue with wine) but i listened to the music while writing this so i think i can rate them.
still i had a lot of fun! the lure + self destruct may be overpowerd but i had fun with it. an option to pause the game and plan the next moves would have been nice (e.g. use remaining abilities if a robot is about to be destroyed) still a great game! I really liked the variety of mechanics even though some (swap and speed) i never used. Awesome game!

Kesslwovv
 • 2 years ago • 

one time later playing i got the following traceback:

Traceback (most recent call last):
  File "game.py", line 814, in <module>
  File "game.py", line 570, in update
  File "game.py", line 468, in handle_input
AttributeError: 'NoneType' object has no attribute 'use_skill_final'
Baconinvader
  • 2 years ago • 

@kesslwovv thank you for the feedback! Those errors you mentioned are interesting, they don't seem like stuff caused by WINE (except for the sound one), but they aren't things I've experienced myself. Maybe you were playing in a way I hadn't considered? Anyway, I'm glad you liked it.

Kesslwovv
 • 2 years ago • 

I forgot one error:
if there is a robot in the same place as the ability button and you click it (clicking both the (unhacked) robot and the ability button at the same time) the game will crash.

Even though i found some bugs i just want to say that i love your game and appreciate it that i am not the only one with a pygame game with a few bugs ;)

ratrogue
 • 2 years ago • 

I finally could play the game after noticing that it's only the Windows shortcut that produces the error…

Anyway, a great idea! Of course the interface and the pathfinding aren't perfect, but I really like how many different strategies one can use thanks to the different abilities and the fact that the game is not lost just because you lose one or two of your units. I would really see like to see this game polished and extended.

By the way, instead of being turn-based I'd rather recommend adding a pause mode (e.g. via space key) where one can plan and give commands, and then continue the game anytime.

Baconinvader
  • 2 years ago • 

@ratrogue Thanks for the feedback! Yes I would like to make a sequel some day, I mean… Ludum Dare is coming up after all… Also, you're pause-based idea is interesting, it would at least allow for things to play out simultaneously.

M2tias
 • 2 years ago • 

Was this made by a two man team with pygame? Crazy many features! I think all the points I'd make were already given, so I don't go into details. It's always nice to see an ambitious project like this but it's clear that there wasn't enough time for polish. Mousing was a bit unintuitive and bad path finding + no pausing was very frustrating. Maybe having some things behind keyboard would help? Like scrolling the view with WASD and using abilities with 1,2,3,4 etc.
Overall I enjoyed the game. Good stuff :)

Baconinvader
  • 2 years ago • 

@M2tias thanks for the feedback! Yes I was going to add keyboard controls but never ended up doing it because I wanted the whole thing to be entirely playable with the mouse… kind of stupid in hindsight…

AaronBacon
 • 2 years ago • 

Really fun idea and nicely executed, I had alot of fun trying to figure out how I could take out a lod of robots in one go.

Only thing is I'm pretty sure I ran into a bug where self destructing my last robot results in a loss, even if the self destruct also kills all remaining robots.

Still though, nice game for the time limit, really impressive.

Login to comment

Links

WindowsSource

Author

Baconinvader

Details

High scores Submit score

#UserScore
1@Kesslwovv4203 
View all 1 scores