• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Minigame] WarPaint

Status
Not open for further replies.
logo.png


Description

WarPaint is a simple drawing and guessing party minigame for up to 24 players.

ScreenShot.jpg

Gameplay
One player becomes the artist and is tasked to draw a sketch that best illustrates the given (or chosen) subject.
As the artist is busy drawing, the rest of the players has to guess the subject being drawn.
Points goes to whoever first guesses correctly and to the current artist.
Once the subject has been figured out, the round ends and a new player gets to be the artist.
The player with the most points at the end wins the game.
Simple as that.

Singleplayer
When only one player is detected the game will automatically enter a free draw mode in which the player can freely draw whatever he/she want without a time limit.

Background
This is essentially just an excuse for me to be able to mess around with some of the new JASS natives to see what they're capable of.
For that I wanted to create something very simple to make that features the new mouse and effect natives extensively.
This is the result.


Development
Dev01.jpg Dev02.jpg Dev03.jpg Dev04.jpg Dev05.jpg
Dev06.jpg Dev07.jpg Dev08.jpg Dev09.jpg Dev10.jpg
Beta_00.jpg Beta_01.jpg Beta_02.jpg Beta_03.jpg Beta_04.jpg


All feedback and bug reports are appreciated.
 

Attachments

  • (24)WarPaint BETA.w3x
    17.8 MB · Views: 93
  • (24)WarPaint BETA R2.w3x
    17.8 MB · Views: 186
  • (24)WarPaint BETA R3.w3x
    13.6 MB · Views: 138
  • (24)WarPaint BETA R4.w3x
    14 MB · Views: 142
Last edited:
Level 7
Joined
Jun 27, 2014
Messages
227
This is revolutionary if you ask me, next we will see people drawing anime characters in high precision with this (No joke).

I do, however, have a few suggestions if you don't mind. Please hear me out, as they could further solidify this as a masterpiece of a map.

1.Tint transparency.
-This is a primary necessity for the more 'advanced' drawers and artists, as most people use semi transparent colors with one thing in mind - adding or reducing intensity. With a semi transparent color it adds the possibility of layering one atop another, thus giving the more "advanced" the possibility of blooms and whatnot using such a tool.

2. Masks
Think of it this way - Artists usually function in a way that they split everything into segments, that way they can focus better on one spot. My example is a blush and eyelashes split onto a different mask seporate from the face template. If this is done, another thing that could and should be prioritized is hide and show for individual masks, as well as undo features for a selected mask and redo for a selected mask; this way you don't scrap the entire thing if you want to make corrections, but one portion of it.

Hope the ideas are of use, again - this is truly magnificent! If the things I have stated are added, then it truly will be at the pinacle, a masterpiece for all times.
 
This is revolutionary if you ask me, next we will see people drawing anime characters in high precision with this (No joke).

I do, however, have a few suggestions if you don't mind. Please hear me out, as they could further solidify this as a masterpiece of a map.

1.Tint transparency.
-This is a primary necessity for the more 'advanced' drawers and artists, as most people use semi transparent colors with one thing in mind - adding or reducing intensity. With a semi transparent color it adds the possibility of layering one atop another, thus giving the more "advanced" the possibility of blooms and whatnot using such a tool.

2. Masks
Think of it this way - Artists usually function in a way that they split everything into segments, that way they can focus better on one spot. My example is a blush and eyelashes split onto a different mask seporate from the face template. If this is done, another thing that could and should be prioritized is hide and show for individual masks, as well as undo features for a selected mask and redo for a selected mask; this way you don't scrap the entire thing if you want to make corrections, but one portion of it.

Hope the ideas are of use, again - this is truly magnificent! If the things I have stated are added, then it truly will be at the pinacle, a masterpiece for all times.

Interesting ideas here.
Brush transparency was a thing at first but I removed the slider because it just doesn't look very good and the draw order gets really wonky.

AlphaBrush.jpg

I can see layers working in singleplayer, but something like that is currently outside my scope.
For now I'll focus on making a functional game. I may consider this feature later.

In other news; the interface buttons are now textured.
 
Thanks : )

That's actually super cute.
So what do you find working with the natives like - would you say in-game it plays well and feels smooth etc.?
Heart.jpg

The natives themselves work as you'd expect I guess. With the exception for effect orientation. I've been trying to make sense of those but I still have no idea how they work.
I would much rather be using forward and up vectors or quaternions for 3D rotation to be honest.

The mouse move event will fire only so often (about every 75-200ms on my machine, singleplayer) but it will queue up several move events between each event execution, running the trigger for all the accumulated points.
This is not really a problem in free draw since it'll just play catch-up ~8 times a second, however, any of the other drawing types may feel a bit sluggish as only the last point can be used.

