5D Chess in Godot Release 4




This is my first Dev Blog, not sure what to say here, I figured I would have a sort of an update history on this project.
This whole project started out when i was disatisfied with my GUI on Java. under the hood the Code was alright and faithful to 5d chess, but my skills writing a UI as well as the Janky JavaFX library made my project look dated. I decided to write 5dChess in Godot several times but GDScript is slow and has limitations around what you can write, everything feels like it wants to be in the context of a node, which makes everything feel like it has too much overhead. I realized I could code in C Sharp but didn't really know it at the time (Still dont really know C Sharp). Eventually bored one day, i decided to port everything to C Sharp using github copilot.
This was a great idea since it got me back onboard making this project, but also terrible at porting this. In general Java is pretty similar to CSharp so i knew i wouldn't have too much issues, but it took me several hours to parse the errors in Github copilot. For my larger classes, Copilot hit its character length after 500 lines, and refused to continue where it left off of if prompted more. I eventually got it to run but under the hood looks terrible, a mix of gdscript, java, and csharp coding standards.
all that was left was the GUI, and this was a bit of a challenge as well, however ive been dabbling with Godot for the past couple years, so I knew my way around it somewhat. The hardest part is all the nodes want gdscript (CSharp is doable, maybe i will port in the future, but the documentation is not there). translating between data types is a bit annoying from Csharp to Godot but eventually I got there.
So far the project i am happy with despite its down sides. Its a lot more fluid than my Java project, better visual design. It has all the rules and most of the features of my old java project. For a renderer and analysis board of 5D it is fully playable, and is only missing one major feature that Chessin5D had, namely undoing moves after submitting in analysis mode.
From here, I think I want to structure the releases as following:
Analysis including rewinding time, sidelines, re-write the parser so i can import varying formats that 5D chess custom games are in. Also redo the FileIO so it isn't sandboxed and can read/write PGN anywhere on your computer properly.
Studies including Square highlighting, Arrow Drawing, exporting and importing study files (will build upon analysis mode)
Rewrite the internals, optimize checkmate and move generation. This wont be much noticable but should help with speed and maintainability.
Optionally, if I have the motivation i will also try to:
Somehow connect to internet? maybe interface with some other API. This should be possible without rewriting too much but ive never written any netcode (I heard Mr Rodgers is good at it.)
Figure out a UCI like protocol for engines. maybe write my own engine which is standalone and also included in this project for people who want to play against bots. Maybe I can also fork one of the few bots that already exist and hook them up to some API i create with my GUI.
Files
Get 5DChess in Godot
5DChess in Godot
5D Chess in godot!
Status | In development |
Author | AquaBaby |
Genre | Puzzle |
Tags | 5d-chess, Board Game, Chess |
Leave a comment
Log in with itch.io to leave a comment.