I am resurrecting Supreme Risk

Everything about mods can be found here.

Moderator: Morax

I am resurrecting Supreme Risk

Postby CardiacReactor » 07 Nov 2019, 01:51

Triggered by this map being mentioned on Linus Tech Tips (https://youtu.be/hiLlNzxDfAg?t=919) and a myriad of emails from folks asking me to do it, I am working on resurrecting the custom Map "Supreme Risk" I wrote back in 07 to work with FAF.

Repairing it is what this thread is about. It is named "Supreme Risk" and currently has the version v0014. I will only release stable versions to the vault, watch out for development changes on my github (see below)

What is it?
Inspired by "Zone Control", Supreme Risk is a custom Map with special rules that mirror the popular board game "RISK". The map and mechanics are exactly like in the board game, but with a 30sec timer instead of rounds.
You build mech-marines in factories, build up an army and liberate other countries on the map. The more countries you occupy, the more units you can use.

Board4-1.png
Board4-1.png (4.54 MiB) Viewed 5927 times


What I did so far:
- uploaded the original files to my github https://github.com/blecher-at/Supreme-Risk - will upload it to the map vault once I deem it "playable", but if you're impatient, you can install it manually
- updated the maps graphics to work with FAF and the new editor
- fixed Teleportation code (move armies from america to asia directly)
- fixed the most obvious bugs to have it play- and testable
- adapted unit building: you can now pick between building 1, 5 and 10 units at once. It will still result in just mech marines (for now?)
- persistent display of your mission as TEXT (in stock supcom this was displayed in a custom UI, but this does no longer work in FAF)
- periodic reminder to build units
- map is loaded in the zoomed-out state, for that the acu is no longer spawned and replaced by a hive (to reclaim "cards")
- Updated build code (can place 1,5,10 armies at once), and speed up building using custom spawn method
- Updated info about rounds and armies to place
- Showing info to all players when territories are liberated
- Add Options to the Game lobby to control various aspects of the game
-- Round Time (for slower/faster games)
-- Reinforcement Rules (tweak risk originals)
-- Unit Tiers (T1 to T3) can be configured if mech marines are too boring, try loyalists

Board3.png
Board3.png (7.36 MiB) Viewed 5930 times


Known Issues / Limitations / Plans (input is very welcome)
- The Map does not have a real AI, it is best played with other humans. AI units will just defend the bases (like the "shadow" player in the board game)
- Because 12y later performance is not that of an issue as it was, I can now update the map and make it look more beautiful (add more detail/trees/decals)
Last edited by CardiacReactor on 17 Nov 2019, 22:34, edited 16 times in total.
CardiacReactor
 
Posts: 9
Joined: 07 Nov 2019, 01:18
Has liked: 2 times
Been liked: 12 times
FAF User Name: CardiacReactor

Re: I am resurrecting Supreme Risk

Postby Uveso » 07 Nov 2019, 03:33

Awesome work!

Nice coding. I am impressed what you can do with map scripting!

Can't wait for the final version.

I hope factories will build units automatically next time :mrgreen:
User avatar
Uveso
Supreme Commander
 
Posts: 1788
Joined: 11 Dec 2015, 20:56
Location: Germany
Has liked: 70 times
Been liked: 291 times
FAF User Name: Uveso

Re: I am resurrecting Supreme Risk

Postby CardiacReactor » 07 Nov 2019, 14:12

> I hope factories will build units automatically next time
You could always select all factories and select repeat-build (or just the ones where you focus on). But I am thinking about alternatives. Any other ideas on how to select which countries to reinforce?
CardiacReactor
 
Posts: 9
Joined: 07 Nov 2019, 01:18
Has liked: 2 times
Been liked: 12 times
FAF User Name: CardiacReactor

Re: I am resurrecting Supreme Risk

Postby speed2 » 08 Nov 2019, 17:45

You will need a mod for the UI elements as everything in the map folder is in sim and can't alter the UI stuff.

In the script if you call InitializeScenarioArmies() function instead of InitializeArmies() like all skirmish maps do, you can then use the objectives as any mission and it will show up properly. But keep in mind that those objectives can't be different for each player. And it will hide the classic score screen.
User avatar
speed2
Contributor
 
Posts: 3189
Joined: 05 Jan 2013, 15:11
Has liked: 636 times
Been liked: 1119 times
FAF User Name: speed2

Re: I am resurrecting Supreme Risk

Postby tatsu » 10 Nov 2019, 13:51

Thanks for your work! :)

right now the map doesn't download or even host on linux (to attempt to host / join it without a the successful download, I transfer the folder in "maps" from a windows pc to my linux PC).

Generally this issue has to do with special characters or non utf8 encoding.

I can currently not successfully host it : when Forged Alliance finishes loading the map defaulted to four corners and if I then go select it in "Options" the map canvas stays black and I cannot launch the game.

In the vault "uninstall" fails and loops infinitely.

