Showing posts with label roadmap. Show all posts
Showing posts with label roadmap. Show all posts

Saturday, August 16, 2014

ToDo List

I haven't made a proper roadmap in ages. So this is not really a roadmap but rather an unordered but prioritized todo list.

Must Have
Should Have
Nice to have
Not sure if worth doing

  •  Netcode
    • Zipped messages
    • Client-sided prediction
  • Security
    • Password reset
    • Brute force prevention
    • Websocket over TLS
  • Character customization
    • Genders
    • Portrait engine
  • Graphic engine
    • Dynamic recoloring of graphics
    • Particle effect for cold spells
  • Animations
    • Create walk animation for player character
    • Cast animation (code and graphics)
    • Dead animation (code and graphics)
  • Equipment
    • Staffs  & staff crafting
  • Mining
    • Prospect spell
    • Sense spell
  • Spells
    • Auto-generation of spells with target areas
  • Route Finding
    • Upgrade from Dijkstra to A*
    • Allow multiple layers
    • Allow tiles with complex walkability-shape
    • Flee algorithm 
  • Content
    • One more soft material
  •  Website
    • Host for gameserver
    • Static content 
    • Forum
    • Bugtracker
    • Wiki
    • All of that accessible with the ingame account
  • Marketing
    • Come up with a name already!  
    • Get a domain name

Sunday, August 25, 2013

ToDo until public alpha

Content:
  • Mapping for Wenibe and surrounding
  • Scripting for some quests
  • Create and balance content for 20 levels:
    • Equipment
    • Mobs
Bugs:
  • Instance freeze bug - find it and fix it or add an automatic monitor for instances and terminate those which seem to be caught in an infinite loop.

Technical:
  • Create a website
  • Find a server hoster and set up the gameserver

Friday, October 19, 2012

Roadmap update

I hadn't had a roadmap update in a while, so time for a new one.

Milestone 8 (wealth):
  • Items and Inventory
    • Dropping items
    • Splitting and combining item stacks
  • Player trading
    • Trading cash
  • Shops
    • Selling items
  • Item stack sizes in trade window
  • Item information system
Milestone 9 (adventuring):
  • NPC interaction
  • Scripting
Milestone 10 (security):
  • Permission management
  • Database logging of
    • Logins
    • Administrative actions
    • Usage statistics
  • Prevent multi-logins
  • Brute force protection
 Milestone 11 (eye candy)
  • Animated sprites
  • Animated tiles
  • Particle effects
Alpha Status reached!

Refinement 1: HTML and CSS

The newest beta of my favorite browser Opera finally supports real WebSockets. Unfortunately there are a lot of layout problems (unrelated to canvas support). I need to get the UI to render properly on it, too. There are also some other layout problems, like the inventory grid not being exactly square in all situations.

Refinement 2: Movement

Since I declared my space partitioning and my route finding algorithm for working, I encountered some glitches which need to be addressed.
  • Suboptimal routes in some situations
  • wrong blockmap calculation in some cases
  • one time I got stuck in a tree - reproduce this (or at least create automatic unstuck)

Refinement 3: Performance

The client framerate fell a lot lately. I need to find out why and optimize it so I get at least 20 Fps on my Intel Atom notebook.

Refinement 4: Game System

Refinement 5: Mob AI

I skipped a few AI strategies I had planned. These still need to be implemented:
  • Attack strategies:
    • Pursuit
    • Stalk
    • Flee
  • Roam strategies:
    • Guard
  • Target strategies:
    • Best attacker against team
    • Closest to team
    • Last attacker
    • Last attacker of team

Refinement 6: Attract Mode

Observer random locations in the background during the login sequence.

Thursday, June 21, 2012

Milestone 7 finished

I hereby declare Milestone 7 finished. I finished this milestone much quicker than I thought, but that was rather because I was quite active lately, not because it wasn't much work.  The planning decision to make a whole milestone out of the mob AI was definitely justified.

I didn't implement all the planned monster strategies, but I didn't plan to do so anyway. I created a solid framework which allows me to create new strategies with minimal effort. This will surely come in handy in the future. Even now the AI is already passable, and without much effort I can make some awesome things.

The next big chunk will be items.

