Monday, October 31, 2011


Yes, I have been slack lately, but I was going to get back into things, promise. The nudge from a colleague had nothing to do with it.

I have a soft spot for RPGs and Turn-Based Strategy games, and with the cheap Civ5 purchase a little while back, and pulling out my PSP for some Final Fantasy Tactics in the last couple of weeks, I haven't done much of anything for about a month. I like to think of these distractions as a necessary break when working on projects outside of work, but I do get sucked in a bit too much sometimes.

So, I have a handful of things I wanted to sort out with my Market game.

Framework / Architecture

  • Remove the AoP 'Unit of Work' implementation - this is pretty much done, I just need to formalise the new pattern for the UnitOfWork (single EF context/unit of work for each 'public' business method, and a single usage business service)

  • Restore the repository layer - specifically to assist with unit testing (EF/Queryable methods are not mockable, at least using moq).

  • The Repository has jumped back into my consciousness for two reasons - one, on a new small project I kicked off I plan on doing thorough unit testing, and found that the base EF IDbSet functions cannot be mocked. and two - implementing a null object pattern using EF is not simple, but implementing this logic in the repository is pretty simple.

  • Investigation on a dual nHibernate / EF implementation - see how much effort is involved in creating an nHibernateRepository

  • Investigation into AutoFac for Dependency Injection / IoC - problems with Unity lifetime behaviours and Bootstrapping may be improved with AutoFac.

  • Modify the application actions to use a command pattern, and introduce a server queue for processing.

  • Revisit the timed action services (server thinking / working) to produce a more flexible solution

Short Term Functionality

  • Implement base (atomic) producer AI

  • Implement complex (multiple ingredient) producer AI

  • Implement producer (basic and complex) trading AI - buy (ingredients) and sell (created items) orders, basic market analysis/P&L.

  • Add market transactions

  • Implement a lightswitch asset management application

  • Add ships/capacity and item volume

  • Add ship cargo

  • Add pathfinding

  • Add movement

  • Add Trading AI (buy/move/sell) - include improved market analysis

So yeah, i should get my ass into gear.

No comments:

Post a Comment