View unanswered posts | View active topics


Post a new topicPost a reply
Previous topic | Next topic 

  Beginner BeginnerMember since: 02.07.2011, 13:46Posts: 42 Likes: 6
 

 Post Topic: [CryENGINE3 SDK] BuildMod
PostPosted 13.07.2011, 11:18 
Image

Build maps together with other people in multiplayer

Story of the development
About 2 years ago (in 2009) I had the idea to make it possible that players can build together a city in the Crysis Wars Multiplayer. I achieved this idea and the BuildMod was born. I made it better and better, more stability, more flexibility, more functionality and improved the performance. At the begin, only static objects could be placed, but after a while I added interactive objects support. So I often deleted the mod and made it new (for a better code structure). When Crysis 2 came out, I had implement it in this game. But I noticed that there were a lot of barriers (can't add new console commands, can't use actionmaps in multiplayer, can't set key bindings, upload limit by the server, cheatprotection kicked players everytime, ...). So I decided to implement this mod in the CryENGINE 3 Free SDK. There I have much more possibilities for this mod and it works fine.

What is it exactly?
With this mod you can build some stuff together with other people in realtime. You can place doors, lights, elevators, ventilators, physical objects, animated objects, particle effects, switches, teleporter, sound spots, forbidden areas, timer, trigger and static objects. Each object can be exactly configurated. Only the owner of an object can modify it. I made a efficient system to manage over 50.000 objects without any network or local performance issue. In Crysis Wars were a lot of memory leaks and so the memory usage rises while runtime, but now, with the CryEngine 3, there are fewer problems and better performance.

How to build?
It is quite simple: First you have to select a object what you want to place. You can find objects in the object gallery of the map. Shoot at an object to select it. Then there will be a text at the position of the selected object, which describes the object (owner, objectTyp, scale, parameters, ...). If the selected object is yours, you can modify it (move, rotate, scale or set object parameters about console commands). If you want to place the selected object, you have to go to an position where you want and press the place key ("return" for example). Then the object (a copy of the selected object) will be placed.

But if you want to import an object from Sandbox, you can do this on this way: Select the object in the Sandbox Editor and copy the geometry filename of it. After that, go back to the game, open the console and type in: "- create <press CTRL+V to paste>". Then your object should be there.

There are much more commands to modify objects. Here are some console commands:

- door user:me = Setup the object as a door and only the owner of this object can use the door
- light user:me red:1.0 green:0.0 blue:0.0 strength:3.0 = Setup the object as a red light with a strength of 3
- effect user:me source:explosions.flare.night_time = Setup the object as a particle effect
- anim user:me source:idle01_loop = Setup the object as a animation
- sound user:me source:music01.mp3 volume:0.5 radius:10 = Setup the object as a sound
- physic mass:50 density:1000 = Physicalize the object

But you don't have to set always all parameters, because they are optional. So you can write

- light user:me red:1.0 green:0.0 blue:0.0 strength:3

or

- light
- set user:me
- set strength:3
- set red:1
...

Here a small example to make a light with a switch:

1. Select the object which should be the door.
2. Type in console: - door user:me targetname:myDoor
3. Select the object which should be the switch.
4. Type in console: - switch user:me target:myDoor


How does it work?
All objects get saved on the current server every minute. I think this is enough, so there will be no data lost. If the server crashes, it will restart and loads the last saved map automatical. All objects are synchronous with the players and server. That means if a player turns on a light, all other players will see that at the same time, or if a player turn on music, the other players will hear it, too. So all objects are full synchronous. With switches you can call many objects at the same time. You can turn on all street lights of the city by pressing one switch for example. Or you can turn on the music, a ventilator and a particle effect by pressing a switch. This is possible by giving objects targetnames and tell the switch, which objects it should call.

I found out that the CryEngine 3 have a better memory handling than the CryEngine 2. The memory is still down at 560 MB with 2000 different objects. Without objects it is at 530 MB. So I am excited how much memory will the map need if there are much more than 50.000 objects. The BuildMod System compress and stores objects, which are not in the viewdistance, and delete them from the entity system. This will save memory and performance. And if the object is in the viewdistance again, it will be add in the enity system by the compressed data. The problem in Crysis Wars was, that every object which was deleted from the entity system, left unused memory in the RAM, which never gets deleted. And so the memory usage increased while the runtime.

Perhaps the mod gets a HUD for a better control. Everything is working about console commands, so the HUD will execute this commands to modify objects. But the main structure of the mod is working.

Current status


You can take a look at the project page: http://www.crydev.net/project_db.php?action=project_profile&team_id=319&project_id=315

Download

Filename: CryENGINE_3_BuildMod-Client.zip
Version: 0.925
Size: 3.80 MB
Last modified: 23.07.2013 19:20
Server-IP: Can be found on the download site. To connect type in console: connect <ip>

> > Download > >


Last edited by Pek3 on 26.07.2013, 12:23, edited 27 times in total.

User avatar   Beginner BeginnerMember since: 07.07.2011, 20:22Posts: 15Location: Slovakia Likes: 0
 

 Post Topic: Re: BuildMod
PostPosted 13.07.2011, 16:55 
Epic. Simply awesome.
I laughed when I saw the dance party. ;D


Canada?
User avatar   Trained Modder Trained ModderMember since: 01.09.2005, 22:13Posts: 202Location: Lebanon Likes: 0
 

 Post Topic: Re: BuildMod
PostPosted 13.07.2011, 17:30 
Awesome man


Nothing Is Impossible. The Only Inpossible Is Saying Impossible. So Don't Say It.
User avatar   Beginner BeginnerMember since: 23.11.2009, 15:41Posts: 65 Likes: 0
 

 Post Topic: Re: BuildMod
PostPosted 13.07.2011, 22:29 
nice .. :)
User avatar   Skilled Modder Skilled ModderMember since: 23.03.2011, 05:21Posts: 796Location: Alberta / Canada Likes: 12
 

 Post Topic: Re: BuildMod
