Coder Social home page Coder Social logo

pythonarcade / arcade Goto Github PK

View Code? Open in Web Editor NEW
1.6K 1.6K 312.0 161.12 MB

Easy to use Python library for creating 2D arcade games.

Home Page: http://arcade.academy

License: Other

Python 98.34% Batchfile 0.01% Shell 0.05% GLSL 1.61%
arcade-api arcade-framework arcade-learning-environment educational-resources educational-technology opengl python python3

arcade's People

Contributors

cclauss avatar chpurdy avatar cleptomania avatar cspotcode avatar dangillet avatar digiduncan avatar dragonmoffon avatar einarf avatar eruvanos avatar eschan145 avatar friendlygecko avatar gran4 avatar humanshs avatar ibrahim2750mi avatar jayman2000 avatar kfields avatar kommentatorforall avatar malikoth avatar markjoshua12 avatar mrgallo avatar mrwardkkhs avatar patricksteffen avatar pauleveritt avatar pushfoo avatar pvcraven avatar r0the avatar sabadam32 avatar sions avatar sirgnip avatar vanicat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arcade's Issues

Improve wildcard imports

Pylint complains because files like init.py are doing "import *" when they should not be doing wildcard imports.

Texture caching

Cache textures, so we don't reload from disk, or create a new texture if we already have one.

Improve collision detection

Right now, collision detection is slow and not very powerful. Add an "Axis Aligned Bounding Box" to the sprite, and then a more detailed collision bounding box.

Joystick support

Well, this is more a doubt instead a issue. The library current have full joystick Support?
Or for joystick, you need use a thirth library.
Thanks for all

Use of setup method instead of __init__?

I see in your examples that you encourage the definition of a setup method, called immediately after class instantiation, instead of an init. For the asteroid_smasher.py demo, my linter complained about defining instance attributes outside of init. When I got rid of setup and moved everything to MyApplication.init, and called super() on arcade.window, it all seemed to work ok.

Looking at the Window.init source, it doesn't look like it is doing much. Is there a reason to frown on sticking with init? Perhaps some pyglet thing I don't know about?

Fix TravisCI build

Right now TravisCI is failing, but not showing an error message. Find out why.

Make a proper website

As discussed yesterday, arcade could benefit from a "pretty face" like pygame used to have, as the start of trying to attract people and build a community. As mentioned, arcade wouldn't want some complicated homegrown CMS/forum system.

We can use this ticket to discuss possible ways to go. For example, we could make our website in Sphinx, with a decent theme, and push to github pages, with a different domain name in the CNAME file.

I have experience with different parts of this, so I can pitch in once it is decided.

Testing: Environment setup via pip

The library and documentation needs to tested more with Python 3.x and 2.x. Plus test platforms Linux, Mac, and Windows. Have several new people try and test out the library and give feedback on ease of use.

Remove auto-deploy from AppVeyor

Python.org is not reliable and uploads sometimes fail. Change AppVeyor to only test the build, and create artifacts that are ready for download. Have local script use an option for upload.

Support vertex buffers

Right now the OpenGL code is slow. Vertexes are sent each time. Support vertex buffers.

Remove auto-deploy from AppVeyor

Python.org is not reliable and uploads sometimes fail. Change AppVeyor to only test the build, and create artifacts that are ready for download. Have local script use an option for upload.

Problem installing on windows

after installing via pip, when i try running the examples on the website I get:
Traceback (most recent call last): File "test.py", line 17, in <module> import arcade File "D:\whome\workspace\Arcade\venv\lib\site-packages\arcade\__init__.py", line 9, in <module> from arcade.arcade_types import * File "D:\whome\workspace\Arcade\venv\lib\site-packages\arcade\arcade_types.py", line 4, in <module> from typing import Tuple ImportError: No module named 'typing' (venv)

Add z order support

Right now the sprites default to a opengl z-order (or z-coordinate really) of 0.5. Add support for a sprite property that allows the user to specify the z location instead of always using 0.5.

libavbin

Currently the Linux instructions don't work with Ubuntu 16.04. A few of the packages don't exist in 16.04. Once I get everything working I'll submit a PR for the installation page.

Alternatives for window = None

This ticket is a place for us to discuss alternatives.

In examples/asteroid_smasher.py we see a module with an arcade.window subclass for the "application" and a couple of other classes (sprites) which need information from the window instance. Since "window" doesn't exist until the class is instantiated, this leads to a NameError problem, currently solved by window = None at the top. This then drives PyCharm crazy, saying None has no attribute width, etc.

Elsewhere in the codebase, we throw "global" at the problem. Both of these are code smells which aren't just signs of brittle code, hard-to-test code, but bad practices which shouldn't be taught.

I'd like to discuss ways to eliminate window = None. This discussion has two related pain-points:

  • Modules. We shouldn't require arcade games to all exist in one module. But when split across modules, the global pattern won't work.
  • Framework. I think we want arcade to between the game writer and Pyglet. If so, we need a framework in arcade which might do some work before/during/after the game writer's event handlers, which right now are called directly by Pyglet.

Move the examples out of docs

I'd like to make the examples feel more like first class citizens in the project, in a top-level "games" directory. We'd then change the Sphinx literal include references to point up to the games.

This would allow the following way to run a game:

  • pip install arcade
  • python -m arcade.games.asteroids

...instead of having to get asteroids.py copied into a directory somewhere.

I can do a PR for this if it is approved.

License

If you want to release the code into the public domain, you might want go with a more formal statement, like the one found here. I'd be happy to make PR with the update.
On the subject of licenses, any particular reason you went for public domain over something like MIT? Or even something like LGPL?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.