Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - myroidtc

Pages: [1] 2 3
1
SFML projects / Re: Millie Megavolte 8: Millie and the Mole King
« on: February 26, 2024, 04:55:11 pm »
I recently implemented the Steam Input API for the sole purpose of including the controller button icons.

One thing I love about SFML is the documentation. Every function is explained and there are even tons of step-by-step instructions and examples of how to use different modules. SFML's documentation is something other libraries should strive for. It is certainly something Valve's team should strive for.

As of the time of writing, without being too much of a Negative Nancy, the Steamworks API documentation sucks. It's outdated, some of the example files throw errors, some of the newer functions/constants aren't listed anywhere in the documentation or even online.

If you plan on implementing Steam Input in your own SFML game, here is what I learned and what I recommend:

Link to developer tutorial for Steam Input

  • In the spirit of SFML, please make sure your game can run and rebind controls without the Steam Input API implemented or enabled.
  • Being an API, it needs time to start up and won't get things right away. If you initialize the API in class constructors, have your game try to get relevant information a second or so later. Otherwise, if it tries to get things like controller bindings right away, it will return garbage or worse yet, nullptrs.
  • Instead of keys, think of the inputs of your game as actions instead. Example: instead of seeing if the space bar is down, have a Jump action with an associated keyboard key and test for that instead. Steam Input works on Actions, not specific keys.
  • ACTION_LAYERS DOES NOT WORK. IT IS A MYTH. Either it was deprecated or it just flat out doesn't work anymore. If you include an "action_layers" section in your controller vdf, it will throw errors. Just forget about it. I wanted to use action_layers so I could have separate confirm/cancel buttons for menus but it just doesn't work. Instead, define it as a separate action set and switch between them in-game as needed. Action sets can share actions (example: you can have up/down/left/right in more than one set and they'll still refer to the same action)
  • Oh, and guess what: if your vdf has errors, Steam will tell you it has errors, but not what they are. Clicking the button to view errors displays basic information about the configuration instead. Useless.
  • unFlags: Since this isn't documented anywhere, here is what the uint32 flag does for GetGlyphPNGForActionOrigin(). It changes the style of the glyph it gets. 0 = knockout, 1 = light, 2 = dark.

I have attached some relevant files, including the manager I wrote, the InputConstants it mentions, and the in-game actions vdf file for the game.

Anyway here's a progress video of Millie 8 with one of the most recent characters added:
https://www.youtube.com/watch?v=2riH2uza0Z0

2
SFML projects / Re: Millie Megavolte 8: Millie and the Mole King
« on: December 31, 2023, 03:35:52 am »
Progress video showing most of what's functional so far:

https://www.youtube.com/watch?v=3ArwA4YC0DA

Mandatory SFML-related stuff:

In this version of the engine, strips of spikes are constructed more efficiently.

In the old version used in Zeran's Folly and Leowald, every spike unit was its own object and was updated individually. Each one used an sf::Sprite.

In the new version, each strip of spikes is one object instead of many. They have one hitbox and construct a single sf::VertexArray which is filled with random frames from the spikes texture. sf::Transforms are used in conjunction with the camera to position them on the screen. This saves a lot of time in computing collisions and drawing.

3
SFML projects / Millie Megavolte 8: Millie and the Mole King
« on: November 21, 2023, 07:56:56 pm »
Millie Megavolte 8: Millie and the Mole King



1. Background
Millie Megavolte was a Flash-based game series that ran from 2007 to 2013. I made a spiritual successor Zeran's Folly in SFML (and the sequel Leowald) but now I'm making a proper new Millie installment in fancy HD resolution for PC with SFML instead of Flash since, you know, Flash is kinda dead.

I moved from Flash to SFML back in 2013 as a school project to port Millie Megavolte 7. I felt limited by Flash and was impressed by what I could do with SFML, particularly with the gamepad and shader support. I liked SFML so much I made a couple big games with it with more on the way!

After completing my last game Johnny Lionface in Unity, I wanted to go back to SFML. Johnny took over three and a half years to make so I wanted to do a shorter project. The Millie games were always small so I decided to make another one. While gutting a copy of the Leowald engine to use for Millie, I had a lot of ideas and decided to refactor the engine to make it easier to add lots and lots of content.

There will be the base small game of a story mode for Millie and her friends but there will be tons of content to come as the game and engine will be my sketchpad. Whatever stupid characters, levels, and ideas I want will go in. I'll keep working on it until I run out of ideas.

I plan on releasing the small game on Steam for free with a paid DLC that unlocks everything else. The previous Millie games were all free so why not this one too?

https://www.youtube.com/watch?v=nh0Y7c1tAPE

2. Why I (still) use SFML
I (still) use SFML because it's exactly what it says: simple and fast. The library abstracts a lot of boring implementation details but is still powerful enough to do almost anything you want.

SDL doesn't appeal to me because it's based on ugly C and isn't as easy to use.

Unity doesn't appeal to me because I prefer keeping things simple enough to where I know everything that's going on. If there's a camera system, I know how it works because I coded it, not because the software provided it.

Overall, I'm familiar and comfortable with SFML so that's what I use instead of other libraries. Maybe newer libraries are faster or whatever but that's not important to me. A lot of beginners will agonize over what library or software to use to make games and the answer experienced people give every time still holds true: use what you like. I like SFML!

3. Additional Libraries Used
SQLite3: The game uses databases for level data, text strings, object information, and more.
GLM: Math library used for trig and vector functions.
Spine: Bone-based animation library from Esoteric Software.
Box2D: Used only for the shape collision check functions, none of the simulation stuff.

4. Game Basics
Millie 8 is an action platformer. Gameplay consists of running, jumping, and using directional-input attacks to fight enemies and bosses. The game has a Sonic-inspired physics engine meaning characters can run along curves and jumping is affected by angle and momentum. Some attacks also affect momentum.

There will be several game modes:
Story Mode: Levels bookended by cutscenes
Adventure Modes (regular, all levels, endless): Pick a team of four characters and fight through a selection of random levels. You can switch characters during gameplay.
Roguelite modes: These modes will be more complex and have upgrades. Instead of being linear, levels will be a collection of rooms organized in a maze.

Playing the game awards a meta currency called Gelder. Gelder may be used to buy characters, outfits, levels, and more.

There will be many playable characters. No two playable characters will play exactly the same. Currently
there are 10 playable characters partially-done and there are plans for more than 30. Making new characters and stories is one of my favorite parts of making games.

What sets Millie Megavolte 8 apart from other games? Simple: style. It has a tone and sensibility you won't find anywhere else, at least not these days. My games have been compared to mid-2000s edgy webcomics but I like to think they're at least a little more refined, ha. Everything in the game has to be cool, cute, funny, or sexy. I'm also making an effort to step up the stylishness compared to previous games. You can see this in the main menu with the custom font and lively background art. I want the game to be pure MTC--nobody makes games like I do.

5. Example Technical Things
Water Effects

Reflection: The part of the screen above the water is copied, flipped upside down, shrunk vertically, and drawn with reduced opacity on the water.

Animation: There are two scrolling repeated images. Their speed is set to different primes so they line up less often. To achieve the scrolling effect, the sprite simply moves the textureRect (since the texture repeats).

Waves: The part of the screen below the water is run through a shader. The shader has timers that offset the pixels to give the wavy effect.



Drawing on transparent layers:
I figured this out the other day. If you draw things with reduced alpha (between 0 and 255) to a transparent layer then draw that layer onto another layer using renderTextures, you MUST use a different blendMode in your drawing states! In this case, what worked for me was sf::BlendMode(sf::BlendMode::One, sf::BlendMode::OneMinusSrcAlpha).

Comparison using bad blend mode (left):


Comparison using good blend mode (left is directly drawn, right two use a transparent intermediate layer)


6. Current State
The game is playable but lacks core features such as particles, bullets, enemies, attacks, pretty much everything that isn't running around and jumping.

There is no timeline for release. I'm doing this as I go along and putting in whatever I want until it gets around to being done.

7. Links
MTC YouTube - I may post more videos here when more of the core systems are in.
Official MTC Website - For completeness' sake.
VERY NSFW: MTC Discord - I post about the game's development in a dedicated channel and explain my process occasionally. It's mostly naughty drawings and harsh language though so be warned.

4
SFML projects / Re: Leowald
« on: July 26, 2019, 06:06:35 am »
After almost a year of no updates, Leowald is releasing August 9!

https://store.steampowered.com/app/1024210/Leowald/


5
SFML projects / Re: Leowald
« on: August 11, 2018, 07:12:36 am »
New enemies:

https://www.youtube.com/watch?v=cn0m-NAM6Gg

One of the common complaints about Zeran's Folly was that the enemy variety was lacking. So, in Leowald I'm making it a rule to have at least 3 new enemy types per explorable area. The video shows these six:

Totenwald: Crow, Portobello, Phantasm
Van Agren Manor: Skeleton Knight Thing, Frenzy Demon, Hornet



In Zeran's Folly there were 21 recurring enemy types. Those will return in Leowald along with 33+ new ones for over 50 total normal enemy types.

There will be fewer (required) bosses though. ZF had almost 30 bosses in the critical path whereas Leowald will have about 18 or so. 7 of those will be weapon bosses. It's like Mega Man in that you get to see the weapon in action before you brutalize them and take it for yourself.


(No, this isn't in the game)

The only other major complaint is that the sense of humor is a little... off for some. Bad news for them--it's not going anywhere. There are headpats though:


6
SFML projects / Re: Leowald
« on: July 16, 2018, 12:03:16 am »
The Paladin Shield:

http://www.youtube.com/watch?v=QAS7I7slYDk

One of 8 weapons in the game. It's kind of a melee/ranged hybrid of a kit with melee normal attacks and ranged Focus attacks. The attacks aren't that powerful compared to the other weapons--the Buzzflies were given one hit of HP so it would look cooler. Once there are levels to go through, it will be easier to balance it.

Observations about weapon switching: When I watched streams of Zeran's Folly, people usually didn't swap characters that much, opting instead to play the same one for a long time then switching if one part was too hard for that character, then playing as the new one for a long time.

I'm not sure if this is good or bad. A bunch of reviews said some characters were better suited for some situations versus others, which is good. I also don't want to force people to switch all the time, that isn't fun either. However, I think with the new levelling system and some clever level design, there will be natural incentive to switch weapons more often than just sticking to one forever.

I also want the weapons to be fun and useful outside of any "requires this weapon" mechanics. There aren't any gates or interactables that require a certain weapon yet, but still.

7
SFML projects / Leowald
« on: July 10, 2018, 09:02:38 am »
After releasing Zeran's Folly (SFML forum thread here) last year and finishing the last updates, I am now working on a sequel called Leowald! Like all my previous games, this one is another iteration on the formula and bigger and better than the last one.

General game stuff: It's 20 years later after the events of Zeran's Folly and you play as Lone and Abby's firstborn on their first big solo adventure. From the Big Chest Adventurers' Guild in Leowald Kingdom, you'll set out and deal with things from mole sky pirates to hard-drinking dorfen kings to strawberry-obsessed necromancers. There are eight weapons in total, each with their own unique moveset.

SFML and technical stuff: I use all pieces of SFML except for the Networking module. RenderTextures and shaders are used extensively to generate the level art, using input from a custom level editor I made. The other major libraries and tools I use are Spine for animations, Box2D for collision tests (not simulation), GLM for some math functions, and SDL but just for the controller rumble functionality. (I like controllers... a lot)

I like SFML because it's simple and fast. It's even right there in the name! It's simple enough in that it gives you the building blocks to do whatever you need. Can't recommend it enough and the team behind it is great.

Some random musings on the sequel: A recurring thing in my games has been multiple playable characters. The problem is, it's tough to reconcile it with the story since you control only one at a time. Where is everyone else at the time? You're exploring alone and when it's cutscene time suddenly everyone is there? Kinda weird.

Instead of playing as one of multiple characters that coexist like in Zeran's Folly, you choose the sex of your character in Leowald at the start and that's it. It has all the benefits of multiple characters with none of the oddities. Still get to choose a character, still get to have different interactions. Win-win. I don't know why I didn't think of it sooner. It's better than choosing one of two distinct people because then what happens to the person you didn't pick? In Leowald, the character is still the same entity, you just get to choose what they were born as. Here's the New Game sequence:

http://www.youtube.com/watch?v=dILah9NkZmE

The mechanic of multiple characters in Zeran's Folly has been replaced by weapons in Leowald. There are eight total weapons with their own movesets. A lot of them are based on the movesets of characters in Zeran's Folly but some are new, like the Golem Meteor which is a ball and chain:

https://www.youtube.com/watch?v=N1vTfmBjBVA

Character talents are now Weapon Runes which work the same way. However, a few of the runes have been reworked to make them weapon-specific instead of a general effect exclusive to that weapon. For example, Penelope in Zeran's Folly had the talent "Revenge" which made enemies take damage when they hit her. In Leowald, this effect has been rolled into a new equippable ring and the associated weapon has a new replacement rune.

Speaking of weapons, they can level up. Each weapon starts at Lv. 1 and you level them up by, what else, killing enemies. Focus Attacks unlock at level 3 and Rune Slots (for equipping weapon runes) unlock every five levels. Max level is 30 (for six rune slots).

Most enemies take 1-2 normal hits to defeat and I want to preserve that as long as your weapons are comparable level. So, damage works in 5-level tiers. If your weapon is within five levels of the enemy, it will do normal damage. Five levels above and it does 2x damage, five levels below it does 1/2 damage, and so on for each five levels after. It's a nice way to keep a feeling of progression without messing with the 1-2 hits feel of combat.

Another thing I'd like to do with Leowald compared to Zeran's Folly is have more interconnected character arcs. A guy you help out with one quest will reappear later to help you with yours, stuff like that. A lot of the characters in Zeran's Folly were one-and-done; once you saw them, that was it. There's still a little bit of that in Leowald but I want to keep the members of the adventurers' guild involved in your adventure from start to finish.

Here are some music pieces I already made for the game:

http://www.youtube.com/watch?v=emUcnHAIs2w

http://www.youtube.com/watch?v=aKkQ0GCl8WE

Self-promotion stuff:
Twitter: @myroidtc
YouTube Channel: Myroid-Type Comics
Discord: Myroid-Type Comics Server

8
SFML projects / Re: Zeran's Folly
« on: April 25, 2018, 02:12:40 pm »
Here are some updates on Zeran's Folly:

There have been a bunch of new updates including two new playable characters (Marco and Penelope) and a new dungeon with procedurally-generated layouts, the Necro Pits:

http://www.youtube.com/watch?v=yg_smd6SzIk

Zeran's Folly is also on sale this weekend, so nab it while you can! Here it is on Steam:

https://store.steampowered.com/app/665030/Zerans_Folly/

I'm also happy to announce that Zeran's Folly will be getting a sequel: Leowald. It takes place 20 years after the events of Zeran's Folly and has new characters, new play styles, new rings, all sorts of new stuff. Bigger and better!

Here's a demo track for it:

http://www.youtube.com/watch?v=emUcnHAIs2w

And here are a couple of dev update things if you're into that:

http://www.youtube.com/watch?v=5tUcHb_f298

http://www.youtube.com/watch?v=N1vTfmBjBVA

9
Using the latest SFML build, Windows 10, VS2015, controller attached and supported, Steam API with Zeran's Folly. No errors with either the game or the sample code. I'm not sure if it matters but you have the steam_appid.txt file available, right?

Also using SFML static-linked if that matters.

10
SFML projects / Re: Zeran's Folly
« on: October 22, 2017, 07:41:14 pm »
Some updates:

Zeran's Folly is officially out on Steam! You can check out the store page here.

There's also a Free Version available but it is just the base game without any post-launch updates.

Yesterday, Anne's Update launched. It adds a new playable character (Anne) and has some bug fixes. Here's a video showing some of Anne's abilities:

http://www.youtube.com/watch?v=2BtbwTiC1hk

11
SFML projects / Re: Zeran's Folly
« on: September 29, 2017, 10:42:47 am »
New gameplay trailer for release, check it out:

http://www.youtube.com/watch?v=Af1wwCLzcLc

Zeran's Folly launches next Friday!

12
SFML projects / Re: Zeran's Folly
« on: August 02, 2017, 05:11:03 am »

13
SFML projects / Re: Zeran's Folly
« on: July 09, 2017, 01:24:05 am »
Two months before launch, all the world areas are finally connected and accessible:

http://www.youtube.com/watch?v=YxaCQ_FfzM0

14
SFML projects / Re: Zeran's Folly
« on: June 27, 2017, 01:57:57 am »
Did some scheduling and I may have the game finished as soon as October. The ol' "double it" rule puts it at the end of the year. So, it'll make its 2017 release date after all! Hopefully.

So, Zeran's Folly, coming Fall 2017 to Steam.


15
SFML projects / Re: Zeran's Folly
« on: June 22, 2017, 03:46:18 am »
Finally got all my business stuff in order and approved as a Steamworks partner. Zeran's Folly has an appID and a (hidden) store page on Steam now, so that's nice. The process of setting everything up is pretty complicated at first glance!

As far as a release date goes, I'm still gunning for this year. The game is 80%-85% done. There are a bunch of art assets that need to be done, along with some bits and pieces missing from pretty much everything. For example, there are three or four bosses that are scripted but not implemented yet, two of the dungeons need set dressing and some music, the vendor interface needs to be made... you get the idea. Just a mountain of small rocks.

Pages: [1] 2 3