First i had to think about what tools / assets i need without reinventing the wheel (for Unity3D):
- must be good for up to 1000 players
- 3D models (for an economy simulation)
- Open World (Buildings, Weather, Day/Night, Water, etc.)
- with an Unity integrated editor
- Launcher / Patcher
- with easy upload of updates
- User interface
- Sound and music
- with an intelligent, central sound manager
- Character sounds
- Game music
- UI sounds
- other tools and assets
- Mesh Combining
- Loading screens
- Post processing
In this first part i will only cover the networking and 3D models.
From the beginnig of the project one question was important: Is it possible for me to develop a small MMO? Are there good multiplayer solutions? I started to search for days and finally i found the best asset for me (uMMORPG)! Not only the networking is ready, also all needed (rudimentary) features likes account management, character creation, inventory, equipment, quests and many many more. The developer also optimized Unity's networking (HLAPI Pro). With this i found the perfect basis with that i save month of own work.
I've experimented for weeks, i extended the core, wrote addons and reported bugs to the developer. The community and the developer are very active and helpful. Thumbs up!
With a good server and implementaion of my logic it could be possible to build a stable small MMO. But i think nobody has really stress tested that asset for now. We will see.
Notice: I've read that Unity's netcode is not the best for an MMO, so i searched for alternatives like ForgeNetworking. But with this tools i only have the basic communication and i must implement all needed MMO features my own. That would take month.
This was a hard decision. I've built a prototype with uMMORPG. I've installed Blender and tried to build a small game world. After more than one week I had 10 own 3d models. The first game character was build with Make Human. But the style of my own work was not that I wanted. Coding and 3D asset creation? Once more, that would be take month.
So i visited the Unity Asset Store and started searching for 3d models. I really like the low poly style and thought about to try some of the found assets. But that would be just a few of the needed models and i had to create more with that style. Then i come accross with a low poly "block" package with many of the needed models i was searching for. After i inspected the developers profile, I saw that he has some big bundles with all the stuff i was looking for. What luck!
I decided to use that big bundles (Simple World 1 und Simple World 2) for Tycoon$. I really don't need more than that bundles, no more characters, nothing. Even the animals for the farm are animated. Great!
Within a week of my vacation I've built a small open world (name of the city is Tycoopolis). Enough space for 100-200 players. The amount and variety of the 3d models is extrem. But i was just missing some features in my open world. What is a world without day/night toggle, weather and suitable water?
Back to the asset store. It did not take a long time and I found Enviro. I did not have to think long. Day/night/weather system, what can be syncronized over the network. Wow! Buyed, installed, configured and within a couple of minutes my game world had a real atmosphere, because Enviro comes with some ambient sounds too. The weather system now is synced by the server with all clients.
I wanted more and i still had budget. Enviro comes with snow and rain and integrates different shader systems that can show snow and wetness on game objects. After some investigation my choice fells on the UBER Shader. And it was a great decision. After only 5 minutes my complete city was wrapped on snow or wetness from the rain. How cool and easy was that?
A small detail was already missing. Tycoopolis is an island with a harbor and a beach. So i needed water that matches the style. In the asset store are many assets for that and I'll make it short here. Currently i use the Low Poly Water. The style is great for my game. But later i will need water with physics (Buoyancy) and some other features, so that i have to inspect some other assets on my list.
I want to close that first part with a conclusion. Through todays access of really great tools and assets it is possible to develop a prototype within a few weeks, if you can accept the given style. The current style of my used assets fits very well to the game and i am very happy about all the saved time. I've developed only 4 weeks and could invite you to test the result. But now i have to do the real work, the logic what the game will make it to that i want.
In the second part I will introduce some more tools and assets I use. It is so cool to walk through the snow and hear your footsteps.
Links of my used assets in this part:
Spoiler: If you don't want to wait for the second part, you can browse through the complete list of my used assets: Assetstore.unity.com