GithubHelp home page GithubHelp logo

popojan / goban Goto Github PK

View Code? Open in Web Editor NEW
46.0 4.0 3.0 2.68 MB

3D igo/baduk/weiqi/go game board and GUI for GnuGo and other GTP engines ray traced by GLSL shader

Home Page: https://hraj.si/goban

License: GNU General Public License v3.0

CMake 2.76% GLSL 25.71% C++ 40.62% C 30.91%
igo go baduk weiqi gnugo glsl goban gui board katago

goban's Introduction

Red Carpet Goban

Ray traced 3D igo/baduk/weiqi/go board and GUI rendered using GLSL.

External GTP engines supported, GnuGo required as the main engine.

Builds on Windows 7/10 and Linux.

For windows binaries and more screenshots see hraj.si/goban.

screenshot

Dependencies

  • boost
  • clipp
  • freetype2
  • GLM
  • glyphy
  • libRocket
  • libsgfcplusplus
  • libsndfile
  • nlohmann::json
  • portaudio
  • spdlog

goban's People

Contributors

popojan 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

Watchers

 avatar  avatar  avatar  avatar

goban's Issues

Would you consider porting this to Unreal Engine 4.x?

Hi, Unreal Engine (the world most popular gaming/3D real time engine) uses C++ too...
I have found much better graphics of Go set here: https://www.unrealengine.com/marketplace/en-US/product/go-set

Would you be able to help to integrate this into Unreal Engine and leverage the KataGo AI? I already asked the developer of the Go set and the KataGo developer and they are both okay with anyone using their stuff to create a goban 3D in Unreal Engine that is fully playable..

I have a "DF-41 Simulator" on Steam that has a goban in the underground command center of the nuclear missile sites, and wanted to make the Goban come to live and by fully intractable and playable rather than just a static mesh...

Feature request: Add shortcut key for changing human player to engine and engine to human player.

Sometimes, when human player didn't know what was the right move, the player might resort to a engine for the next move and want to change it back to human after the move had been played. It was a bothering action in some complicated situations when you are busy at going around between human and engines. I suggest adding a shortcut key to do this, B for black player, W for white player.

Feature request: Show gtp infomation on the interface

To the author: I use a tail program to show katago's gtp infomation, then I can evaluate the move just played. The interface of goban is so nice that let the tail program laying on it seems to be a very annoying thing. Just see you are working on a analying function, can't wait to test it. :)

How to map a kibtiz shortcut with space bar ?

Usually, 32 is for the space bar, but in this case, it didn't work, so I had to use the shortcut key "c" ( "reset camera") as a substitution, in the config file something like this {"key": 14, "command": "play once"}

Board not cleared in katago engine

It gets confused when starting new game.

GTP docs on boardsize command:

Set the board size to NxN and clear the board.

In katago, board does not get cleared if size is set to same value as before.
We shall explicitly call clear_board when starting new game.

How to move the camera?

Thanks for your great working.

Right press the mouse, I can rotate; scroll the mouse, I can zoom.
How can I change the camera postion more freedom?

Actually, I try to make a program to recognize the SGF from Image.
I need more data to train/test the model.
I will open its source, when it almost done.

1

Seem Something wrong with gtp connection

I set the engine as leelazero and ran the executable file, it crashed.
this is the log file:

