Contraption Maker

Contraption Maker

View Stats:
gorilla nest Dec 16, 2013 @ 2:31pm
Alpha 4 released. Now with MULTIPLAYER!
Alpha 4 is out there and ready to go! Your game should auto-update soon if it hasn't already.

The main focus for this version has been on getting multiplayer working. You can now build together with other people and make contraptions together! Create or join a server and start building together. This is the very first version of it, so beat on it and let us know what you think and what you would like to see.

Kevin has been really deep into making a lot of base level float to integer calculation changes in the physics. This is an extremely in depth process, and he wasn't able to get it done in time for this build. This means that he hasn't been able to get any new parts in, but when it comes it will be a super awesome change. It will allow for super helpful features like cut & paste, and it will fix a number of remaining determinism issues so that contraptions will run consistently.

Here is a full list of all the changes and fixes. Many of the bug fixes seen here were for multiplayer builds that were not yet public, so you can ignore those.

This feature has been on our list for a long time, and it's so exciting to finally get version 1.0 out there. In this very first version of multiplayer, you can create or join a server and build cooperatively with people. This behaves almost exactly like the current "make" mode, but you can play together with up to 7 other people.

This is a very exciting first step. Sean and Keith put some amazing work into this over the last month, and their effort really shows. It may open up the door for future types of online play like puzzle solving or a versus mode. Join some friends, or build with fellow community members and let us know what you think!

New Sounds
Contraption Maker is now much less silent. New sounds have been added for the following parts:
  • Whistle
  • Solar panel
  • Lawn mower motor
  • Cat-o-matic
  • Egg timer
  • Generator
  • Lasers
  • Anti-grav pad
  • Cannon
  • Balloon pop
  • Scissors
  • Bellows
  • Egg break
  • Fish bowl
  • Mechanical trampoline
  • Ray gun
  • Toaster
  • Vacuum

Holiday Scenery
A new winter themed set of holiday scenery has been added. Play around with snowballs, igloos, and candy canes.

General Improvements
  • Auto-save backup: After you save a contraption for the first time in make mode, it will now auto-save every 60 seconds. If the game crashes, or you quit without saving, you will have a backup. When reloading a contraption, we check to see if there is a newer auto-save. If there is, you are given the option to load the new version, or your older saved version.
  • Creatures: Adjustments have been made to Tim and his fellow animals. Waldo and Milton will now angle themselves with walls as they walk up them, creatures will now work correctly on conveyor belts, and Tim now has a faster running state that he can be set to. Some of these changes may affect how your contraptions with creatures behave, so be sure to check them out and make any adjustments needed.
  • Official puzzle tweaks: Tweaks have been made to some of the official puzzles to remove some of the more crazy exploits.
  • Text field improvements: You can now move around in text fields with the arrow keys. If you make a spelling error in the beginning of your puzzle description, you no longer have to delete everything in front of it.

