diddileija / diddi-and-the-bugs Goto Github PK
View Code? Open in Web Editor NEWDiddi and the Bugs, my GameOff 2021 game.
Home Page: https://diddileija.itch.io/diddi-and-the-bugs
License: MIT License
Diddi and the Bugs, my GameOff 2021 game.
Home Page: https://diddileija.itch.io/diddi-and-the-bugs
License: MIT License
This release gives official web support, that I've been waiting for since Pyxel enabled that feat ๐ 1
You should see everything updated soon.
I already mentioned web support on itch.io (my mistake), but now it's "officially" supported. โฉ
Release 3.0.1 made web support possible just a few weeks ago. Now, this release provides a downloadable HTML to play in your browser, offline!
html_dist.zip
!kitao.github.io/pyxel/wasm/launcher
...Did anybody notice this is our 100th PR? ๐คฏ โฉ
This is the 2.0.0-specific version of #14. Please share your highest scores with the latest version of Diddi and the Bugs (no matter if it's the highest ever, just share your greatest job). You can share a commentary about the strategy you used or something like that.
Each score will be stored at our wiki, right here.
Is your feature request related to a problem? Please describe.
Python 3.12 has been a stable version for a while, but we haven't considered this version in our codebase (to be more precise, the GHA setup).
Describe the solution you'd like
Include Python version 3.12
right here:
I would prefer this to be a PR before merging into the mainstream, so we can fix any 3.12 syntax issues on the way.
Describe alternatives you've considered
I don't think we should consider having this project as a Python<3.12
game.
Additional context
Since the fix to this issue is quite simple, I've marked this issue as a good first issue
, in case a newcomer wants to give this issue a shot!
Also, I've added the issue to the 4.0.0 milestone.
This minor release might be the last 2.x release 1. It only made a few dependency updates, and added some community stuff.
As you can see, this release didn't change the core behavior. The scores from this release will also be collected at #44, just like version 2.0.0.
This is mostly because I have plans to refactor part of the game, and I'll do it on a 3.0 release. Still unconfirmed, but yet possible! โฉ
Is your feature request related to a problem? Please describe.
At our Discord server 1, we were discussing about having an introduction menu, instead of starting the game directly. It would be nice because starting inmediately is... a bit weird ๐
Describe the solution you'd like
A title menu for the 3.x series. Since we want to merge this in a 3.x version, this will fit with #52, btw.
Describe alternatives you've considered
Keeping as-is.
Additional context
N/A
By now, we can only move the spacecraft using the arrow keys. However, the WASD
keys are very common in games, too. Actually, some games only provide support for those keys. We should give support for WASD
keys (in our case, W
-> Arrow Up, S
-> Down)
I recently opened a Discord server, to create a small "community" around Diddi And The Bugs. I expect this server to feed many future projects, so you can talk about this game at the #diddi-and-the-bugs
channel. You can share tips, scores, and some related stuff.
If you want to join, click here: https://discord.gg/DfrHxT9ENy 1
The old link (https://discord.gg/5XDWbyd5
) is now broken, so we made a new one :) โฉ
This is the Diddi and the Bugs 2.0.0 release tracker. We've made a few cool, new features (see them below).
nox -s create-packages
(#39 and related commits)Since we have changed part of the game's main functionality, this new release will make 1.x versions obsolete (and no longer supported), and we'll collect new scores and records from 2.x versions (something like #14, but using 2.x).
Currently, this project has the following contributors:
However, we hope the 2.0.0 release will atract new folks! โค๏ธ
Probably, this is the final release on the 3.x series (as we want to push new breaking changes soon)!
This is a migration from https://itch.io/jam/game-off-2021/topic/1833717/challenge-try-my-game-then-tell-me-your-points, where I challenged the users to play this game, and post their highest score.
Well... the GameOff jam is over. But I still want to keep like a "rally" of scores, that now lives in https://github.com/DiddiLeija/diddi-and-the-bugs/wiki/Scores-history.
So, if you want your name to be added, or want to modify your current score, tell us here ๐!
Since we intend to make breaking changes after the GameOff jam, should we cut something like a 1.0
release before, and then change stuff with new releases?
Is your feature request related to a problem? Please describe.
Though resource modifications have always been "implicitly" supported 1, it's never been a documented/encouraged feature. But it turns out that such modifications could customize each user's experience in a unique way.
Describe the solution you'd like
Add-on support. I mean, a way to support a secondary resource file that "superseeds" the main one. Of course, this will need a major refactor in our API to accept this "external source", but it's still possible.
A few other related ideas (that may come once we get the above things done):
Describe alternatives you've considered
Just document the possibility of changing the main resource.pyxres
file 1?
Additional context
Feel free to provide feedback or your thoughts on this feature!
And thanks to @HarshNarayanJha for providing the initial idea (via our Discord server), that is highly appreciated!
This will be the last 1.x version (if we want to work on #29).
There are a lot of new stuff coming in this release:
WASD
keys for doing the same than the arrow keys (#28)A new contributor arrived with this release:
The 3.0.0 release is here! New major changes are here, the deps have been highly updated, and more further plans will come.
I'll follow the same process I've used in previous releases, just give me some time :)
As I commented on Discord, now that Diddi and The Bugs 3.0.0 is out, it's a great moment to prepare web support for in-browser playing! This issue will track that process.
Describe us the bug.
While verifying everything was ok, I ran nox -s package
(our command for creating the several dists we publish) and got the following crash:
C:\Users\Diego Ramirez\diddi-and-the-bugs>nox -s package
nox > Running session package
nox > Creating virtual environment (virtualenv) using python.exe in .nox\package
nox > python -m pip install -r requirements.txt
nox > Looking for the destination path...
The destination directory ('./dist') already exists. Do you want to remove it? (y/n) y
nox > python -c 'import os, shutil; shutil.rmtree('"'"'./dist'"'"'); os.mkdir('"'"'./dist'"'"')'
nox > Generating the source code distribution...
nox > python -c 'import os, shutil; shutil.copy('"'"'main.py'"'"', '"'"'./dist/main.py'"'"'); shutil.copy('"'"'resource.pyxres'"'"', '"'"'./dist/resource.pyxres'"'"')'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\Diego Ramirez\AppData\Local\Programs\Python\Python39\lib\shutil.py", line 418, in copy
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "C:\Users\Diego Ramirez\AppData\Local\Programs\Python\Python39\lib\shutil.py", line 264, in copyfile
with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst:
FileNotFoundError: [Errno 2] No such file or directory: 'resource.pyxres'
nox > Command python -c 'import os, shutil; shutil.copy('"'"'main.py'"'"', '"'"'./dist/main.py'"'"'); shutil.copy('"'"'resource.pyxres'"'"', '"'"'./dist/resource.pyxres'"'"')' failed with exit code 1
nox > Session package failed.
The main reason of the failure seems to be FileNotFoundError: [Errno 2] No such file or directory: 'resource.pyxres'
.
After investigating, I found this is happening after #137 (and related tickets #138 and #141), when we changed how we name the resource files. We didn't update these naming rules in our noxfile, and now it's impossible to run the session.
How to reproduce
On a local clone (any branch after f4a74d5), run nox -s package
.
Distribution
N/A
Environment
main
I'm looking for ideas and proposals of hidden features to implement here. Something that is not mentioned in the guide, but the users can find and use!
All ideas are welcome.
Hi visitors!
This project was made for the GameOff 2021 event. However, the end of that jam (in 2 days) won't mean the death of this project! ๐ Those who rated this game and commented here and here gave useful feedback. Thanks in advance to those who took the risk to try this game! โค๏ธ
I found some important issues/improvements (starting with the creepy music! ๐) basing on those comments. Also, since I'm the owner and played lots of times, I noticed more improvements by myself.
To keep everything in the same place, I made a project board to track the goals we want to cover after the jam ends: https://github.com/DiddiLeija/diddi-and-the-bugs/projects/1
Feel free to comment here if you want more improvements soon ๐
I think I want to resurrect this idea:
Or, player could use a special key combo. which can only be used once in a single play (like Z-moves, if you know pokemon...), and it will cause all the enemies/trashes on the screen to be killed, yielding very large number of points at once. This could be used when the player sees a large number of trashes on-screen...
Sounds like something possible!
Originally posted by @DiddiLeija in #13 (comment)
Is your feature request related to a problem? Please describe.
Currently, the HTML version of the game can be opened almost everywhere. However, mobile devices cannot run the game without a keyboard connected. Quoting from the Q&A entry in our wiki, talking about the HTML dist:
Note: For use in Android devices, by now, you must have a keyboard connected (since gameplay requires pressing keys).
Describe the solution you'd like
@HarshNarayanJha and I were discussing a possible fix to this problem: Hand tracking (using some sort of machine learning?).
Since our game is mainly Python, we could combine Pyxel with another tool (we've proposed MediaPipe) to recognize a user's hand in the camera, interpretate commands and replace keys. The idea is based in https://nuitducode.github.io/air-pyxel-demo/ (from a French project I discovered).
There's still a lot of things to discuss and clarify, that's why I opened this GitHub ticket ;)
Describe alternatives you've considered
Keep as is, which would keep the issue.
Adding gamepad keys? See #128.
Additional context
N/A
Small reminder to follow-up #73.
Is your feature request related to a problem? Please describe.
Currently, our codebase is linted by a bunch of known tools: black
, isort
, and flake8
. And they're fine, but sometimes a little slow.
Describe the solution you'd like
Ruff is a somewhat new linting/formatting tool. I haven't tried it yet on a GitHub codebase, but I've seen how other (way bigger) projects are using it, like Nox, and how their CI runtimes are way faster since then.
It turns out that Ruff covers what our current tools do (and even more), and does it much faster and clearly. I would like to adopt Ruff and eventually drop our current tools (which will be covered by Ruff itself).
Procedure
First, we have to add ruff
1 to the test-requirements.txt
requirements file.
Then, in our noxfile:
Lines 16 to 30 in 234a214
We'll replace all the session.run(...)
lines with these few instructions:
format
session: session.run("ruff", "check", "--fix", *files)
lint
session: session.run("ruff", "check", *files)
And that should be enough. There's a chance that some Ruff checks will fail, if so you could run ruff check --fix .
locally and then upload the fixed files ;)
Describe alternatives you've considered
Keep as-is, which is also a decent choice.
Additional context
I've marked this as a good first issue since I would like a newcomer to take this issue :)
Above I've left a few instructions in case somebody wants to push this forward (see the Procedure section)!
At the requirements file, I would prefer to pin the latest version of Ruff (which will be safely verified and updated by @dependabot everyday), instead of mindlessly installing the latest one on each run. For example, the latest Ruff version (as of October 3th, 2023) is 0.0.292
, so we should add ruff==0.0.292
to the requirements file, instead of a plain ruff
๐ โฉ
Is your feature request related to a problem? Please describe.
This proposal is another alternative to the problem described in #124: the need of a higher accessibility, especially for mobile devices using our HTML dist.
Describe the solution you'd like
Enabling gamepad controls, at least for the HTML distribution, using a few tools provided by Pyxel.
Describe alternatives you've considered
My main solution to the accessibility issue is #124. But it would be great (and I'd say better) if we can implement both alternatives.
Additional context
cc @HarshNarayanJha, who's already made some interesting advances in #124.
Yup, I know, I'm a bit late for this... But if you have a nice score, I'll be updating the related wiki, so please share your scores either here or at my Discord server!
Will be waiting for your scores!
We can also make the game more interactive by giving a notification to the player from Diddi (who modified the spaceship, as in your story), that the player has unlocked a secret function of the ship....
Originally posted by @HarshNarayanJha in #13 (comment)
If we want to do this, it will be after cutting a release to save our latest modifications.
Is your feature request related to a problem? Please describe.
Both the GitHub CI and users depend on Nox for convenience stuff. We use it regularly for linting, formatting, and building dists. Though the session names aren't that long, it would be great to reduce them a bit more.
Describe the solution you'd like
A while back, I proposed the following name change in Discord:
check-quality
-> lint
keep-codebase-clean
-> format
create-packages
-> package
Doing this should be quite simple, it's just about changing the function names in noxfile.py
. For example, here's the keep-codebase-clean
name:
Lines 16 to 17 in 4e0618b
Describe alternatives you've considered
Keep as is. Again, it's not a big deal, but an improvement would be nice too ;)
Additional context
I've tagged this issue as a good first issue. I would like a contribution from a new folk, and I think this issue is a great start (even for a one-shot contribution). Of course, if no one takes this, I'll do it.
This is a bug I found while confirming #18. When you loose, pause or win, it's impossible to use the R
key to restart. I don't remember this happened with old Pyxel releases, so maybe it's an upstream thing?
The 1.5 (and also 1.5.1) release of Pyxel (our game engine) have been released a fe days ago. However, this new version included a breaking change on pyxel.init
, that made our game useless.
Pyxel 1.5 changed this:
pyxel.init(100, 100, caption="Title of the game")
to this:
pyxel.init(100, 100, title="Title of the game")
So we should fix that.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.