Giter Site home page Giter Site logo

dominux / dgs Goto Github PK

View Code? Open in Web Editor NEW
52.0 3.0 5.0 27.45 MB

Go Server with spherical fields and VR support

Home Page: https://dominux.github.io/DGS

License: MIT License

Rust 63.89% TypeScript 34.13% Makefile 0.71% HTML 0.27% CSS 0.26% Dockerfile 0.75%
game gogame rust solidjs wasm babylonjs multilanguage-support webassembly 3d 3dgame

dgs's Introduction

We, like the god, create programs in our image and likeness

— Me

✨ Programming
          is a real modern
                  

dgs's People

Contributors

dominux avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

dgs's Issues

Polishing and finishing multiplayer

  • Redirect users back after redirecting them to login page
  • Get back ability to run project in a dev mode
  • Show button to enter game for a player 2 only when the game is started
  • Show usernames on scores, in singleplayer usernames are "black player" and "white player" respectively
  • Show which turn
  • If history contains records, load game (put stones, scores and decide whether player must wait for opponent or it's his turn now)
  • Hide "undo move" button in multiplayer mode
  • Add "home" button at EVERY PAGE
  • Add share room to player 2 (copy link to the room)
  • Fix all bugs

Create the game struct

Create the game struct:

struct Game {
    field: Box<Field>,
    groups: Vec<Group>
}

Make a "move" enum and the move function. Control players, creating a game and so on.

Similar ideas

Hi, Dominux,

I just found your project, it is amazing that we have similar ideas, but I started the project later than you.

You can found my contact on github profile page, let's talk and exchange the ideas.

Mingli

Improve materials

  • Replace mainColor with a wood material
  • Make stones to be not so reflective (cause in light black ones seem like white)
  • Bind hoverCircle radius to gridSize
  • HDRi ligthing

Create UI/UX

  • Choosing gridSize on game creation
  • Show which turn every move
  • Show scores of players

EPIC: Create a server for a multiplayer support

  • Пользователь создает аккаунт
  • Пользователь создает комнату
  • Пользователь может получить комнату по ссылке
  • Пользователь создает ссылку на приглашение в комнату
  • Пользователь принимает ссылку на приглашение в комнату и добавляется в нее как второй игрок
  • Первый игрок начинает игру
  • Открыть WS соединение
  • При создании игры создавать историю
  • Создать сущность записи истории
  • Делать новые записи каждый ход
  • При отмене хода - удалять запись
  • Добавить страницу выбора режима игры, синглплеер будет везти к существующей версии игры, мультиплеер - к новой, серверной
  • Запустить бэк в дев режиме
  • Подключить к бэку фронт
  • Добавить страницу регистрации
  • Добавить страницу комнат с возможностью ее создания
  • Добавить страницу комнаты по id, с видом, кто из игроков уже есть и кнопкой начала игры у черного (первого) игрока
  • Удалять room states когда оба игрока отключились от сокета
  • Зарезолвить баг с роутингом фронта на проде
  • Баг в синглплейре - камни ставятся, начиная с белого, а не с черного
  • Разворачивать бэк на сервере
  • Бэк по HTTPS
  • Проксировать трафик wss

Stone remover algorithm

  1. Checking if the point is empty -> otherwise the move is not possible
  2. Turning point into a group
  3. Merging all the groups we got by this move
  4. Looking for dead enemies groups and removing them
  5. Checking if our group is dying by this move - then the move is not possible
  6. Marking/unmarking points as blocked

For rollback purposes you need to clone the whole game structure and appplying changes on it till whole algorithm gets finished and only then resigning an old version with a new one. In this case we can make rollback at any step without loosing our actual state

Create the group struct

Group should have next features:

  • Store group's points
  • Store liberties
  • Merge with other groups

Create frontend

  • Load field
  • Add ability to put stones
  • Compile lib to wasm
  • Bind it to out frontend

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.