Recently, I have been fast prototyping a new game project. Here is the approach.
1. FontEnd--Hotfix Support
Hotfix is essential, only in China, for better customer experience and more buggy apps.
Lua vs ILRuntime(C#)
Both of the hotfix approaches using interpretor to interpret files(Lua, IL Dll). They share roughly same performance.
As Unity supports Code in C#, it makes ILRuntime the perfect approach for hotfix using ILRuntime as front end programmers only need to focus on one language C#.
AOP Hotifx
With well structured design of front end, you can make Unity runs all compiled C# code without ILRuntime initially, and only trigger ILRuntime after hotfix happen, as these C# files are identical.
2. Backend--Network
ORUDP(Ordered Reliable UDP) is used in MOBA and Lidgren is the great open source networking solutions on UDP. Lidgren could integrate into Unity with little effect with all the github samples around.
3. Backend--Property System
Property systems are used for state synchronization. It could support replay. Just enter the observe mode in LOL, you could freeze the watch and play later.
Summary
With all these, you have a simple MOBA game prototype. Coding in this approach would be extremely fast as code could be shared between ILRuntime and purely C#, and be shared between front-end Unity project and back-end C# servers.
We do not continue the C# server approach due to already existing of great support of C++ game servers. So the left work is just convert C# related server code to C++. Ignore Lidgren and choose TCP for slow update MMO(refer to the slow update game as position is not frequently updated).
1. FontEnd--Hotfix Support
Hotfix is essential, only in China, for better customer experience and more buggy apps.
Lua vs ILRuntime(C#)
Both of the hotfix approaches using interpretor to interpret files(Lua, IL Dll). They share roughly same performance.
As Unity supports Code in C#, it makes ILRuntime the perfect approach for hotfix using ILRuntime as front end programmers only need to focus on one language C#.
AOP Hotifx
With well structured design of front end, you can make Unity runs all compiled C# code without ILRuntime initially, and only trigger ILRuntime after hotfix happen, as these C# files are identical.
2. Backend--Network
ORUDP(Ordered Reliable UDP) is used in MOBA and Lidgren is the great open source networking solutions on UDP. Lidgren could integrate into Unity with little effect with all the github samples around.
3. Backend--Property System
Property systems are used for state synchronization. It could support replay. Just enter the observe mode in LOL, you could freeze the watch and play later.
Summary
With all these, you have a simple MOBA game prototype. Coding in this approach would be extremely fast as code could be shared between ILRuntime and purely C#, and be shared between front-end Unity project and back-end C# servers.
We do not continue the C# server approach due to already existing of great support of C++ game servers. So the left work is just convert C# related server code to C++. Ignore Lidgren and choose TCP for slow update MMO(refer to the slow update game as position is not frequently updated).
Comments
Post a Comment