Hi developers and leechers,
today I'd like to show you the project I started some days ago.
What is SplixIO?
Splix is a strategy game, as many IO games. Move around your personal zone to expand your zone.
Simple explanation showed on Splix' site:
Why a private server?
I like the game very much, and have nothing but respect to the developers of it, yet I'm still a curious George wanting to expand my knowledge.
Never before have I made my own C# project, so bear with me as you might see some irregular code.
Besides wanting to expand my knowledge, it seemed a good idea to me to let people create their own private servers, allowing them to play with their friends, and their friends only, in for instance a much smaller map.
Just like Ogar did with Agar, I can create some custom gamemodes too which is really fun to look forward to.
How does it work?
Splix works through websockets. It uses a javascript client, and in my case a C# server.
The library I'm using for C# WebSockets is Flex, the reason for this is simply because I had experience with it.
I simply modified the client, allowing me to log packets and learning more and more about the game.
Why C#?
You're either pro- or anti-C#, I "grew up" programming in C# as I was always working on Habbo related projects. Therefore I'm pro-C#. I'm not againt Java, don't get me wrong, but I simply love Visual Studio.
The server is 100% selfwritten, though does it contain some inspiration from some projects I've been working with lately.
Progress?
The basics are done. The server handles and sends packets properly.
Though I have yet to configure all the incoming packets, and the game itself etc.
Snippet
This snippet is just an example of me working with the various packets, learning more about them, and the meaning of the bytes within them.
So yeah
That's it for now, just wanted to share the idea with you!
I'll probably release it when it's done, so stay tuned for that I guess..
Love, :blush:
Keiz
today I'd like to show you the project I started some days ago.
What is SplixIO?
Splix is a strategy game, as many IO games. Move around your personal zone to expand your zone.
Simple explanation showed on Splix' site:
Why a private server?
I like the game very much, and have nothing but respect to the developers of it, yet I'm still a curious George wanting to expand my knowledge.
Never before have I made my own C# project, so bear with me as you might see some irregular code.
Besides wanting to expand my knowledge, it seemed a good idea to me to let people create their own private servers, allowing them to play with their friends, and their friends only, in for instance a much smaller map.
Just like Ogar did with Agar, I can create some custom gamemodes too which is really fun to look forward to.
How does it work?
Splix works through websockets. It uses a javascript client, and in my case a C# server.
The library I'm using for C# WebSockets is Flex, the reason for this is simply because I had experience with it.
I simply modified the client, allowing me to log packets and learning more and more about the game.
Why C#?
You're either pro- or anti-C#, I "grew up" programming in C# as I was always working on Habbo related projects. Therefore I'm pro-C#. I'm not againt Java, don't get me wrong, but I simply love Visual Studio.
The server is 100% selfwritten, though does it contain some inspiration from some projects I've been working with lately.
Progress?
The basics are done. The server handles and sends packets properly.
Though I have yet to configure all the incoming packets, and the game itself etc.
Snippet
This snippet is just an example of me working with the various packets, learning more about them, and the meaning of the bytes within them.
Code:
class MyDeathComposer : ServerPacket
{
public MyDeathComposer(int SecondsAlive, int HighestRank, int PlayersKilled, int BlocksCaptured, int DeathType, string KilledBy = "")
: base(ServerPacketHeader.MyDeathMessageComposer)
{
base.WriteInt(0); // Blocks captured 1
base.WriteInt(0); // Blocks captured 2
base.WriteInt(Convert.ToInt32(Math.Floor(Convert.ToDouble(BlocksCaptured) / 256.0))); // Blocks captured multiplier
base.WriteInt(BlocksCaptured % 256); // Blocks captured remainder
base.WriteInt(Convert.ToInt32(Math.Floor(Convert.ToDouble(PlayersKilled) / 256.0))); // Kills multiplier
base.WriteInt(PlayersKilled % 256); // Kills remainder
base.WriteInt(Convert.ToInt32(Math.Floor(Convert.ToDouble(HighestRank) / 256.0))); // Highest Rank Multiplier
base.WriteInt(HighestRank % 256); // Highest Rank remainder
base.WriteInt(0); // Seconds alive 3th
base.WriteInt(0); // Seconds alive 2nd
base.WriteInt(Convert.ToInt32(Math.Floor(Convert.ToDouble(SecondsAlive) / 256.0))); // Seconds alive multiplier
base.WriteInt(SecondsAlive % 256); // Seconds alive remainder
base.WriteInt(0); // Last time no1 1
base.WriteInt(0); // Last time no1 2
base.WriteInt(0); // Last time no1 3
base.WriteInt(0); // Last time no1 4
base.WriteInt(DeathType < 0 || DeathType > 3 ? 1 : DeathType); // Killed by, 1=player, 2=the wall, 3=yourself
base.WriteString(KilledBy); // Killed by
}
}
}
So yeah
That's it for now, just wanted to share the idea with you!
I'll probably release it when it's done, so stay tuned for that I guess..
Love, :blush:
Keiz
Attachments
You must be registered for see attachments list