Donut the Vikingchap
Sweden
I play games and make stuff. Here's some stuff:
* Gravelpit in a nutshell (GMod video, 2010)
* DeGroot Keep in a nutshell (GMod video, 2011)
* ctf_infiltration (TF2 map, 2013)
* pl_invasion [tf2maps.net] (TF2 map, 2014)
* cp_beachassault [tf2maps.net] (TF2 map, 2015)
* Maniac's Maschinenpistole (TF2 workshop item, 2015)
* Spy's Rifle [gamebanana.com] (TF2 weapon skin, 2015)
* The Hellfire (TF2 workshop item, 2015)
* pl_donut_72 [tf2maps.net] (TF2 map, 2016)
* Snowycoast in a nutshell (GMod video, 2016)
* ASCII Fortress 2 [tf2maps.net] (TF2 demake in ASCII graphics, 2017)
* libdonut [github.com] (C++ application framework, 2022)
* Dounatsu Geemu [donutvikingchap.itch.io] (Puzzle game, 2023)

Links
YouTube channel: http://www.youtube.com/user/SonicFan535
TF2Maps profile: https://tf2maps.net/members/donutvikingchap.15766/
GameBanana profile: https://gamebanana.com/members/1432477
GitHub profile: https://github.com/DonutVikingChap
MyAnimeList profile: https://myanimelist.net/profile/DonutViking
Trade offer: https://steamcommunity.com/tradeoffer/new/?partner=37989922&token=vnZA5I2L

PC Specs
CPU: AMD Ryzen 7 5800X
Graphics card: PowerColor Radeon RX 6800 XT Red Devil
RAM: Kingston Fury Renegade DDR4 32 GB 3600 MHz CL 16
Motherboard: ASUS ROG Strix B550-F Gaming
PSU: ASUS ROG Strix 850 W
SSD: Samsung 970 EVO Plus 1 TB
Sound Card: ASUS Xonar Essence STX
Case: Fractal Design Meshify 2 Light Tempered Glass Black
Cooler: Noctua NH-D15S Chromax Black

OS: EndeavourOS

Monitor 1: ASUS ROG Swift PG258Q
Monitor 2: Dell U2412M

Keyboard: Varmilo VA88M MX Blue
Mouse: Glorious Model D
Mousepad: Steelseries QcK Heavy XXL
Headphones: Audio Technica ATH-R70x
Microphone: Elgato Wave:1
Controller 1: Steam Controller
Controller 2: Dualshock 4
VR HMD: Valve Index
I play games and make stuff. Here's some stuff:
* Gravelpit in a nutshell (GMod video, 2010)
* DeGroot Keep in a nutshell (GMod video, 2011)
* ctf_infiltration (TF2 map, 2013)
* pl_invasion [tf2maps.net] (TF2 map, 2014)
* cp_beachassault [tf2maps.net] (TF2 map, 2015)
* Maniac's Maschinenpistole (TF2 workshop item, 2015)
* Spy's Rifle [gamebanana.com] (TF2 weapon skin, 2015)
* The Hellfire (TF2 workshop item, 2015)
* pl_donut_72 [tf2maps.net] (TF2 map, 2016)
* Snowycoast in a nutshell (GMod video, 2016)
* ASCII Fortress 2 [tf2maps.net] (TF2 demake in ASCII graphics, 2017)
* libdonut [github.com] (C++ application framework, 2022)
* Dounatsu Geemu [donutvikingchap.itch.io] (Puzzle game, 2023)

Links
YouTube channel: http://www.youtube.com/user/SonicFan535
TF2Maps profile: https://tf2maps.net/members/donutvikingchap.15766/
GameBanana profile: https://gamebanana.com/members/1432477
GitHub profile: https://github.com/DonutVikingChap
MyAnimeList profile: https://myanimelist.net/profile/DonutViking
Trade offer: https://steamcommunity.com/tradeoffer/new/?partner=37989922&token=vnZA5I2L

PC Specs
CPU: AMD Ryzen 7 5800X
Graphics card: PowerColor Radeon RX 6800 XT Red Devil
RAM: Kingston Fury Renegade DDR4 32 GB 3600 MHz CL 16
Motherboard: ASUS ROG Strix B550-F Gaming
PSU: ASUS ROG Strix 850 W
SSD: Samsung 970 EVO Plus 1 TB
Sound Card: ASUS Xonar Essence STX
Case: Fractal Design Meshify 2 Light Tempered Glass Black
Cooler: Noctua NH-D15S Chromax Black

OS: EndeavourOS

Monitor 1: ASUS ROG Swift PG258Q
Monitor 2: Dell U2412M

