{"id":15395113,"url":"https://github.com/goto-bus-stop/aocmultiny","last_synced_at":"2025-04-16T00:05:16.678Z","repository":{"id":66054123,"uuid":"59827149","full_name":"goto-bus-stop/aocmultiny","owner":"goto-bus-stop","description":"[wip] Tiny NAT-traversing Age of Empires 2 Multiplayer client.","archived":false,"fork":false,"pushed_at":"2016-12-27T21:14:50.000Z","size":520,"stargazers_count":6,"open_issues_count":13,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-16T00:04:52.608Z","etag":null,"topics":["age-of-empires","directplay","matchmaking","multiplayer"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/goto-bus-stop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-27T10:38:44.000Z","updated_at":"2020-04-21T07:34:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"a62c613e-9d5b-44e0-9c18-690733e6d806","html_url":"https://github.com/goto-bus-stop/aocmultiny","commit_stats":{"total_commits":132,"total_committers":2,"mean_commits":66.0,"dds":0.05303030303030298,"last_synced_commit":"2e23380c73c0c5334d4d1669036123110ef048fc"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goto-bus-stop%2Faocmultiny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goto-bus-stop%2Faocmultiny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goto-bus-stop%2Faocmultiny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goto-bus-stop%2Faocmultiny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goto-bus-stop","download_url":"https://codeload.github.com/goto-bus-stop/aocmultiny/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249173084,"owners_count":21224483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["age-of-empires","directplay","matchmaking","multiplayer"],"created_at":"2024-10-01T15:25:47.177Z","updated_at":"2025-04-16T00:05:16.663Z","avatar_url":"https://github.com/goto-bus-stop.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aocmultiny\n\nTiny NAT-traversing Age of Empires 2 Multiplayer client.\n\n\u003e VERY work in progress, it's probably pretty difficult to get it to compile.\n\nThe idea is to get a single portable zero-install executable that you can hand\nto a few friends and immediately start playing. No creating accounts, no\ninstallation, no router configuration, etc. Just the bare minimum.\n\n## Design\n\nFluctuating. I wanted to build the matchmaking part using IRC, but that's\nturning out to be a bit difficult, because you would need server-side\nadjustments to get IP addresses for the NAT traversal stuff (…I think.)\n\nAnyway, it comes in two parts: matchmaking and connecting. Matchmaking will be\nusing a nickname (no real authentication), and using public or passworded rooms\n(like IRC channels). Players can chat in rooms and the first player to join a\nroom (the host) can start the game. Initially, up to 8 players can join a room,\nbut in the future there'll have to be more for UserPatch spectator mode.\n(≤8 players + ≤32 spectators.) Connecting is probably going to be using ICE\nsomehow (libnice?), but I don't know yet how to direct Age of Empires traffic\nonto an ICE-established socket. All in due time :D\n\nUserPatch includes automatic port forwarding using UPNP, but that doesn't always\ncut it, and you still need to exchange IP addresses manually.\n\n## Building\n\nOn Linuxes:\n\n 1. Install Wine and Mingw32. Something like\n    `apt-get install wine mingw32 mingw32-binutils`.\n 2. Download and build [wxWidgets][] 3.1.0 using [MinGW][mingwbuild].\n 3. Download the last [DirectX SDK with DirectPlay (August 2007)][].\n 4. Symlink `dxguid.lib` and `dplayx.lib` from the DirectPlay SDK into `lib/`.\n 5. `make` to build\n 6. `make run` to run\n\nOn Windowses with Visual Studio:\n\n 1. Download and build [wxWidgets][] using [Visual Studio][vsbuild]. Import one of\n    the VS project files that comes with wxWidgets and build it.\n 2. Download the last [DirectX SDK with DirectPlay (August 2007)][].\n 3. Configure environment variables:\n    - `WXWIN=` path to your wxWidgets build base directory.\n 4. Import the AoCMultiny.sln solution file.\n\n## Credits/References\n\n - IRC: Took clues (and an IRC message parser) from [Fredi/IRCClient][]\n - DirectPlay: I used [@biegleux]'s Delphi [DPLobbySystem][] as a reference for\n   most of the DirectPlay lobby/game setup. I'm not sure if the sources are\n   still online, but I'll link them here if I can find them.\n - DirectPlay: The DirectPlay sections in the [DirectX 7 SDK documentation][].\n - nicesp: Took clues from [@RazZziel]'s [dpwsockx implementation][dpwsockx] and\n   [@solemnwarning][]'s [ipxwrapper][].\n\n## License\n\n[GPL 3.0][]\n\n[Fredi/IRCClient]: https://github.com/Fredi/IRCClient\n[@biegleux]: https://github.com/biegleux\n[DPLobbySystem]: https://web.archive.org/web/20140519214627/https://code.google.com/p/dplobbysystem/\n[wxWidgets]: https://wxwidgets.org/\n[DirectX SDK with DirectPlay (August 2007)]: https://www.microsoft.com/en-us/download/details.aspx?id=13287\n[mingwbuild]: https://wiki.wxwidgets.org/Cross-Compiling_Under_Linux#Cross-compiling_under_Linux_for_MS_Windows\n[vsbuild]: https://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide\n[DirectX 7 SDK documentation]: http://idlebeaver.ninja/dx7/\n[@RazZziel]: https://github.com/razzziel\n[@solemnwarning]: https://github.com/solemnwarning\n[ipxwrapper]: https://github.com/solemnwarning/ipxwrapper\n[dpwsockx]: http://github.com/razzziel/wine-dplay/tree/gsoc/dlls/dpwsockx\n[GPL 3.0]: ./LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoto-bus-stop%2Faocmultiny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoto-bus-stop%2Faocmultiny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoto-bus-stop%2Faocmultiny/lists"}