Git Product home page Git Product logo

dndmapper's People

Contributors

irsmsoso avatar pogued avatar qawliet avatar

Stargazers

 avatar

Watchers

 avatar

dndmapper's Issues

Networking

Implement networking, including a server program and a differentiation in client between player and DM.

Implement Tokens

Add tokens, little circles that mark stuff. Try to implement in a way that supports the enlarging and shrinking of those tokens. (Probably create them as individual objects apposed to how tiles were implemented.

Token name improvements

Sometimes it's difficult to seen a token's name due to the color of the background. Maybe some sort of outline?

Better mouse tracking for painting.

Currently for painting the mouse is checked every frame. This is fine when framerate is in the 150+ range, but it means skipping over tiles that were meant to be painted at lower framerates. Implement some code that finds all the tiles between the mouse's last position and current position and paints the tiles that collide with that line.

General token networking issues.

Some of them include:

  • Names not centering over the network.
  • Names keeping the line after the name (originally used as a blinking cursor kind of thing).
  • General smoothness of the token is bad. Looks choppy.

Resource Management

Create a better system of resource management than just hardcoding each sprite directly into the constructor of the class that needs that resource. Have all the resources be gathered at the beginning. This makes it easy to terminate program and show errors given that the necessary file resources aren't present.

Improvents to Map saving.

Make improvements to the map saving functionality so that previous maps can easily be used in newer versions even if new features are added. Shouldn't be took difficult with protobufs.

Network improvements

Find better ways of not only sending and receiving data efficiently, but also of predicting movement and actions for tokens to provide a more smooth experience.

General code cleanup.

This project is in desperate need of general code cleanup and reorganization. Putting actions into specific and targeted functions and making a better way for information to travel between objects.

Basic UI

Implement a basic UI for the tools needed to operate the program.

Color History

Have some display of the most popular colors you have used in the past, for easy re-access.

Pixel Perfect Painting

Implement a "Pixel Perfect" mode for the painting tool that would act similar to how it does in Asesprite.

Multithreaded map loading and saving.

Make a queue of network messages that will stall as map loading and saving is happening in another thread. Currently, map loading causes a stutter in the program while it occurs. I anticipate this will only grow worse as the map expands.

Better Token Visibility

Make it so that tokens that are picked up later in time are displayed above other tokens. Dragging a token onto another token shouldn't make it go behind that token.

Connectivity Animation Syncing

Make it so that the animation for the next state (connected/disconnected) plays after the current one by extending the animated sprite class.

Menus

Make different stacked layers of menus so that a main menu can be added where you can connect to different games.

Better Color Pick

Show a little square or something when holding down the mouse as you're color picking, letting the user better see what color they are selecting.

Camera wrongly shifts

When receiving a map update and rebuilding a map of another size, the canvas shifts on receiving size even though this isn't what we want. Probably need to shift camera offset when receiving based on the difference in sizes.

Animated Sprites

Make some cool animations to make interacting with menus and such more immersive.

Implement a Color Selection

Current Idea is to implement a color wheel popup that can be used as a catchall for tiles, tokens, walls, and potentially some of the other stuff yet to be added.

Locking Colors

Be able to specify a set of colors that you don't want to change, to make layering easier.

Sizing issues

Currently only really works at a certain resolution.

Fix up event function.

Make the interpretEvent function more readable, possibly by using switch statements and adding comments.

Network disconnect improvements

Currently managing a disconnection from the server is not very good. Losing connection in game and going back to main menu doesn't cause reconnection to happen and acts as though everything is OK.

Reorganize

Reorganize the project, adding new classes to move program away from main cpp file. Also add documentation to make navigation easier.

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.