-
Notifications
You must be signed in to change notification settings - Fork 28
Roadmap
One thing that I definitely feel like I should be is transparent about progress with this game. I want to share and show where I want this game to go over time, and give a rough linear progression of how we'll get there. I'll first share a rough progression of features, then I'll go into further explanation of those features elsewhere.
Allow players to submit custom content, and allow people to better moderate that content.Revamp Battles and Parties issue- Finish the Norkos World Map
Allow players to get "Titles" issueGuild Improvements tag- Expand Post-level-100 content issue
- Town Hall issue
- Quests issue
- Global Market issue
- Trade Skills (maybe)
- More Content (Maps, Bosses) / Finish existing content (Monsters)
- New Classes tag
- Game Architecture issue
- Balancing & Launch
- Revisit & Revamp
It would be a lot nicer if players could submit content and get credit for it. The base functionality for this is in place -- we just need to have a nice interface for players to do this. This will be finished up shortly.
The current party / battle setup is very clunky from the backend perspective, and should be tidied up. Battles don't happen nearly as often as they should, and sometimes they aren't even possible. Revamping these systems will allow the game to handle battles better, and possibly also make battles better balanced.
The Norkos World Map is actually very close to complete. There are only a few more things that need to be done (finishing up the Frigri area), and Sedgwick has been manning the helm, so to speak, in this department. The complex parts are on the way, but after that, Norkos will be done!
I want players to be able to have titles that they can proudly display for having met certain achievements. These titles can range from acquisition methods of "getting X pet" to "kill Y super powerful boss" to "explore all maps in Z world" -- and all of them in that regard are valuable and very able to be flaunted.
Guilds, right now, are a very small part of IdleLands. They're not implemented anywhere except IRC, and as such, they're not quite to the point of global consumption -- I don't feel that they do enough yet. Guild buffs are available currently, which let guildies put money into their guild vault, and buy buffs (+luck for 3 days, for example). However, there needs to be more to guilds: incrementals, guild bonuses to partying, guild shops, and more notifications of guild actions. Then they need to be implemented entirely into WebFE once we nail down all of the guild features and have them implemented successfully.
Currently, there are a few classes in the tracker. Thankfully, there are a lot of class ideas I would like to implement ... eventually, of course. Each world map will have some unique classes to that world, in addition to a base set of classes. I think a large variety of classes will benefit the game in the long run, especially given how unique classes can be, while still fitting into the IdleLands style.
Unfortunately or not, there are currently some players that are at the point of being greater than level 100. All this means right now, is that events grant them very little XP, so levelups are very, very slow. Of course, this will need to be expanded on. There are several ways planned right now: a coliseum, better rewards for battles, and "prestige" or "prestige rewards." The coliseum would be a place where you can attempt to fight X battles for Y reward. If you win each battle, your reward payout is a lot better. If you lose at any time, you lose everything you would have gotten as a reward, plus a bit more. "Prestige rewards" (or, as they will probably be called: "ascensions") -- I'm not sure how these will work yet. Either you will need to find specific content to progress past a certain point, or you will reset your level to 1 with a slight bonus for the next iteration of play.
A Town Hall would be another way for players to spend money to advertise their guild, or themselves for a guild, or really, anything. It would be visible from a town, or on any of the web interfaces, and it would be another form of player communication.
Also, it would be good to show people their expired towncrier events here.
A global market would be a valuable addition to the game. Being able to sell pets, equipment, and eventually tradeskill-specific items would be a great way to get players to interact with each other. Of course, this is a massive undertaking, but the end result should be an open market that lets people do some really cool things. It's also possible we will allow people to invest in towns, shops, or the like, to increase the things that they can find in those respective areas.
For the original implementation, only equipment will be sold and it will only be sold via the guild player shop.
With trade skills, anything is possible. I think it will push the game economy further, utilizing the global market to market goods. Some example trade skills are:
- spellforging
- runes - taking one of your available spells, and making it into a rune, which would allow it to be imbued into an item. This could make spell power more widely accessible to melee classes even.
- scrolls - allowing anyone the ability to cast certain spells at a lesser proficiency. These would have a set number of charges and would break when they have no charges remaining.
- imbuing - taking a rune and putting it into a weapon. Only one rune can be present on a piece of equipment at any time, and runes may fire at different times depending on utilization (weapons fire on attack, armor fires when taking damage, other pieces can fire when they deflect an attack...).
- forging
- armorcrafting - forging specific slots of armor - body, legs, feet, hands, head
- weaponcrafting - forging specific slots of weapons - mainhand, offhand
- charmcrafting - forging the rest of the slots - charm, neck, finger
- smelting - forging ore into ingots
- tanning - forging skins into hides
- tailoring - refining cloth
- cooking - making consumable food / drink out of collected materials
- harvesting
- hunting - chance to collect skins while in forest / grassy regions
- mining - chance to collect mining materials while in cave / dirt regions
- fishing - chance to collect fishing materials while in wet areas / beach regions
- farming - chance to collect farming materials while in grassy or forested regions
- bonecrafting - necromancers could use bones to summon minions
There's also the possibility for other trade skills like engineering, taming, alchemy, chemistry, trapmaking, construction, and glassblowing, but there are no plans at this time.
Quests would allow players to embark out into a specific area to kill bosses, or to find treasure. They could do this as a party or as a guild. There isn't very much planned yet, except to have them. This will also involve making it so players can have AI to lead them places, which has a variety of uses.
Fame (#627) should also be implemented here.
There will be more worlds, and there will be more classes, and there will be more bosses. There are, currently, at least 5 worlds planned total, with about 50-70 dungeons spread across those worlds, and bosses are just everywhere. In time.
All the existing monsters should also be finished up and given stats, so the game can more easily handle them. Most are fine, but maybe there should be an automated tool or something on the website that shows a table of level 1-100 avg for each of the basic stats (plus showing HP / MP).
As the game is right now, there needs to be a main server that runs the IRC version as well as the API server. The IRC version could very well remain as its own thing, but there needs to be a way to scale API servers and spread them out more, in case they crash. This would require a lot of research but it has to happen otherwise the game will not scale correctly.
It's possible that a good way to do this, at least for starters, is to offload some of the static assets that do not need the game running to a separate subdomain (static.idle.land) and have a loadbalancer running those nodes between N nodes. An example of these assets would be the maps, and the tileset.
It's not much, but it's better than nothing -- eventually, there will need to be a way to offload actual, running game API information to other servers, which will require some more thought.
-
Consider removing identifiers; they only cause confusion. Instead, require clients to send their identifier separately so clients can still be counted, but only require a name. This would require a lot of stupid internal changes, though. One important thing that has to be taken note of is differentiating IRC servers.
-
Consider splitting off the IRC portion into its own standalone client. To broadcast, though, websockets may have to be used. If we use websockets for persistent connections in the future, then that is not a problem anyway. A benefit here, is that the bot will not disconnect and take the game with it. It would be one less thing to worry about on the server.
-
Consider that the only thing that both servers need are a list of online players, and a similar message queue. Servers can act mostly independently of others with this information. It's possible that players could be "logged in" on all servers, but only take turns on one server, and the end result is effectively the same. It's possible we could even forego some of this information if we could get one idlemaster reading the oplog of the database, and have the database have an expiry on messages so they don't clog the game. Having multiple servers means the loadbalancer should point to both of them to balance players going in to each server.
-
Consider making all REST calls only return based on the components they affect; there isn't necessarily always a need to return the whole guild, player, or pet. This should at the very least be optional for backwards compatibility.
-
Consider a generic websockets integration that would allow for clients to get a live stream of all events in the game.
-
Consider using something like Protocol Buffers or Websockets or DDP going forward, for clients.
-
Consider putting Mongo on a separate server from the game.
-
Consider making it possible to add a Last-Modified header to the game, to not spend more bandwidth than necessary.
-
Consider using cluster for the idle.land instances.
-
Consider using Mongo 3.0
-
Consider using a message queue (like this) to talk between servers.
-
Split out IdleLands into an external kurea module, and refactoring all of the redundant code away.
-
Consider removing extraneous fields from the player / pet object (EventEmitter stuff, other temporary fields)
-
Consider making everything stateless. Quoth Stephen:
Because tentatively, it sounds like all the crap you do in terms of tweaking etc, should just be pushing into an API to update say ... a document in couch DB, and then another process handles the turn business, reading that couch document, doing the turn, then persisting the updated document back. (the reason for couch or similar is the REST API, and usually JSON document format)
Then the only remaining issue is communicating the turn update to the client.
- Consider making an IRC management panel and specialized bots to deploy/remove a certain server, and set certain variables. This would make it much easier to add the game to new servers, as well as maintain, remove, and update settings for them. Settings include: bot name, proxy message bot name, server, channel, proxy channel, and bot rate limit. Not much else should be needed.
- Combat should be fixed where possible.
- All classes should be re-evaluated and balanced as possible.
- XP formula should probably be changed to make levelups slower.
- BlessXP should give way, way less XP.
- Player classes should utilize more events in interesting ways (sell cost reductions, etc).
- Battle should always calculate static XP gain / loss, and maybe add a small flux percent.
- XP gain should actually rollover when gaining >100% XP, instead of just stopping.
- Bosses should be scaled differently.
- Achievements should be reassessed; based on where players are now, requirements may need to change. Dominus is a good example of one that should change: currently, someone has Dominus XVIII; I can see it being reasonable to cut it to half that and double the requirements inbetween levels, or maybe something more serious to make it more valuable (and take up less space).
Then, v1.0.
Some systems will need to be revisited after launch to re-evaluate the possibilities with them. There are a ton of dependencies within the current roadmap that cannot be done, simply because they depend on something that comes after them. Some examples:
- Guild building: Greenhouse depends on Usable Items (#537)
- Guild building: Guild Raid Simulator depends on Guild Raids (#731)
- Guild building: Stables depends on being able to transfer pets (which will come with Global Market)
- Guild trophies (#754) depends on Global Market, Fame (#627)
- Pet selling depends on Global Market
- Usable Item selling depends on Global Market