Keyboard: Varmilo VA88M MX Blue
Mouse: Glorious Model D
Mousepad: Steelseries QcK Heavy XXL
Headphones: Audio Technica ATH-R70x
Microphone: Elgato Wave:1
Controller 1: Steam Controller
Controller 2: Dualshock 4
VR HMD: Valve Index
Currently Offline
Video Showcase
Snowycoast in a nutshell
10 2 1
Information
class DonutTheVikingchap final : public SteamUser {
public:
. . [[nodiscard]] auto aliases() const -> std::vector<std::string_view> override {
. . . . return {
. . . . . . "Donut the Vikingchap", // Steam.
. . . . . . "DonutVikingChap", // Twitch, Origin, etc.
. . . . . . "DonutViking", // Blizzard, etc.
. . . . . . "dOnUt55", // Minecraft.
. . . . . . "T1S | dOnUt!? (SWE)", // Steam (circa 2010).
. . . . . . "SonicFan535", // YouTube.
. . . . };
. . }
. .
. . [[nodiscard]] auto links() const -> std::vector<std::string_view> override {
. . . . return {
. . . . . . // YouTube channel.
. . . . . . " http://www.youtube.com/user/SonicFan535 ",
. . . . . . // TF2Maps profile.
. . . . . . " https://tf2maps.net/members/donutvikingchap.15766/ ",
. . . . . . // GitHub profile.
. . . . . . " https://github.com/DonutVikingChap ",
. . . . . . // MyAnimeList profile.
. . . . . . " https://myanimelist.net/profile/DonutViking ",
. . . . . . // Trade offer.
. . . . . . " https://steamcommunity.com/tradeoffer/new/?partner=37989922&token=vnZA5I2L ",
. . . . };
. . }
. .
. . [[nodiscard]] auto specs() const -> PCSpecs override {
. . . . return {
. . . . . . .cpu = {
. . . . . . . . .name = "AMD Ryzen 7 5800X",
. . . . . . . . .cores = 8,
. . . . . . . . .threads = 16,
. . . . . . . . .frequency = 3800_MHz,
. . . . . . . . .turbo_frequency = 4700_MHz,
. . . . . . . . .cache = 36_MB,
. . . . . . },
. . . . . .
. . . . . . .cpu_cooler = {
. . . . . . . . .name = "Noctua NH-D15S Chromax",
. . . . . . . . .color = "Black",
. . . . . . },
. . . . . .
. . . . . . .graphics = {
. . . . . . . . .name = "PowerColor Radeon RX 6800 XT Red Devil",
. . . . . . . . .frequency = 1825_MHz,
. . . . . . . . .boost_frequency = 2340_MHz,
. . . . . . . . .memory = {
. . . . . . . . . . .type = "GDDR6",
. . . . . . . . . . .capacity = 16_GB,
. . . . . . . . . . .frequency = 16000_MHz,
. . . . . . . . . . .bus_width = 256_bits,
. . . . . . . . }
. . . . . . },
. . . . . .
. . . . . . .memory = {
. . . . . . . . .name = "Kingston Fury Renegade",
. . . . . . . . .type = "DDR4",
. . . . . . . . .capacity = 32_GB,
. . . . . . . . .frequency = 3600_MHz,
. . . . . . . . .cas_latency = 16,
. . . . . . },
. . . . . .
. . . . . . .motherboard = {
. . . . . . . . .name = "ASUS ROG Strix B550-F Gaming",
. . . . . . . . .form_factor = "ATX",
. . . . . . },
. . . . . .
. . . . . . .power_supply = {
. . . . . . . . .name = "ASUS ROG Strix",
. . . . . . . . .cert = "80 PLUS Gold",
. . . . . . . . .power = 850_W,
. . . . . . },
. . . . . .
. . . . . . .storage = {
. . . . . . . . { .name = "Samsung 970 EVO Plus", .capacity = 1_TB },
. . . . . . },
. . . . . .
. . . . . . .audio = {
. . . . . . . . .name = "ASUS Xonar Essence STX",
. . . . . . },
. . . . . .
. . . . . . .case = {
. . . . . . . . .name = "Fractal Design Meshify 2",
. . . . . . . . .type = "Light Tempered Glass",
. . . . . . . . .color = "Black",
. . . . . . },
. . . . };
. . }
. .
. . [[nodiscard]] auto operating_systems() const -> std::vector<std::string_view> override {
. . . . return {
. . . . . . "EndeavourOS",
. . . . };
. . }
. .
. . [[nodiscard]] auto peripherals() const -> PCPeripherals override {
. . . . return {
. . . . . . .monitors = {
. . . . . . . . { .name = "ASUS ROG Swift PG258Q", .panel_type = "TN", .refresh_rate = 240_Hz },
. . . . . . . . { .name = "Dell U2412M", .panel_type = "IPS", .refresh_rate = 60_Hz },
. . . . . . },
. . . . . .
. . . . . . .keyboard = "Varmilo VA88M MX Blue",
. . . . . . .mouse = "Glorious Model D",
. . . . . . .mouse_pad = "Steelseries QcK Heavy XXL",
. . . . . . .headphones = "Audio Technica ATH-R70x",
. . . . . . .microphone = "Elgato Wave:1",
. . . . . . .controllers = {
. . . . . . . . "Steam Controller",
. . . . . . . . "Dualshock 4",
. . . . . . },
. . . . . .
. . . . . . .vr_hmd = "Valve Index",
. . . . };
. . }
. .
. . [[nodiscard]] auto important_info() const -> std::string_view {
. . . . rng.seed(52581527);
. . . . std::ranges::generate(text, [this] { return chars[rng() % size(chars)]; });
. . . . return {data(text), size(text)};
. . }
. .
. . auto update(std::chrono::steady_clock::duration delta_time) -> void override {
. . . . SteamUser::update(delta_time);
. . . .
. . . . time_since_coffee += delta_time;
. . . . motivation = std::max(motivation - delta_time, std::chrono::steady_clock::duration::zero());
. . . . if (is_awake()) {
. . . . . . while (time_since_coffee >= coffee_interval) {
. . . . . . . . drink_coffee();
. . . . . . . . motivation += coffee_motivation;
. . . . . . . . time_since_coffee -= coffee_interval;
. . . . . . }
. . . . . .
. . . . . . if (motivation == std::chrono::steady_clock::duration::zero()) {
. . . . . . . . play_games(delta_time);
. . . . . . } else {
. . . . . . . . make_stuff(delta_time);
. . . . . . }
. . . . . .
. . . . . . check_inbox();
. . . . }
. . }
. .
private:
. . [[nodiscard]] auto has_comment_from(std::string_view username) const noexcept -> bool {
. . . . return std::ranges::any_of(inbox().comments(), [username](const auto& comment) {
. . . . . . return comment.sender().username() == username;
. . . . });
. . }
. .
. . auto check_inbox() -> void {
. . . . for (auto& invite : inbox().friend_invites()) {
. . . . . . if (has_comment_from(invite.sender().username()) && !invite.is_random() && rng() % 2) {
. . . . . . . . invite.accept();
. . . . . . }
. . . . }
. . . . inbox().clear_friend_invites();
. . }
. .
. . static constexpr auto coffee_interval = std::chrono::hours{6};
. . static constexpr auto coffee_motivation = std::chrono::hours{1};
. . static constexpr auto chars = std::string_view{
. . . . "uboe$%s'rnk'yl.c e23e5sb8b:;c= eoABtDnsGHItlLMe " " " " "
. . . . "RYTfVn !Z[y]^ e bcddfgohjkemaalqmutucmo z{|}~"
. . };
. .
. . std::chrono::steady_clock::duration time_since_coffee{};
. . std::chrono::steady_clock::duration motivation{};
. . mutable std::mt19937 rng{};
. . mutable std::array<char, 52> text;
};
Recent Activity
461 hrs on record
last played on Jul 10
29 hrs on record
last played on Jul 6
Jan 11 @ 4:56am 
Hi, I have a question regarding your Spy's rifle. Please, add me.
Dec 18, 2025 @ 6:03pm 
Hi, I'm pretty sure a lot of people already said it but I love your videos. My favorite video is "Random GMOD Adventure". I'm sad that you're not uploading vids anymore, as I had a huge fun watching them. I also loved Team Fortress Tomfoolery video, the shadowplay archive, that was fun too, it reminded me the old times and the good old days of tf2. I always going to miss the Sonic fan who made random gmod animation about tf2 on a random day. Your videos is like a bar, I visit it sometimes and have a great time then. I hope you're alright, and I hope to see you again on youtube someday! :physgun::crate:
Oct 4, 2025 @ 1:38pm 
i miss the time when you made funny youtube video
Jul 21, 2025 @ 4:33pm 
+rep good boy
Jun 12, 2025 @ 11:32am 
Added you to discuss Infiltration.
Feb 2, 2025 @ 9:22am 
Wanted to say i really liked your "SCOUT IS MICHEAL JACKSON" video you posted some time ago, so me and one of my friends decided to recreate it. We really had fun doing it, and also, nice seeing you in tf2c