Printable Version of Topic
Lacrima Castle _ Yggdra Projects _ Yggdra UFO (YUUFO)
Posted by: Raijinili Jun 25 2014, 01:30 AM
Side-scrolling or top-down, I dunno.
Based on
[14:33] <&Rhiannon> LOW UFOS ARE TOO HARD AS FENCER
== Controls ==
Movement on the left, shooting and Union button on triggers, and the right controls Passive-Aggressive (if necessary). Maybe the triggers should control passive-aggressive. Who cares, customizate it.
== Single player ==
You start off as Yggdra or whatever. Other characters are powerups dropped rarely (miniboss/quest rewards?), and you can catch them into your Union formation.
The shmup bombs in this game come in the form of union attacks. Everyone in your union shoots their special attack. I guess Unions also launches your leader's Card ability. In fact, maybe bombs are all in the form of Cards. Yes, you collect Cards to be able to launch Unions.
Maybe if you die, your Union Leader gets replaced by a random(?) other member, and either the union formation is shuffled, or all the chars are launched and you have to recatch them.
The other chars have smaller sprites, and either have smaller hitboxes or are just invincible.
The bullets are your followers? E.g. Yggdra shoots Valkyries.
== Multiplayer ==
Instead of pressing the Union button to trigger a Union, you hold the Union button and, if no one else is already holding it, the Union grid shows up under you. (Maybe instead of straight-up 8-slot grid, it's just glowing lines in an X or + shape.)
When you release the button, any players in your formation will shoot off their Union attack. If none, you do it alone. Maybe a Super freeze animation. Players in the union also get a bullet-absorbing shield, I guess (Leader gets biggest), and the ones that don't make it into the union can still hide in the shields.
Players aren't locked into the formation and have to manually steer into it. Or they can hold their Union button and fly into the formation, and get locked into it (relying on the leader's steering).
== Passive-aggressive ==
Aggressive: Move faster. Shoot harder.
Passive: Move slower. Smaller hitbox.
== Other, weaker ideas ==
You get, like, powerups in the form of a weapon icon, which gives your units with the right thing a random YU weapon of that type.
There will be places in the stages that are like towns. Instead of shooting the houses like in regular shmups, maybe you have to stay on them for a while.
EDIT: CHANGED NAME FROM "Yuufoo" TO "YUUFO" BECAUSE THAT COULD BE "UFO" OR "YGGDRA UNION UFO". MAY CHANGE BACK TO "YUUFOO" WHEN WE CAN CALL IT "YGGDRA UNION UFO ONLINE".
Posted by: Raijinili Jun 25 2014, 04:26 AM
Mockup:
» Click to show Spoiler - click again to hide... «
Notes:
- Yes, Yggdra's bullets are curving downward. Why not. We'll look at it in postproduction.
- I realized that wasn't Yggdra too late.
- I was thinking of the assassins here as delayed shot: they jump out, fire, backflip (should backflip in place instead of flying all over), and disappear.
- Too lazy to add in the third char's bullets.
- The blue cross is the Union thing. Elena is stuck to it due to holding the Union button. The blue outline indicates being in the union (not necessarily locked). The "Union!" text appears at the union's Ace.
Credits:
- Sprite src=http://spritedatabase.net/game/1195
- I used Martel's icons for consistency and border.
Posted by: Rhiannon Jun 26 2014, 01:17 PM
ORR everyone could be in a UFO (Yggdra converted the Gran Centurio to a UFO for Ragnarok II), with each spot in the UFO offering different effects. Like the frontmost spots would be the only spots that get to fire, the backmost spots affect the movement potential of the UFO, and the side spots (up/down, I guess) could affect special effect type things like shields or healing or something. And you can rotate your UFO to literally rotate all the positions (so side people are in the back and front and back/front people are on the side) to serve different purposes.
You could make it a 3x3 UFO, maybe, to make things easier. You can only union with five people after all, and you should probably have limited people for this idea. So like, five. Which means you could choose to have a person in each of the front rows, so you shoot three lines of lasers, and then you could have two people in the back so you'd be really fast. But you wouldn't be able to unionattack with all of them, because it'll still use mini unionformations, based on the ace, to decide who's in on those.
The ace would be some kind of ace pilot, of course, so that should color some things. I guess the union attacks/card skills could be based on your ace?
ALSO SCREW YOU RAI
Posted by: Raijinili Jun 26 2014, 09:56 PM
ARRRRRRRRRRRRRRN NO U
Posted by: Dr Sturm Jul 9 2014, 02:29 AM
I've started working on this as a means of filling my ridiculous amounts of free time trapped in Seattle.
Posted by: Raijinili Jul 10 2014, 01:27 AM
what how
Posted by: Dr Sturm Jul 10 2014, 05:43 AM
What do you mean how? I started working on an engine. >_>
Posted by: Raijinili Jul 11 2014, 06:24 AM
please teach me what that means
Posted by: Raijinili Jul 11 2014, 09:23 PM
CODE
var gamestate
data
- player : unit
^ unit : placeable
^ placeable
- anchor
#What this object is anchored to
#null normally
#a reference to another placeable if anchored to it
#This means that "position" is relative
- position
#if not anchor'd, then absolute position
#if anchor'd, then relative position
#maybe anchor should default to the corner of the screen?
- velocity
#if we want a bit of sliding
#also to determine facing?
- char : Character
^ Character : collidable, displayable
^ collidable
- collidesWith(other): boolean
^ displayable
- sprite: state => icon #no time parameter?
- bullet
- weapon_type
- union_type
- health
- facing?
#directing facing
#not necessary if they always face forward
#or backward, for enemies
- weapon #even for enemies?
- nextTurn() abstract: (velocity, action)
- Union grid
- slots for characters
- lives
- nextTurn(): (velocity, action)
- velocity <-
#
- action : {shoot, None} x {unionon, unionoff}
- enemies : list(AI)
^ AI : &unit
- AI routine
- Current AI state
- Bullets:
- type: bullet
^ bullet: collidable, displayable
- display(position, facing, state)
- damage(position, facing, state)
- getCollisionBox() #??
- velocity
- time to die (how long before it disappears)
#used to show what frame of the sprite is displayed is i guess
- Level position
- Any triggers to be made (i.e. visiting houses)
- Additional conditions
- nextFrame(): ??
#- is sequenced, * is not
- scroll the screen
` state.stage_position += STAGE_PER_FRAME;
- compute change in velocity and action
#objects that are fixed should maybe not be advanced
#AI should happen first if they home in on opponents?
* AI
* user input
`+
for(var i = allunits.length; i-->0;)
* calculate new events
- special action (Card or whatever)
- shooting bullets #done before collision detection so they deal damage instantly
* change positions
* units
#don't change positions if characters are fixed
#well let the unit decide what to do if fixed
* bullets
- collision
* calculate bullet collision #no ship collisions?
* bullet with bullet?
* bullet with shield
- bullet with ship
* calculate obstacle collision
- deal damage
- calculate trigger events
Posted by: Rhiannon Jul 11 2014, 10:50 PM
I drew a thing nobody wanted.
» Click to show Spoiler - click again to hide... «
Which has nothing to do with the idea I posted in this thread but oh well. The Gran CentUFO's "eye" thing opens up to let party members out to float in space on these speedy little disks. Speardra is a real person (THANKS STING FOR THE FREE DESIGN YOU NEVER USED) because out in space having Yggdra's hair fly freely would be a problem and also she can't use the Gran Centurio because she turned it into a giant spaceship that fires a huge GUESSWHATTHISISPOWEREDBY laser. Yggdra pretty much gets real close to enemy UFOs (piloted mostly by servants of goth) so she can spear them. Someone like Elena would be shooting arrows at them instead. I don't know why they don't just have the Gran CentUFO laser everything. Maybe it's too slow to aim at them.
I also kept thinking of doing something with GU's Centurio Buster because having a gatling gun instead would be cool too, for like, rapidfire stuff, but I didn't get the chance to think of what ridiculous way you could switch from the blade to that because the http://www.rpgsoluce.com/images/actualite/2011/juin/4216_03_a.jpg really doesn't have anything to do with the Gran Centurio's.
Posted by: Raijinili Jul 14 2014, 02:56 AM
http://www.playmycode.com/blog/2011/08/building-a-game-mainloop-in-javascript/
Posted by: Dr Sturm Jul 16 2014, 07:26 PM
I was planning to use a framework like Crafty to avoid needing to deal with the specifics of drawing and such and focus on just the game logic and interaction. I liked the sound of your idea (turn based shmup) but haven't really sat down to try to visualize it except as being YU with aiming in battle cutscenes.
Posted by: Raijinili Jul 17 2014, 12:42 AM
QUOTE
I was planning to use a framework like Crafty to avoid needing to deal with the specifics of drawing and such and focus on just the game logic and interaction.
I don't know what this means I should do next.
Turn-based shmup:
- Everyone on a team acts at the same time (to make it easier to deal with multiplayer).
- Each unit gets a Move and an Action each turn.
- During your turn, you can move to any point within your movement range (floating point circle distance rather than grid?), and fire bullets either before or after the movement (this can be negotiated).
- Your bullets move right before your team's turn, and hurt any enemies. They are also obstacles for the opponent (can't move through them).
Posted by: Dr Sturm Jul 17 2014, 05:32 AM
I've been poking around the source code of some crafty demos to see what's the best way to go about this. Spoiler tags 1 = #yuufoo transcript, Spoiler tags 2 = Summary of major game mechanics as I understand them.
» Click to show Spoiler - click again to hide... «
[21:16] <Raijinili> http://lacrimacastle.net/forum/index.php?s=&showtopic=3632&view=findpost&p=85871
[21:16] <Raijinili> use a YAML highlighter
[21:16] <Raijinili> or here http://pastebin.com/np52yk5G
[21:27] <drsturm> So, can a player character move, fire, and then move the remainder of their circle (I prefer the circle as a PB fanboy)
[21:28] <drsturm> Hmmmmmmmmm
[21:30] <drsturm> Your initial sketch had Yggdra shooting units. Do we want to keep it like that or should we do bullets? If they're moving and then shooting and then hopefully covered when an enemy shoots, bullets make more sense unless we could do something like maybe the units all deploy in front of your shooting position and then there's a play-out scene where all the player and enemy bullets fire and then then begin again (dependent on results)
[21:30] <drsturm> Player and enemy units "fire" is what I meant
[21:32] <Raijinili> uh
[21:33] <Raijinili> let's use units for now because
[21:33] <Raijinili> the sprites are there
[21:33] <Raijinili> [00:27] <@drsturm> So, can a player character move, fire, and then move the remainder of their circle (I prefer the circle as a PB fanboy)
[21:33] <Raijinili> my only issue with that is UI complexity
[21:33] <Raijinili> it's simpler to shoot before or after move
[21:34] <Raijinili> you want them to, like, be able to undo, and take back moves
[21:34] <drsturm> So you want to shoot, not deploy?
[21:34] <drsturm> Fuck undoing.
[21:34] <drsturm> You don't get undos in shmups
[21:34] <Raijinili> it's supposed to be teamwork
[21:34] <drsturm> Nor did you in YU
[21:34] <Raijinili> it's a shmup SRPG
[21:34] <drsturm> Or any of the DHE games.
[21:34] <drsturm> Hm...
[21:34] <Raijinili> it's undo as in
[21:35] <Raijinili> before everyone sets Ready, they can redo their turn
[21:35] <Raijinili> since damage happens between rounds, this is okay
[21:35] <drsturm> Okay
[21:35] <drsturm> So shooting happens between turns, okay.
[21:35] <drsturm> That helps.
[21:35] <Raijinili> rather
[21:36] <Raijinili> bullets move right before their owner's turns
[21:36] <Raijinili> so a game progression would go
[21:36] <Raijinili> 1. gulcasa's team all move and fire
[21:36] <Raijinili> 2. your team moves and fires
[21:36] <Raijinili> 3. gulcasa's bullets move and damage
[21:37] <Raijinili> 4. gulcasa's team moves and fires (can't move past enemy bullets (somehow collision has to be defined))
[21:37] <Raijinili> 5. your team's bullets move and damage
[21:37] <Raijinili> 6. loop to 2
[21:38] <drsturm> 2? Enemy team doesn't move again?
[21:38] <drsturm> Well
[21:38] <Raijinili> at 5 your team didn't move yet
[21:38] <Raijinili> so union bomb, instead of being holding down a button and waiting for people to join (which i thought was a really cool idea)
[21:38] <drsturm> I guess if it's scrolling then the enemy would take a position and try to hold it or retreat (be defeated)
[21:38] <Raijinili> would be to position yourselves and someone's action is Union instead of Shoot
[21:39] <Raijinili> huh, so a scrolling turn-based game
[21:39] <Raijinili> i only realized today scrollers don't actually move the player's ship
[21:40] <Raijinili> i also had ideas about passive/aggressive (meter) but they don't fit as well in turn-based
[21:40] <drsturm> Alright, I have to soak my piercings, I will be back in ten minnutes. Brainstorm, ruminate, be creative.
[21:40] <Raijinili> 1. moving backward causes passive, forward is agg
[21:42] <Raijinili> 2. your passive/aggressive state depends on where you are on the screen. front quarter = more damage (meter loss). back quarter = smaller hitbox (meter gain) or whatever. middle two quarters = neutral
[21:42] <Raijinili> and i also tried to extend the (realtime) ideas to riviera
[21:43] <Raijinili> a riviera character's bombs will use the cards as weapons? or they will pick up diviners instead
[21:43] <Raijinili> (also (YU) you need meter to use your bomb, so it costs meter and also your bomb = card)
[21:44] <Raijinili> riviera: when you hold bomb (realtime), your OverBreak (which is the substitute for PasAgg) meter appears behind you, and your allies have to fit in those slots instead of into union formation
[21:44] <Raijinili> grazing prolly increases meter. damage also i guess?
[21:45] <Raijinili> == WEAPONS ==
[21:45] <Raijinili> when you pick up the SWORD symbol, you get either Sword powerup or a random Sword?
[21:45] <Raijinili> YU: the weapon runs out over time
[21:46] <Raijinili> Riviera: the weapon runs out per use
» Click to show Spoiler - click again to hide... «
Character and team scroll (run) to the side (perhaps up) and encounter enemy formation with obstacles (ie, like castle walls and geography and such).
BATTLE ENSUES
Battle loop:
1) Enemy character (has the drop generally, except perhaps in sneak attacks?) moves characters and aims their shots (ie, the flutter of units that will fly outward and attack)
2) Player character moves characters and aims their shots.
3) Enemy units (shots) attack, doing damage to all in their path/range (perhaps swordies have shorter range than archers)
4) Player units do the same.
5) Return to [2]? If the enemy is hunkered down they're unlikely to move, they will probably keep shooting. But maybe they should move? This brings up the question of if enemies just autofire or if they move and try to defend themselves.
Characters move in circular grids (as in PB).
The strength of your attacks (aggressive v passive) is relative to your proximity, but the damage you take is too.
The meter I didn't really understand in how it relates to passive/aggressive, but the meter allows you to use cars/drives/etc.
Items and equipment are limited use. Picking up...? Related to moving and hitting powerups as in standard shmup, probably.
Ideas:
-Morale could be an indicator of "ammo," so to speak, as if you keep spraying troops needlessly they're going to be less likely to fight and if you have no troops fighting you can't fight and thus you're dead.
-Unions can remain a matter of formation. Should, in fact, but perhaps not in the same way as YU if we use a circular rather than grid based movement system.
-Perhaps ranged units are inverse in terms of aggression/passivity. Maybe archers do more damage from afar and less damage up close. Friendly fire?
-Cannons are simple enough to implement. Giant swath of damage every turn just like in YU.
In my head this actually sounds like an SRPG run-and-gun rather than a shmup, but I like it still.
Posted by: Raijinili Jul 17 2014, 06:13 AM
(PROTIP: Ctrl and the + key zooms in the web page. Ctrl and 0 resets zoom. Mac may use Cmd instead.)
Ideas about the player character (how YU and Riviera characters will play differently):
» Click to show Spoiler - click again to hide... «
CODE
game
player characters
- weapon
* Pick up a weapon type icon, and get a (random/predestined/escalating) weapon of that type.
* Not everyone can pick up all weapon types.
- bomb
- meter: used for Bomb, and some alternative use
YU characters
- weapon
* Weapons run out over time.
- bomb
* Pickup: Cards
* Use:
- Need to have a Card and a full Meter.
- Hold down the button. Your Union formation appears.
- Wait for others to get into your formation.
- Release. All ships in formation fire, and you use your Card power.
- meter
* Alternative use: Passive/Aggressive meter
- Passive: Less damage, gain meter.
- Aggressive: More damage, lose meter.
* Gain/Lose option 0: Gain meter when moving backward, lose meter when moving forward.
* Gain/Lose option 1: Gain and lose meter depending on where you are on the screen.
- Back quarter: Passive.
- Middle two quarters: Neutral.
- Front quarter: Aggressive.
* Gain/Lose option 1a: Like Option 1, but the further forward you are, the more Aggressive you get.
Riviera characters
- weapon
* Weapons run out with use.
- bomb
* Pickup:
* Diviners?
One diviner per weapon type! I already drew some a long time ago.
- Diviners use EX level, which is good thematically.
* Special weapons? Excalibur, Tempest Bow, Night Scythe, Saint Scepter, Rosary (Banish).
* Use:
- Hold down the button. Your Union formation appears.
- Wait for others to get into your formation.
- Release. All ships in formation fire, and you use your Card power.
- meter
* Alternative use: OverBreak
* Use Option 1: Shoot special, more powerful bullets?
* Gain/Lose: Damage and/or graze?
Turn-based ideas:
» Click to show Spoiler - click again to hide... «
CODE
turn-based
- Turn: Everyone on a team acts simultaneously.
! This is to make multiplayer less annoying. Everyone acts simultaneously => parallelized waiting.
! Also makes it easier to plan Unions.
- Undo: To ease strategic planning, you can undo your action as long as not everyone is Ready.
! Principle: There is nothing left to chance, no information to be gained, with Undo.
- Unit turn: Every turn, you can move and act.
* Move:
- Move (circular distance instead of grid?).
- Select a position within your move range.
- You can't move through bullets.
? Or you can, but it damages you?
* Act:
- You can act either before or after you move.
! Not during, for simplicity of choices.
- Actions:
* Shoot: Place a bullet at your current location. It doesn't move yet.
* Bomb: Instead of shooting, you can use your Bomb. Your allies can position themselves into your Bomb formation.
- Shields from bombs should last until next turn.
- Bullet phase: Right before the team's next turn, all of the team's bullets move, damaging things in their paths.
! The separate damage phases makes Undo more plausible.
* Scrolling?
Here's an interesting idea. After every round, everyone gets moved back as the window scrolls.
QUOTE
-Unions can remain a matter of formation. Should, in fact, but perhaps not in the same way as YU if we use a circular rather than grid based movement system.
I imagine, when you activate Union, an X or cross appears on the map, and they have to be touching that. Or it has width and they have to be inside it.
Posted by: Dr Sturm Jul 17 2014, 07:01 PM
It could just be a matter of range (width) - it makes sense that to unleash a devastating group attack you have to be in a compromising position (huddled together), but it's perhaps not quite as strategic in that sense as YU was.
Posted by: Raijinili Jul 17 2014, 09:45 PM
Noooo I want them to be annoyed that they're too far away from the bar and everyone has to redo their turn.
---
So I remembered that there's this Flash game called Steambirds which is a turn-based top-down fighter jet airfight simulator. Disclaimer: I wasn't thinking about that or anything like that for this turn-based game, but maybe seeing it made me more open to genre combinations.
---
Python -> HTML? http://clouddbs.blogspot.com/2011/02/how-to-write-html5-game-in-30-days-with.html
---
It occurs to me that turn-based input is harder to program than realtime.
Posted by: Crazycolorz5 Oct 3 2014, 03:12 PM
Hey I'm a computer programmer and have even made a shump framework before (it's not that good, but it's fun to look at). Want my help? And what language are we doing this in?
Posted by: Raijinili Oct 6 2014, 06:04 PM
It's gonna be through the browser. I dislike plugins like Flash.
Posted by: Crazycolorz5 Oct 6 2014, 09:17 PM
So, like Javascript? We still going for real time shmup? Also, I cast my vote for top-down (that's just me having played way too much Touhou).
Posted by: Raijinili Oct 7 2014, 01:55 AM
I think Sturm really likes turn-based.
Side-scroll is easier because sprites.
Posted by: Raijinili Jul 18 2015, 06:13 AM
Gridless is too hard. Optimal path is to curve around enemy bullets if possible, and you need a program to curve around for you for max distance. Too much to deal with for the player. How about a hexagonal grid, then?
A UFO (not to proportions). The hexagon is the hurtbox.
Yggdra on a UFO.
The hexagon outline can flash/glow to make it more obvious. Or the grid layout can be overlaid on top (maybe toggled).