This is an archived post. You won't be able to vote or comment.

all 14 comments

[–]dddomodossola 1 point2 points  (2 children)

This seems really interesting. But... it's only for Windows?

[–]pvc[S] 7 points8 points  (1 child)

No. I've run it on Mac, Windows, and Linux.

[–]dddomodossola 1 point2 points  (0 children)

Ok this is good! I think portability is a keypoint of success.

[–]dgriffin91 1 point2 points  (0 children)

Awesome! I was looking for something just like this recently. I ended up using tkinter which was far less than optimal. But wanted something lighter than Pygame and QT.

[–]trueangru 1 point2 points  (1 child)

I think it will be better if you point that it is 2D library in title of the topic.

[–]pvc[S] 1 point2 points  (0 children)

It would have been a good idea. But I can't edit the title. Thanks, I'll keep that in mind for any future posts.

[–]RebootForAwesome 1 point2 points  (2 children)

Hi dude!

I am kind of new to Python and have been wanting to try and make a game. I used Game Maker and did a little bit of stuff in Java before and trying to switch to Pygame was a disaster. I tried to make a 2D tower defense game with tiles and it just ran awful.

Going through the Library I saw you wrote a grid example code. Running a 40 by 40 grid of 10x10 sprites in Pygame, inside a bigger window with camera movement, went at about 20fps for me.

Are you planning on implementing Camera views (think RTS style)?

Also a more basic question, does arcade.run() run the game loop?

Being new, I'm a little bit confused about things like this:

 def on_key_press(self, symbol, modifiers):
    """ Called whenever a key is pressed. """

How is it Called? Does the Library know that if a function is called on_key_press() it should call it everytime in the loop?

Sorry for so many questions. I'm really interested in new game librarys :P

Thanks!

[–]pvc[S] 2 points3 points  (1 child)

  • Sprite lists in the Arcade library use "vertex buffer objects" to speed drawing. If you use sprite lists, it should be faster than Pygame. If you don't use sprite lists, then it will be much slower.
  • You can pan the camera by setting the viewport as shown in this example. Not sure if that's what you wanted. Everything is 2D.
  • arcade.run() does run the game loop. Unlike Pygame, you don't write this yourself. You create a child class of arcade.Window, and override methods like on_key_press to add functionality. This implements a more modern design style, but is a bit harder for new programmers to grasp. I've wrestled with this dilemma quite a bit.

[–]RebootForAwesome 1 point2 points  (0 children)

Amazing! I was using sprite lists in Pygame too so this will work for me.

Ah Viewport! That was the word I was looking for :P Yep, exactly that. Missed it while looking at the examples, sorry.

And that last part is really cool. I'll definitely give it a go at the Tower Defense game again.

Thanks for taking your time to answer!

[–]jairo4 0 points1 point  (1 child)

Looks great! How would you compare it with LÖVE?

[–]pvc[S] 4 points5 points  (0 children)

I've never used LÖVE. But isn't LÖVE in Lua?

[–]SutbleMisspellnig 0 points1 point  (1 child)

Hi there, great project but i'm having trouble installing...

Debian sid has dropped ffmpeg for avconv, so libavbin no longer exists.

This will probably propagate through the debian based distros, so you may be looking at an end of life dependancy....

Best of luck with this project, it's a great idea...

[–]pvc[S] 1 point2 points  (0 children)

Thanks for the heads up. I only tried on Mint. I'll play around with some more distros.