PostPosted 15.07.2011, 02:30 
Brilliant.
  Beginner BeginnerMember since: 02.07.2011, 13:46Posts: 42 Likes: 6
 

 Post Topic: Re: BuildMod
PostPosted 19.07.2011, 15:38 
I updated this topic (please see first post).
  Beginner BeginnerMember since: 02.07.2011, 13:46Posts: 42 Likes: 6
 

 Post Topic: Re: BuildMod
PostPosted 22.07.2011, 13:34 
A new video about this mod is here. It is a funvideo and was made by YinYinSaka, special thanks to him :).

User avatar   Uber Modder Uber ModderMember since: 15.04.2008, 19:40Posts: 2321Location: London, UK Likes: 0
 

 Post Topic: Re: BuildMod
PostPosted 22.07.2011, 13:39 
So you got the console commands working?
  Beginner BeginnerMember since: 23.07.2011, 15:52Posts: 2 Likes: 0
 

 Post Topic: Re: BuildMod
PostPosted 23.07.2011, 16:09 
so cool
  Beginner BeginnerMember since: 06.07.2011, 10:08Posts: 4 Likes: 0
 

 Post Topic: Re: BuildMod
PostPosted 01.08.2011, 00:31 
I just saw a server running this mod in the server browser. How were you able to launch the dedicated server app so it loaded a mod?
  Beginner BeginnerMember since: 02.07.2011, 13:46Posts: 42 Likes: 6
 

 Post Topic: Re: BuildMod
PostPosted 06.08.2011, 11:41 
haacki47, Avio and I are still building on the city. Here is a video, which shows the current status (everything was built with this mod):
User avatar   Skilled Modder Skilled ModderMember since: 15.04.2008, 13:25Posts: 727Location: Russia, MoskowStatus: Online Likes: 18
 

 Post Topic: Re: BuildMod
PostPosted 06.08.2011, 14:36 
Fun video (ending sign XD) - hope someday with flash-based GUI (like Gmod) it will be popular.
  Uber Modder Uber ModderMember since: 18.01.2010, 23:11Posts: 1730 Likes: 1
 

 Post Topic: Re: BuildMod
PostPosted 06.08.2011, 16:06 
Very impressive work !

the video speed is a way too fast a tiring to watch ( eyes killed :O )
Even that i love the Video End sign too xD ( yes Crytek please fix a lot of bug and unworking stuff :p )
  Beginner BeginnerMember since: 02.07.2011, 13:46Posts: 42 Likes: 6
 

 Post Topic: Re: BuildMod
PostPosted 08.08.2011, 22:58 
@Lex4art
Yes, I hope it will be possible to create a GUI because I need the Source Code from Crysis 2 for that (not released yet).

@wootwoots
Thank you! Sorry, but I didn't wanted to make the video too long. A slower video will be coming from haacki47 ;).
User avatar   Beginner BeginnerMember since: 23.02.2008, 17:20Posts: 5Location: Sweden Likes: 0
 

 Post Topic: Re: BuildMod
PostPosted 10.08.2011, 19:04 
This looks amazing. Can't wait to see where you'll take it next.

I'm starting to run out of reasons to not seriously starting development of a Multiplayer Post-Apocalypse survival and exploration mod/indie! :D