Code Monkey home page Code Monkey logo

cschladetsch / cardchess Goto Github PK

View Code? Open in Web Editor NEW
16.0 16.0 2.0 227.58 MB

A Unity3d game inspired by Chess, MtG and SC2. The playfield is a NxM board. Players take turns casting spells, which can summon a creature to the board, add an item to a creature, or do other special effects. Attacking and movement of the pieces are mostly Chess-based, except that pieces have Health. Full rules are available on the wiki pages.

License: MIT License

C# 78.66% Shell 0.02% ShaderLab 20.37% HLSL 0.95%
card-game chess csharp game networking unity

cardchess's Introduction

Hello,

Welcome to my code repository.

This is where I upload systems that I believe are of general interest and haven't been supplied elsewhere.

Have fun, and feel free to contact me directly if you have any questions or issues with the code.

Best Regards,
Christian.

mailto://[email protected]

cardchess's People

Contributors

cschladetsch avatar liminal-cto avatar realresponse-cto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cardchess's Issues

Refactor PieceView and CardView

There is a degree of similarity between them. One shows a card in a Hand or Deck, the other shows a card on the Board.

They are not the same thing, but they share some functionality and properties.

This is low priority, as making a common base for them could be

  1. More trouble than it's worth.
  2. Make the code less readable/refactorable due to tighter coupling.

Start with 2 mana

Since you only get mana every other turn, it can be slow to ramp up from the opening.

Integrate Pyro and PyroConsole

Integrate Pyro and PyroConsole so the state of the game can be interrogated and manipulated at runtime.

This will also require the UnityPyroConsole to be converted to a Package.

Multiple Audio Sources for PieceView instances.

For some reason, multiple AudioSource components are being added to PieceView instances in PieceView.cs. This derives from ViewBase that lazily creates an AudioSource when it is first requested, then caches the result.

I've had a quick look at it and can't see what's wrong. This results in all pieces only ever playing one sound effect.

Play Kings

Each player should be able to play Kings on the board via a UnitTest.

All Entitities before during and after this initial action must be valid.

Separate Log View

Currently the game log is displayed above the board. This doesn't leave a lot of space, and you can't scroll back in history.

A better solution would be to press a key to bring up an overlay showing the log with a scrollable viewport showing what happened at each move.

Make new Unit Tests

The current unit-tests are broken because the rules have changed. Such is evever the case with unit-tests.

The current tests must be fixed so they pass, and more tests added for things like checking the King, casting spells, mounting etc.

King movement is buggy.

When a King attacks, it always stays on the square attacked, even if it did not kill the defending piece.

Add a toggle Music option

In fact, the game needs an Options screen in general, for things like Sound Effects, Music volume etc.

Lag at start of the game

There is a noticeable ~5 second lag at the start of the game. Unsure what this is caused by. Remove it.

Make Root/UiBlocker actually block raycasts.

When a modal Ui element is popped up, we do not want other objects in the background to receive ray-cast hits.

There's a facility to do this in Root/UiBlocker, but it doesn't work.

Decrease Build Times

Use AsmDef's to reduce the amount of code that Unity compiles at each re-compile step.

This isn't as trivial as it sounds, due to the number of packages and inter-dependancies. For instance, Dekuple in this project still references some things in App namespace.

So a sub-task here is to use the actual Dekuple repo at git://github.com/cschladetsch/Dekuple.git

Game source files should not use Foo.Impl namespaces.

Currently various source files reference impl namespaces, such as Views.Impl and Models.Impl.

This is counter to the premise that the main game should only use interfaces and factories.

Fixing this may be more trouble than it's worth.

Implement Mounting

Some pieces can mount other creatures: Peons and Knights can mount Gryphons and Dragons etc.

This is not yet implemented.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.