Giter Site home page Giter Site logo

game-algos's Introduction

game-algos

A repo for an interest group at Gdańsk University of Technology.

game-algos's People

Contributors

aryjczyk avatar jaskij avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

kuba8293

game-algos's Issues

Boost influence on engine compile time

net::GameState uses boost::multi_array internally, but because of header inclusions boost::multi_array is also included in compilation units of all engines, which can have negative effect on their critical compilation time. After whole system, including engine compilation on the fly, is up and running boosts impact needs to be measured and issue fixed, if it's significant. Possible fixes: use pimpl idiom in net::GameState, change internal board representation, forward declare boost::multi_map(some function definitions may need to be moved from header file).

Przepisać engine ataxxa

Przepisać engine ataxxa, wyczyścić, przełożyć pomysły, które pojawiły się w trakcie kodzenia na cały kod.
Większość z tych pomysłów jest zanotowana gdzieś w kodzie jako TODO

Propagate info about last move via net::Move class

Information about last move should be presented to players to make tracking state of the board easier. Info should contain which player moved, move origin and destination and any additional details(i.e. capturing pieces, promotions, checks). To prevent case bloat these details should be generalized as : a list of fields to highlight, a list of lines between fields and string containing exact info. There should be only a few predetermined highlight/line styles. Collections of such class could be used to save game course.

podział zadań

Ok, skoro wszystko już chyba stoi, jakiś podział zadań chyba należałoby teraz zrobić. Co do formatu plansz, to zostajemy przy samej tablicy unsigned char rozumiem?

Unit testy

Nie da się ukryć, bez nich jakiekolwiek zmiany w kodzie utrzymywanym przez tylu ludzi bardzo szybko zamienią się w koszmar. Pytanie czy mamy kogoś z doświadczeniem jeśli chodzi o ich tworzenie? Bo ja jestem w tej kwestii zielony

Projekt i implementacja protokołu

Czyli warstwa sieciowa naszej aplikacji, musi wspierać przesyłanie klas PublicState, GameOPtions oraz wszystkich koniecznych komunikatów.

Stworzenie GUI

Jako że GUI jest odpowiedzialne za wyświetlanie informacji przesłanych w formie PublicState oraz GameOptions konieczna jest współpraca z twórcami tych klas. Technologia wykonania do wyboru, ale należy mieć na uwadze przenośność oraz możliwość wykorzystania bibliotek dynamicznych ze względu na ww. podzespoły.

Format danych

Trzbe zdecydować się na format danych, jak reprezentować planszę. Potrzebne są try: skompresowany, nieskompresowany i dla gier z nieskończoną planszą.

Nieskompresowany - tutaj można się szarpnąć z enumem, jak będzie dostęp do C++11 to damy strongly typed enums i typ unsigned char (mogę się mylić, ale chyba VS10 jakoś to już supportuje).

Skompresowany - tutaj są 2 bity na pole, więc coś w style tablicy unsigned char, o określonej długości.

Gry z planszą nieskończoną - to zostawiam grupie NKM.

Dodatkowo, każdy stan potrzebuje nagłówka - czyj jest ruch.

Implementacja meta-serwera

Stosunkowo prosta aplikacja nasłuchująca połączeń od klientów, prezentująca im listę dostępnych gier oraz odpalająca wybraną.

Projekt i implementacja klasy Game Options

Klasa odpowiedzialna za przekazanie GUI informacji o wszelkich opcjach dostępnych dla danej gry(wielkość planszy itp), ich opisach, wzajemnych zależnościach, ograniczeniach

Meta Build System

Zastąpić utrzymywanie osobnych plików .vcxproj i makefile meta build systemem, prawdopodobnie cmake.

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.