A strategic board game built with SDL3.
This game has been updated to be fully compatible with SDL3. The following changes were made:
-
Window and Renderer Creation
- SDL2:
SDL_CreateWindow(title, x, y, w, h, flags) - SDL3:
SDL_CreateWindow(title, w, h, flags) - SDL2:
SDL_CreateRenderer(window, index, flags) - SDL3:
SDL_CreateRenderer(window, name)
- SDL2:
-
Event Type Names
SDL_QUIT→SDL_EVENT_QUITSDL_MOUSEMOTION→SDL_EVENT_MOUSE_MOTIONSDL_MOUSEBUTTONDOWN→SDL_EVENT_MOUSE_BUTTON_DOWNSDL_KEYDOWN→SDL_EVENT_KEY_DOWN
-
Initialization
- SDL3's
SDL_Init()returnsboolinstead ofint - Check with
!SDL_Init(SDL_INIT_VIDEO)instead ofSDL_Init(SDL_INIT_VIDEO) < 0
- SDL3's
-
Timing Functions
SDL_GetTicks()now returnsUint64instead ofUint32
-
Mutex and Condition Variables
- API remains mostly the same:
SDL_CreateMutex(),SDL_DestroyMutex(), etc. SDL_CreateCondition()andSDL_DestroyCondition()are used
- API remains mostly the same:
- Fixed array indexing bug in
gui.cwhere*current_allowed_piecewas used instead ofcurrent_allowed_piece[i] - Improved click handling to allow re-selecting pieces
- Added audio feedback for moves and selections
makemakeOr use your preferred build system with the provided source files.
- SDL3
- SDL3_net
- SDL3_image (optional)
- SDL3_ttf (optional)
- C11 compatible compiler
./bulltrickerOr on Windows:
bulltricker.exe- Mouse: Click to select and move pieces
- R: Rotate board
- U: Undo last move
- N: New game
- ESC: Quit
Bulltricker is a strategic board game with unique pieces:
- Pawns: Move diagonally forward
- Queens: Can move diagonally in multiple directions
- Kings: Special pieces that must be captured to win
Bulltricker_Data/
├── Logs/ - Game logs
├── Saves/ - Save files
├── Sprites/ - Game graphics
├── Sounds/ - Sound effects
└── Fonts/ - Font files
main.c- Entry point and main game loopinit.c- Initialization and board setupgui.c- Graphics and user interfacemove.c- Game logic and move validationutilities.c- Helper functionsthread.c- Threading and synchronizationclient.c/server.c- Networking (for multiplayer)
init.h- Initialization functionsgui.h- GUI functionsmove.h- Move validationutilities.h- Utility functionsthread.h- Threadingclient.h/server.h- Networkingnet.h- Network protocolconfig.h- Configuration
[Add your license information here]
Developed with SDL3 for cross-platform compatibility.