and when I manually move it outside of the mod folder (btw way the folder name is "upremeRisk.v0008" not "SupremeRisk.v00008" and try to download it again I get this Client error message :

Code: Select all
java.util.concurrent.CompletionException: java.lang.NullPointerException
   at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
   at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
   at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718)
   at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
   at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
   at com.faforever.client.task.CompletableTask.lambda$new$2(CompletableTask.java:18)
   at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
   at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
   at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
   at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
   at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
   at javafx.event.Event.fireEvent(Event.java:198)
   at javafx.concurrent.EventHelper.fireEvent(EventHelper.java:219)
   at javafx.concurrent.Task.fireEvent(Task.java:1358)
   at javafx.concurrent.Task.setState(Task.java:725)
   at javafx.concurrent.Task$TaskCallable.lambda$call$1(Task.java:1436)
   at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
   at java.base/java.security.AccessController.doPrivileged(Native Method)
   at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
   at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
   at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
   at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
   at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.NullPointerException
   at java.base/java.nio.file.Files.provider(Files.java:99)
   at java.base/java.nio.file.Files.isDirectory(Files.java:2220)
   at com.faforever.client.map.MapService.readMap(MapService.java:255)
   at com.faforever.client.map.MapService.addSkirmishMap(MapService.java:237)
   at com.faforever.client.map.MapService.lambda$downloadAndInstallMap$16(MapService.java:488)
   at com.github.nocatch.NoCatch.noCatch(NoCatch.java:49)
   at com.github.nocatch.NoCatch.noCatch(NoCatch.java:34)
   at com.faforever.client.map.MapService.lambda$downloadAndInstallMap$17(MapService.java:488)
   at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714)
   ... 22 more


but the folder has correctly been downloaded and the next time I start the client and search for it in the vault it is labeled as installed.

If I try to join a supreme risk lobby, I get the same java error above.

I hope this specific group of symptoms seems logical to you and helps you find the issue.

Thanks once again for your time!
User avatar
tatsu
Supreme Commander
 
Posts: 1553
Joined: 02 Jul 2012, 21:26
Has liked: 1952 times
Been liked: 171 times
FAF User Name: tatsu

Re: I am resurrecting Supreme Risk

Postby CardiacReactor » 10 Nov 2019, 19:10

tatsu wrote:Thanks for your work! :)

right now the map doesn't download or even host on linux (to attempt to host / join it without a the successful download, I transfer the folder in "maps" from a windows pc to my linux PC).
[...] Thanks once again for your time!


Hello Tatsu, thx for your interest. The Map you find in the vault (v0008) is outdated and does not work on any version of FAF. After I finished testing I will upload the final to the map vault. Until then, you can follow the maps progress on github.
CardiacReactor
 
Posts: 9
Joined: 07 Nov 2019, 01:18
Has liked: 2 times
Been liked: 12 times
FAF User Name: CardiacReactor

Re: I am resurrecting Supreme Risk

Postby CardiacReactor » 10 Nov 2019, 19:13

speed2 wrote:[...] In the script if you call InitializeScenarioArmies() function instead of InitializeArmies() like all skirmish maps do, you can then use the objectives as any mission and it will show up properly. But keep in mind that those objectives can't be different for each player. And it will hide the classic score screen.

Thanks for the insight. I ended up with a custom initArmies function, which solved a lot of the issues I had. I believe the objectives can be user-scoped using the FocusArmies method, but they removed a lot of features anyway so I stopped investigating it further for now and I stick with Text.


Updates:
Image
- Updated build code (can place 1,5,10 armies at once), and speed up building using custom spawn method
- Updated info about rounds and armies to place
- Fixed Teleportation code (move armies from america to asia directly)
CardiacReactor
 
Posts: 9
Joined: 07 Nov 2019, 01:18
Has liked: 2 times
Been liked: 12 times
FAF User Name: CardiacReactor

Re: I am resurrecting Supreme Risk

Postby CardiacReactor » 13 Nov 2019, 01:57

:mrgreen: the map is now almost ready for the vault

Changelog
- multiplayer testing, making sure nothing does desync
- showing additional messages when you or someone else loses a territory
- there are now options to control how the game is played
-- round length can be configured
-- unit tier (t1 to t3) can be selected. this does not impact the gameplay but makes for some variety
-- resource options (keep resources not spent to use in the next round)
-- unit movement (like risk where you cannot move freely between your own territories)

board5.png
board5.png (2.06 MiB) Viewed 5840 times
CardiacReactor
 
Posts: 9
Joined: 07 Nov 2019, 01:18
Has liked: 2 times
Been liked: 12 times
FAF User Name: CardiacReactor

Re: I am resurrecting Supreme Risk

Postby biass » 13 Nov 2019, 07:13

No Tasmania on the map :(
Map thread: https://bit.ly/2PBsa5H

Petricpwnz wrote:biass on his campaign to cleanse and remake every single map of FAF because he is an untolerating reincarnation of mapping hitler
User avatar
biass
Contributor
 
Posts: 2239
Joined: 03 Dec 2015, 07:54
Has liked: 598 times
Been liked: 662 times
FAF User Name: biass

Re: I am resurrecting Supreme Risk

Postby CardiacReactor » 13 Nov 2019, 22:33

The Map is now available in the Vault! Enjoy the game and post any questions, bugreports and suggestions here ♥
CardiacReactor
 
Posts: 9
Joined: 07 Nov 2019, 01:18
Has liked: 2 times
Been liked: 12 times
FAF User Name: CardiacReactor

Next

Return to Mods & Tools

Who is online

Users browsing this forum: No registered users and 1 guest