Giter Club home page Giter Club logo

hexchess's Introduction

HexChess

HexChess is a hexagonal chess program powered with the Godot Engine. It includes several variants of hex chess (Glinski, McCooey, Hexofen), basic AI and peer-to-peer multiplayer.

To manipulate the source code you'll need Godot 3.5 .NET version. The code is licensed under the MIT license, feel free to use it in your projects. However, there are additional restrictions on some visual assets; check subdirectories for more info.

Compilation

Starting from version 2.0, the app includes a portion of code written in Rust. If you want to compile it, refer to the Rust/Godot setup instructions here.

As soon as you have your setup ready, open a project directory and start the compilation with 'cargo build' command.

After the compilation is finished, move the resulting library file to the 'godot' subdirectory. For example, on Windows, when using an optimized build, use this command:

Move-Item "target/release/hex_chess.dll" -Destination "godot/hex_chess.dll"

On Linux, use this command:

mv target/release/libhex_chess.so godot

After moving the library, start the game normally via the Godot Engine. If you don't want to compile the Rust portion of the code and just want to modify the GDScript part of the project, you can use a precompiled library file from the latest release by placing it in the 'godot' subdirectory.

Screenshots

Local game against AI

Networked game

hexchess's People

Contributors

esbudylin 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

Watchers

 avatar  avatar  avatar

hexchess's Issues

I may need some help transferring HUD updates to the remote in multiplayer.

I may need some help transferring HUD updates to the remote in multiplayer.

I want toe battle report transferred and also to update the stats stuff.

This stuff is in the commits I made today for HexChessWar.

Do you think you might help to bring me up to speed with this?

In the meantime, I will Try to keep moving forward.

drew

Promotion Hexes

In the Glinski variant it is possible for the rightmost (and leftmost) pawn to promote in their first move by taking towards right (and left) and reaching the opponents promotion hex.

Syncing forks and more

Can you please email me at [email protected] and I will send you my daily email.

(If you have tried in the past, it has not made it to me.)

Can you give any advice with syncing forks?

At a minimum, I want to keep up to date with your changes.

Are you interested in adding my Chess War stuff to your repo?

all the best,

drew

Looking for help adding Chess War Features to this program.

I have begin trying to modify World.gd to add a simple chess war level 1 feature to this program.

I am not understanding something and am looking for help, hints, to be pointed in the right direction.

If you drop this version or World.gd into the program and run you may see what I am trying to do and where I am going wrong:

https://github.com/zotz/bitsandpieces/blob/main/Hexagonal_Chess_World.gd

There are some comments at the top of that file that provide links that might help you grasp what I mean by chess war.

I need to jump in at the point where a piece is taken, fight a battle, and then leave the winner on the board and remove the loser. In regular chess, the attacker is always the "winner", in chess war, the defender sometimes wins.

Help with logic differences in new player_turn function.

I have begun working in the forked code. I think I am making decent progress.

Currently trying to get L1 battles working.

It would be very helpful if you could briefly outline the logic flow / thought process in the new code.

This is a snippet:

` print("In Game.gd in func player_turn")
if sync_mult:
active_piece = get_node(game_type_node.active_piece_path)

if clicked_cell in $TileMap.chessmen_coords:
	if game_debug: print("Active piece is: ", active_piece)
	# Tle player tunr logic seems very different.
	# perhaps I kick off the fight about here
	dpiece = $TileMap.chessmen_coords[clicked_cell]
	if war_level == "Level0":
		if game_debug: print("\n\n-----In War Level: ", war_level)
		warresult = dpiece
	elif war_level == "Level1":
		if game_debug: print("\n\n-----In War Level: ", war_level)
		warresult = cwl1(active_piece, dpiece)
	elif war_level == "Level2":
		if game_debug: print("\n\n-----In War Level: ", war_level)
		warresult = cwl2(active_piece, dpiece)
	else:
		warresult = dpiece

	#$TileMap.kill_piece($TileMap.chessmen_coords[clicked_cell])
	
	$TileMap.kill_piece(warresult)`

Then I think this is messing me up:

$TileMap.move_piece(active_piece, clicked_cell) $TileMap.draw_map() $TileMap.update_jumped_over_tiles(active_piece)

I am moving the active_piece to the new cell after it has lost the battle and been "$TileMap.kill"ed.

Hints would be greatly appreciated.

Once I get Level1 going, I will move on to level 2.

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.