• Do not use Works in Progress as a way of avoiding the releases system! Works in Progress can be used for sharing early betas and for getting suggestions for improvement. Releases of finished content are not allowed in this forum! If you would like to submit a finished addon, click here for instructions on how to do so.
  • We've updated our submissions guidelines to address AI generated content, take a look at them here.

Doctor Finitevus (Archie Comic)

4-M

Member
It's been more than a year since i started working on this character addon, with main obstacle being making actual sprites for him, which still is. So i decided to share a glimpse on what might or might not see its light. You might've seen some rare gifs and a pair of video clips in discord.

Doctor Finitevus, a villain character from Archie Comic, a "photo-negative" of Knuckles which might or might not be taking inspiration from both Dr.Zachary of Fleetway Comic and **********(Wechinda) glitch from Knuckles' Chaotix, one of few characters who actually don't belong to K** *****rs case of copyrights but got canned anyway. With his abilities to control hexes, chaos powers and teleportation utilizing warp rings he might trivialize game, however it is handicaped by his rather slow run speed.

XTRAB0.png

An attempt to make something out based on CSS and credits art of vanilla cast. But i'd rather make a different pose.
Teleportation? Well instead of plain teleport of character itself i thought that it could be really fun to let others warp along too, and that leads to his main gimmick, which revolves around ability to create a pair of Warp Rings connected to each other so you can teleport between them, with one emerging near him and another at some distance which can be used to bypass walls. Checking for empty space without risking of warping into map controller triangles was a bit hard to figure out.
srb20043.gif

Distance at which you create second ring is regulated with mouse wheel

srb20044.gif

If you don't move anywhere during aim, you'll create Warp Rings at close range - one bellow you
and another will bypass height restrictions, allowing you to instantly get over heights.

Obviously i took an inspiration from Portal series too and decided to expand this ability even further. In addition to simply warping, there are an option to switch gravity behavior when you emerge out of ring. So by pressing Custom 2 its possible to make it affect Z momentum in many ways, either relative to current gravity or set it to always throw you up or down no matter how you approach it, or just... let it act as teleporter. Did i mention that it can teleport other objects too? Dodge projectiles with style and throw badniks into pits to their demise!

With ability like that its already established that he can beat pretty much any level, even bypassing some parts of them. But what about bosses? For situations where brute force is the only option he have some tricks up his rings-covered sleeves.
Comics were a bit scarce on that topic so i took a bit of creative liberty to make up for that with Enerjak as refference.

First off his ground-Spin abilities
If you hold a button you begin to charge energy meter, and depending on whether you held it till fully charged or not you release one of two attacks

srb20051.gif

Uncharged variant - Thunder Arrows, which are a good option for close range, when you need to dispatch of single enemy or break a monitor box quickly.
srb20052.gif

When fully charged - Finitevus releases Chaos Orb that homes into nearby enemies and monitors, which hits up to 4 times before it losses its power.
If there are no targets (or in case of bosses if they are in pain state) orb rapidly losses its power till it finds valid target.
To balance this out it drains 5 rings, and if you have less than that it takes much longer to charge.

Since he was designed to be some sort of Knuckles' counter-part (excluding multiple Anti-Knuckles-es and clones), i decided to reflect this in Jump+Spin ability, which is a glide, but in comparsion to red guy his glide is fast, more reliant on camera, but also falls at more rapid speed. However it didn't connect well with his Warp Rings so on top of that he recieved "pre-glide" state, which is a slight double jump that proved usefull for placing Warp Rings in front of Finitevus midair and dive into them without loosing much height.
srb20048.gif

Double Jump proves to be too good on its own, but you have to deal with the rest of stage somehow when you're out of Warp Rings and not much of a runner.
And no - you can't climb walls, you're not Knuckles.

To balance out some crazy combinations i made it that you can't use warp rings after glide, but idea of falling into pit or teleporting into a place without way out when you run out of charges bugged me, so i gave him ability to recall warp rings earlier by pressing Tossflag to refund some charge back and another ability that can be activated at cost of 10 rings by pressing Custom 1...

