11
\$\begingroup\$

The vacation season is coming to an end, and while it has been a moment to rest and have a good time with the ones we love, it has also been a good time for some of you to work hard on your next game.

Like we did last year, here we're proposing that you show us what you've been working on recently toward making your next game!

You can share with us

  • What's the most recent feature you've got in?
  • What are you the most proud of so far?
  • What's been the hardest part to do so far, why, and how did you managed to get over it?
  • What part do you think will be the hardest to complete in the near future?
  • What's a cool trick or solution you found that others might find useful?

Your game is eligible if:

  • It is a work in progress, meaning either an unreleased game, or an update/extension/DLC in development for a released game.
  • It is SFW (Safe-for-Work)
  • Its content respects the StackExchange Code of Conduct and Acceptable Use Policy, including but not limited to...
    • No bigotry.
      We don’t tolerate any language likely to offend or alienate people based on race, gender, sexual orientation, or religion — and those are just a few examples. Use stated pronouns (when known). When in doubt, don't use language that might offend or alienate.

    • No harassment.
      This includes, but isn’t limited to: bullying, intimidation, vulgar language, direct or indirect threats, sexually suggestive remarks, patterns of inappropriate social contact, and sustained disruptions of discussion.

    • Sexually Explicit Material. Accounts that use Stack Exchange to post sexually explicit or pornographic material, or links to it, will be suspended. If you think the content of the game is not safe for everyone, please make sure you add a warning notice to your answer, something like an ESRB content descriptor.

Rules for posting answers:

  • You must have asked at least one question, or provided at least one answer on the main site between September 1st 2021 and September 1st 2022.
  • One game per answer
  • Introduce your game first
  • You can link to your game's site or Steam/App Store page, but the answer can't be a link only one: please tell us about your work!
  • The links you provide must link directly to the game site, it must not be a "short link" such as bit.ly, or include some kind of redirection.
  • Submissions will close after September 30th
\$\endgroup\$
1
  • \$\begingroup\$ I’m voting to close this question because September is over; see you next year! \$\endgroup\$
    – Vaillancourt Mod
    Commented Oct 2, 2022 at 12:44

2 Answers 2

4
\$\begingroup\$

My name is Steven, and I've worked on a platformer/Metroidvania project called HertenHeld with GameMaker in my pasttime, and recently, I've come back to it to work on a content update again. https://ppowersteef.itch.io/hertenheld

I've talked about HertenHeld in a previous post here, but in short: You play as a huntress through a forest to save a deer from a big bad wolf.

The update in general can be described as "A new bonus area designed to be difficult, with an extra boss at the end.", along with several polish to the base game as well. enter image description here

And as the latest feature I've worked on: it was actually the boss herself, greatly inspired from the Alura Unes/Venus Weed from Castlevania:

enter image description here

Her design was initially created around 3 years ago, and since then I was already thinking about the possibility of making a boss out of her, but since the game was still in development for release, it was too big of a scope to be manageable. There were also some attempts post-release, but I had not found the motivation back until a year later. I think with the many different body parts connecting and behaving individually, and seeing how my 3 year old boss concept comes to life, is really something I'm proud to see as well.

The hardest part so far: That has been deciding how I wanted to implement the idea. For a longest time I had to decide if I wanted to make it an update, a New Game+, or a new game altogether. And each time I had to set every good and bad arguments of deciding one over the other. The current game's code felt rather dated at that point, but it was still the easiest to get extra content done without setting too high of an expectation with a full new game.

But what will be the hardest to complete? From what I can so far see, I probably think the testing/balancing the boss, She had a lot of cool attacks, but currently she also can be cheesed very easily, and balancing that out with a character with an end-game arsenal can be quite difficult to manage. But she is well received so far from what I've heard, and I feel motivated to get through this at the end too.

As for a cool trick I found: In order to make some parts of the boss regrow, I had to make an enemy spawner, just to attach it to these parts. The neat part of these is, that they won't spawn another enemy in if their enemy has already spawned. enter image description here

I managed to do this with giving the enemy a special spawnID on creation, and link that spawnID to the enemyspawner, then they search thoughout the enemies from the same entity if their ID is inbetween them, and then prevents it from spawning another.

