Comments (8)
I've started working on this
from jadventure.
@paddatrapper on which code base are you doing this, as the hole text sending stuff, is quite different in my branch. Maybe easier to start from that branch, in case I clean up the things which can now be removed. and ask for an pull-request. See also #75
My idea is to completely remove the Messenger and QueueProvider as they are not necessary
See verhagen#6
from jadventure.
@verhagen good point... Think I'm going hang on with doing anymore until your stuff is sorted. That way I won't have to redo anything. I'll check it out. Should really be studying for my exams at the moment, so I can wait
from jadventure.
@verhagen what do you mean by the Messenger/QueueProvider is unnecessary? I think that it's not harder to work with than System.out.println() and they provide a very powerful foundation for the future (in terms of client/server functionality)
from jadventure.
@projectdelphai For now they add unnecessary complexity. If in the future there is need for some client-server stuff, it's best to think of that as a hole system (not only the message part). You will at least need commands sent back. So therefor I like to apply Clean Code rules. Saying make it as simple possible, where it just works. This is also the best point starting point for when client/server would be implemented. Not that some idea's are forced in some direction, because some things have it already implemented in that way. And who says there will be any client-server stuff in the coming year? If it's not happening soon, then everyone reading the code, need the see and understand this future idea, for C-S stuff. So for me there are to many points why it should (at least at this moment) not be in, That I would prefer to remove it. Keeping the code as simple as possible.
First lets implement more of the real basic ideas, of the game engine, like the (un-)equip armour, calculate a battle/fight etc etc. And do that with nice unit tests.
These ideas are not my own, they can be found in The Clean Coder only trying to apply them.
Or in one of the earlier prints of The Clean Coder - 2011: Clean Code - 2008 and Code Complete - 2004.
from jadventure.
In terms of simplicity though, it isn't that complex
All you have to do instead of System.out.println() is QueueProvider.offer(). New contributors never venture into the Queue/Messenger classes/implementations other than to import QueueProvider and offer the text instead of println it. If you're looking for complexity, I would venture a statement that the command and menu portion of the game are MUCH more complicated and more likely to confuse a new contributor than the messenger sections. All removing would do is make it harder to build up again later in the future. The reason that we implemented it early was so we had the foundation for later rather than having to force it in later (it's been noted that changing a local game into a networking game is much harder once the code is set in it's ways)
And it is already being implemented. Before activity died down a couple months ago, I was using/setting up a client/server implementation. I can't remember how far I got but I'm pretty sure than on a local branch I was either already there or really close to setting up a simple PoC of a remote client.
from jadventure.
see this thread for the main discussion. There was also plans for an input method as well however, I'd need to find my old code for it.
from jadventure.
fixed by paddatrapper on merge 2e8228c
from jadventure.
Related Issues (20)
- NPC health carries over when reverting save HOT 8
- Selling to guide and then killing him causes negative gold drop HOT 5
- Creating new profiles deletes equipped armors in all other profiles HOT 2
- Saving after killing an NPC on one profile saves NPC death on all profiles HOT 1
- Items should cost more when you sell them to the npc HOT 4
- Merge json/ and json/original_data HOT 1
- Conversation menu infinite loop HOT 5
- when buy things with Guide,it will always loop.[BUG] HOT 1
- Standalone jar doesn't recognize external libraries HOT 4
- Use Adapt for Intent Parsing HOT 2
- i lost my file HOT 3
- prices display while selling HOT 1
- Save Selection Should be Clearer HOT 1
- Debug Error Reporting
- Link github pages site on title HOT 2
- Small amount of Dead code in Main Menu class HOT 4
- QueueProvider rework suggestion HOT 3
- Trading into menus package
- Jacoco breaks build
- Cucumber tests
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jadventure.