Spyke

Posts

Bside·B-side Gamingbyfalseprophet

OPINION: No, co-operative video games are not “friendslop” | The Muse

As an avid fan of co-operative video games, there is nothing more insulting than hearing a video game you are passionate about be simplified down in online spaces as “typical friendslop”.

Friendslop is a term that refers to low-budget and low-cost co-operative indie games. Usually, “friendslop” is the type of game you play with some friends for a while before dropping it entirely and playing something else; a form of disposable media based upon short game length and cheap consumer cost.

https://themuse.ca/opinion-no-co-operative-video-games-are-not-friendslop/Open linkView original on piefed.social
7
Bside·B-side Gamingbyfalseprophet

B-side gaming zine #12 (news - indie - open-source - homebrew, gaming history, humor)

Welcome

Hello everyone. It has been a long while since the last zine. I have been busy in life, so I could not find enough time to work on it, and I kept pushing the release further and further back. Well, finally I got around and finished it, and here it is.

  • We have news as usual: open-source, indie, and homebrew news.
  • An article on early video games.
  • Game Boy homebrew release schedule.
  • Free game in python
  • Top 10
  • And some memes.

News

Open Source game news

Hades Revisited 0.20.3 (2026-09-18)


Gameplay


Gameplay

Hades Revisited is a game in development. The goal of this project is to create a deep and complex survival and terraforming game set on a far-away volcanic planet.

Currently, the game is mostly a sandbox game.

Version 0.20.3 released. This is small bugfix update.

  • Fix orange sapling not growing orange buds
  • Fix mob definition issues
  • Fix incorrect chondrite tooltip
  • Translation updates

Link

Lazarr! 2.2.4 (2026-09-18)


Gameplay


Gameplay

Lazarr! is a 3D puzzle game. You’re a pirate on the search for treasure. Sail to different places of the world and find all gold blocks in treasure chests.

But there’s a catch: The chests are locked by an advanced security mechanism and the only way to unlock them is by solving puzzles with lasers.

You can interact with the environment by taking, placing and rotating mirrors and various other blocks. It starts simple but will become more challenging later on.

Version 2.2.4 released! This minor update utilizes new features that came with Luanti 5.17.

  • Fix warning about parrot textures
  • Hiding HUD no longer hides damage overlay (Luanti 5.17+)
  • Improve text alignment in books (Luanti 5.17+)
  • Translation updates

Link

Mindustryv 8 Build 160 (2026-09-11)


Gameplay


Gameplay


Gameplay

An RTS tower defense factory game.

  • Added a system for plugins to display custom UI on clients
  • Added support for servers sending dynamic textures to clients via --Vars.netServer.sendTexture
  • Added server remote methods for bulk-filling tiles
  • Added button to restore automatically disabled mods
  • Added version selection for mods that are reinstalled
  • Added support for viewing items in bridge conveyors
  • Added descriptions for more settings
  • Added a button to the server browser to sort by player count
  • Added a target dummy block for measuring DPS
  • Added button to unset keybinds
  • Added map sorting by last modification date
  • Added localization support for logic editor

and much more Link

Parallel Overhead 1.2.0 (2026-09-01)

Parallel Overhead is a colorful endless runner game where you take control of the ships Truth and Beauty on a groundbreaking trip through hyperspace. A stable hyperspace tunnel has finally been achieved with the two ships supporting it on opposite walls of the tunnel. Well, almost stable... Keep the ships from falling through the cracks!

This release introduces:

  • Unstable Pulse by oglsdl to the soundtrack
  • highest score tracking

