/ard

Primary LanguageC

Ard

A multiplayer turn-based strategy game written from scratch.

For some information and screenshots check out the website

The Game Engine written in C with embedded Python, OpenGL, FreeType, libpng, and SDL for game client.

If you'd like to fork this code and turn it into an open-source game engine, please contact me, I will attach a friendly license.

All rendering in handled by OpenGL and I/O by SDL(Simple DirectMedia Layer), FreeType(TrueType fonts), and libpng.

Game logic is written in python and state only moves between C and Python when the user make some action, allowing the library to keep a high FPS while also allowing the game developer to write Game Logic in a high-level language.

One downside of the approach is that you must manually manage references to Python objects in C for the Python Garbage Collector, but this is quite easy once you see it. Simply pass a pointer to the object to a call to Py_DECREF when you're done with the object. This can be seen frequently in main.c.

There is a server written in TwistedPython which could probably be re-written in a more modern asychronous server such as node.

Features A* algorithm for pathfinding and peer-to-peer network connections which can be run over LAN but can also traverse NAT firewalls by having peers reply to TCP requests which were made to the server, a cute trick which I learned from Skype.

Some game logic is still needed, but the most glaring issue is that the AI hasn't been implemented.

Big thanks to Beej's Guide to Network Programming. https://beej.us/guide/bgnet/