JASS:
//! zinc
library MouseMoveTest {
    private integer Time  = 0;
    private integer Queue = 0;
    private timer   Timer = CreateTimer();

    private function handler () {
        Time += 1;
        if (Queue > 0) BJDebugMsg("|cff5050ff" + I2S(Queue) + " in queue|r");
        Queue = 0;
    }
 
    private function action () {
        if (Time > 0) BJDebugMsg("|cffff0000" + I2S(Time) + "ms|r");
        Time = 0;
        Queue += 1;
        TimerStart(Timer, 0.001, true, function handler);
    }

    private function onInit() {
        trigger trg = CreateTrigger();
        TriggerAddAction(trg, function action);
        TriggerRegisterPlayerEvent(trg, Player(0), EVENT_PLAYER_MOUSE_MOVE);
    }
}
//! endzinc
 
A Pictionary mode would imply the rules of the board game is in play, no? If I'm not remembering wrong you do not get to choose what to draw in Pictionary?
I have admittedly not played any pictionary-esque maps for Warcraft 3, but the way WarPaint does it is it presents the artist with a choice; get assigned a random subject from a pool of predefined subjects, or enter your own custom one.

The rules for custom subjects are pretty strict. Only english alphanumeric characters (A-Z, 0-9), space, apostrophe, hyphen and comma may be used. Everything else will simply be removed from the input.
Any spelling mistakes in the entered subject is purely on the artist. If no player can guess it within the time limit, no points will be given.
 
Level 7
Joined
May 30, 2013
Messages
210
yes of course
mind you, i'm not suggesting you to get rid of the preset game mode, merely to expand upon it (host choice) because this clearly looks like the best implementation of a pictionary/drawgame in war3 yet; and imo one of the most fun parts of it is the drawer selecting their own word(s)

you could also keep the preset mode even in free-draw for the guys who aren't creative enough (hey look, yet another improvement to the classic war3 pictionary!)
 
yes of course
mind you, i'm not suggesting you to get rid of the preset game mode, merely to expand upon it (host choice) because this clearly looks like the best implementation of a pictionary/drawgame in war3 yet; and imo one of the most fun parts of it is the drawer selecting their own word(s)

you could also keep the preset mode even in free-draw for the guys who aren't creative enough (hey look, yet another improvement to the classic war3 pictionary!)

Hmm. That sounds a lot like what I have already.

SubjectDialog.jpg

The thing is; there are no "modes" in WarPaint (well, besides multiplayer and singleplayer). The choice of subject type is on a player-by-player basis and not something the host player decided on at the start of the game.

To make it more attractive maybe I could add a small incentive to drawing a custom subject, like a point bonus?
 
WarPaintLogoBeta.png


Seeing as I'll be away on vacation for a couple of weeks, I've been hard at work the past few days stitching together a beta version of WarPaint before I leave.

Please note that this is an early (and a bit rushed I have to admit) beta release.
This has not been tested in multiplayer.
There will be bugs and and various issues.

So without further ado, you may download and give the beta a spin from here.

Have fun breaking the map. : )

Beta_00.jpg Beta_01.jpg Beta_02.jpg Beta_03.jpg Beta_04.jpg
 
Level 4
Joined
May 26, 2010
Messages
47
rounds are pretty short
would be better with 2 min rounds, or let the host choose round length
yeah I know real pictionary is supposed to be 1 min, but figuring out color alone in this can take like 10 seconds

EDIT: oh yeah also reverting the drawing style back to the brush after each round would be nice too