[2018-12-14 18:21:37.099] [console] [info] TODO log using spdlog!
DISPLAY 0x5618710a0af0
DISPLAY << 0x5618710a0af0
Loaded font face Lacuna Regular Regular (from byte stream).
Loaded font face Lacuna Italic Regular (from byte stream).
preSetContext = 0
preLoadFonts = 0
Loaded font face Delicious Roman (from data/gui/Delicious-Roman.otf).
Loaded font face Delicious Italic (from data/gui/Delicious-Italic.otf).
Loaded font face Delicious Bold (from data/gui/Delicious-Bold.otf).
Loaded font face Delicious Bold Italic (from data/gui/Delicious-BoldItalic.otf).
preLoadWindow = 0
preOverlayCreate = 0
Enter: demo_glstate_create
Enter: demo_shader_create_program
Enter: compile_shader
Leave: compile_shader
Enter: compile_shader
Leave: compile_shader
Enter: link_program
Leave: link_program
Leave: demo_shader_create_program
Enter: demo_atlas_create
Leave: demo_atlas_create
Leave: demo_glstate_create
Setting debug to 0
Setting contrast to 1
Setting gamma_adjust to 1
Setting outline to 0
Setting outline_thickness to 0
Setting boldness to 0
Setting depth to 0
10 glyphs; avg num endpoints 34.20; avg error 58.5%; avg tex fetch 3.15; avg 2.46kb per glyph
preShaderInit = 0
[2018-12-14 18:21:37.190] [console] [info] preShaderInitProgram = 0
[2018-12-14 18:21:37.198] [console] [info] postShaderGetProgram = 0
[2018-12-14 18:21:37.198] [console] [info] postShaderUniformsLocations = 0
postShaderOverlayInits = 0
postInitTranslation = 0
[2018-12-14 18:21:37.198] [console] [info] leelaz
[2018-12-14 18:21:37.198] [console] [info] leelaz -g -t 2 -w ./network.gz --noponder
""
[2018-12-14 18:21:37.199] [console] [info] running child
0newType = [human = 0, computer = 1] newRole = [black = 0, white = 0]
Before parsing SGF
Parsed SGF
1
postPreconstructElement = 0
[2018-12-14 18:21:37.225] [console] [info] sendline = [boardsize 19]
[2018-12-14 18:21:37.225] [console] [info] get line
[2018-12-14 18:21:45.373] [console] [info] getline = [=]
[2018-12-14 18:21:45.373] [console] [info] getline = []
setting komi 6.5
[2018-12-14 18:21:45.373] [console] [info] sendline = [komi 6.5]
[2018-12-14 18:21:45.373] [console] [info] get line
[2018-12-14 18:21:45.373] [console] [info] getline = [=]
[2018-12-14 18:21:45.373] [console] [info] getline = []

this is the config settings:

./leelaz
leelaz
leelaz -g --quiet -t 2 -w ./network.gz --noponder
leela_zero
0

then it crashed.
Hundreds of thanks!

Random noise generator in the shader not working on a brand new laptop

Intel UHD 620 integrated graphics.
The shader is working but results in flat textures, completely regular wood pattern.

Observed on Windows 10, works on the same graphics in Linux.

Consider replacing
float rand(vec3 v) { return floatConstruct(hash(floatBitsToUint(v))); }
with a different function, see ashima/webgl-noise.

Screenshot for reference:
noise-not-working
Notice flat solid carpet, regular wood texture and darker white stones.

Constructive criticism from reddit

Someone posted a thread and then deleted, here is what I remember from reactions:

  • captured stones should go into lids, not cups
    Good point!
  • new stones could be offered in cups
    Added to backlog, needs some extra logic to naturally pour them in.
  • flat mediocre textures, unrealistic lightning
    Shaders are open source, can be tweaked anytime to one's liking.
    I am planning to refocus on graphics later when some gameplay-wise important features are added.
  • number of captured stones should be displayed on HUD
    Yes it should, it just temporarily disappeared during menu redesign.
  • zero use for 3D goban
    Actually I agree, there is not much added value of 3D.
    Nevertheless I preferer to use my goban when flirting with the game of go; I know it may be just me. :-)
  • Tabletop Simulator has been around for long
    I am aware of it, it has very good graphics and physics.
    Have not tried it yet, I do not expect it to support GTP go engines nor to implement go rules.

when the sgf function could be added?

Goban is a amazing phenomenon and we like it. However, there is no any 'save' function available in current version, and when will this be added ?

thanks

Suggestion on appearance, data missing(?) in version 0.0.3

First of all, thank you for building this lovely Goban program.

I love the idea displaying dead stones on bowl's cap(not so sure how they are called in English). However, it is more common to place stone bowls and caps in the other way around(please see attachment). It would be grateful if you can implement like attachment someday :)

And somehow I cannot run Red Carpet and Minimalistic Flat skin on version 22-01-05 (only shows black screen, but program still runs), while version 21-05-31 has no problem.

K-044

unsure on how to run

Unsure how to run my own engine on goban, I have placed an engine in the engines folder but it has not shown up on the engine selection

A display bug on Windows11

On Windows11, there is a display bug with the chess pieces, and there is a layer of black coating on the surface of the chess pieces.
QQ截图20240110003552

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.