jiffyrob / treds-adventure-v2 Goto Github PK
View Code? Open in Web Editor NEWRefactoring (and completion?) of a top-down game
Home Page: https://jiffyrob.github.io/Treds-Adventure-v2/
License: MIT License
Refactoring (and completion?) of a top-down game
Home Page: https://jiffyrob.github.io/Treds-Adventure-v2/
License: MIT License
I'll put which assets we need here. To start with:
We need some interior tiles:
We need some exterior tiles:
We need some buildings:
We need some characters:
We need some monsters:
We need some items:
Just thinking out loud on how to implement equipped items. I think the way to do it is to have a Tool
class. A Tool
would have:
Player
class reads and rendersSome Tool
subclasses would be:
Sword
(All variants that work normally would use this class)Bow
(Same deal as the sword)Wand
+ Subclasses (For all magical wands found throughout the journey)Key
(Does not have to be a literal key. All items that act like keys would use this class as well)Pickaxe
Just some planning stuff for items.
Here are the current types of items planned to be implemented:
Health
items affect player health in some way. These also include magic points, etc.Tool
items change what the player currently has equipped.Event
items are items that do nothing. NPCs or other scripted entities will give, take, or trade these to set off events and progress the story.If anyone is playing the web version (or desktop I guess) and finds a bug in the game they can put it here. Currently:
BugNet
object in the tools
libraryglobals.player
not being reset correctly? Probably best to keep the Player object constant at runtime and not make a new one on new map load.As with Assets (Issue #1), I'll do the same with music.
We need:
This is an issue to debate the necessary-ness of implementing OpenGL GPU shaders in the game. This would allow for fast processing of effects to the screen and other surfaces. Some examples of what we could do would be:
bush.gl
. This would have utilities for creating shaders and applying them to surfaces.I'm kind of leaning toward yes, because bush
was meant to be reusable, and not just specific to this game. If we decide not to use it now, we could still use it later.
At any rate, we should probably do this last, as most of the things listed above are either optimizations of current features or fancy eye-candy that leaves game play unchanged.
Pygame has a special kind of sprite called "dirty sprites" that when used with the "layered dirty" group allow some very handy features:
The first portion may be useful for things like skies and shadows, and the second one would be good for performance. OpenGL
displays cannot be update like this, but we would be updating to a seperate surface and converting anyway, in which case it would still be better because the screen surface only receives limited blits.
Downsides I can think of include:
OpenGL
too though...Sky
class is set to later remap colors directly instead of just darkening the surface. Cusom blendmodes won't be great for that.Relevant docs:
https://pyga.me/docs/ref/display.html#pygame.display.update
https://pyga.me/docs/ref/sprite.html#pygame.sprite.DirtySprite
https://pyga.me/docs/ref/sprite.html#pygame.sprite.LayeredDirty
This one gets its own issue cuz that's how important it is.
We need:
Figured it would be good to add a list of features to add, in no particular order:
pygame.DirtySprite
optimizationThis issue was created for thoughts on the question of whether to make a web build using pygbag.
Pros:
Cons:
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.