Playing around with radial spawner. These are attached to a growth-shrink cycling object, but those just have a spawner on them, so you have to look closely to even notice that there's anything there.
Qory
Recent community posts
Doing cutscenes flexibly.
The camera handles cutscenes by loading up a text file with simple stageplay instructions. Each instruction has a set type (dialogue change, resume-gameplay, and level end), letting me do all that fun mid-stage dialogue, start, and ending. I'd like to add one to move/show/hide portrait actors, that way I can do stuff like swap characters around in them, but the important thing is I have it now.
Tying it to a central object also means activating it only needs a destroy-on-update object that advances the cutscene stageplay instruction by one, into a dialogue selection (there's a flag to track if the player is in a cutscene, so even if they can move, there's still a pseudo-pause happening.
Demonstration below. Portrait is Fable 4, because I had that laying in my images.
You'll notice the nameplates change character names too. That was intentional to show off that it's one thing changing and moving around, instead of a name for each actor. Then again I might want to change that later...
Powerups and the start of UI.
Looking at a few powerup types. So far these are just here and dropping in.
From top row, left to right, Points (small), Gold (small), Health (small), [Large variants of prior], Attack Power Up, Shield, Damping, Attack Power Up (Large), Shield (Large). The thing on the points is supposed to look like some kind of wheat or flower. I'm aware with the problem in having the coins both be blank, too.
Points will be typical, gotten through player actions. They will be able to be exchanged for Gold and lives at the end of each stage. There's more ways to get it, but it clears if a player restarts a stage.
Gold is gold. You spend it on lives and cards.
Attack Power Up is a bit self-explanatory, but I'll take a moment to explain how damage works here. Rather than just be a flat rate, players have three attack stats, Sword, Ranged, and Magic. I want to take a cue from Imperishable Night and eventually have the possibility of the player swapping characters when they're "focused," since that would explain an ingame movement decrease speed. In addition, individual cards have their own power. So, the damage calculation adds the damage dealing attack of the card's type, the card's actual value, and this modifier. For most enemies, this won't matter, but the additions would make some boss fights easier.
Shield and Damping should probably have their names swapped. When a player is hurt by damage, if there's a shield, then damage is first removed from the shield, and any current damping is removed from damage not absorbed by the shield before being applied to the player. Damping automatically reduces by 1 every 1.5 (or, rather, a damping time) seconds, allowing for lesser-invulnerability periods and temporary invulnerability periods, i.e. after a player respawns. Both of these are actively shown on the UI below the health, spaced out as a percentage against max health.
(Notice that a collision which previously killed the player does not affect them while the blue bar is still active).
I don't think GifCam did justice just what this bar looks like in action
Lol, I should probably make a little more clear what's happening in that... as a feature for the game, not a blog post, that is.
Added enemy health and player attacking.
Right now the samples only use a basic left and right swing in the deck (my partner commented that it looks like a windshield wiper). The important thing is that these are being instantiated based on the card called by the player. 9-health enemy with a 3-damage attack (most enemies will have 1 health, I'm doing this for the sake of bosses and the like. The attack tracks with the player even when it shouldn't logically, and has a slightly larger hitbox than the sprite, but I really don't care. It's better to give the player a bit of an advantage.
Testing the stance system, I set the card to instead use two duplicates, with a 5 second stance cooldown timer. Attempting to use it twice in a row will evoke the cooldown timer.
(Gifcam captured a bit of the earlier one too).
Next will probably be the camera handler and some spawners, even though the seedwork for bosses and powerups are being set.
First devlog update in a while. Have a few things.
Bullet spawn rotation.
Bullet spawners in other objects.
Player tracking of mob objects (locked horizontal position).
Player tracking - aimed bullets
(There's an obvious gap in this one lol)
All of these are handled by the first iteration of the mob class I plan to be using, calling a customizable list of attack and behavior patterns (versatile and makes bosses easier).
Up next is probably player attacking/deck usage.
So, I've been sitting on this for a while now, but something in another community gave me a kick in the pants to start working on this.
Sir Kaninchen is my idea for a Bullet Hell game. In it, players will control the title character, Sir Erich Kaninchen, a super-soldier knight of the Kingdom of Ostfeld in a world where soul-magic guided industry after the age of chivalry, and also eventually Princess Gail Lavendel, after rescuing her from the Legion of Tastinnte. Little do the two know that the rescue mission was a ploy to send the young warrior to his death in a faraway land, far enough to be unable to obstruct a coup of their home kingdom.
Gameplay
Players will dodge hordes of enemies in a near-constant barrage of projectiles. To fight back, players will use cards to activate Erich/Gail's attacks, usually simple things like a slash or a shot, or heavier specials. After a card is used, the character will be in a set stance. If a player's selected card is 'prepped' by their current stance, they can use it immediately. Otherwise, they'll need a moment to drop their stance. I.E. a player from no stance can swing their sword to the left. If the player's next card is 'prepped' by the character holding a sword to the left, they'll attack as soon as the card is used, same as if it was from neutral. Otherwise, the player will take a moment to reset back to neutral before attacking.
Smart deckbuilding will allow players to chain cards and stances for continuous attacks, or, in conventional SHMUP terms, treat the deckbuilding as a means to create/alter the player's shot type. There will be three decks a player has onhand (by default, one for 'unfocused' movement, one for 'focused' movement, and one for specials, although "specials" is not a movement type, so players will be able to put whatever they want in it), with abilities to customize them post-stage if they wish.
Because the player's first available character is sword-focused, aggressive play will be encouraged, though ranged options are planned.
What's here so far.
I've been sitting on a very primitive script for this for probably years, never getting around to it since I wanted to get another project finished. I didn't have time to get the other game I was working on finished, and now that I have time again I don't really care to at the moment. I may go back to Dawnforth.
So far, I have the basics of the Bullet Hell mechanics. Emitters spawn bullets, bullets can kill players, and players can respawn.
I focused mostly on getting emitter options set. The delay between rounds can be changed on-the-fly, along with number of bullets per round and spread angle (singular, 30 degree angle, 90 degree angle, half-circle, circle). I also added in rotation functionality.
(The pauses in the gif are from me changing the values of the emitter in Unity's editor. The low framerate is just to make the gif small enough to upload)
Roadmap
Instead of doing feature-with-stage, I would rather lay out the framework needed to make each stage, then make the stages, so this is just going to be a checklist.
- Add player deck functionality
Use from single player deck and "action locking"- Scrolling within player deck
- Extra player decks and switching between them
Calling actions from player deckStance system
- Add camera handler
- Scrolling, player auto-movement, and off-camera auto-killer (I would like the ability to change player direction at certain points in a level, i.e. to run alongside a castle rampart after scaling it)
- Scroll-triggered emitters
- Scroll-cease
- Enemies (Basic)
Make them able to be killed by either the player or cameraDeath- Edit: Pickup Drop Locations
- Pickups
Obtaining them in-stageWhat do they do? (Health, action-speed-up, damage boost)
- Cutscenes
Mid-stage (portraits, dialogue, skip)- Between-stage
- Post-stage (post-boss, transition)
- Bosses
- Activation
- Designated attack patterns ("Arcana")
Cutscene trigger on death
- UI
Health display- Card display
- Score display
- Pause
- Menuing
- Saving
- Loading
- Stage Selection
- Start Game
- Options
- Sound
- "Taverns" (Between-stages)
"- you have to earn more than 200000 $ per year with your game"
Pardon my french, but this argument is fucking stupid. It's basically saying "I'm not going to gross $200,000 in any of my games, so this isn't a problem for anyone else." Which is stupid even when taken at face value.
"- WebGL games do not count. It will still be free, even if you make millions with it"
I'm reading and watching a bunch of sources stating that WebGL games will be counted per page runtime as a separate install. (ex. [Youtube]). If you have something from Unity saying they're not going to charge anything for WebGL, please post it.
Since Unity's trying to shit the bed with a lot of how it wants to handle web-based games, it seems like there should be some precaution for any developer that has an existing project on here, since the company's going to try to target games made before 2024 as well. I'm not suggesting something like a mass-takedown of any game made in Unity, just a single, conscious opt-in for anything out there right now that basically confirms that a dev understands the risks with uploading.
"Working with unity is gonna be kinda hard after the new policy."
My answer is "I'm not." Then again I took a haitus to work on a webcomic, so I'm going to need to relearn a lot of crap when I feel like gamedevving again. Perfect time to learn a different engine.
And I don't care if this sounds confrontation or whatever, but fuck the simps that are going "it's okay because there's a minimum threshold for revenue," since (1) we're long past the point in the gaming industry where these kinds of bad precedents are excusable (remember how lootboxes started?), and (2) That's a "you" excuse, not a legitimate defense of the practice that addresses any developer that wants to eventually make money from their gamedev. It's a selfish perspective that relies entirely on ignorance to excuse this kind of crap.
Unity could have easily done some shit like aping Unreal's scaling-pricing model, but this whole shit of "installs" is such baffling insanity that I cannot comprehend how anyone could have thought it was a good idea without a whiskey glass full of alcohol and meth. I don't care if they undo the changes.
Most people who come to this website to make content are hobbyists. They make content because they want to, not to serve you, douchebag.
You are not a part of any role in that process. You are an "idea guy," AKA someone who values their own ability to talk out of their rear as if that's anything special. Most people have ideas. And this whole "you neeeeed us" vibe I'm getting off reading your shit just reeks of unwarranted entitlement.
Go fuck yourself.
"You are a Developer (Creator) if you; Play some indie devs games and give feedback"
I'm just going to say it: going around and flaming content creators or other people does NOT make you a 'developer.' Given that the last bit at the end was absolutely pure garbage, I wish I had the foresight to stop reading at this line and close my tab.
At least you labeled this thread appropriately...
Shining Resonance Refrain.
The gameplay for it is basic as shit, but goddamn, that game had me consistently laughing. It has the usual anime bullcrap jokes (though it does subvert the usual "boys want to peek at the girls' bathhouse" trope hilariously), along with a bunch of really silly things like a villain stopping on top of a dragon to play a giant lance like a clarinet, a woman using magic to pick carrots out of her dinner, and a small boy saying the line "Hey, Little Miss Nightmare. How are those pancakes on your chest coming along?"
Holy crap it's been a while since I posted on this. I shook up my schedule a bit (got a tablet that I want to do art on, and worked mostly without incremental updates) I think I want to do every other week switching between gamedev to working on a comic.
Anyway, Level 3 is mostly playable from start to end.
Theming is going to be an underground excavation site for some fossils before they're fully destroyed by subterranean heat, hence the roof. Obligatory lava level is obligatory.
The longer I go on, the less I care about the prototype sprites.
Randomization took a crap on me and wasn't giving me anything I like, so I changed it up slightly to go off of a digit in the camera's position. This means that level segments are appearing in the same sequences during startup. I'll need to fix that and add in some other factor, but I like it for this level, so I'll keep it here.
Increased movement speed is a preview of the upcoming glide move. On each frame a player holds shift, if they're not on the ground and if their defense is 0 (read: they're not guarding and/or taking damage), the scroll speed increased. If they've spent 65% or more of the pre-boss level doing this, they get an extra life. Normally they're supposed to only be able to do this after they beat the boss for this level, but, screw it, it's fun so I'm going to give it to them early, because the long expanses are good for playing around with gliding.
Aside: Kind of unintuitive in hindsight I chose to not check if the player was unencumbered before letting them boost-glide, since this also limits if they can flutter. I should change something here...
Bucket drones there don't do anything except maybe scoot sometimes, unless they have a pillar tying them to the ceiling. The movement from them is a glitch caused by the red rocks shoving them, but it makes them something besides just another stupid stationary turret, and it actually makes it easier to dodge, which, given how crap I'm playing here, is a necessity. I like it, so it stays. I'm sensing a theme here...
I'm really rushing it for the sake of getting gifs. Players normally have access to a quick-drop move by now, so it's not like they don't have options.
Boss isn't anything special, at least compared to how annoying the last one was. This guy just latches onto a wall and bursts a short round of bullet hell-esque shots at the player. Hit him, the wall moves back and has a bit of random height. Don't, and he shoves you behind the camera before moving back. Not the most complicated, but given how busy the rest of the stage is, I don't want to overload everything. This is stage 3/7, after all.
TO DO:
- Rework credits since that code is all over the place. (Edit: Need to add stuff for displaying properly at the start of a level)
- Special moves tied to certain levels. (Up -> Attack, Attack -> Attack, Guard -> Attack). All moves should be better to use than an unmodified sequence of their inputs. (Edit: Need guard -> attack, and to nerf up -> attack. Current setup is too broken. Also need to verify that dynamic-adding works)
- Platform randomization mode toggling (Edit: done)
- Verification that none of this is breaking prior levels. (Edit: It makes the levels easier, but that's okay for replays. Need to rework level 1's spawns though so that it's less boring since most of it, wait for it, is boring, especially compared to level 2's chaos).
You seem like a well-meaning kid, so I'm going to not sugarcoat it. IMO it's better to have this stuff presented in a sanitized environment.
R34 means "rule 34." Basically, it's slang for anything that's sexual content of something, most typically some existing IP. Something like adult-oriented content of two characters from some cartoon.
(Protip: "Adult-oriented" is most often read as a clean way to say "sexual content." If you're not doing that, it's better to just explicitly say what you think is not child-friendly (i.e. graphic violence, vulgar language, traumatic themes, etc). This also has the side-benefit of warning users who might be sensitive to specific kinds of content.)
Furry has a lot of definitions, depending on how vulgar someone wants to paint it, but the most broad definition is "anything to do with humanized animal characters." In that sense, it can range from anything like Sonic the Hedgehog or Zootopia (stylized human/animal mixes) to Warrior Cats or Redwall (animals that just act like humans), but typically a lot of people take it to specifically mean a more humanized style found in a lot of internet subcultures (often animals with human bodies), or someone deep into these subcultures.
So combining the two, it's basically someone who makes really crappy adult-oriented art of something like the Alpha and Omega series (link is just a novel cover for reference).
Anyway, people gave you answers for Itch's policy, but if you want to make something in the meantime, it doesn't really take THAT much to do, but you should start with figuring out what specifically you want to do.
Used to draw Sonic-types of landscapes that I thought were fun to trace with my fingers in my notebooks in elementary school, and in preschool I used to make little islands with fun little pathways out of Play-Doh.
Learned how to script for some games and learned some basics of gamedev in middle school. Never finished a project because none of the communities I got in were good (not that I was anything worth writing home about, again, middle school). Stuff like BYOND and a few others.
Took that one step further and learned LUA and a bit of C++ in high school, but took that towards .NET around senior year in high school.
Got a job as a programmer. Now I have Unity. Have my "big idea" game, but I'm sitting on the backburner with it, and making a little comic of one of the characters when I'm burned out from something.
And here we are.
There's quite a few people on here using them, but from what I've seen it was mostly for portraits for stuff like visual novels.
The main limiting factor keeping it from being more widespread, imo, is animation (because, and as harsh as this is going to sound, nobody really cares that much about the ethic side of things right now except artists or people in the online art sphere). Most AI I've seen is just now starting to get a good grasp of making static images, but the stuff in terms of animating a small video is uncanny and a bit choppy. With most games, that probably isn't going to improve much unless someone feeds a model some good ol' post-the Dover Boys cartoons in order to teach it how to stretch frame (It'll eventually become very adept at frame-by-frame posing for more rigid designs, I have no doubt, but for things like weapon trails or non-"realistic" artstyles it'll still need to know how to do convey motion in a single image). And even then it's going to take a relative while for it to learn how to pull that off in a convincing way.
Very important update.
Foremost, in terms of control, combo input rework.
In the options, I set the attack delay to a full .5. You can see the delay with the first input after the unpause. This is normal. The updates come from a special bit with the input logging. For a while, potential moves are logged with a recursive comboTree class that logs an input key, children for next combos, a moveID, and lifetime for the move input
Here's a crude diagram of what's set during level 1 (not counting the shield key tree).
Any check against inputs starts at the base of the tree, then, for each key entered in the input queue, moves down a slot if it's available. If there isn't anything, then return the selected ID, and execute the move associated with it. Before, I was (stupidly) just leaving it up to the expiration timer, which meant that if you did something like continually press attack over and over, you wouldn't actually attack until the entire queue was ready. "Why wait on something if the queue is ready?" This behavior was altered to split the lookup into a more simple function that gets called in the input and timer expiration. Now, whenever you press a key, one of three things happens: (1) if the move in the input tree has potential children the player could execute, wait a delay before executing, (2) it's the last key of a branch, and immediately executes that next move, and (3) if the pressed key does not have any associated moves 'down the branches,' execute the current one. All three are in display in the gif in order after unpause (I pressed up on the third one to get it to attack immediately).
Second important update, level transitions:
The coroutine is a bust for now. It was working fine a moment ago, but then I got smart and added in some checks to the fade to black, and suddenly it wants to shutter now. I'll need to get that sorted out. The important thing here is that all levels are mapped (I'm not going through the full display right now) with their place in the build order and 'next' selection, and basically just need to be 'filled in' with enemies, bosses, and platforms in order to be functional.
After buying, the player is able to buy into the level select now. Fading to black in order to access the end-of-level screen nets a credit, beating a boss gets another. I think I'll leave the test-credit in there since buying stage 1 after beating it makes more sense than beating two levels to get the privilege of starting at the first.
Haven't really messed with any options yet since there's nothing to customize. Hating the way these placeholder menus look.
To-do:
-Level 3
--Enemies (3)
--Platforms (3)
--Boss
-Rework platform spawning to be more randomized (hating how many sections repeat)
Endgoal:
Playable level 3 with substantial platform variety.
Level 2 is in a playable state.
Brief display of some more hectic spawning. Seems like it's all-or-nothing with the way these work. Fixed segments (the pillar buildings with the pink 'dropslashers' need more spacing in order to not "pop in." Also have an annoying glitch with the one railspinner (grayshirt) not shooting off. Don't know what I'm doing with the sprite on that one; sweater and khakis just doesn't seem fitting. Need to go full emo instead. Kickflippers (green shirt blue hair) are as harassing as I expect, will probably reuse them for a later level.
Snippet of boss fight against 'Davus.' Didn't realize that GifCam wasn't recording when I did most of the fight. AI is a combination of both enemies, basically. He starts out idle, then when the player gets to close, he attacks. When he attacks, he moves to the left, then when the player gets within his 'near detection,' he starts moving back to the right and launches knife-looking projectiles for a very short duration, then sets a recalibration point to the right of camera. When he gets to that recalibration point, he gets the player's expected y position at the far-read trigger, and moves up/down accordingly (I have code for spawning a rail object when he does this so it looks like he's sliding up/down it, but I'm not worried about adding it back in). If the player moves too far ahead, he shoots to the right more rapidly.
This can be a pain, especially with the kickflippers harassing you when you jump over his attack, which, due to the rapid nature of it also keeps him under you, but it's nothing that can't be managed. Railspinners are set to not spawn when Davus is out.
I'm just going to vary some of the spawn points a little more and start working on the next milestone, since I'm getting tired of looking at green, and I really want to get to "the Furnace."
TODO:
-Screen transitions (enter level, exit level, intermediary, exit to menu)
-Rework in-game menu
-Rework main menu and level select
-Rework timing for button inputs to make three-button combos more forgiving with default setup.
Endgoal:
Be able to transition a player through the first half of the main game without awkward 'jutting,' as well as utilize what they unlock within.
Intermediate update to show I'm not dead, and since "make level 2" is a bit ambitious of an update goal.
Level 2. Issues with the UI not being properly laid out, and not having good overlays that separate each element are very apparent here.
Level theme is going to be primarily an Amtrack-like train running through a shopping plaza (it'll be more apparent once I start working on backgrounds). Kinda like Tower City, except with a color scheme like out of the 1920s. Enemies: Placeholder sprites are placeholder (lol they're just the old enemy placeholder sprites from before). Enemies this time around are going to be parkour/dancers that jump at you from the sides, either on scenery or from the spawned rails. I think it's funny to have the mall ninjas be the enemies on the rooftops and the parkour freaks be enemies in the mall. Since the last batch only really had the "Hoppers" that test you dodging by weaving under/around a threat, these ones teach you about going over/under. "Railspinners" (the mobs with the poles) don't spawn after the boss threshold is met. They're pretty much set as far as behavior is concerned. I think I forgot to give them health. The "kickflippers" (the other ones) are majorly broken right now. I screwed up their player detection. The idea is that they lunge towards you, similar to the Railspinners, except instead of always being a threat, they only activate their attack after they get very close to you, then spin backwards and into the air to try and nail you for carelessly running forward. They can linger after this attack, that's fine, but I overlooked adding in a "reset" for after they ground once they've made their attack, and them spawning multiple hurtboxes is just a major oversight for more reasons than just being able to tear the player apart (there's one part in the gif where you can see two of them just juggle the player). Should probably remove the rotation altogether since that's a bit ugly.
Building spawns are completely busted. I screwed a bit with adding in an alternate way to randomize everything other than Unity's default random function, since I was unhappy with how many times it was just giving me lowrolls (read: ~70% or smth of building spawned were just the first option, and spawns followed a similarly bad odds (BO-RING!)). The chaos at the beginning is not going to survive into the final game, at least not this early into the level, since the only reason it's there is because of a screwup with building spawns. That's going to be my primary focus for the next bit of dev work, with kickflippers being second. Reason being that after I get that finished, since I have a lot of this initialization crap fresh in my mind, I'm going to just get placeholders made for the other 5 stages, since scene templating was a bust, and I have some notes nearby for how to actually re-tie the prefabs together. Next update will be proper.
Lastly, I know I mentioned that I was going to fix the spawning spacing issues, but, honestly, I don't really need to at this point. More spacing around a spawn point doesn't make it much less boring. Why spawn 1-3 enemies around 1 spawn point for each one, when I can change each building to have 3 spawn points that each spawn 0-1 enemies? Save me some work, and help diversify the placements a little better. The "robust" answer would be to have each spawn point become a spawn "range" or sorts, but honestly that seems like overkill for this type of thing.
Two gifs to not put up with that stupid compression dance from before, even though gifcam still makes it a bit choppy. Oh well.
Main menu -> First stage.
First stage end -> End level screen -> Main menu.
Front end/backend (interjoined because UI):
Pretty much all of the UI updates outline above. Not too crazy about the layout, but everything's slapped into a prefab, so I can touch up that later. Boss health bar appears with player as well.
No load screens yet to hide some of the initializations between scenes.
Options right now has an attack slider to control lag between an input starting and its execution. Default it's at .2 (what you see in the first gif. Changed it before the second to show off the change to show a more delayed one and how easier it is to pull off combo inputs, then changed it back to .1 and whaled on the enemy.
The boss's health bar looks a bit inconsistent at first glance, but there's a bit of logic to it. Thrown enemies carry a "pierce" flag that gets around i-frames. Normal punches do not. So, if you stock up on enemies to throw, you can throw them in succession to quickly deal a lot of damage (in the future, your options will be expanded upon to also be able to do a few other moves, but that's for later)
The screen transition really isn't that big of a deal. If a move is available to be learned, the player will get a prompt (similar to Mega Man's weapon get screens), but since none are available right now, this just ends. At the screen, the player gets the option to buy the next open stage for level select (after they buy the ability to select levels; players can't buy levels higher than their current). The portrait also has a little flair in that it changes poses depending on the difference in credits a player has - if a player has 2 or more credits than they entered the stage with, the portrait switches to a more cocky art. 2 or less, and it's careful. You're seeing a neutral one right now because from level 1, it's currently impossible to get 2 or more credits through gameplay unless you grind during the boss fight (you see two on the buy screen because I left in a line adding 1 after this check is made in order to test the menu). (Also, portraits are placeholder, though this is the design I want to use for the character, even if I did screw up the eyes).
The level select being access to the practice room is a remnant from the older main menu version. I'll need to fix this to be a separate menu choice altogether.
TO-DO:
-Create a second level (transit complex) using the first as a template.
--Three hostile enemy types, a passive threat, and one boss (placeholder until basis established)
--Six platform types: three fixed, three random
Also...
--Add character's arms and second wing in
Forgot to actually specify that as a thing needed done and didn't think about it until after I put the portrait in. -_-