Bug Fixes
  • Do not send object move messages back to originating client.
  • Display chat notification when chat window is under other windows
  • Chat window can be minimize and closed
  • Hide puzzle options when creating puzzle snapshot    
  • Show notification icon when chat message comes in and window is minimized or closed.
  • Fixed crash when cloning scenery and a network update comes in   
  • TextField fix to do with children sprites in updateLabel()
  • Fixed Arrow and various Symbol keys not working in TextFields on Windows
  • Fixed text not wrapping past the X extents of a TextField.  Fixed some sign mismatches.  Fixed minor bug with the Down Arrow cursor when the line below was shorter than the current line and there was longer line below that one.
  • Can now insert/delete text based on the cursor position inside of a TextField
  • Remove existing move group with same id
  • Delete move groups for client when it disconnects
  • Show avatar name above avatar
  • Send dropped message before sending new picked up message.
  • Increase rate of part move updates
  • Part move messages are sent
  • Show objects currently being moved WIP
  • Fixed several bugs related to animation panel.
  • Fix initial object id generation bug    
  • Reconnect to master if the connection is lost
  • Allow joinserver command to optionally specify port.
  • Client now disconnects from master after connecting to game server.
  • Fix crash when cloning scenery
  • Only use networked options in level hash.
  • Display level hash when stats are visible in multiplayer.
  • New stat framework
  • Make sure the right controller is always current when the active layer changes
  • Display chat message when player leaves/joins.
  • Set network dirty on opacity change.
  • Recreate info sprites on part update
  • Remember chat window position and size.
  • Fix nextId calculation    
  • Disable caching (hopefully for real this time) on OSX
  • Make sure we actually remove all windows! Could fix a memory leak
  • Unregister with master server when shutting down server.    
  • Display screenshots for selected servers.
  • Ignore selected part updated in the controller if the part/scenery layer is not active.
  • Fix for extension cords not propagating dirty flag.
  • Fix the clientExternalPort param.
  • Fix JSON params
  • Fix introduce command handling in server   
  • Clear server list when reloading.
  • Show slots and builders in MP browser
  • Update user list when users connect / disconnect.
  • Get game working with new master server
  • Chat button
  • Slide options up when publishing    
  • Fix dialog control alignment.
  • Max client in create server dialog
  • Get list of friend ids from Steam to use when querying master server.
  • Server passwords work.
  • Interpolate avatar positions
  • Do not disconnect until they leave Make mode
  • Handle the case where a client disconnects and reconnects and gets the same id    
  • CRC code generation for ensuring MP consistency   
  • CMServerInfo object to encapsulate server settings.
  • Finally found the memory corruption bug. Thank you OSX debug malloc.
  • Animation refactor
  • More animation refactoring
  • Scenery refactor       
  • Set parts attached to a rope to dirty
  • Select correct end of rope when reselecting the rope       
  • Fix for empty level id initialization.
  • Generate starting object ids using the initial load
  • Set document modified when text properties closes.
  • Fix overlap check. Set network dirty flag for text.        
  • New server browser WIP
  • Ability to now select attached Ropes or Belts that are connected to an a...
  • Recheck overlaps after updating parts   
  • Compress game server traffic
  • Ability to now select attached Ropes or Belts that are connected to an already selected part.    
  • Puzzle goals are networked.
  • Reselect scenery after network updates. Transmit animation changes.
  • Cloning,push back and forward work across network
  • Use parts updated message for creation
  • Scenery part creation propogates
  • Scenery changes now are networked
  • Make sure ids are generated for old layers / scenery objects.
  • Object ids are unique per layer
  • Show spinner while connecting to server
  • Gray out background when showing a modal dialog.
  • Block server updates while moving parts
  • Create default sprite for unknown avatar.
  • Timeout connecting to external IP, connect to internal IP
  • Register internal IP with master.
  • Send internal IP to master server.
  • Pause updates while simulating.
  • Fix initial id assignment bug.
  • Resort parts by id when added / removed.
  • Optimize avatar updates
  • Client and server can communicate through NAT   
  • Object cloning works across clients
  • Clients have non-overlapping id generators
  • Abstract server source from server for future standalone server.
  • Break network manager into client / server   
  • Electrical cord work.
  • Recreate parts on update.
  • Update avatar position 10 times a second
Last edited by gorilla nest; Dec 16, 2013 @ 2:31pm
< >
Showing 1-10 of 10 comments
missbackpack Dec 16, 2013 @ 6:00pm 
Wow! I wasn't expecting any multiplayer support so soon. I'd check it out if I didn't have a linear algebra final in 16 hours. :berserk:
gorilla nest Dec 18, 2013 @ 3:46pm 
We just pushed a new build (version 0.092) that fixes a few bugs from yesterday:
  • Fixed bug where server browser would not update immediately
  • Crash fixes for community browser
  • Fix news dialog crash
  • Puzzle fix for "Bright Idea" not running properly
gorilla nest Dec 19, 2013 @ 4:04pm 
A new build (version 0.094) was just added with a few new parts for the holiday scenery set.
Aldrenean Jun 5, 2014 @ 1:10pm 
What port does the multiplayer use??!?!? You gave us a joinserver command with port specificity but I just googled for about 20 minutes and I can't find the default port anywhere, clearly I need to forward it becuase my cousin and I cannot join each others servers as-is no matter what we try.
keithj2 Jun 5, 2014 @ 3:56pm 
The default port is 58962. You can change that by editing and changing the value for "network.gameserver.port". If you don't go through our master server, then you will have to set up portforwarding on your router. What happens when you try to create a server using our master server? Does your cousin see the server but cannot connect? Or does the server not show up at all?

Please post back and let us know if joinserver works for you.
keithj2 Jun 5, 2014 @ 3:58pm 
Also the server uses UDP so make sure your router is letting UDP traffic through.
Aldrenean Jun 5, 2014 @ 5:48pm 
So if I use the Create button in-game, I shouldn't need port forwarding? Then yes, the first option: We can see each others' servers but joining them results in failure after the "Internal IP" phase.
keithj2 Jun 6, 2014 @ 5:40am 
Correct we use a technique called NAT punch through to get the routers to allow traffic to pass between them. Unfortunately, there are a few routers that do not support this, called symmetric NAT routers. You can try port forwarding, or you can set up a network tunnel between your computers using something like pagekite:
Gamer_Kought Jul 7, 2014 @ 11:45am 
Hi, even with my ports forwarded on both ends, the multiplayer still doesn't work. I tried editing the config file to try a different forwarded port, and both of us have tried hosting, to no avail. We also tried connecting from the console and from the server browser.
Oykenshui Jul 7, 2014 @ 12:04pm 
Wow, the devs really pumped out the good work for this game :D Keep up the good work guys! The game just keeps getting better and better
< >
Showing 1-10 of 10 comments
Per page: 15 30 50

Date Posted: Dec 16, 2013 @ 2:31pm
Posts: 10