Giter VIP home page Giter VIP logo

pyga.me's People

Contributors

matiiss avatar mega-jc avatar narilee2006 avatar notenlish avatar novialriptide avatar sss-says-snek avatar starbuck5 avatar

Stargazers

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

Watchers

 avatar  avatar

pyga.me's Issues

Migrating to Hugo

Migrating to Hugo

Hugo isn't a python-based static website generator, but it's currently used by

Before I begin, I would like to clarify that the initial reason for choosing React + NextJS was to get a website up and running as quickly as possible within 4 days without learning any new website frameworks.

The reason for this switch is that we are currently using NextJS + React, which are heavily based on JavaScript/TypeScript and since most of our contributors are low-level programmers heavily involved with C, learning a new language like JavaScript could be frustrating. Another thing to note is that we do not use any dependencies related to React, so there should be no reason to even use it in the first place.

Pros of Switching to Hugo

  • No TypeScript/Javascript nonsense
  • Simple technology stack
  • Very easy to setup blog posts for releases and community announcements

Cons of Switching to Hugo

  • Ability to add future react dependencies are gone (Headless UI, Material UI, React Bootstrap)
  • Ability to add community project showcases are gone

I would like @Mega-JC & @Starbuck5's opinions on this.

New visuals for Pygame Powered

This was cooked up in a few minutes and planned as a temporary solution. The more permanent solution will be done by me.

image

Six shooter image disappears with zoom.

Hello! I noticed that the Six Shooter image at the bottom of the page had disappeared. After some poking around, I discovered by setting my zoom level to 90% or below, the image appeared. 100% or above, it was as if it didn't exist. In case, you were wondering, I set my zoom level through the Cmnd/Ctrl and + keys. This issue is probably occurring because my monitor size is to small. The fix is probably to set the image's size with dynamic units (vw, vh).

Dedicated versioning/changelist section

I think we should have a section dedicated to listing all the changes across pygame-ce versions. It could possibly list all the changes from the latest version at the top and further down show older versions.

The Way Ahead: Setting The Scope and Roadmap for This Project

This repository was created to quickly get a website up and running for the pygame-ce fork of the upstream pygame project and its documentation, both which can now be accessed at https://pyga.me and https://pyga.me/docs .

This effort is really appreciated, not just by me, but by probably all the other pygame-ce developers and users of the site.

However I later noticed that the scope of the website was left pretty open-ended, with the overall goal being the creation of a dynamic site for the entire pygame community, involving things like a system for user projects.

This sounds cool, but from my perspective, taking the website in that direction doesn't seem like a good idea. Despite the JS-only tech stack, there seems to be a lack of planning for how to reliably expand the site to fulfil those promises, as well as a lack of communication with the org maintainers on how to manage the project.

Instead of expanding the website this way, it would be better to keep it as a surface for showcasing pygame-ce as a library and host its documentation instead, much like it's currently doing, and move plans for dynamic community content (e.g user projects) to another project entirely.

This has multiple benefits:

  1. Simple, zero-cost static site hosting for pygame-ce related matters via GitHub Pages.
    This frees up developers from worrying too much about web development matters, as they can instead focus on putting up up-to-date information about pygame-ce online.

  2. Separation Of Concerns.
    Community endeavours are best managed separately from the development side of things, as they can be much larger in scope and more demanding. This also applies to websites. However, this doesn't mean that both must be completely isolated, as links can be used to seamlessly link them together.

By separating the larger aspects of a dynamic community website from the smaller aspects of a development/documentation website, we on the community management side can better define the goals of the site, the technology required, the way development should be managed, the external services required to run the site, the domain name to use, and how to fund the endeavour.

Before the forking of upstream pygame and pygame-ce, plans for a community website were raised multiple times in the Pygame Community Discord server from both server staff and public members, and ever since registration was disabled on https://www.pygame.org and the site maintainer started taking it down to virtue signal political matters, it's become pretty clear that a new website would benefit the pygame community at large. Let us give this endeavour the attention and organisation it needs to be successful for a long time.

Docs showing incorrect version

As of time of writing the most recent release of pygame-ce is 2.2.1. Currently the title of the docs says it is the docs for 2.3.0. Sorry for the terrible screenshot, but it shows the problem well enough.
image

pygame.mixer.Channel.queue does not support pygame.mixer.Sound derivative class instances

If you attempt using pygame.mixer.Channel.queue with a Sound derived class, pygame will raise an error as if you didn't pass a Sound-based class at all. Here is the class I use, which netted me the error:

# _SoundBase is an alias for pygame.mixer.Sound
class Sound(_SoundBase):
    def __init__(self, file: str|ndarray|_SoundBase):
        if isinstance(file,str):
            super().__init__(resource_path(file)) # Keep the source directory in case it's needed, and use an absolute path instead of a relative one
            self.dir = file
        elif isinstance(file, _SoundBase):
            super().__init__(file) # Clone the original Sound object
        else:
            super().__init__(array=file)

    volume = property(
        _SoundBase.get_volume, _SoundBase.set_volume, doc="The current sound's volume."
    ) # Access the volume as a property for convenience.

    num_channels = property(_SoundBase.get_num_channels)

    # Convenience conversion methods
    def __bytes__(self):
        return self.get_raw()

    def __len__(self):
        return self.get_length()

    def __copy__(self):
        return self.__class__(self.dir)

    def play(self, loops: int = 0, maxtime: int = 0, fade_ms: int = 0):
        if is_played(self): # is_played is a function checking if a sound is played by at least one channel.
            super().stop() # Stop the previous playback to avoid sound overlapping
        return super().play(loops, maxtime, fade_ms)

    copy = __copy__
    __deepcopy__ = __copy__

And here is the error I got (pygame-ce 2.3.2 (SDL 2.26.5, Python 3.12.0)):

Traceback (most recent call last):
  File "C:\Users\XXXXXXX\Documents\Python\Oracle-Project\testEngine.py", line 1733, in <module>
    get_channel(wooshpart1).queue(wooshpart2) # wooshpart1 and wooshpart2 are both instances of Sound (the derived class)
TypeError: The argument must be an instance of Sound

Alternative website hosting

The official website representing Pygame: Community Edition utilizing NextJS, ReactJS, and TypeScript. We are currently using GitHub Pages to deploy our website, which might change in the future if we decide to add a database to store user projects

This is an issue for discussing alternative hosts for deploying pyga.me website.

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.