srb20047.gif

Falling into pit? Stuck somewhere? Roll it back without losing a life.

This resulted into character that relies on rings. Well he do manipulate rings already so why not take it even further. He starts any stage with additional 25 rings, but when damaged he losses 25 rings, however those don't burst out like any regular character have. This comes at cost of not being able to aquire and utilize shields, since those are converted into rings instantly.

srb20049.gif

Just like when he drained Chaos Knuckles out of his power... wait, does that mean shields are powered with chaos powers?
Err... gamplay conventionality!

I guess that summs up everything i have for now. Not sure if i'll be able to handle it on my own, notably character sprites. Not much of an artist myself, it takes too much time (It was at rate of 1 frame per day before i lost patience and moved on imrpoving code i made)

drf_head_lines_redraw.gif

Memes about first character addon being a Sonic recolor. How about Knuckles edit instead?
Attempt to capture that texture of pitch-black cape by shading it different way.

There are also Battle support but i'll drop info on it some time later (although if you're already in respective server you might've saw all that).
 
Last edited:
While vanilla gameplay covers his ability to control chaos powers and utilize warp rings, his mastery over hexes and mind manipulation remained unfolded. There's not much room to make something usefull for vanilla gameplay that can cover these traits, so instead i implemented that in multiplayer-oriented Battlemod addon.

By loading Finitevus along with Battlemod he aquires a set of new abilities:


Ground BM ability - Confusion Hex. Costs 15 rings. 7 seconds cooldown (if missed)

After a brief preparation Finitevus projects forward a wave projectile, which disappears after some time or when it collides with enemy. If projectile connects with enemy, Finitevus takes control over their camera and battle abilities (including parry).
While hex is in effect Finitevus can force enemy to use their main battle abilities with decreased cooldown. That allows him to drain enemy out of rings by spamming it, or force them to use air dodge\parry and take advantage when they are in vulnerable state.



Air BM ability - Rings Entropy. Costs 30 rings. 13 seconds cooldown (if successfully used)
Finitevus freezes in air and charge a powerful curse for 3,5 seconds then unleashes it pushing away all enemy players nearby, applying curse mark on them that lasts 10-11 seconds.
When enemy is affected by that ability they can't pick up any rings (excluding ring boxes) and their current rings are drained at rate of 3 rings per second. This ability cannot be blocked, but can be air dodged with right timing.

Both abilities are available only if you can afford their cost.

For purposes of this addon, his other abilities will be rebalanced a bit.
When Battlemod is loaded Finitevus starts with 1 charge of Warp Ring compared to 3 in vanilla (however he can still gain 1 charge per minute up to 3).

Moreover he cannot charge Chaos Orb if there already exists one, and it deals damage only if enemies have no rings and in tumble state, otherwise it drains 10 rings and puts them into short tumble state instead.


Take a note of rings amount on top of screen near each player icon
All that forms his main gimmick in Battlemod focused around draining enemy rings, so that you can finish them off with Thunder Arrows at close range, keep them at distance with Chaos Orb or throw them into pit with Warp Rings without ability to recover.

There are more interactions and balance changes planned for Battlemod specifically (custom parry\dodge and Warp Rings interaction against enemies), but thats about it for now.
 
Well, it'll take some time before i'll be able to make it in somewhat playable state.

Before i throw him in public beta test i want to finish following stuff:
  • some placeholdery anims for custom actions (at least 1 frame for each to indicate that move is in action)
  • startup delay before being able to release Thunder Arrows, preventing its spam (think of how Amy have one, excluding movement during it)
  • startup before glide
  • edit\change sounds of doublejump and glide