and fixes:

  • game time sometimes running faster than real time
  • HUD rendering with sdl2-compat
  • building with the -std=gnu23 GCC flag (default in GCC 15)
  • building with the -Werror=format-security GCC flag (#14, submitted by Marcin Ser

Link

Unciv 4.21.11 (2026-08-22)


Gameplay

Unciv is an open source, mod-friendly Android and Desktop remake of Civ V, made with LibGDX. Build your civilization, research technologies, expand your cities and defeat your foes!

Fixed repair functions for when there is only a pillaged road

Avoid ANRs when opening civilopedia

By SomeTroglodyte:

- Fix Future Tech not counting for Contest Technologies quest
- Fix ImprovementPicker not offering Improvements needing a removal

Reduce autosave memory spikes - By mvanhorn

AI: Better picking of next unit to construct - By WhoIsJohannes

Crude mod author block list - By unciv-loof

Fixed crash when activating 2 cityscreen arrow buttons at the same time

Pixelpusher 0.91.0 (2026-08-12)

Pixelpusher is a drone-based team combat game that emphasizes positioning and momentum above all else. Control space and manage risk with every move of your drones. Play capture the flag with up to 32 players.

Best played with a two-button mouse.

v0.91.0

Gameplay

- Decrease drone radius by 10%
- Capture the flag
    - Change controls for picking up flags
        - Overseers no longer pick up flags automatically
        -To pick up flags, press or hold the flag button
    - Gradually increase flag carrier burn damage during flag stalemates
    - Templar
         - Reduce psi-storm slow (+30% drag -> +22% drag)
    - Phantom
    	- Remove blink cast range reduction in CTF mode
    	- Slightly increase collision damage of overlapping entities (e.g. after blinking on top of a target)

Visuals

- Make CTF flag stalemate radius more visible

Misc

- Rendering optimizations

Indie game news

Check Out This Indie Hand-Painted Adventure Game Bridgebourn That Looks 3D But Isn't


Bridgebourn

The game features a story-rich narrative, where you assume the role of an adventurer wandering with your group of friends and exploring the wilderness of Fadelands, dungeons, woods, and more. The world is infused with magic – acquire magical loot while exploring its expanses, battle foes with custom spells, and experiment with powerful reactions by combining abilities.

Link

Sucker for Love: Crush Landing Impressions – The Crush is Coming From Inside the House


Sucker for Love


Sucker for Love

Sucker for Love is, despite being a niche game in a niche genre, a bit of an indie institution at this point. Its first iteration spun out of a game jam title and was successful enough to greenlight a sequel that came only two years later, and now, two years after that, we have a third entry that seems to be a bit of a shake-up.

Link

Celeste Co-Creator Is Making A Gorgeous New Game Boy-Style Metroidvania


City of None

There’s a gorgeous new pixely Metroidvania on the way next year that I now have my eye on. It’s called City of None, and it’s made by one of the co-creators of Celeste, and published under the same studio label.

Link

Snowboarding Racing Game Hyperyuki: Snowboard Syndicate Is Unapologetically SSX-Coded


Hyperyuki: Snowboard Syndicate

Wearing your influences up your sleeves proudly can either come off as a copycat or an inspired choice. Developer Wabisabi Games is hoping that it comes across as the latter with their new game Hyperyuki: Snowboard Syndicate, which is undoubtedly inspired by the greatest snowboarding racing game series to hit the 2000s, SSX.

Link

Cozy puzzle exploration game Slumbering Woods

“We started developing Slumbering Woods two years ago, inspired by our love of rainforest walks and the incredible ecosystems they support,” shared the Chunky Quail team in a press release. “We wanted to create a world that captures the wonder of discovering strange fungi in nature while also reflecting how fragile these ecosystems can be and how easily they can be disrupted. Turning that inspiration into exploration and puzzle-solving has been an exciting challenge, and we’re happy to finally share the game publicly and bring it to BitSummit for players to experience for the first time.”

Link

New Indie Game is The Mario Kart Maker


Gameplay
Gameplay

Mythic Kart Maker is a low-poly combat racing game developed and published by Dream Mix Games, and it looks just like the Mario Kart Maker a lot of us have been dreaming of for years.

Link

Who let the ducks out? Microphone-Driven Co-op Quack Quack Up


Gameplay

As professional (but overwhelmed) duck herders, you and your friends must use your lung capacity to guide a flock of oblivious ducks through treacherous terrain. These ducks don’t speak human, they don’t follow rules, and they love falling off cliffs.

Link

There Is No Next Stop, a psychological horror visual novel set aboard a train that never stops, gets Steam demo


Gameplay

South Korean indie developer HANPAGE released a demo for the psychological horror visual novel There Is No Next Stop on June 3 via Steam. The full game is scheduled to launch in August 2026.

True to its title, the setting of There Is No Next Stop is a train that never stops. The protagonist, a high school senior called Mia, finds herself trapped in a parallel dimension one day after hearing the unusual announcement, “There is no next stop” during her daily commute. She wakes up with no memories, surrounded by grotesque, mindless creatures called Guests out to hunt and devour her.

Link

Witchspire Is The Cozy Witchy Valheim Alternative I've Been Waiting For


Magic makes everything better


Gameplay

There’s a point in Witchspire when a little Froblin (frog goblin, naturally) comes croaking out of the woods, lobbing magical attacks at me with all the confidence of a creature that has never looked in a mirror. The sensible response would be to fight back. My response was ‘oh my god, look at him!’ Within seconds, I had gone from defending myself to trying to figure out if this lovely little creature could be convinced to live in my home.

Link

Cozy Builder Preview: A Family Studio’s Healing Sandbox About Rebuilding an Earthquake


Gameplay

No combat. No failure. No time limits. In a serene valley where vineyards stretch toward sunlit hills, peaceful hours unfold as you build your dream château alongside friends. Cozy Builder, the healing sandbox builder from small family studio Pangea Game Studios

Link

Paralives Early Access Preview: A Beautiful Beginning


Gameplay


Gameplay

Life sim games are an ideal outlet for escapism, a way to live many different lives. We can build a big house that we could never hope to afford in real life

link

Review: Lootbound

Lootbound is a love letter to the fans of the atmospheric, dark fantasy action genre, and it wears its inspiration proudly on its sleeves. Fans of Blasphemous and The Last Faith, even though the genre is different, will instantly feel at home. Lootbound, however, carves its own identity through strategic turn-based combat with DnD mechanics thrown in the mix.

Link

This indie game is turning dressmaking into the ultimate creative fantasy

This indie game is turning dressmaking into the ultimate creative fantasy

Link

Springs, Eternal launches in November


Springs, Eternal

Lo-fi first-person narrative exploration game Springs, Eternal will launch for PC via Steam in November, newly revealed publisher Serenity Forge and developer Fullbright announced.

Link

We Are So Cooked: Free Ragdoll Co-Op Stealth Game Launches October 15 on Steam


We Are So Cooked

You and up to three friends have accidentally killed someone. This is the game's only opening premise, offered with cheerful certainty and no further detail. Someone is dead. You are responsible. The building is full of people who will scream if they see a body, guards who will arrest you if they hear a scream, cameras that watch the hallways.

Link

Mayday: The Survival Island Preview


Gameplay

Twenty-four islands. Zero procedural generation. Over 1,000 individual hand-drawn animation frames for a single character. Pequi Studios’ Mayday: The Survival Island sets its release date at PAX West with a specific creative bet: that in a genre defined almost entirely by algorithmically generated worlds, an entirely handcrafted open world is worth the labor it costs.

Link

Prepare to Meet the Babylonian Twins

A forgotten puzzle-platformer from 1993 is finally getting its long-awaited second chance. Indie developer BitHunch has announced that Babylonian Twins will launch on Steam this fall, with a free demo already available for players who want to try it ahead of release.

Link

Homebrew News

Mooncat's Trio GBA


Mooncat's Trio

Help Mooncat return to the moon by navigating five uniquely themed worlds, each featuring five levels.

Link

Astral Possession GB


Gameplay


Gameplay

Astral Possession is a simple arcade style platformer Gameboy Color Game. You play as a cute ghost that can possess 2 different NPC characters. Avoid giant spiked balls and collect coins. Collect 10 coins and you get teleported to a new level. Try to beat all 9 levels.

Link


Featured article: The first video games


Pong

Have you ever wondered how gaming started? Which was the first video game? The first arcade machine? If yes, keep reading :)

