Git Product home page Git Product logo

mirthless's People

Contributors

ajventer avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

tockards

mirthless's Issues

NPC AI

NPCs need to be able to:

  • Say random sentences in the message box
  • Say character specific sentences in the messagebox
  • Fight well
    • This means attacking if NPC disposition is aggressive
    • It means choosing the appropriate action to take each turn. This includes using healing potions or spells if available, or using the best attack/spell available against the player.

Quest Editor

We need an easy editor for creating quests with.

It would be good to figure out exactly how to represent quests in data...

Cancel buttons for SelectorDialogs

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.

Add image rotate function to map editor.

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.

Remove glyph library

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

  • pros: easy for me
  • cons: hard for users

Replace with my own messagebox widget

  • pros: hard for me
  • cons: easy for users.

sigh

Subclass character.py for NPCs and player

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)

Render objects characters on tiles in maps

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.

MouseOver labels

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.

Add a debug input

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.

Player sprites

At least one per class and gender.
Preferably animated - at least for walking.

This can be done closer to the end.

Player character generator

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.

Game container class

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.

Fast Travel Feature

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.

Map Selector tool

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.

Windows packaging

The game is already easy to package for debian based Linux systems.

An easy-to-install package for windows is needed. Volunteers ?

Multiple sprites can try to handle the same event

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.

Support for roguelike procedural maps

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.

Messages delayed

Many messages do not show on screen when they are first sent and only appear when the next message scrolls them up.

Scalable NPCs

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.

MapView indestructable ?

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.

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.