ajventer / mirthless Goto Github PK
View Code? Open in Web Editor NEWA single player RPG in which you are the evil bad guy.
License: MIT License
A single player RPG in which you are the evil bad guy.
License: MIT License
In EZDM players and NPCs were both just characters and different behavior was largely handled by the DM. A few checks here and there dealt with some specific differences only.
For mirthless character.py should be subclassed creating a player class and an NPC class which can each support their specific unique needs (NPCs need automated behavior code for combat, conversation data , loot tables etc. player characters need XP and manual skill point distribution)
The mapview should render the icons for objects and characters on tiles when they are rendered and create sprites for them which can act as a kick-off point for further behavioral code.
Order of rendering:
background
items
npcs
(This way if something obscures something else the more urgent elements are most visible).
Before this can be implemented the item editor and NPC editor needs to be finished. The selection dialog will be almost impossible to implement without some pre-existing data it can be tested against.
A lot of GUI objects in the game would benefit from helpful labels on mouse-over.
The ButtonSprite class is probably the number one candidate.
Many messages do not show on screen when they are first sent and only appear when the next message scrolls them up.
Embed a textinput in MessageBox, disabled by default, which can be enabled by a hotkey (~ is the norm) and allow for direct entry of python commands into the game/editor engines. Such a debug/cheat console is common in most games and would allow for great power.
At least one per class and gender.
Preferably animated - at least for walking.
This can be done closer to the end.
We need a class to represent the game being played, which will be populated by savegame data.
The class should instantiate a player object.
If it's a newly started game it should run the player character generator and autostart the main quest.
Savegames should be seperated into slots, saved in a homedir data directory. Save games should copy all files that are accessed. Homedir data should take precedence over game data.
This used to work in the past. Something broke it. Needs to be fixed.
I've yet to find a viable way to clear the mapview or anything it draws.
Even removing sprites it produces below itself from the groups and killing them does not clear them from the screen. This will need to be fixed in the editor.
Rather than trying to disable events when something else is in the way, eventStack should compare the ._layer attribute of all sprites that want to claim a specific event and only send it to the highest value.
A lot of tiles would fit some maps even better if they were rotated. Pygame has built in support for this, the map editor needs a button that can rotate tile backgrounds in increments of 90 degrees and store the amount of rotation in the map data so that backgrounds can be rotated on display as needed.
Just like tiles on the map can be rotated, it should be possible to rotate tiles in animation.
The TileSelector and MapSelector dialogs (and similar ones yet to be written) need to have cancel buttons added so users who change their minds about loading something can close the dialog without actually changing anything.
This was previously listed as "low priority". I did a quick test and found that a viable procedural maps algorythm was ridiculously easy to write. It would also make a great way to reduce the labour involved in making a big game. You take a fixed map as a start, add a traversal link to a procedural map (with rules to fit the theme), maybe add a few more of those and then another fixed map where the the quest concludes and it's a much bigger and more fun quest than the two fixed maps alone for almost no extra work. So I am shifting this to higher priority and must be done for 1.0.
In order to make maplinks easy a map selector tool is needed, this should use small renders of the maps to make them even easier to select.
When a player starts a new character we need a simple way to create that character with a simple wizard-like interface. Baldur's gate's approach is about the maximum complexity level we can have.
NPCs need to be able to:
We need an easy editor for creating quests with.
It would be good to figure out exactly how to represent quests in data...
I want the game to follow the oblivion model where at any given time the monsters you encounter will always be an on-par challenge.
This means that NPCs should all default to the same level as the player (or maybe one or two higher). This means they should be able to automatically level up, including upgrading of skills and loot.
related to missing rules for wizard in default_sprites.yaml
The game is already easy to package for debian based Linux systems.
An easy-to-install package for windows is needed. Volunteers ?
The Dawnhack tileset which is included with Mirthless contains a sprite for a character call Platino.
It is an attribution requirement if using Dawnhack to include Platino somewhere in the game, preferably as an easter egg.
The NPC and Item editor should support creating animated sprites.
This feature may be left for post-1.0.
It should be possible for the game class to keep a list of maps the player has visited and allow for fast travel to them. Fast travel should always go to the entry link coordinates the player arrived by.
The glyph library for pygame is GPLv3 licensed which is not compatible with MIT.
Options:
Make it a dependency and include have a seperate package for it
Replace with my own messagebox widget
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.