But before we start, we have to define what a video game is. Which is actually harder than one would imagine.

The term "video game" implies that a video signal is transmitted to a display, but that is not always the case. Games like Nintendo's Game & Watch series and other LCD games do not have a video signal, these instead have all possible character poses and objects permanently etched directly into the liquid crystal layers.

So a more appropriate definition would be something like: any game that is played on electronic hardware that uses logic circuits and uses some kind of interactivity between the game and the player.

Proto-game

The cathode-ray tube amusement device is considered the ancestor of all video games. This was a device that used a cathode-ray tube connected to an oscilloscope. The CRT projected a spot on the display and used the knobs and switches on the oscilloscope to move and expand the size of the spot. There was no software running on the device, no program was executed. Instead, plastic targets were put on the display that light spot needed to hit, and then once they were hit, they needed to be removed manually.

The first real video games.

Turochamp is the earliest known computer game to enter development, but was never completed by Turing and Champernowne, as its algorithm was too complex to be run by the early computers of the time such as the Automatic Computing Engine. Turing attempted to convert the program into executable code for the Ferranti Mark 1 computer in Manchester, but he was unable to do so. Turing played a match against computer scientist Alick Glennie using the program in the summer of 1952, executing it manually step by step, but by his death in 1954 had still been unable to run the program on an actual computer. Champernowne did not continue the project, and the original program was not preserved and it is considered a lost game.


Nimrod computer

A lot of early computer games were developed for unique hardware to show off the capabilities of specific large computers and impress people. They were usually not ported to another computer and were typically discarded after fulfilling their purpose. There is very little information about them, who worked on them, when the games were publicly displayed and for how long. Thus, making it impossible to determine exactly which one is the first one. One of those games built for demonstration purposes is a tic-tac-toe game by Josef Kates in 1950. In the year 1951, the Ferranti company demonstrated Nimrod, a computer designed to play Nim.


OXO

And one year later, Christopher Strachey created a Checkers game. Also in 1952, Sandy Douglas created OXO another tic-tac-toe game on the EDSAC, allowing players to play tic-tac-toe on a CRT screen. Around the same time, The University of Michigan developed a pool game using MIDSAC, one of EDSAC's successors, in 1954, which continuously updated graphics on screen.


