Hacking GCN Project HomeLand (GameCube) Custom Server Development

  • Thread starter Thread starter NewGBAXL
  • Start date Start date
  • Views Views 1,191
  • Replies Replies 1
  • Likes Likes 4

NewGBAXL

Professional Helirin Pilot
Member
Joined
Sep 20, 2020
Messages
183
Reaction score
261
Trophies
1
Age
22
Location
Florida
XP
1,725
Country
United States
This is a little bit different than just translating some GameCube games, (see here), the people behind the HomeLand translation for Nintendo GameCube are also working on some custom matchmaking servers for it as well! (That includes me :))

Brief History of Service​

HomeLand is an MMORPG for the Nintendo GameCube, where a "God Player" and 35 clients do quests and puzzles and fight monsters and all of that. Servers (God Players) are actual people on real GameCubes! In addition to a manual Enter IP Address mode (the game is peer-to-peer), there was also a Matchmaking Server that would give you a nice list of current servers and set you up with the one you wanted. The goal is to reimplement that on the matchmaking server side.

Hosting the Server​

We need someone willing to run a webserver for the project, even if only for a temporary time with low traffic while the server is being developed. It runs off of port 12417, with a custom (reversed) protocol. It needs .NET, Docker, and MySQL to run. These dependencies might change in the future as they were originally taken from the .hack//fragment custom server.

Technical Information​

The game uses MassplayerSystem network engine (MPS), as does .hack//fragment and Shutoko Battle Online. .hack//fragment custom servers have been worked on for awhile and handle all of the super low-level stuff, such as socket programming, message passing, and encryption. However, there's a bunch of HomeLand specific messages and commands that need to be implemented so the game can communicate with the server (i.e. SetRoomDescription).

Contributing​

All skill levels and backgrounds are welcome! Specifically..
  • Networking (games specifically): Even it's in Unity or another new engine, it's not much different than anything you may have seen before. (Low-level stuff is already mostly done.)
  • GameCube/Wii reversing and/or decompilation: Ever made a cheat code? Worked with Ghidra? Dolphin Debugger? Helped with a decomp project? Maybe even made a homebrew app? Helping find variables and code on the GameCube side will help a lot too! Knowing what the game expects helps a lot ;)
  • MySQL: Not super important but would help me a lot since I don't have a lot of practice..
  • Working on the .hack//fragment server: Super cheesy, I know. But seriously if you are someone on that team reading this and want more fun with the server you helped create, we'd greatly appreciate it!
This is my second time working on a networked game and first time writing code for custom servers, so I'm still learning quite a lot and there's much more I still don't know. So if you're experienced bear with me, I am a fast learner. And if not, I do know lots of conceptual stuff and I've been romhacking GameCube & Wii for awhile so I'm a resource as well.

DOL Translations Discord: https://discord.gg/axzRyKtQJx
HomeLand Discord: https://discord.gg/acnawR48za
Source Code: https://github.com/DOL-Translations/HomeLandServer/
 
Last edited by NewGBAXL,
Making the HomeLand server was so much fun! Challenging at times but learned a lot and definitely can do it again!

Now starting to tackle other games using Massplayer System.
MPS PlayerServer is what HomeLand & .hack//Fragment use, peer-to-peer with central matchmaking server. The Netslum .hack server codebase works great for these.
MPS Enterprise is what everything else uses. Full on multiple levels of abstraction and other goodies. Fantasy Earth Zero, Shutokou Battle Online, and Tokimeki Memorial Online are the games that are possible to revive with this so will be working on a whole new codebase to facilitate them. Yes ik SBOL has an existing codebase but I want to make a fresh one, designed with TMOL in mind, with FEZ support added after. Maybe port SBOL over afterwards if the new codebase is that good.

I've had some experience with making custom game servers at this point, but I can't do it alone! Sierron's been helping me with the HomeLand server, (fixing a whole bunch of mistakes I've made..) and implementing lots more features :toot: New people are great too, but custom server veterans would be greatly appreciated. The low-level stuff has been mostly figured out, now it's implementing that in a bulletproof, scalable way with design choices from the other codebases and plenty of new tricks too.

Shiny new Discord server for the project, anyone's free to stop by :)
https://discord.gg/U5NXWXJDVM

*p.s. yes the HL server is almost complete, there's a breaking bug currently preventing us from joining rooms; if anyone could help with that that would be really awesome :grog:
 

Site & Scene News

Popular threads in this forum