Guns Of Icarus Online

Main => General Discussion => Topic started by: Atrusario on January 12, 2016, 10:47:36 pm

Title: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on January 12, 2016, 10:47:36 pm
Guns of Icarus CHAOS
Lobby Randomization Utility by Atrusario

(https://lh3.googleusercontent.com/-7DyWorDPq1Y/VyqpGWqc7XI/AAAAAAAAAmI/Wxm0mdo3sjUA6GJuO-K8HbwnNrY5QBmZgCCo/s556/goiochaoisborder1.3.0.png)

For those of you who have never played CHAOS before, it is essentially
comprised of randomizing the positions that lobby-goers play. Gunners
become Engis and Pilots become Gunners. It truly can become CHAOS.

This is often done by entering the names of those playing into an external
utility and then reading back the new positions in game. This process can
become quite annoying. Right now, there is no way to integrate CHAOS
directly into the game, but this program strives to make setting up CHAOS
slightly less annoying.

With this application, you can randomize the following attributes:

*ship type
*ship weapon layout
*player positions
*player loadouts

~V~ For those of you bored of reading, you can skip to the download link below ~V~


Screenshot Instructions

Thanks to a brilliant idea by my good friend PeterPun, this program
now allows you to input a screenshot of your lobby, and it will extract the
data for much easier CHAOS! Thank you to everyone who's helped improve
CHAOS, this program, and the community in general!

Simply take a screenshot of your lobby, save it to a file, and hit the button
labeled screenshot. The program supports .png and .jpg
files types. Be sure that Guns of Icarus is in borderless window when you take
the screenshot. The game must be filling the entire screen to extract the data
properly, since it relies on the ratios between objects on the screen.

Networking Instructions

By far the most difficult challenge faced while developing this program was
communicating the effects of the randomization to the rest of the lobby.
To solve this problem, this application includes a server and client system
that allows other people running the program to connect to a single client.
When that client randomizes the lobby, they can send out the data to all of
the connected clients. From there, each person can see and enter their own
data into the game, exponentially speeding up the process of transferring data.
It certainly beats doing it all over voice. :P

Of course the downside is that the hosting client must be port-forwarded.
The people connecting, however, do not. There are instructions below regarding connecting to and setting up:

Connecting to a Hosting Client:
1. Retrieve the ip address and port from the person hosting
2. Open GOIO CHAOS and press the button labeled server connect
3. Enter the ip address and port in their respective text boxes
4. Enter your GOIO user name in its respective text box
5. Press the button labeled server connect
6. Assuming the connection is established successfully, the screen should read waiting for lobby data. This is a good thing!
7. As soon as the hosting client presses the button send lobby, the data should appear on the screen. Keep in mind you can only view it, not edit it!

Hosting:
1. Open GOIO CHAOS and press the button labeled start server
2. Enter the desired port into its respective text box. Note: The desired port must be port-forwarded
3. Press the button labeled start server
4. The server should now be running. Hover over either server button to reveal the server data (ip address, port, and connected clients)
5. Press the button send lobby when you are ready to send your lobby data to all connected clients


DOWNLOAD (http://www.mediafire.com/download/ebjb5wac3gl55ti/GOIO_CHAOS_1.3.3_by_Atrusario.zip)(1.3.3)

+Improved screenshot import quality
+Updated screenshot loader to support the new GUI


1.3.2

+Added the ability to input a lobby screenshot
+Now shows crew members to swap


1.2.0

+Added probability weights to the randomizer

1.1.0

+Added the server and client system
+Added clipboard functions to text boxes
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Schwalbe on January 13, 2016, 04:00:45 am
Sorry, couldn't held myself. (https://www.youtube.com/watch?v=exdq_7_mEZw)
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: FranckM on January 13, 2016, 10:54:00 am
What do you mean by exception list what do you not want to be randomized?
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on January 13, 2016, 10:59:19 am
Everyone has a few items that they absolutely hate and would never want to see show up among their randomly generated items. The two that come to my mind are the Range-Finder and Harpoon Gun. I'd most likely exclude those, but everyone has their preference.

When in doubt, give the user the option!
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: FranckM on January 13, 2016, 12:28:56 pm
Good point, forgot range finder.

When in doubt, give the user the option!

I wish muse followed that.
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on January 13, 2016, 12:43:12 pm
I have to agree. I mean, think about it. This, for example, would be something relatively easy to add to the base game. In fact, there is a lot of customization I wish the game supported that would add a lot more replay value to a lot of veteran players just hunting down their next level.

Custom maps would be pretty sweet too. I'm still dreaming, Muse...
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: FranckM on January 13, 2016, 03:51:47 pm
I wish choice for UI.
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on January 19, 2016, 11:53:25 pm
Thanks to everyone for their support in this project! This latest update (1.1.0) is a pretty big one and I'd be glad to take suggestions or comments regarding it. I bug tested all of the server/client functions the best I could, but if you do manage to find something out of place, please PM me so that I can get it fixed in the next patch.

Currently, these are the two planned features to add (but no promises  :P ):

-A manageable list of player names to be used for auto-completion
-A list of items to exclude from the randomizer
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atruejedi on January 20, 2016, 10:49:20 am
This is handy, although I do doubt many will want to use it to connect to a hosting client... plus, that ruins the fun of "the reveal" in the lobby as everybody finds out what ships, guns, and positions they're playing, one by one. The suspense is fun! Sometimes the entire lobby will erupt in cheers and laughter when a career gunner is forced to pilot for the first time 8)

Besides the ability to exclude certain weapons, I would like to see two additions just based on my personal preference:

Would it also be possible to integrate options to "weigh" some weapons to be more or less lightly than other weapons? I think it's better for chaotic gameplay if gatlings should be more likely to appear than, say, flare guns. There are 12 light weapons in the game at the moment, so the probability of drawing a gatling or a flare gun is equal at 8.33%. I think it would be better for flares to have, say, half the likelihood of being chosen by the randomizer, while gatlings could have double the likelihood. Something like that. If you toss 24 weapon cards into a hat, two for each gun, I'd alter it so there are four gatling cards while there is only one flare card and one harpoon card. It would be better for gameplay; chaos, after all, is designed to put people into new and interesting situations, not handicap them...

Second, would it be possible to have an option to "not repeat" the same ship? So that in any match the same ship would not appear twice (unless a 4 vs. 4, obviously)? That way there aren't two Pyras, or three Squids, etc. More variety, more fun.

Salute!
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on January 20, 2016, 11:51:26 am
Thanks for your response! I agree that the reveal in the lobby is a lot of fun, and I've even thought of adding a function to reveal certain aspects of the lobby to the clients, by choice of the server. The purpose of the server/client functions, however, is timeliness, so I feel that those two goals are somewhat contradictory.

I went into the creation of the server/client system with the knowledge that it will not be commonly used because of the port-forwarding requirement, and because getting everyone in a lobby to set up an external application is unlikely, especially with randoms. Unfortunately I couldn't think of any better way to communicate lobby data to many people at once. One of my first ideas was adding a button that would format the lobby data into a block of text and throw it onto the clipboard.  :o

Something like this:

red ship 1: goldfish
{
   pilot: Atrusario
   {
      loadout 1: spyglass
      loadout 2: kerosine
      loadout 3: moonshine
      loadout 4: spanner
      loadout 5: incendiary
   }
   gunner: Atrujedi
   {
      loadout 1: spyglass
      loadout 2: spanner
      loadout 3: charged
      loadout 4: greased
      loadout 5: incendiary
   }
   engi 1: FranckM
   {
      loadout 1: spyglass
      loadout 2: spanner
      loadout 3: mallet
      loadout 4: chemspray
      loadout 5: incendiary
   }
   engi 2: Schwalbe
   {
      loadout 1: spyglass
      loadout 2: spanner
      loadout 3: mallet
      loadout 4: chemspray
      loadout 5: incendiary
   }

   gun 1: heavy flak
   gun 2: harpoon
   gun 3: harpoon
}


That obviously wouldn't have worked for many reasons: the GOIO chat character limit, it's annoying to read through, and keep in mind that the text above is only for one ship. Voice chat works well enough for ship layouts and player positions, but if you wanted to randomize player loadouts, it would become a nightmare to communicate. If anyone has any ideas for better communicating lobby data, please feel free to let me know! I'm always open to suggestions.

As far as your suggestion goes regarding weighing item randomization probability, I like! Toggling the appearance of items is good enough, but setting their weights would be even better. I really appreciate this suggestion as the thought never crossed my mind. I'll see what I can do.  ;D

I don't think that the option to "not repeat" is quite as necessary, as you can simply re-roll a ship if you dislike the outcome. I personally find it more fun to leave the possibility of getting the same ships open, but I'm not going to rule out this addition entirely. It would be relatively easy to add, so I might throw it in a future update.

Again, thank you for your response. I greatly value your feedback!
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atruejedi on April 10, 2016, 09:36:10 pm
Resurrecting this thread... some of us are in the process of bringing back the Chaos Skirmish, and this program will be featured! Is this the latest version? I'm curious about if weapon weights, bans, and/or limits were introduced. We want to use it this Saturday and will use whatever version we can :D
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on April 11, 2016, 07:47:30 am
I'm glad to hear that CHAOS is being revived! My development on this program pretty much ceased when CHAOS did. I still managed to have some fun times in random lobbies where I convinced all the captains to do it. In one of my most memorable games, someone got a Squid with 2 Harpoons and a Gatling on the rear, so he essentially spent the entire game rear-ending the enemy spire.

We won...

Nonetheless, this current version (1.1.0) is a stable one. Who knows, I might be able to throw together an update this week.  ;D
(Of course I am exaggerating. I would never throw together an update. Perhaps it would be better to say that I will intentionally place an update...)
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atruejedi on April 11, 2016, 03:17:02 pm
I'm glad to hear that CHAOS is being revived! My development on this program pretty much ceased when CHAOS did. I still managed to have some fun times in random lobbies where I convinced all the captains to do it. In one of my most memorable games, someone got a Squid with 2 Harpoons and a Gatling on the rear, so he essentially spent the entire game rear-ending the enemy spire.

We won...

Nonetheless, this current version (1.1.0) is a stable one. Who knows, I might be able to throw together an update this week.  ;D
(Of course I am exaggerating. I would never throw together an update. Perhaps it would be better to say that I will intentionally place an update...)

Sounds great! We plan on using the program this Saturday at 9:30 PM EDT no matter what program version. We created a Steam group called Chaos Skirmish Saturdays, and it links to this thread. Check it out! :D
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on April 16, 2016, 01:12:43 am
Thank you to everyone who has given their continual support to this project! This latest update (1.2.0) is a fairly neat one that adds some all important features to the randomizer. You now have the ability to customize the randomization weights of ships, guns, and tools! For example, if there is a tool you do not like, you can prevent it from being randomly selected. If there is a gun you would like to be selected more often than others, than you can do that too!

Feel free to comment regarding these changes, or any changes you would like to see in the future. If you ever find a bug in the program, please PM me so that I can repair it in the next patch!
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: The Mann on April 16, 2016, 02:50:45 am
What did you make it with and what language?

This is a very neat application!
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on April 16, 2016, 10:19:42 am
Thank you for the kind words!

I created this program using GameMaker: Studio, which uses a proprietary language named GML (Game Maker Language). I might not be the greatest development platform ever, but it greatly speeds up the rate at which I can create applications. Plus, it's severely underrated. When used properly, it can be used to make just about anything!
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Peter Pun on April 28, 2016, 03:34:49 pm
Hey Atrusario,

Since Chaos matches are back, for the last couple of days I was working on a similar program, that would help making the lobbies.
My implementation requires no typing of names, only a screenshot, then it does the rest for you. Though it does no OCR, I might get a library for that.
Also it's lacking a lot of features, yours already have, like hosting, or shuffling anything but the player positions.
Another problem is that it's in C# Windows Form, which isn't compatible with yours.... I'd really like to improve mine, or bring the picture analysis into yours.

If you're interested here (https://github.com/defrost256/GoI_Chaos_Helper)'s a github link to the project (uncommented, but working)
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atruejedi on April 28, 2016, 07:22:09 pm
Hey Atrusario,

Since Chaos matches are back, for the last couple of days I was working on a similar program, that would help making the lobbies.
My implementation requires no typing of names, only a screenshot, then it does the rest for you.

That. Is. Amazing. All-star team-up time?
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on April 28, 2016, 10:10:02 pm
Peter Pun,

I regards to your idea of using a screenshot, I have a few comments.

Firstly, I love the idea! It would speed things up tremendously. I can honestly say that I don't recall ever thinking of this. :o

On the other hand, I see a lot of complications with the implementation. Picture analysis gets pretty complicated when you start working with different resolutions and whatnot. Anything more than simple ratio-based extraction would be difficult. At any rate, I'd be happy to discuss the idea with you further!
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on May 04, 2016, 10:54:44 pm
Update 1.3.0 has just released and introduces some pretty amazing features into the program. These additions help to eliminate a lot of the time it takes to set up CHAOS matches! All thanks to some brilliant ideas by PeterPun, you can now load a screenshot of your lobby directly into the program and player name data will be extracted from it! How did I not think of that before?! The name of the player previously in a slot is now shown to speed up the switching process as well.

Thank you for your undying support for this program! Feel free to comment bellow any thoughts, comments, or question you might have.
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on May 05, 2016, 06:03:09 pm
Just a quick update (1.3.1):

A bug was discovered where when you try to mix the crew of only one side without having mixed at all previously, an error would occur. This problem has been resolved.

If you ever discover any issues with the application, please let me know so that I can get them fixed! :D
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on May 25, 2016, 09:18:45 am
Just a quick update (1.3.2) requested by Atruejedi that extenuates the decimal read out on the weight menus to the hundredths place. Originally, I removed the decimals because it looked cleaner, but function is priority!

If you have any requests, bug fixes, or questions, please feel free to leave a comment below. Thank you for everyone's continual support of this project! ;D
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atruejedi on May 25, 2016, 12:07:20 pm
I just want to, again, praise Atrusario for being such an awesome dude and helping out Chaos Skirmish Saturdays (http://steamcommunity.com/groups/GOIChaos/) and others. We appreciate it so much, dude! Salute! SALUTE!
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: The Mann on May 25, 2016, 01:00:12 pm
 8)
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atrusario on December 13, 2016, 03:36:33 pm
Now the the GUI changes have ceased in Guns of Icarus, I've pushed out an update (1.3.3) to support them. I've also improved the screenshot loader so that the resulting images are sharper and not as squished.

Feel free to contact me with any bugs or feature ideas you have. Thank you for everyone's continual support of this project, most notably Atruejedi. This wouldn't even exist without him!  8)
Title: Re: GOIO CHAOS - Lobby Randomization Utility by Atrusario
Post by: Atruejedi on December 13, 2016, 07:57:22 pm
Now the the GUI changes have ceased in Guns of Icarus, I've pushed out an update (1.3.3) to support them. I've also improved the screenshot loader so that the resulting images are sharper and not as squished.

Feel free to contact me with any bugs or feature ideas you have. Thank you for everyone's continual support of this project, most notably Atruejedi. This wouldn't even exist without him!  8)

To put it succinctly...

NO U

I'm not the one who deserves thanks. You answered our call and have made Chaos much less chaotic during the lobby setup, in which our namesake is our enemy. So thank YOU, GOOD SIR! #PraiseBe