Tennis for two

In 1958, William Higinbotham created Tennis for Two at Brookhaven National Laboratory, displaying a simplified tennis match on an oscilloscope. This is considered one of the first games created for entertainment instead of research.

In the year 1962, Spacewar! Was developed for the PDP-1 minicomputer at MIT by Steve Russell and his colleagues. It became the first widely shared video game, circulating across universities that had PDP-1 computers. Modifications introduced features like a moving starfield, simulated gravity, and external controllers.


Spacewar!

Despite the PDP-1's high cost and rarity, Spacewar! Inspired others in programming communities to create their own games. During the 1960s, other games also appeared on mainframes, including The Sumerian Game by Mabel Addis and early simulations written in general-purpose languages like BASIC. Read issue #7 of Bside Gaming for more info about BASIC.

The first game arcade machines

The first video game to spread beyond a single computer installation, Spacewar!, was developed by students and staff at MIT on a PDP-1 mainframe computer in 1962. As the group that developed it moved across the country to different schools, they took Spacewar!'s source code to run on other mainframe machines at those schools. It inspired two different groups to attempt to develop a coin-operated version of the game.


Computer Space Arcade Machine

Around 1970, Nolan Bushnell was invited by a colleague to see Spacewar! running on Stanford University's PDP-6 computer. Bushnell got the idea of recreating the game on a smaller computer, a Data General Nova, connected to multiple coin-operated terminals. He and fellow Ampex employee Ted Dabney, under the company name Syzygy, worked with Nutting Associates to create Computer Space, the first commercial arcade game.

Pong Arcade

Bushnell got the idea for his next game after seeing a demonstration of a table tennis game on the Magnavox Odyssey, the first home video game console that was based on the designs of Ralph H. Baer. Deciding to go on their own, Bushnell and Dabney left Nutting and reformed their company as Atari Inc. and brought on Allan Alcorn to help design an arcade game based on the Odyssey game. In August 1972, Pong was first released in limited numbers in November 1972.

By the end of 1974, more than fifteen companies, both in the United States and Japan, were in the development of arcade games. A key milestone was the introduction of microprocessor technology to arcade games with Midway's Gun Fight , which could be programmed more directly rather than relying on the complex interaction of integrated circuitry (IC) chips. Based around two Old West cowboys armed with revolvers and squaring off in a duel, it was the first video game to depict human-to-human combat. The game's concept was adapted from Sega's 1969 arcade electro-mechanical game Gun Fight. The game was a global commercial success. In Japan, Western Gun was among the top ten highest-grossing arcade video games of 1976.

To be continued?


Physical Homebrew Releases for Gameboy

Black Tower Enigma by Ogre Pixel Link

Blupi’s Adventures by Broke Studio Link

Dangerous Demolition by Broke Studio Link

Gas Station Story by Broke Studio Link

Gumball in Trick-or-Treat Land by Mega Cat Studios Link

l’Abbaye des morts by Broke Studio Link

Learning Center – The Paper Trail Panic by Guardian Games Studio Link

Lightseeker by Bitmap Soft Link
Lunar Mystery 2103 by GnomeKing Games Link

Metal Miracle by Pat Morita Team Link

Repugnant Bounty (Re-Release) by Broke Studio Link

Rusty Flesh by Broke Studio Link
Shadow Island Green Pixel Games Link

Skateland Adventures by Kaiman Games Link

SOLASTRA by Broke Studio Link

Sushi Gun + Birdie Bartender by Broke Studio Link

The Cult of Blood by Dancing Mad Studios Link

The Echoes of Worlds by Broke Studio Link

Trigwa by Broke Studio Link

Via Triumphalis by Studio Loading Productions Link

Wheeze! by Vault Interactive Studio Link

Yap and the Enchanted Bubbles by Broke Studio Link

Source


Free Game

import json
import os


def title(name):
    if name == "":
        name = input(" Enter your name: ")
    print(" ███╗   ███╗██╗   ██╗████████╗██╗  ██╗██╗██╗  ██╗██╗  ██╗\n"
          " ████╗ ████║╚██╗ ██╔╝╚══██╔══╝██║  ██║██║╚██╗██╔╝██║  ██║\n"
          " ██╔████╔██║ ╚████╔╝    ██║   ███████║██║ ╚███╔╝ ███████║ \n"
          " ██║╚██╔╝██║  ╚██╔╝     ██║   ██╔══██║██║ ██╔██╗ ╚════██║\n"
          " ██║ ╚═╝ ██║   ██║      ██║   ██║  ██║██║██╔╝ ██╗     ██║\n"
          " ╚═╝     ╚═╝   ╚═╝      ╚═╝   ╚═╝  ╚═╝╚═╝╚═╝  ╚═╝     ╚═╝\n")
    print(f" Welcome Back {name}")
    print(" You enter the temple you just opened.")
    print(" Enter 1: To continue, Press 0 to exit")
    return name


