/mudz

Game we're making with the skills we cover in the live stream. Text adventure. Zombie survival.

Primary LanguageC#

Mudz

Game we're making with the skills we cover in the live stream (http://www.twitch.tv/ariugwu). Text adventure. Zombie survival. Tribute to MajorMud.

Milestones

I'll do my best to mark which commits line up with which code katas (from the twitch sessions).

First 'Semester'

Phase I - Let's build a prototype game logic engine with a text ui for testing.

  • Week 1 - Factory Pattern (Creational Pattern):
  • Week 2 - Strategy Pattern (Behavioral Pattern):
    • Description: Help deal with some granular complexity of our players. This pattern has a lot in common with the Bridge Pattern and is often confused. The key difference we're high lighting is that our behavior in a Strategy Pattern is coupled witht he context (player)
    • [Video(s)]
    • Commit:
  • Week 3 - Bridge Pattern (Structural Pattern):
    • Description: Start getting some of our monster code organized. We might do something similar with inventory items so this will be a good test.
    • [Video(s)]
    • Commit:

Phase II - Building out our world and fine tuning interactions with that world.

  • Week 4 - Command Pattern (Behavioral Pattern):
    • Description: Introduce a way to cleanly handle commands. Sets us up nicely for event-sourcing later.
    • [Video(s)]
    • Commit:
  • Week 5 - State Pattern (Behavioral Pattern):
    • Description:
    • [Video(s)]: Add some more complexity to our game Actors (Players/Monsters) to deal with temporary changes to them (i.e - scared, excited, brunk, etc).
    • Commit:
  • ** Week 6 - Flyweight Pattern (Structural Pattern):**
    • Description: Find ways to load our game assets and reuse them efficiently.
    • [Video(s)]
    • Commit:
Week 7 & 8 - Bonus [Video(s)]:
  • Adapter Pattern (Structural): We use this but never did a kata for it because it's so similar to our core 6.
  • Interpreter Pattern (Behavioral Pattern): We use this but never did a kata for it because it's so similar to our core 6.

Second 'Semester

Phase III - First things first: Build a TCP Server and Client to start playing our game with other people.

  • Singleton (Creational): Since we have tcp sockets and connections flying around we want to make sure that our game engine is only created once.
  • Chain of Responsibility (Behavorial Pattern):
    • [[Video(s)]]:
    • Commit:
  • Interpreter Revisit (Behavioral Pattern):
    • [[Video(s)]]:
    • Commit:
  • Adapter Revisit (Structural):
    • [[Video(s)]]:
    • Commit:
  • Template (Behavorial Pattern):
    • [[Video(s)]]:
    • Commit:

Phase IV - (TBD) The game engine is the god of our world and will enforce all of our laws.

  • CQRS Pattern: We have a lot going on and while we've done a bit to structure our commands we might want to make things a bit more formal.
  • Event Sourcing:
  • Observer (Behavorial Pattern):
  • Proxy ():
  • Decorator Pattern (Structural Pattern): Organize the various things that can impact actions and attributes for our Actors and have them be applied in a uniform way. For example: A drunk player of type medic who tries to heal will need to have all three things factor into how well they peform that action.

Summer School

Phase V - (TBD) Storage and Retrival

  • Unit of Work:
  • Repository:

Phase VI - (TBD) Explore Advanced Patterns via https://msdn.microsoft.com/en-us/library/dn600223.aspx