Kaetram / Kaetram-Open

Kaetram is an open-source 2D HTML5 MMORPG. It is an extended version of BrowserQuest (BQ).
https://kaetram.com
Mozilla Public License 2.0
537 stars 113 forks source link

Docs: Fill the project roadmap #17

Closed frycz closed 4 years ago

frycz commented 4 years ago

Motivation

We need a consistent plan for future actions which will lead us to the goal of the project (the goal still needs to be defined). That will help us prioritize work.

Possible implementation

The notes can be written down in the main readme file or in a separate dedicated page. Once the steps are defined, dedicated issues will be created in the repository

frycz commented 4 years ago

Before we create a roadmap I would like to discuss a few things. Let's keep the discussion here, in the issue comments for the record. Please, read my thoughts and share your opinion if all this makes sense.

The very first point is the project goal. The documentation says:

Currently Kaetram is a game, latter on we may extract some reusable parts of the software to create an actual MMORPG game engine letting users define their NPCs, items, monsters and add predefined features like player level, experience, trading etc.

That would be super awesome!

Definitely agree, it is an open-source project, we all have fun and learn while developing here

The goal

What I would suggest as the main goal is to provide a free MMORPG game being an extended version of Browser Quest

Kind of obvious :-D But still, we should not forget where we are going with all this stuff :-)

Once we have the game running with returning players, then extracting a game engine would be a natural step. I belive that during the game development we will come with a lot of ideas for separate, generic software modules which will be published in npm registry.

Here is a list of todo items from the documentation, which looks promising imo:

Gameplay

Code-base Development

Miscellaneous

Proposal of actions

As the first step I suggest giving a feeling to the players that the game is finished. That will make the community of players grow. To achieve this we don't need all super features like trading, minigames, friends list, etc at the moment. They may be implemented later.

Once I play Kaetram now, I feel like a lot of things are missng: doors, maps, it is difficult to find challenging monsters after achieving 40. level.

I would finish the map so all doors work and let players enjoy map exploration, collecting items and leveling up. We are very close to it, some tiny details just need to be polished. I am sure we will receive a lot of feedback from the players what features to implement next if they have fun playing a nice and simple RPG.

Ok guys, what do you think? Would that work? Maybe you have different vision, let's discuss :-) If we come to a common solution here then I will continue with the roadmap plan like more game features, development experience, continuous integration, extracting game engine, game advertisement etc

Veradictus commented 4 years ago

I totally agree, the map is my first priority after we are done adjusting the server/client to TypeScript!

brion-fuller commented 4 years ago

For Code-base Development, I can see improvements for loading the game Improvements on size of the package Improvements on code sharing now server/client will be using the same syntax

ddq1 commented 4 years ago

Hello mates, just sharing my thoughts: Don't you need a 'product owner' to manage the game from the story and features perspective ? then you could manage development with a agile like approach.

frycz commented 4 years ago

Thanks all you guys for the comments so far, I really appreciate the feedback!

@Veradictus awesome, I will write down what is in my opinion crucial to make the game "complete", for now it can be working all doors + adding the missing map - Lakesworld, maybe some more monsters, we will see. I encourage everybody to share their vision of our first "minimum viable product"

@brion-fuller yeah, developer experience, code maintenance and performance tasks may be processed continuously, I will include it in the list too.

@ddq1 thank you for joining the discussion. Fresh ideas, thoughts and advice are more than welcome. As the project keeps growing, certainly one day we will need a person focused 100% on features design, tasks and release management. Currently, we are working on renovating the codebase to newer technologies (typescript), creating processes and building a consistent plan for the future. I see you have already reported some issues, your involvement is appreciated! We are open for new contributors who can be discussion participants, issue reporters, software developers, graphics designers, game players, project managers? :-)

frycz commented 4 years ago

@ddq1 here we have a tasks board. A kind of kanban board for tracking and presenting the progress to the community https://github.com/Kaetram/Kaetram-Open/projects/1

frycz commented 4 years ago

Note: At any point of the development we need to have at least one stable version of the application which will be deployed to the production environment.

I suggest git-flow as our branching strategy: https://nvie.com/posts/a-successful-git-branching-model/

Master will be always stable, develop will include current development work. Ideally, developers' work would be implemented on feature branches and then merged to develop via accepted RPs. Once a release is ready develop branch is merged to master.

The Roadmap Draft

Our roadmap is an outline of the work we plan to accomplish. The aim of it is to help developers prioritize tasks and share intentions with the community.

As discussed earlier, delivering MVP is our priority. I propose three phases:

Pre-MVP Phase

Finishing MVP:

MVP Phase

Gameplay cleanup:

Gameplay improvements:

Documentation:

Codebase:

Other:

Features Phase

The order of tasks will depend on users' feedback and observations.

Continuation of tasks from previous phases:

Features:

Functional improvements

Non-functional improvements

Architecture:

Performance:

Future phases

@Veradictus, for some of the tasks we need your input on what exactly needs to be done and what is the effort. I marked these tasks with (how much effort is needed here?)

Summary: Is anything missing? Please share your thoughts and suggestions for changes to the plan. Thanks!

Veradictus commented 4 years ago

Awesome seeing it structured like this. As for the things marked with (how much effort is needed here?) the primary thing I will personally have to focus on is a storyline. Obviously I will be consulting the development group regarding the storyline and about ideas. However, I believe this is something I will have to put my imagination towards having it concisely written down in a structured manner. - Effort: Medium/High

As for the other marked items, the mob attributes will be polished and adapted in accordance to the levelling structure. In other words, we will have to test the progression of the player throughout the game, and adapt those mobs accordingly. We will want certain areas to be quite challenging, but not impossible to navigate at low levels. Effort: Medium (just time consuming)

NPC Talking Spacebar - This is not as crucial to the development, and can be pushed further into the 'Features Phase'. Effort: Low

Improvements and optimizations to lighting system - What I meant by this is perhaps to look into writing our own lighting system directly implemented into the game. The ideal lighting system I have in mind is one where the light can collide with walls (colliding tiles) and NPCs/Mobs/Players/etc. The current lighting system is very static, if we can implement the aforementioned features, it would give the game a more lively feel. Effort: High

frycz commented 4 years ago

Thanks @Veradictus for the estimates. It helps a lot. I will update the roadmap draft according to what you have shared.

frycz commented 4 years ago

The Roadmap

Our roadmap is an outline of the work we plan to accomplish. The aim of it is to help developers prioritize tasks and share intentions with the community.

Pre-MVP Phase

Finishing MVP:

MVP Phase

Gameplay cleanup:

Gameplay improvements:

Documentation:

Codebase:

Other:

Features Phase

The order of tasks will depend on users' feedback and observations.

Continuation of tasks from previous phases:

Features:

Functional improvements

Non-functional improvements

Performance:

Future phases

frycz commented 4 years ago

Closing as done.