def temple_one(color, reset, tasks):
    print(color)
    print("'.----.   .----.    .----.   '.----.'")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print(" |'  '|   |'  '|    |'  '|    |'  '| ")
    print("'''''''' ''''''''  ''''''''  ''''''''")
    print(reset + " The temple entrace. Exits: 'N'.")
    print(" You find yourself in a large room with\n")
    print(" filled with Pillars. \n")
    return True


def temple_two(color, reset, tasks):
    print(color)
    print("|.'',                                     ,''.|\n"
          "|.'.'',                                 ,''.'.|\n"
          "|.'.'.'',                             ,''.'.'.|\n"
          "|.'.'.'.'',                         ,''.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|,',',',',|                         |,','.',',|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.','       /*********\\       ','.'.'.'.|\n"
          "|.'.'.','        /***********\\        ','.'.'.|\n"
          "|.'.','         /*************\\         ','.'.|\n"
          "|.','          /***************\\          ','.|\n"
          "|;____________/*****************\\____________;|\n")
    print(reset + " A large corridor connects 2 temple rooms: 'N' and 'S'.")
    return True


def temple_three(color, reset, tasks):
    print(color)
    print("__________   __________   __________  __________")
    print("|////////|   |////////|   |////////|  |////////|")
    print("|////////|   |////////|   |////////|  |////////|")
    print("|////////|   |////////|   |////////|  |////////|")
    print("----------   ----------   ----------  ----------")
    print("__________   __________   __________  __________")
    print("|////////|   |////////|   |////////|  |////////|")
    print("|////////|   |////////|   |////////|  |////////|")
    print("|////////|   |////////|   |////////|  |////////|")
    print("----------   ----------   ----------  ----------")
    print("__________   __________   __________  __________")
    print("|////////|   |////////|   |////////|  |////////|")
    print("|////////|   |////////|   |////////|  |////////|")
    print("|////////|   |////////|   |////////|  |////////|")
    print("----------   ----------   ----------  ----------")
    print("__________   __________   __________  __________")
    print("|////////|   |////////|   |////////|  |////////|")
    print("|////////|   |////////|   |////////|  |////////|")
    print("|////////|   |////////|   |////////|  |////////|")
    print("----------   ----------   ----------  ----------")
    print(reset + " You are in a large room with a tiled floor. ")
    print(" Exits: 'N', 'S' 'E' and 'W'.")
    return True


def temple_four(color, reset, tasks):
    print(color)
    print("    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
          "\n    @ : : : : : : : : : : : : : : @"
          "\n    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
          "\n    |                             |"
          "\n    |                             |"
          "\n     \\                           /"
          "\n      \\                         /"
          "\n       \\                       /"
          "\n        \\ ___ ___ ___ ___ ___ /"
          "\n          ( __ ___ __ __ ___ )"
          "\n          (888888888888888888)"
          "\n           --\\ ---------- /--"
          "\n              ((((((o)))))))"
          "\n              \\           /"
          "\n               | | | | | |"
          "\n               | | | | | |"
          "\n               | | | | | |"
          "\n               | | | | | |"
          "\n             _(IIIIIIIIIII)_"
          "\n         ___/_______________\\___"
          "\n       /_________________________\\"
          "\n      (___________________________)")
    print(reset + " You see a giant altar in the form of cup")
    print(" in the middle of the  Exit: 'S'.\n")
    return True


def temple_five(color, reset, tasks):
    print(color)
    print("|.'',                                     ,''.|\n"
          "|.'.'',                                 ,''.'.|\n"
          "|.'.'.'',                             ,''.'.'.|\n"
          "|.'.'.'.'',                         ,''.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|,',',',',|                         |,','.',',|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.','       /---------\\       ','.'.'.'.|\n"
          "|.'.'.','        /-----------\\        ','.'.'.|\n"
          "|.'.','         /-------------\\         ','.'.|\n"
          "|.','          /---------------\\          ','.|\n"
          "|;____________/-----------------\\____________;|\n")
    print(reset, "A large corridor connects 2 temple rooms. Exits: 'E' and 'W'.")
    return True


def temple_six(color, reset, tasks):
    print(color)
    print("|.'',                                     ,''.|\n"
          "|.'.'',                                 ,''.'.|\n"
          "|.'.'.'',                             ,''.'.'.|\n"
          "|.'.'.'.'',                         ,''.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|,',',',',|                         |,','.',',|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.','       /---------\\       ','.'.'.'.|\n"
          "|.'.'.','        /-#########-\\        ','.'.'.|\n"
          "|.'.','         /-###########-\\         ','.'.|\n"
          "|.','          /-#############-\\          ','.|\n"
          "|;____________/-----------------\\____________;|\n")
    print(reset, "A large corridor connects 2 temple rooms. Exits: 'N' and 'E'.")
    return True