EDIT2: played it a bit, lots of people randomly crashing (literally randomly, 4 people crashed at round start and then like 2 more crashed around 8 min in, doesn't seem to be any cause)
 
Last edited:
Greetings from Spain.
rounds are pretty short
would be better with 2 min rounds, or let the host choose round length
yeah I know real pictionary is supposed to be 1 min, but figuring out color alone in this can take like 10 seconds

EDIT: oh yeah also reverting the drawing style back to the brush after each round would be nice too

EDIT2: played it a bit, lots of people randomly crashing (literally randomly, 4 people crashed at round start and then like 2 more crashed around 8 min in, doesn't seem to be any cause)
Thanks.

The player in the host slot will be able to configure some aspects of the game in the future, including drawing duration.

I'm just going to assume these crashes are due to 1.30.0 being 1.30.0 for now and will be fixed by Blizzard on the next patch. The only other thing I can think of is the custom font, which have been reported to crash on non-english clients in the past. I may consider making a variation of the map without it if the crashes persists.

The brush type is meant to reset between players. If it doesn't, then that's a bug. I'll look into it.
 
I would like to see a filling tool(bucket).
Would've been nice, but I fear this might be a little too ambitious for vector drawing in Warcraft 3.

I'd have to figure out how to create polygons from a set of arbitrary lines and then do a scanline fill of the clicked polygon.

If anyone would point me to an algorithm to solve this problem fast on a large number of lines I'd be happy to implement it.
 
Level 4
Joined
May 26, 2010
Messages
47
Doesn't seem to crash anymore in the newest patch, so it was just patch-related crashes like TriggerHappy said
Also one more potential feature: starting a new game without having to rmk would be nice

EDIT: nevermind it's still fucked, hosted with 14 people, 7 people crashed pretty much instantly and then afterwards one guy d/c'd at some point but I'm not sure if it was a crash or not
for contrast the first game tested had 5 people and I don't recall anyone crashing, so it may have something to do with numbers? or it could still be patch related
 
Last edited:
@Lazers
That's unfortunate. Mind testing this new version to see if the custom font was the culprit?
Besides the font, I'm not doing anything that should warrant desynchronization let alone crashes.
I will continue to blame patch instabilities if this version still crashes on load.

BETA R2
  • Added eyedropper tool.
  • Brush type will now reset between players.
  • Increased default draw time to 90 seconds.
  • Tweaked score values.
  • Custom font removed to test game stability.
DOWNLOAD
 
@Lazers
That's unfortunate. Mind testing this new version to see if the custom font was the culprit?
Besides the font, I'm not doing anything that should warrant desynchronization let alone crashes.
I will continue to blame patch instabilities if this version still crashes on load.

Plenty of maps are desyning for no apparent reason. I would just let Blizzard worry about it for now.
 
Level 4
Joined
May 26, 2010
Messages
47
@Lazers
That's unfortunate. Mind testing this new version to see if the custom font was the culprit?
Besides the font, I'm not doing anything that should warrant desynchronization let alone crashes.
I will continue to blame patch instabilities if this version still crashes on load.

BETA R2
  • Added eyedropper tool.
  • Brush type will now reset between players.
  • Increased default draw time to 90 seconds.
  • Tweaked score values.
  • Custom font removed to test game stability.
DOWNLOAD

It's still doing whatever it's doing, not sure if it's a crash or a desync but the game client just completely freezes when it decides that you should leave (and it also hogged an entire core of my CPU until I ended the process), we tried with 9 people this time and ~6 were dropped out as soon as the map loaded
Definitely not font related at the very least, it's probably an issue on Blizzard's end like Trigger said
 
Last edited:

Kazeon

Hosted Project: EC
Level 33
Joined
Oct 12, 2011
Messages
3,449
Welp, we Photoshop HSV now.

View attachment 307302

It's a massive improvement over individual RGB sliders.

Hehe.. I will try to guess how you make that.

The color picker is actually a stack of 3 platform models/objects: (in order, from top to bottom) black platform (faded texture from full opaque to full transparent), white platform (same), and colored platform (full opaque). The formula used to "pick" color code from the mouse pos is beyond me tho.

Well, am I right? Or are you using other even cleverer trick? Or are you using some kind of special function provided in recent patches? I don't know, I'm pretty lost within these new patches, never followed it.

I want to test this map, but I can't. Because I still don't have access to these newer patches :(
 
@Quilnez
Pretty much, yeah.
The graphics is made up of three layered images. One for hue, one for saturation, and one for value.

The vertical slider controls hue while the color picker controls saturation on the X-axis and value on the Y-axis.
Changing these values with the mouse cursor is child's play with the new mouse events. Just need to compare the mouse position with the position and size of the controls.
Converting back and forth between HSV and RGB is also relatively easy to do. HSL and HSV - Wikipedia

What patch level are you on? WarPaint will work on 1.29 and later.
 
Not a whole lot. Took a short break after the last beta release.

I began working on the game configuration a little while ago. Experimented with a native dialogs-only approach at first but I didn't really like how it turned out (too limited in design and functionality) so I scratched it and went back to the drawing board.
I am currently planning out a solution using only custom controls. Should be a lot more intuitive and user-friendly.

As for the configuration options, I currently got a few modes/presets in mind; WarPaint (default), Pictionary, and Custom. The latter will allow for modification of individual game properties. Still figuring out which properties to expose though. Suggestions are welcome.

I've also been toying with the idea of saving and loading drawings in singleplayer. Don't know if anything will come of it yet.
 
Status
Not open for further replies.
Top