r/maxpayne • u/Abhyuday008 • 6h ago
Meme/Humour Would you rather drink the Max Payne beer or the Alan Wake's American Lager
please dont say Mona Sax Smoothie
r/maxpayne • u/Abhyuday008 • 6h ago
please dont say Mona Sax Smoothie
r/maxpayne • u/United-Advantage-100 • 14h ago
r/maxpayne • u/Global-Eye-7326 • 17h ago
DISCLAIMER: This is an unofficial fan-made tool inspired by the graphic novel presentation of Max Payne 1 and Max Payne 2. Max Payne is property of Remedy Entertainment and Rockstar Games. This project is not affiliated with or endorsed by them (although endorsement is welcome).
SECOND DISCLAIMER: I'm not doing self-promotion, since I'm not selling anything. Use the script if you want to, or don't, doesn't affect me either way. This script is not monetized.
I whipped up a Bash script to convert an image into the style of Max Payne 1 & 2 graphic novels. It may or may not be in its final form (I'm really happy with it for now). I'm sharing a few example outputs...first image - the famous image of Sam Lake dressed as Max Payne. Second image is randomly pulled from a web image search (I claim no ownership over either image, by the way). The second image looks more similar to a more typical scene in a Max Payne 1 graphic novel, which is why it looks closer to what you'd expect to see. Sam Lake is in a bright room, so the effect may not be as obvious. Script works on images of any resolution (including 4K), though processing time can be longer. Third image uses the Max Payne 2 style rendering for graphic novel, also pulled from web image search, I claim no ownership.
Only dependency is ImageMagick. Since I run Linux on metal, I've only tested it on Linux (Windows users can grab WSL, or even setup a VM, or better yet dedicate a machine to Linux on metal). I've ported scripts for ImageMagick to Windows in the past and it's a royal pain (more effort to test & debug, get some weird quirks too) anyone is welcome to do it if that's your thing. I know MacOS has Bash in terminal, but I'm not a Mac user so I'm not gonna troubleshoot that. Pretty sure it'd be minimal effort to make it work on a Mac.
Anyway, I'll share the code. Should auto-install missing dependencies on Debian/Fedora/Arch based distros. Just make it executable (in right-click->properties or chmod +x /path/to/MaxPayneGraphicNovel.sh).
To run it, open Bash terminal and run /path/to/MaxPayneGraphicNovel.sh /path/to/file.jpg --mp1
You can switch --mp1 to --mp2 or --noir (Noir is basically MP1 filters but output is in Black and White). Should work with any image file (JPG, PNG, WEBP).
NOT HANDLED BY THE SCRIPT: for your text boxes, well you can design speech bubbles with background colour #ABB5B6 and narration boxes background colour #A8D7A8 for Max Payne 1 style and #A5AFAE for Max Payne 2 style (black outline). For the text, use all caps with the Graphite font (bold, semi-condensed). Here's the link to the main font but you can look up the other variants (bold, bold-narrow, bold-wide, light, light-narrow), assuming you'll be using bold-narrow in all caps the whole time. Note that the font that I linked is FREE FOR PERSONAL USE. I have no idea what the IP rights are on replicating filters used by Remedy for Max Payne 1 & 2 graphic novels, so it's more of a personal use kind of thing. TLDR good for fan art, NOT FOR CREATING your own game called Pax Mayne and claiming it to be entirely your IP.
#!/usr/bin/env bash
set -euo pipefail
#############################################
# Max Payne Graphic Novel Generator
# Painted oil-brush style — v2.1
#############################################
VERSION="2.1"
#############################################
# Colors
#############################################
RED="\e[31m"
GREEN="\e[32m"
YELLOW="\e[33m"
RESET="\e[0m"
#############################################
# Dependency installer
#############################################
install_dependencies()
{
echo -e "${YELLOW}Missing dependencies detected.${RESET}"
if command -v apt >/dev/null 2>&1; then
echo "Detected Debian-based system"
sudo apt update
sudo apt install -y \
imagemagick \
libnotify-bin
elif command -v dnf >/dev/null 2>&1; then
echo "Detected Fedora-based system"
sudo dnf install -y \
ImageMagick \
libnotify
elif command -v pacman >/dev/null 2>&1; then
echo "Detected Arch-based system"
sudo pacman -Sy --needed --noconfirm \
imagemagick \
libnotify
else
echo -e "${RED}"
echo "Cannot automatically install dependencies."
echo "Unsupported Linux distribution."
echo
echo "Please install:"
echo " ImageMagick"
echo " libnotify"
echo -e "${RESET}"
exit 1
fi
}
#############################################
# Check dependencies
#############################################
check_dependencies()
{
MISSING=()
command -v magick >/dev/null \
|| MISSING+=("imagemagick")
command -v notify-send >/dev/null \
|| MISSING+=("libnotify")
if [ ${#MISSING[@]} -gt 0 ]; then
install_dependencies
fi
}
#############################################
# Check
#############################################
check_dependencies
#############################################
# Defaults
#############################################
PROFILE="mp1"
#############################################
# Usage
#############################################
usage()
{
cat <<EOF
Max Payne Graphic Novel Filter $VERSION
Usage:
$0 image [options]
Profiles:
--mp1 Original Max Payne style (warm, gritty)
--mp2 Max Payne 2 graphic novel (sharp, high-contrast, inked)
--noir Black and white noir
Examples:
$0 photo.jpg --mp1
EOF
}
#############################################
# Parse arguments
#############################################
INPUT=""
while [[ $# -gt 0 ]]
do
case "$1" in
--mp1)
PROFILE="mp1"
;;
--mp2)
PROFILE="mp2"
;;
--noir)
PROFILE="noir"
;;
-h|--help)
usage
exit
;;
*)
INPUT="$1"
;;
esac
shift
done
if [[ -z "$INPUT" ]]
then
usage
exit 1
fi
if [[ ! -f "$INPUT" ]]
then
echo "File not found:"
echo "$INPUT"
exit 1
fi
#############################################
# Profiles
#############################################
case "$PROFILE" in
mp1)
PAINT=3
BILATERAL_SIGMA=3
SHADOW_BLACK=5
SHADOW_WHITE=100
SATURATION=55
WARM="#70533a"
COLORIZE=10
GRAIN=0.18
NOISE_ATTENUATE=0.6
;;
mp2)
PAINT=2
SHADOW_BLACK=14
SHADOW_WHITE=97
SHARPEN_RADIUS=1
SHARPEN_AMOUNT=0.5
LOCAL_CONTRAST_RADIUS=20
LOCAL_CONTRAST_AMOUNT=0.15
SATURATION=55
WARM="#4a5868"
COLORIZE=3
SIGMOIDAL_AMT=4
SIGMOIDAL_MID=45
GRAIN=0.22
NOISE_ATTENUATE=0.7
VIGNETTE_SIZE=55
;;
noir)
PAINT=5
BILATERAL_SIGMA=5
SHADOW_BLACK=10
SHADOW_WHITE=95
SATURATION=0
WARM=""
COLORIZE=0
GRAIN=0.25
NOISE_ATTENUATE=0.7
;;
esac
#############################################
# Output filename
#############################################
DIR="$(dirname "$INPUT")"
FILE="$(basename "$INPUT")"
NAME="${FILE%.*}"
OUTPUT="$DIR/${NAME}_mpgn_${PROFILE}.png"
#############################################
# Temporary workspace
#############################################
TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT
#############################################
# Pipeline
#############################################
echo "Processing:"
echo "$INPUT"
# --- Step 1: Normalize ---
magick "$INPUT" \
-auto-orient \
-colorspace sRGB \
-strip \
"$TMP/01.png"
# --- Scale factors for resolution ---
# Effects are tuned for 1080p. Scale parameters
# with a power curve so larger images get disproportionately
# stronger effects to maintain perceived visual impact.
DIMS=$(magick identify -format "%w %h" "$TMP/01.png" 2>&1)
IMG_W=$(echo "$DIMS" | cut -d' ' -f1)
IMG_H=$(echo "$DIMS" | cut -d' ' -f2)
if [ "$IMG_W" -ge "$IMG_H" ]; then
LONGEST=$IMG_W
else
LONGEST=$IMG_H
fi
SCALE=$(awk "BEGIN { printf \"%.2f\", ($LONGEST / 1920) ^ 2.0 }")
# Linear scale for intensity effects (color, shadow) —
# these don't need the aggressive power curve.
LIN_SCALE=$(awk "BEGIN { printf \"%.2f\", $LONGEST / 1920 }")
PAINT_S=$(awk "BEGIN { v = $PAINT * $SCALE; printf \"%.0f\", (v < 2) ? 2 : v }")
COLORIZE_S=$(awk "BEGIN { v = $COLORIZE * $LIN_SCALE; printf \"%.0f\", (v < 1) ? 1 : v }")
SHADOW_S=$(awk "BEGIN { v = $SHADOW_BLACK * $LIN_SCALE; printf \"%.0f\", (v > 25) ? 25 : v }")
case "$PROFILE" in
mp1|noir)
# --- MP1 / Noir Pipeline ---
# Painted oil-brush look — warm, gritty, atmospheric.
BIL_R_S=$(awk "BEGIN { v = 4 * $SCALE; printf \"%.0f\", (v < 3) ? 3 : v }")
BIL_S_S=$(awk "BEGIN { v = $BILATERAL_SIGMA * $SCALE; printf \"%.0f\", (v < 2) ? 2 : v }")
echo "Resolution: ${IMG_W}x${IMG_H} scale: ${SCALE}x paint: ${PAINT_S} blur: ${BIL_R_S}x${BIL_S_S} colorize: ${COLORIZE_S}% shadow: ${SHADOW_S}%"
# Step 2: Oil paint brush effect
magick "$TMP/01.png" \
-paint "$PAINT_S" \
"$TMP/02.png"
# Step 3: Bilateral blur
magick "$TMP/02.png" \
-bilateral-blur ${BIL_R_S}x${BIL_S_S} \
"$TMP/03.png"
# Step 4: Color grading
magick "$TMP/03.png" \
-modulate 100,$SATURATION,100 \
${WARM:+-fill "$WARM" -colorize "${COLORIZE_S}"%} \
"$TMP/04.png"
# Step 5: Shadow deepening
magick "$TMP/04.png" \
-level "${SHADOW_S}%,${SHADOW_WHITE}%" \
"$TMP/05.png"
# Step 6: Film grain
magick "$TMP/05.png" \
-seed 42 \
-attenuate "$NOISE_ATTENUATE" \
+noise Gaussian \
"$TMP/06.png"
# Step 7: Output
magick "$TMP/06.png" \
"$OUTPUT"
;;
mp2)
# --- Max Payne 2 Pipeline ---
# High-contrast graphic novel — sharp edges, deep blacks,
# printed ink texture. Less painterly than MP1, more photographic.
SHARPEN_S=$(awk "BEGIN { v = $SHARPEN_RADIUS * $LIN_SCALE; printf \"%.1f\", (v < 0.5) ? 0.5 : v }")
SHARPEN_A=$(awk "BEGIN { printf \"%.2f\", $SHARPEN_AMOUNT * $LIN_SCALE }")
LOCAL_R=$(awk "BEGIN { v = $LOCAL_CONTRAST_RADIUS * $LIN_SCALE; printf \"%.0f\", (v < 10) ? 10 : v }")
LOCAL_A=$(awk "BEGIN { printf \"%.2f\", $LOCAL_CONTRAST_AMOUNT * $LIN_SCALE }")
VIG_S=$(awk "BEGIN { v = $VIGNETTE_SIZE * $LIN_SCALE; printf \"%.0f\", (v < 50) ? 50 : v }")
echo "Resolution: ${IMG_W}x${IMG_H} scale: ${SCALE}x paint: ${PAINT_S} sharpen: ${SHARPEN_S}x${SHARPEN_A} local: ${LOCAL_R}x${LOCAL_A} colorize: ${COLORIZE_S}% vig: ${VIG_S}"
# Step 2: Subtle oil paint
# Just enough to break up photographic fine detail without
# making it look "painted" — MP2 is graphic, not painterly.
magick "$TMP/01.png" \
-paint "$PAINT_S" \
"$TMP/02.png"
# Step 3: Sharpen edges
# MP2 has crisp, well-defined edges. Unsharp mask brings
# back and enhances detail lost by the light paint step.
magick "$TMP/02.png" \
-unsharp "${SHARPEN_S}x${SHARPEN_A}+0.05+0" \
"$TMP/03.png"
# Step 4: Local contrast boost
# Large-radius unsharp mask increases midtone contrast
# without affecting fine detail — makes skin and surfaces
# look dramatically lit, which is core to the MP2 look.
magick "$TMP/03.png" \
-unsharp "${LOCAL_R}x${LOCAL_A}+0+0" \
"$TMP/04.png"
# Step 5: Color grading
# Muted, slightly cool/neutral tones. MP2 has less warm
# cast than MP1 — more steel blue-grey than amber.
magick "$TMP/04.png" \
-modulate 100,$SATURATION,100 \
${WARM:+-fill "$WARM" -colorize "${COLORIZE_S}"%} \
"$TMP/05.png"
# Step 6: S-curve contrast
# Crush blacks first, then apply sigmoidal contrast for
# the dramatic shadow/highlight pop of the MP2 graphic novel.
magick "$TMP/05.png" \
-level "${SHADOW_S}%,${SHADOW_WHITE}%" \
-sigmoidal-contrast "${SIGMOIDAL_AMT}x${SIGMOIDAL_MID}%" \
"$TMP/06.png"
# Step 7: Heavy film grain
# MP2's graphic novel panels have a visible printed texture.
# Much heavier grain than MP1 for that comic-book halftone feel.
magick "$TMP/06.png" \
-seed 42 \
-attenuate "$NOISE_ATTENUATE" \
+noise Gaussian \
"$TMP/07.png"
# Step 8: Vignette
# Manual radial gradient vignette — darkens edges to draw
# focus center and approximate MP2's close-up depth feel.
magick "$TMP/07.png" \
\( +clone -fill black -colorize 100% \
-fill white -draw "roundrectangle 15,15,%[fx:w-16],%[fx:h-16] 30,30" \
-blur 0x"${VIG_S}" \
\) \
-compose multiply -composite \
"$TMP/08.png"
# Step 9: Output
magick "$TMP/08.png" \
"$OUTPUT"
;;
esac
#############################################
# Notification
#############################################
notify-send \
"Max Payne Graphic Novel" \
"Created $(basename "$OUTPUT")" \
2>/dev/null || true
echo
echo -e "${GREEN}Finished:${RESET}"
echo "$OUTPUT"
Note for Max Payne 3, there's two ways to go. There's the filters/effects for cover art, and there's the actual comic books which use a Marvel Hero style. That's going to be a separate script of its own.
r/maxpayne • u/Mikey_G2020 • 7h ago
„The way I see it there’s two type of people, those who spend their lives trying to build a future and those who spend their lives trying to rebuild the past” - Max Payne
I made Max Payne with few of his outfits coming from the 3rd installment. I hope you will like it ! Plus I made this panorama to present the aesthetic of the favelas in the third game.
r/maxpayne • u/pizzza_parker1 • 8h ago
all that booze and meds scrambled his brains