def temple_seven(color, reset, tasks):
    print(color)
    if "water_container" not in tasks:
        print("═══════**══*═***════╗")
        print("                    ║")
        print("                    ║")
        print("═══════**══O═***════╝")
    else:
        print("═══════**══*═***════╗")
        print("                    ║")
        print("                    ║")
        print("═══════**══*═***════╝")
    print(reset, "You find yourself in a small room with some pipes and cogs")
    if "water_container" not in tasks:
        print(" An cog seems to be missing Exit 'S'. \n")
    else:
        print(" Exit 'S'")
    return True


def temple_eight(color, reset, tasks):
    print(color)
    print("|.'',                                     ,''.|\n"
          "|.'.'',                                 ,''.'.|\n"
          "|.'.'.'',                             ,''.'.'.|\n"
          "|.'.'.'.'',                         ,''.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|,',',',',|                         |,','.',',|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.','       /---------\\       ','.'.'.'.|\n"
          "|.'.'.','        /-----------\\        ','.'.'.|\n"
          "|.'.','         /-------------\\         ','.'.|\n"
          "|.','          /---------------\\          ','.|\n"
          "|;____________/-----------------\\____________;|\n")
    print(reset, "A large corridor connects 2 temple rooms. Exits: 'E' and 'W'.")
    return True


def temple_nine(color, reset, tasks):
    print(color)
    print("|.'',                                     ,''.|\n"
          "|.'.'',                                 ,''.'.|\n"
          "|.'.'.'',                             ,''.'.'.|\n"
          "|.'.'.'.'',                         ,''.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|,',',',',|                         |,','.',',|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.'.|                         |.'.'.'.'.|\n"
          "|.'.'.'.','       /---------\\       ','.'.'.'.|\n"
          "|.'.'.','        /-----------\\        ','.'.'.|\n"
          "|.'.','         /-------------\\         ','.'.|\n"
          "|.','          /---------------\\          ','.|\n"
          "|;____________/-----------------\\____________;|\n")
    print(reset, "A large corridor connects 2 temple rooms. Exits: 'N' and 'W'.")
    return True


def temple_ten(color, reset, tasks):
    print(color)
    print("    ______\n"
          " ,-' :  : `-.\n"
          " ( :  :  :  .  )\n"
          "|  :  :  :  :  |\n"
          "|  .  :)(:  :  |\n"
          "|     (OO)     |\n"
          "|  :  :;:  (o) |\n"
          "|  :  :  :     |\n"
          "I  :  :  :  :  |\n"
          "|  :  :  :  :  |\n"
          "|  :  :  :  :  |\n"
          "|____.----.____|\n")
    print(reset, " In front of you is a large metal door. Exit 'S'.")
    return True


def ending(color, reset, tasks):
    print(color)
    print(" _______________\n"
          "(              )\n"
          "(              )\n"
          "|              |\n"
          "|              |\n"
          "|              |\n"
          "|              |\n"
          "|              |\n"
          "I              |\n"
          "|              |\n"
          "|              |\n"
          "|              |\n")
    print(reset, "The door opens and you exit back into the forest")
    print(" To be continued in part 5.")
    print(" Score, inventory and spells saved. You can use the save,json file to")
    print(" import the score into the third part of the game.")
    print(" Press enter to exit.")
    return False