I'd like to share the code with it as well:

GameMaker/GameMaker Studio 2 in the Step Event:

if (spawnObject != noone)
{
    allowSpawn = false; 
    if (instance_exists(spawnObject))
    {
        with (spawnObject)
        {
            if (spawnID == other.spawnID)
            {
                other.allowSpawn = false;
                break;
            }
            else
            {
                other.allowSpawn = true;
            }
        }
    }
    else
    {
        allowSpawn = true;  
    }
    
    if (allowSpawn)
    {
        //spawn enemy
        var enemy = instance_create_depth(x, y, depth, spawnObject);
        enemy.spawnID = spawnID;
    }
}
\$\endgroup\$
1
  • 1
    \$\begingroup\$ Thanks for sharing! \$\endgroup\$
    – Vaillancourt Mod
    Commented Sep 30, 2022 at 15:50
3
\$\begingroup\$

Automagia - a programming sandbox game

I'm a hobbyist game developer working on an incremental game I'm calling Automagia. It's intended as an educational/sandbox game that creates challenges that players solve by writing C# code.

For example, the player's avatar can only move on land. If they want to move on water, they need a boat - but they can't drive the boat directly. Instead, they control the boat with a script like this one:

[RequireCapability(typeof(IMovement))]
public class MoveOrderControlScript : ControlScript
{
    public override async Task Run()
    {
        while (this.IsAlive)
        {
            var whereTo = await this.AskQuestion<Position>("Where should I go?");
            await this.MoveTo(whereTo);
        }
    }
}

Then they can climb in the boat and tell it to move them across the river. I hope to distinguish it from other (more puzzle-like) programming games by not having a defined output for the solution - a different player might solve the problem instead by having a boat that moves back and forth between two set points automatically, etc. The game poses a problem, but it's up to the player to decide what a satisfactory solution looks like, and then implement their solution, not the solution.

Development status

I have most of the core features in (if the player doesn't mind an ugly UI and having to turn on development mode and install an unsigned MSIX package to play) and am in the process of creating content (and rewriting the UI) so that I can have a vertical slice to show my friends and family by the winter holidays. (My father and little sister are the archetypes of my two core demographics: an enthusiast programmer and a potential student of programming).

I'm currently working on:

  • Replacing my entire client! The game engine is written on dotnet6 because I want the game to appeal to enthusiasts who live on the latest-and-greatest (and I don't want to teach students on antiquated technologies either). At the time when I started development, dotnet6 was still in preview and there were no good game engines for it. As a result, my client up until now was written as a WinUI app. Now that MonoGame has updated to dotnet6, I'm rewriting my ui in MonoGame+ImGui.

The feature I'm most proud of is:

  • Seamless Visual Studio integration for rapid iteration times. The player can press Compile in Visual Studio and the new versions of their control scripts become available in Automagia immediately. Control scripts can even call this.InstallUpdates() to restart themselves on the newest version.

The hardest part so far has been:

  • Saving and loading player defined state. Because this is an incremental game, players need to be able to save and load the game while their solutions are running (ideally with some kind of offline progress). They need saving and loading working from minute-one, and since beginning programmers are part of my core audience, I can't expect them to deal with serialization themselves.

I think the hardest part still to come is:

  • Error handling and protecting the engine when it runs in the same process as player code. While I've basically thrown in the towel when it comes to intentional cheating (100% of my players are armed with debuggers and my game is written in managed code - preventing cheating is a lost cause), I do want to make sure that control scripts correctly stop when their entity dies, and that the player can't resurrect them or break the engine by cleverly catching an exception, etc.

A cool trick I've found is:

  • Custom awaitables are great for game logic. await can be made to run single-threaded and only update during defined points during the game's update loop - or wait for an event and then respond immediately to that event. Beyond creating a clean interface for my players to write control scripts, custom awaitables have also been a boon to me writing game logic. Almost every action that any entity in the game can perform is written as an async method in the engine.
\$\endgroup\$
1
  • \$\begingroup\$ Thanks for sharing! \$\endgroup\$
    – Vaillancourt Mod
    Commented Sep 14, 2022 at 18:22

Not the answer you're looking for? Browse other questions tagged .