Saturday, June 9, 2012

Milestone 6 finished

Now only skills the character possesses are listed. That was my last ToDo for milestone 6.

Next milestone will be Milestone 7: The Revenge Of The Monsters.

Wednesday, May 16, 2012

Roadmap updated


While I ported the client from Metro to HTML5 I  lost track of my roadmap. I implemented some features which were planned for much later milestones (like some steps into the direction of inventory and item management) while forgetting about things which are much more important in the intermediate future. Time to get my priorities straight again.

Milestone 6 (growth):
  • Flexible GUI infrastructure
  • Character system
  • EXP gain and leveling
  • Increasing base attributes
  • Combat mechanics
  • Mana points, mana regen and mana use 
  • Spellbook
Milestone 7 (opposition)
  • Monster database
  • Monster AI
  • Spawn areas on maps
  • Character death and respawning
Milestone 8 (wealth):
  • Items and Inventory
  • Player trading
  • Shops
Milestone 9 (adventuring):
  • NPC interaction
  • Scripting
Milestone 10 (security):
  • Permission management
  • Database logging of
    • Logins
    • Administrative actions
    • Usage statistics
  • Logins
  • Brute force protection
 Milestone 11 (eye candy)
  • Animated sprites
  • Animated tiles
  • Particle effects

Rest of Milestone 6

  • Move hit points to game system
  • add mana points, mana regen and mana use
  • Store spell palette in the database
  • communicate spell palette to the client
  • drag&drop spell palette to hotkey bar
  • save hotkey assignment server-sided
  • monster database storing monster stata
  • monster ai implemented using strategy pattern (movement strategy and attack strategy)
...

fuck those monsters - that stuff goes to another milestone.

Thursday, April 19, 2012

Fringe tiles work - Milestone 5 finished


The client can now display maps with multiple map layers, including a fringe layer where the draw order of the tiles is combined with the sprites. I implemented that by converting all non-null tiles on a layer named "Fringe" to map objects (or rather something similar which implements the same interface). 

Client, server and map editor now work the way I intend. Now I theoretically got all the tools I need to start world building. All that is left are tiles and a world building plan.

Milestone 5 is hereby finished.

Saturday, April 14, 2012

Roadmap updated

While I ported the client from Metro to HTML5 I  lost track of my roadmap. I implemented some features which were planned for much later milestones (like some steps into the direction of inventory and item management) while forgetting about things which are much more important in the intermediate future. Time to get my priorities straight again.

Milestone 5 (content):
  • Map editing
  • Map management infrastructure
  • Infrastructure for reading content from external files (JSON?)
Milestone 6 (growth):
  • Flexible GUI infrastructure
  • Character system
  • EXP gain and leveling
  • Combat mechanics
  • Mob AI
Milestone 7 (wealth):
  • Items and Inventory
  • Player trading
  • Shops
Milestone 8 (adventuring):
  • NPC interaction
  • Scripting
Milestone 9 (security):
  • Permission management
  • Database logging of
    • Logins
    • Administrative actions
    • Usage statistics
  • Logins
  • Brute force protection
 Milestone 10 (eye candy)
  • Animated sprites
  • Animated tiles
  • Particle effects

Saturday, December 17, 2011

Milestone 4 reached!

Players can now walk around and kill monsters.

Attack range is limited, moving cancels attacking and vice versa.

Now it's time for Milestone 5: implementing collision tiles. I wonder if I skip the intermediary step of having no route-finding and go right to implementing my map partitioning and pathfinding algorithm. I want to implement that sooner or later, and I don't think that there would be any code of the intermediate solution left which would still be required.

Sunday, October 23, 2011

Milestone 3 almost reached, time for some planning

Milestone 3 is practically completed on the server-side. The client side needs some finishing touches, but the critical stuff works.

So time for a new roadmap.