def main():
    print()
    # variables
    loop = True
    room = 'title'
    info = ""
    game_score = 0
    name = ""
    direction = "n"
    # Colors
    color = ''
    green = '\033[32m'
    yellow = '\033[33m'
    blue = '\033[34m'
    red = '\033[31m'
    gray = '\033[90m'
    reset = '\033[m'
    search_counter = 0
    inventory = []
    tasks = []

    spells = {
        "ao": "open",
        "xyzzy": "teleport",
        "mo": 'summon magic item'
    }

    rooms = {
        "t1": temple_one,
        "t2": temple_two,
        "t3": temple_three,
        "t4": temple_four,
        "t5": temple_five,
        "t6": temple_six,
        "t7": temple_seven,
        "t8": temple_eight,
        "t9": temple_nine,
        "t10": temple_ten,
        "end": ending,
    }

    colors = {
        "t1": gray,
        "t2": blue,
        "t3": gray,
        "t4": blue,
        "t5": blue,
        "t6": blue,
        "t7": red,
        "t8": blue,
        "t9": blue,
        "t10": red,
        "end": red,
    }

    move_south = {
        "t10": "t9",
        "t7": "t6",
        "t4": "t3",
        "t3": "t2",
        "t2": "t1",
    }
    move_north = {
        "t1": "t2",
        "t2": "t3",
        "t3": "t4",
        "t6": "t7",
        "t9": "t10",
    }

    move_west = {
        "t3": "t5",
        "t5": "t6",
        "t8": "t3",
        "t9": "t8",
    }

    move_east = {
        "t3": "t8",
        "t8": "t9",
        "t6": "t5",
        "t5": "t3",
    }

    no_action_rooms = [
        'exit',
        'title',
        'end',
    ]

    # Try to load save data from precious part
    if os.path.exists('ms3.json'):
        with open('ms3.json', 'r') as sv:
            loaded_data = json.load(sv)
            game_score = loaded_data['game_score']
            name = loaded_data['name']
            for item in loaded_data['inventory']:
                inventory.append(item);
            info = " Import successful"

    # Main game loop
    while loop:
        print()
        if room == 'title':
            name = title(name)
        print("*" * 60)
        print(f" Name: {name}", end="")
        space = 45 - len(name)
        print(" " * space, end="")
        print(f"Score: {game_score}")
        if room in rooms:
            loop = rooms[room](color, reset, tasks)
        if room not in no_action_rooms:
            print(green)
            if direction == "n":
                print(" ⣿⣿⣿N⣿⣿⣿")
                print(" ⣿W + E⣿")
                print(" ⣿⣿⣿S⣿⣿⣿")
            if direction == "s":
                print(" ⣿⣿⣿S⣿⣿⣿")
                print(" ⣿E + W⣿")
                print(" ⣿⣿⣿N⣿⣿⣿")
            if direction == "e":
                print(" ⣿⣿⣿E⣿⣿⣿")
                print(" ⣿N + S⣿")
                print(" ⣿⣿⣿W⣿⣿⣿")
            if direction == "w":
                print(" ⣿⣿⣿W⣿⣿⣿")
                print(" ⣿S + N⣿")
                print(" ⣿⣿⣿E⣿⣿⣿")
            print(reset)
            print(" Enter the letters corresponding exits to go there")
            print(" Enter 'F:  Search', 'I: Inventory', 'M: Magic Spells'")
        # Display Text and input prompt
        print(yellow + info + reset)
        info = ""
        print("*" * 60)
        command = input(" Command: ")
        command = command.lower()
        if command == "0":
            loop = False
        if command == "1" and room == "title":
            room = "t1"

        # Search area actions
        if command == "f":
            info = " You searched the area but found nothing"
            if room == 't1':
                if search_counter == 0:
                    info = " The the second pillar in the third colun is Marked with an 'O' Symbol"
                    search_counter += 1
                    if "O" not in tasks:
                        print("here")
                        tasks.append("O")
                        game_score += 1
                else:
                    if "cog" not in tasks:
                        info = " You see something on top of the columns but you have no way of reaching it."
                        search_counter = 0
                        if "top_pillar" not in tasks:
                            tasks.append('top_pillar')
                            game_score += 1
            if room == 't3':
               print("Which tile do want to check")
               tile = input("Enter Column and row (1x1): ")
               if tile == "2x3" or tile == "2 x 3":
                   if "levitation_spell" not in tasks:
                       info = "There is a locked chest hidden under the tile"
                       if "hidden_chest" not in tasks:
                            tasks.append("hidden_chest")
                            game_score += 2
            if room == "t4":
                info = " The Cup is empty, some pipes hang above it."
                if "water_container" in tasks:
                    if "Large_Key" not in tasks:
                        info = " You found a Large Key floating in the water filled Altar. " \
                               "\n It must have fallen through the water pipes. You grab it "\
                               "\n before the water drains from the cup."
                        inventory.append("Large_Key")
                        tasks.append("Large_Key")
                        game_score += 2
            if room == 't6':
                info = " You see a trap door on the floor with no way of opening it."
                if "trap_door" not in tasks:
                    tasks.append("trap_door")
                    game_score += 1
            if room == 't10':
                info = " There is a large keyhole in the door"
                if "checked_keyhole" not in tasks:
                    tasks.append("checked_keyhole")
                    game_score += 1

        # inventory items commands
        if command == 'i':
            print("*" * 60)
            print(" Inventory: ")
            print(red, inventory, reset)
            print("\n Enter the name of the inventory item you want to use")
        if command == "key":
            info = " What key?"
            if "key" in inventory:
                info = " You cannot use the key here"
                if room == 't3':
                    if "hidden_chest" in tasks:
                        if "omm" not in spells:
                            info += "\n You unlock the chest and find a scroll it reads:"
                            info += "\n ██ ██ ▓█"
                            info += "\n ██ ██ █▓"
                            spells["oom"] = "Levitate"
                            game_score += 3
                            inventory.remove("key")
                            tasks.append("levitation_spell")
                if room == 't10':
                    info = " The key does not fit into the door key hole it is to small."
        if command == "cog":
            info = " What cog"
            if "cog" in inventory:
                info = " You cannot use the cog here"
                if room == 't7':
                   info = "You hear water filling a container"
                   if "water_container" not in tasks:
                       inventory.remove("cog")
                       tasks.append("water_container")
                       game_score += 2
        if command == "large_key" or command == "large key":
            info = " What large key?"
            if "Large_Key" in inventory:
                info = " You cannot use the key here"
                if room == 't10':
                    info = " You open the big metal door and exit the temple"
                    inventory.remove("Large_Key")
                    game_score += 5
                    data_to_save = {
                        "name": name,
                        "game_score": game_score,
                        "inventory": inventory
                    }
                    with open('ms4.json', 'w') as sv:
                        json.dump(data_to_save, sv)
                        room = "end"
        if command == "coin":
            info = " What coin?"
            if "coin" in inventory:
                info = " You cannot use the coin here"

        # Movements
        if command == 's':
            if room in move_south:
                room = move_south[room]
                direction = 's'
        elif command == 'n':
            if room in move_north:
                room = move_north[room]
                direction = 'n'
        elif command == 'e':
            if room in move_east:
                room = move_east[room]
                direction = 'e'
        elif command == 'w':
            if room in move_west:
                room = move_west[room]
                direction = 'w'

        #Magic commands

        if command == "m":
            print(yellow)
            print(spells)
            print("\n Enter a spell name to use it")
            print(reset)

        if command == "ao":
            if room == "t6":
                if "key" not in tasks:
                    info = " The trap door opens and you find a small key"
                    inventory.append("key")
                    tasks.append("key")
                    game_score += 3
                else:
                    info = " The trap door opens you find nothing"
            else:
                info = " Nothing happens"

        if command == "mo":
            info = " Nothing happens"

        if command == "oom" and "oom" in spells:
            if room == "t1":
                info = " You begin to levitate and find a cog on one of the pillars"
                if "cog" not in tasks:
                    tasks.append("cog")
                    inventory.append("cog")
                    game_score += 2
            else:
                info = " You begin to levitate but find nothing interesting up in the air"

        if command == "xyzzy":
            info = " You hear a loud noise and strange symbols appear in the air\n █  ██       ██\n ██ ▓▓ ██ ██ ▓▓\n" \
                   " You have teleported."
            room = "t4"

        if room in colors:
            color = colors[room]