Battlemod specific
  • implement tumble on warp for Warp Rings against enemies, prevent flagrunners from using Warp Rings,
  • replace regular ringkeep with soft ringkeep (when Finitevus have more than 60 rings and takes damage, he'll always keep 25 rings on him, getting hit while having less than 25 rings still kills him)
 
Last edited:
Yo this seems awesome, will defo check it when it releases.
In the meantime, just try your best and if u need a tester, im ur guy(ps i live in uk so keep that in mind)
 
Gifs with each ability described are nice, but i bet you all wonder how does that all actually works in game? Is it fun at all to have a slow-moving character with homing projectile?
Here's a sample of what "regular" gameplay might look like.

 
Not much new to report, aside from my attempts to deal with sprites... A bit of uniqueness but too far from being perfect.
knux_recolor_lol.png

Soo... how about a little bit of retrospect instead?

FIrst days in dev there were quite a lot of technical issues and various approaches made to solve issues that poped up during development. Notably how to teleport without dying. Back then it was pretty barebones without special effects, simple ring sprite as placeholder and invulnerability acting as timer to prevent constant teleportation loop between rings (that didn't help to survive teleporting inside walls tho)


srb20006.gif

What a funky place!
If getting out-of-bounds doesn't feel right, think of it as visiting another dimension where you take a shortcut to reappear in "real" world :P

srb20018.gif

But what if... you don't want to move anywhere after teleport? Why it doesn't teleport? Why it does now? So much mystery!
The answer is - TouchSpecial hook doesn't work well, use MobjCollide instead.



srb20000.gif
srb20063.png

That was pretty common issue...

srb20006a.gif

...but sometimes you were lucky enough to be pushed outside of wall to nearest floor

While it was planned that he can intentionally break maps and get inside inaccessible areas, map-control sectors for FoFs and other landscape shenanigans weren't planed as one of those places where he should be, so there were a lot of deaths before i made checks if area is theoretically safe. Not just for player character but for warp ring aswell, however all that happed after i got rid of placeholdery ring – a tale for another time)
 
Last edited:
Not much new to report, aside from my attempts to deal with sprites... A bit of uniqueness but too far from being perfect.
Soo... how about a little bit of retrospect instead?

FIrst days in dev there were quite a lot of technical issues and various approaches made to solve issues that poped up during development. Notably how to teleport without dying. Back then it was pretty barebones without special effects, simple ring sprite as placeholder and invulnerability acting as timer to prevent constant teleportation loop between rings (that didn't help to survive teleporting inside walls tho)


View attachment 167032
What a funky place!
If getting out-of-bounds doesn't feel right, think of it as visiting another dimension where you take a shortcut to reappear in "real" world :P

View attachment 167034
But what if... you don't want to move anywhere after teleport? Why it doesn't teleport? Why it does now? So much mystery!
The answer is - TouchSpecial hook doesn't work well, use MobjCollide instead.



View attachment 167030 View attachment 167031
That was pretty common issue...

srb20006-gif.167038
View attachment 167039
...but sometimes you were lucky enough to be pushed outside of wall to nearest floor

While it was planned that he can intentionally break maps and get inside inaccessible areas, map-control sectors for FoFs and other landscape shenanigans weren't planed as one of those places where he should be, so there were a lot of deaths before i made checks if area is theoretically safe. Not just for player character but for warp ring aswell, however all that happed after i got rid of placeholdery ring – a tale for another time)
Question, how many checks did u have to set up for like out of bounds and getting stuck in walls stuff?
 
Question, how many checks did u have to set up for like out of bounds and getting stuck in walls stuff?
Technically it'll be... 54 separate checks, lol (9 points on map * 3 function checks * 2 warp ring locations). Not counting color change and buttons pressed.
Surprisingly its not that bad, considering that there are multiple cases of addons where character can stand still and generate half as much of weight on game's engine as my entire function to check for warp ring area. Besides those take place only when you aim, optimized as much as possible 👌
 
Slowly but surely keep doing stuff. Gonna update a post with pre-pub-beta list of todo things.
Doing this all by myself wouldn't be so hard if it wasn't for spriting. Not much to show but decided to try something else for CSS art. Still a bit WIP but here:

drf_new_css_wip.png


 
Well, it'll take some time before i'll be able to make it in somewhat playable state.

Before i throw him in public beta test i want to finish following stuff:
  • some placeholdery anims for custom actions (at least 1 frame for each to indicate that move is in action)
  • startup delay before being able to release Thunder Arrows, preventing its spam (think of how Amy have one, excluding movement during it)
  • startup before glide
  • edit\change sounds of doublejump and glide
Battlemod specific
  • implement tumble on warp for Warp Rings against enemies, prevent flagrunners from using Warp Rings,
  • replace regular ringkeep with soft ringkeep (when Finitevus have more than 60 rings and takes damage, he'll always keep 25 rings on him, getting hit while having less than 25 rings still kills him)
A little update on progress.
As you can see the only thing that is left to do are sprites... as always... so i'm trying to do so with some more random additional stuff in between.

Here's one of those - hugging addon support! No, he won't be able to hug anyone (he's too good for that... or rather too evil?), but instead...
...when someone is hugging him and he uses Return ability, he'll take them along to spawn\starpost. Might be usefull if you got ahead of everyone else, touch a starpost and decided to drag to it those who are left behind or have difficulities to complete stage segment. Oh, and Warp Rings now have "death" graphics.

Due to amount of gifs and video attachments on single page, it gets a bit laggy (lol), so here are some links instead that showcase some more various stuff i made:

Battlemod Confusion Hex in addition to taking over control over character abilities, now also makes any projectile count as if Finitevus himself deals damage.

And here's an example of how evil Warp Rings ability can be in such game mode)

Additionally - any projectile that goes through Warp Ring counts as Finitevus' projectile too, which leads to interesting results.
 
Last edited:
Another two weeks passes. Could've made much more but had some problems with focusing on stuff. But managed to make some sort of placeholdery unbaked A1 anims for initial charge and melee option of attack.
melee_strip15.gif

Also decided to get rid of charge bar in favor of something more interesting but indicative. Knuckles clan and stuff related to Chaos had a lot of inspiration based on Maya civilization. In Archie comic however, before reboots, in place of Chaos there was an echidna god Enerjak that had Anicent Egypt theme, so i decided to reference this a bit (aside warp ring aim having barely visible life cross images):

srb20004.gif

srb20005.gif

On coding side i suddenly got a thought that i can actually utilize weapon prev\next for warp ring attune instead of custom2, so now those are used instead for this, unless you're in aiming state, then it still changes distance of ring placement. Also tossflag is actually used... for tossing flag, so if you carry a flag you... toss it first, instead of accidentally\simultaneously using warp rings recall.

Now i think its time for another retrospect indev. I put previous under spoiler so it won't lag page too much (at least untill we hit second page of this thread).

After figuring out why i wasn't able to teleport, i decided to update graphics of rings and used S3&K ring first. While it was much more visible than simple ring, another issue arised - you can't see it if you are directly above or bellow it, even in first person. Silly SRB2 sprites rendering shenanigans. So... i added a bunch of sparks (which are rotating around same area as checks mentioned above) which are visible from any angle of view.

srb20056.gif

So retro! Also first attempts at warping objects other than player.

Those sparks were later upgraded to splats and turned into pseudo-3D with additional paper sprites. Along with warp ring using graphics from Sonic Advance 3, which actually a mix of regular stage rings and boss fight rings. Looks more fit and applies custom colors that corresponds to your color of choice (although the main intention behind it is to make sure people can distinguish which team placed this pair of rings, so that you can blame ally or enemy for this, lol)

View attachment srb20064.gif
It's not like you can change colors in team modes...

srb20069.png

...so i let it be - you can spawn multiple colors in one go, as long as you change colors after placing a pair.

Teleporting is fun, but you have to actually know where are you teleporting, and is it even safe. So... here's how i did it:

warp_ring_area_check.png
Have you managed to figure out what this is? No? Good.
In order to make sure that area (radius) is safe, we check for multiple points on map. On pic is shown early concept, which was later extended to 9 points of map (one in center of radius, and 8 points at slightly increased distance around radius). Each point have 3 checks
- height of floor
- height of ceiling
- is it within playable area or not (R_PointInSubsectorOrNil)
If everything is valid and fortune cookie says you're in luck and stars allign... then area is safe and you can place a ring. Its not foolproof tho - fences or extremely tiny walls may still screw it over sometimes, but its very rare (no, Techno Hill 1 glass walls near end are not among those, you can't place rings inside these).

So... why its so overcomplicated? Well i wish it was less tasking for game's engine, but i tried other things and these didn't work well. Few example i remember:

P_CheckPosition. It checks only if you get completely blocked in that point of map or not (which usually results in death). Meaning game doesn't care if this point of map will make you actually appear on top of ground or make you get stuck in walls partially, but hey, at least you won't die! (see last gif of previous retrospect to understand what happens). However it also doesn't like some objects which prevents its use for teleporting those.

P_TryMove. When combined with player.mo makes it so that you not only check if you can exist on said point of map, but also acts as remote activation of anything on this point as well. That means - you can remotely pick up rings, get hurt from badniks\spikes, activate floor buttons and so on, all while simply aiming. And making substitute dummy invisible object for that felt a bit off (also still ignored height checks sometimes).

As for graphics... well, those are rings, so something that is also a circle and change to red\green color should suffice?

srb20069.gif

That placeholder didn't last long but it worked well to indicate where you will place rings.

Thats about it... for now.
 
Another bunch of small updates.
First of all, found a way to make more optimization for warp ring aim code, so now it adds even less weight on game's engine (around 130 game logic for old 4 cores 3.4 Ghz CPU, compared to 170).
Due to sudden activity with other project i'm involved into i shifted my plans for this one and decided to make custom defensive abilities for battlemod earlier.

Instead of regular Parry and Air Dodge, Finitevus have different set of defensive abilities.

When in air, Air Dodge is replaced with Warp Dodge that allows you to instantly teleport backward but have 2.5 seconds cooldown.
For balancing purposes (and a bit on coding side to make it light) you can't use it to teleport through walls. Use warp rings for that ;)

srb20055.gif

Obviously you won't trigger any springs and spikes on your way backward too.

For ground defense Parry ability is replaced with Riposte/Deflect, which allows him to send projectile attacks back at enemy. And if enemy tries to deal damage directly, which is by classic-fashion way of jumping onto your head, they get teleported and stunned. It does have a set of rules that differentiate it from regular Parry ability even further, so here's a clip to show how it works with some explainations.

  • You are protected only from incoming attacks in front of character view (90 degree cone for projectiles and wider degree for direct player damage),
  • Guard direction follows character view (in case you stand on rotating platform), not camera view,
  • If you deflect projectile attack, parry timer reset and you keep guarding stance,
  • If you parry direct player damage, you instantly warp them at some distance from Finitevus in direction of your camera view, endlag 5 tics (which ends guard stance) and 15 tics of invulnerability. Its tumble lasts 3 seconds but stunbreakable.
I guess i should try to keep a pace of showing here some progress i made at least once per two weeks.
 
awesome to see one of archie's coolest villains get a character mod, very excited to see this progress
 
Sorry guys, i'm afraid i won't be able to finish it.
Feel free to pick it up after me if you feel so.

Passive: Energy Conversion
Finitevus cannot acquire shields. Shields instantly converted into rings (amount depends on type of shield).
However he losses only 25 rings on each hit, but those rings will be lost for good.
You die if you get hit with less than 25 rings in possession.
Finitevus always starts stage with additional 25 rings (meaning boss stages start out with 35 rings).

Controls:

Jump Ability: Warp Ring. Hold jump in air to aim, release it to create a ring portal between two locations if location is valid.
Pair of placed warp rings lasts for 1 minute.

If direction button held - you create ring in front of you, which leads to another created further, and slightly recoil back.
If no direction button held - you create ring bellow you, but second ring will be created at close range and you recoil upward,
however it'll ignore height check and try to spawn to closest height, which allows you to get on higher places or underground.

Pressing Next\Prev weapon (mouse scroll)
During Warp Ring aim - change distance between rings.
Everything else - change gravity settings for newly placed rings.

Jump+Spin: After a short delay you propel up and spin around.

Pressing Spin again switches into glide. Compared to Knuckles you don't need to hold a button for gliding.
This gliding technique doesn't reduce falling much (falling at constant speed of 10 fracunits) but makes it up with speed and instant camera-controlled turn (its also possible to steer a little with strafe buttons).
Its objectively better over long distances than simply falling.
You can speed up transition into glide by holding Spin button skipping propel. You can cancel gliding by pressing jump.

Can be used after creating warp ring midair but not other way around.

You cannot glide underwater but propel have much more height instead, however you can switch into glide if you emerge from water after propel.

Spin:
Charge dark chaos energy.
If pressed or not charged - throw Thunder bolts at short range. Thunder bolts pierce walls

When fully charged (1 sec if you have 5 rings, 5 seconds if you have less)
Release a Chaos Bolt which tracks closest enemies and monitors, jumping between em up to 4 times.

Custom 1:
Warp back to spawn or last checkpoint. Costs 10 rings. Can be used midair but cannot be used when performing any of other abilities (warp\glide).

Tossflag (when standing still):
Recall all warp rings. You gain ~75% from each pair of warp ring time left as charge.

Console command:
drf_voice on/off - enables voiceover responses for Finitevus for death, respawn, battlemod abilities and killtaunts (some lines are unique depending on who he kills)
 

Attachments

  • CL_Finitevus_v0.4.pk3
    1.9 MB · Views: 130
Sorry guys, i'm afraid i won't be able to finish it.
Feel free to pick it up after me if you feel so.

Passive: Energy Conversion
Finitevus cannot acquire shields. Shields instantly converted into rings (amount depends on type of shield).
However he losses only 25 rings on each hit, but those rings will be lost for good.
You die if you get hit with less than 25 rings in possession.
Finitevus always starts stage with additional 25 rings (meaning boss stages start out with 35 rings).

Controls:

Jump Ability: Warp Ring. Hold jump in air to aim, release it to create a ring portal between two locations if location is valid.
Pair of placed warp rings lasts for 1 minute.

If direction button held - you create ring in front of you, which leads to another created further, and slightly recoil back.
If no direction button held - you create ring bellow you, but second ring will be created at close range and you recoil upward,
however it'll ignore height check and try to spawn to closest height, which allows you to get on higher places or underground.

Pressing Next\Prev weapon (mouse scroll)
During Warp Ring aim - change distance between rings.
Everything else - change gravity settings for newly placed rings.

Jump+Spin: After a short delay you propel up and spin around.

Pressing Spin again switches into glide. Compared to Knuckles you don't need to hold a button for gliding.
This gliding technique doesn't reduce falling much (falling at constant speed of 10 fracunits) but makes it up with speed and instant camera-controlled turn (its also possible to steer a little with strafe buttons).
Its objectively better over long distances than simply falling.
You can speed up transition into glide by holding Spin button skipping propel. You can cancel gliding by pressing jump.

Can be used after creating warp ring midair but not other way around.

You cannot glide underwater but propel have much more height instead, however you can switch into glide if you emerge from water after propel.

Spin:
Charge dark chaos energy.
If pressed or not charged - throw Thunder bolts at short range. Thunder bolts pierce walls

When fully charged (1 sec if you have 5 rings, 5 seconds if you have less)
Release a Chaos Bolt which tracks closest enemies and monitors, jumping between em up to 4 times.

Custom 1:
Warp back to spawn or last checkpoint. Costs 10 rings. Can be used midair but cannot be used when performing any of other abilities (warp\glide).

Tossflag (when standing still):
Recall all warp rings. You gain ~75% from each pair of warp ring time left as charge.

Console command:
drf_voice on/off - enables voiceover responses for Finitevus for death, respawn, battlemod abilities and killtaunts (some lines are unique depending on who he kills)
I don't know any fancy coding yet, but I could do something if you don't mind.
It does look pretty good
 

Who is viewing this thread (Total: 0, Members: 0, Guests: 0)

Back
Top