Milestone 4 (interaction):
* Mobs
* Basic fighting (mobs won't fight back and die after a fixed number of hits)

Milestone 5 (exploration):
* Walkable and unwalkable tiles (no route finding yet)
* Fringe objects
* Map editing (I think I will integrate the map editor right into the client)

Milestone 6 (growth):
* EXP gain
* Combat mechanics
* Mob AI

Milestone 7 (wealth):
* Items and Inventory
* Player trading
* Shops

Milestone 8 (adventuring):
* NPC interaction
* Scripting (?)

Milestone 9 (security):
* Permission management


I also need to start to work  on content. It's time to create some tiles and sprites. I also need to design the setting of my game world.

Sunday, October 16, 2011

Good progress with milestone 3

The server can now communicate with MongoDB. The save and load methods of my Database class can theoretically work with any object, because it examines the annotations of the class of the object.

When I want an object to be store-able in the database, I just add my @DatabaseObject annotation to the class and my @DBMapping annotation to every variable of it I want to save. I can also bind getters and setters to database fields by adding my @DBGetter or @DBSetter annotation to them.

That way it will be easy to add and remove attributes of classes stored in the database.

I can already create accounts and characters, log in with name and password and choose a character.

Which message is acceptable in which state of the connection is determined in ClientConnection. That class is getting more and more bloated. I think the login and character selection handling needs to be moved to another class soon.

Todo:
  • Create indices in the database at startup, so that account and usernames must be unique
  • When creating a character, it can not be selected unless the account logs in and out again.
  • Characters are only saved at logout - they should be saved more regularly in case of a crash (but not all at once to avoid load spikes on the database)
  • changing accounts and characters is shaky


So much about the server. The client, on the other hand, is lagging behind feature-wise. Everything I boasted about above can only be used through forging JSON messages in the debug chat tab. There is no GUI for entering account info or selecting a character. Implementing that will be my next step.

Saturday, October 15, 2011

Milestone 2 reached!

Differing between local and global chat is implemented. I decided to forget about sending messages to only those nearby and go for the one-map-one-channel approach instead. It's not like it would be hard to do (I am sending the chat message in the MapInstance class where I have access to all objects and their positions, and calculating their distance would be trivial) - It's just that I can't decide what a reasonable distance is because I don't know how big the screen of the user is. And even when I would know: everyones screen is different, but I need to use the same distance for everyone, because you expect that when you can hear someone, he can hear you too. So when I have to go for a one-size-fits-all chat distance anyway, I could just take the whole map for it.

The chat support on the client is still very spartan. To send a global message, you prefix it with a "#" symbol. It would be better to have separate tabs for global and map chat. The chat window needs some love anyway, because currently it can't even scroll. It just grows and grows instead.

Then it will be finally time for Milestone 3: Login sequence and persistent accounts and characters. And when that's finished I can finally start with implementing real gameplay.

Saturday, October 8, 2011

Server Roadmap updated

Essentially I reversed the order of the milestones 2 and 3. Login doesn't make sense without persistence and implementing maps and map instancing feels like the natural thing to do next right now. By the way, I plan to keep the map layouts completely server-sided. That way I don't need any fileparsing code on the client and also have the ability to add procedurally generate maps without the client even being aware of that (in fact all maps will be procedurally generated for now, because I don't have a map file format or map editor yet).

Milestone 0:
  • Connecting (unauthenticated)
  • Chatting (global)
Milestone 1: 
  • Player character movement synchronization
Milestone 2:
  • Multiple maps in multithreading architecture
  • Transfering characters between maps 
  • Local chatting
Milestone 3:
  • Asynchronous persistence layer 
  • Account creation 
  • Login with username and password
  • Character creation 
Further milestones:
  • Basic fighting
  • Server-controlled characters ("NPCs", "Mobs")
  • Admin commands  
Far-away milestones:
  • Scripting
  • Multiple choice dialogs  
  • Items and equipment 
  • Character advancement 

Thursday, October 6, 2011

Preliminary server roadmap

Milestone 0:
  • Connecting (unauthenticated)
  • Chatting (global)
Milestone 1:
  • Player character movement synchronisation
  • Local chatting
  • Asynchronous persistence layer
Milestone 2:
  • Account creation
  • Login with username and password
  • Character creation
Milestone 3:
  • Multiple maps in multithreading architecture
  • Transfering characters between maps
Further milestones:
  • Basic fighting
  • Server-controlled characters ("NPCs", "Mobs")
  • Admin commands
Far-away milestones:

  • Scripting
  • Multiple choice dialogs
  • Items and equipment
  • Character advancement