main()

TOP 10

Top 10 indie games of all time based on votes Bside gaming community.

Note: Downvotes are ignored and only games that are directly linked to the community, links to game reviews or news on another site are not counted.

1. Noita

Noita is a magical action rogue-lite set in a world where every pixel is physically simulated.

2. Dinoblade on Steam

Dinoblade is an intense action RPG set in a prehistoric world forever changed by a cataclysmic event. Step into the role of a young Spinosaurus, wielding a colossal Great Sword. Confront rival dinosaurs, some armed with weapons of their own, all in a desperate fight to prevent a looming extinction.

3. ANIMAL WELL

Explore a dense, interconnected labyrinth, and unravel its many secrets. Collect items to manipulate your environment in surprising and meaningful ways. Encounter beautiful and unsettling creatures, as you attempt to survive what lurks in the dark. There is more than what you see.

4 Tiny Glade

Tiny Glade is a small diorama builder where you doodle whimsical castles, cozy cottages & romantic ruins. Explore gridless building chemistry as the game adorns your glades with procedural detail. No management, combat or goals: just kick back and turn forgotten meadows into lovable dioramas.

5. Against the Storm on Steam and other stores

A dark fantasy city builder where you must rebuild civilization in the face of apocalyptic rains. As the Queen’s Viceroy, lead humans, beavers, lizards, foxes, and harpies to reclaim the wilderness and secure a future for civilization’s last survivors.

6. Shattered Pixel Dungeon

7. Tunic

Explore a land filled with lost legends, ancient powers, and ferocious monsters in TUNIC, an isometric action game about a small fox on a big adventure.

8 CSS Clicker

A game made entirely in HTML and CSS about building a website you can actually customize in-game

9. Look Mum No Computer

Brace yourself for a wild ride where music meets mayhem! Look Mum No Computertakes you to the quirky, pixel-art universe of Soldersworth in this twin-stick shooter action-RPG. Join Sam and his synthesizer sidekick, Kosmo, as you battle rogue machines and fix them from the inside — one electrifying beat at a time!

10. CARRION

CARRION is a reverse horror game in which you assume the role of an amorphous creature of unknown origins, stalking and consuming those that imprisoned you.


Corner of Fun


Lag


I hate this game

View original on piefed.social
8