Jump to content
A 2021 backup has been restored. Forums are closed and work in progress. Join our Discord server for more updates! ×
SoaH City Message Board

Gradius style Option shadowing


Recommended Posts

I am considering making a fan game of sorts for Gradius, being completely addicted to the series for the last 5 years or so, but was wondering about the best way to handle the positioning and movement of the option that shadow Vic Viper.

Obviously the solution hinges on what I use to make said game in the first place. Right now I'm going between using C++ [with the Allegro libraries], or just getting it done the lazy [read: VERY VERY LAZY] way and using an app from the old days of fangaming, The Games Factory since I am proficient in it, albiet very rusty since it has been some time since playing with it, and straight to the point. [You thought I was going to say Click 'n Create, didn't you? Even with its limits, a Gradius style game could still be done in some capacity. If I had more time, only having a month of my summer left before college classes after 2 summer classes, I would have leaned much more towards the C++/Allegro route]

My primary problem has been with, as mentioned before, spawning positioning, and proper movement. Given how if I go through the Games Factory route I am limited in the number of active objects, if I go through that means to make this game I need to consider carefully how I should go about it.

What are your opinions on handling this problem, either using C++ or The Games Factory? Maybe the old C&C/TGF tutorial on tails following sonic that is up on SFGHQ, if it's still up that is [been way too long since I've perused here], is one source to look at for ideas?

Link to comment
Share on other sites

If you're going with Clickteam, you should upgrade to MMF2, It's far better than TGF. Although, if you don't want to do fork over 110 bucks, you can get TGF2 for about 60$. Otherwise, you should stick with C++. Also, I think you I understand. I haven't played Gradius, but you need a way for a component to follow the ship?

Link to comment
Share on other sites

I haven't played Gradius, but you need a way for a component to follow the ship?

This is Gradius:

[more specifically, Gradius Rebirth for the Wii]. The orange glowing things surrounding the ship [Vic Viper], called multiple [or option in other versions of the game], are what I'm trying to replicate in function and behavior.
Link to comment
Share on other sites

Oh, the glowing orb that appears when the announcer says "MULTIPLE". Okay, it'll be something like this:

In MMF2/TGF2, you would set the orb to bouncing ball movement, and use the action Look at Object to make it "follow" the ship. Since it always stays behind it (or in front of it when moving back), it'd be looking at a few pixels less (or more) than the ship's current horizontal position, so it would entail four sets of Look actions: (plus up and down)

1- When moving forward, look at [(negative X value), Ypos] from the ship

2- When moving back, look at [(positive X value), Ypos] from the ship

3- When moving up, look at [Xpos, (positive Y value) from the ship

4- When moving down, look at [Xpos, (negative Y value) from the ship

(in MMF2, -Y = up, +Y = down)

The event editor would display something like this:

+Player 1 presses and holds Right
---*(Orb) Look at [-25, 0] from "Ship"
+Player 1 presses and holds Left
---*(Orb) Look at [25, 0] from "Ship"
+Player 1 presses and holds Up
---*(Orb) Look at [0, 25] from "Ship"
+Player 1 presses and holds Down
---*(Orb) Look at [0, -25] from "Ship"

I tried replicating this and it sorta works, the ball goes crazy if no button is pressed. By controlling it with a stop action when there is no directional input it should work.

EDIT: You can make it stop with two move sets, the bouncing ball as Movement A, and static as movement B. Then add negated conditions so that if no directional button is being pressed, the ball enters movement B, and to the four conditions in the above codeblock, add an action to set movement A.

Look at object basically makes the object "follow" another. (It's great for RPGs when you need a character to follow the leader).+

---------------------------

In the end though, MMF2's included movement modes fall short when you need complex games. While the Gradius ship could work with the inbuilt 8 direction movement, a customized static engine can work a lot better through customizability.

Even though the simple Look at object action helps for the RPG style character following aspect, it doesn't work well with obstacles. A good way of implementing this entails quite a bunch of events and extensions such as Move Safely (here's a topic in the CT forums on this issue, I think you need an account to read it though). I have an engine that uses this method, and it works a lot better in comparison to the "simple" way. If you're willing to work with C++, you'll have something more robust, that will take more work, but will surely run well.

  • Like 1
Link to comment
Share on other sites

If you're willing to work with C++, you'll have something more robust, that will take more work, but will surely run well.

I certainly do hope to [eventually] [re] do this project in C++, problem is right now I'm finishing up my second summer class and will have part time work in August before college classes start up again, so not too much time to work with. I agree though, I will have much more control over the dynamics of a Gradius like project if I go all the way in C++ / [insert graphics library here], I just want to do a semi-playable proof of concept for this particular idea I've been toying around with which is Gradius implanted into Sonic the Hedgehog. [Gradius in Sonic Land is the present title, and may change though I'm kinda liking that title].

As for the movement, just messing around with TGF1 [old school :D], I managed to get it working mostly well using the methodology you described, but instead of the multiple being bouncing ball movement, like in the old C&C/TGF Tails following Sonic tutorial, I made the multiple 8-direction like the Vic Viper, and it actually seemed to work pretty well [minus some relatively minor tweaks I need to do, and no, the multiples spazzing out when no buttons are pressed is NOT one of them]. I just repeated the movement mechanics for the next Multiple, instead of following Vic Viper it follows the Multiple before it [Multiple 2 following multiple 1 following the Vic Viper, etc]

EDIT:

Ok, so from experimenting with this, it turns out:

- Vic Viper being 8-direction

- 4 Multiple being 8 Direction

- Repeating the functions for making the initial multiple follow Vic Viper so each additional multiple follows the previous multiple

AND MOST IMPORTANTLY

- Setting each following item [multiple #1, multiple #2, etc] to the speed of the object it is shadowing - a certain quantity

- 5, but that will change as I find values that work much better]

gave me some pretty close results to what I need.

Link to comment
Share on other sites

Hm, setting the multiple to 8-way movement instead of bouncing ball also works indeed. It just might behave a bit differently, as the ball supports 32 directions instead.

Using 8-way mode will save you from the random spazz, which is convenient. :]

What are these minor tweaks you mention?

Link to comment
Share on other sites

Hm, setting the multiple to 8-way movement instead of bouncing ball also works indeed. It just might behave a bit differently, as the ball supports 32 directions instead.

Using 8-way mode will save you from the random spazz, which is convenient. :]

What are these minor tweaks you mention?

Moreso minor tweaks in regards to movement and collisions related issues. The multiple were doing this odd thing where they stuck to one another[and moved in a clump, often stuck to the Vic Viper as well]. I fixed that though and made it so each multiple is moving just a little bit slower than the object it is shadowing

The 8 direction vs 32 found w/ ball movement didn't seem to matter at all.

Link to comment
Share on other sites

  • 7 months later...

I don´t know if you (or anyone else) are still interested in making a Gradius fangame. Personally, I have a working one uncompleted with 3 levels, and I´m not going to continue doing it, so I can give you the code if you want. It´s made on Fenix, with easy code (although a bit tiring to put more levels into). All basic gameplay works, there are many built in enemies, three bosses, many Gradius musics and sounds ripped in, the options you are talking about (personally I used some arrays), etc.

If you (or anyone) is interested in either the code or playing the fangame, just ask. I just want to note I haven´t got any plans to rework on it.

Link to comment
Share on other sites

You can check it on this url:

http://gradiusforever.iespana.es/

I only worked on it for a month, so there are some things missing, although all main gameplay for the 3 levels is completely done. After trying it, if you like it and want the source code, I´ll upload it. I prefer somebody using it than just having dust on my hard drive.

Link to comment
Share on other sites

  • 2 months later...

Several computer crashes, HD failures later, I'm now switching to using C# and SDL.NET, which will give me a LOT more control over my project - no object limits, complete control over how everything behaves, et cetera.

One thing that drives me nuts though is that there are tutorials for SDL, but SDL.NET is dry - one really decent tutorial that is still, IMO, missing things - and lots of fake links - Google results that redirect you to sites that have nothing to do with what you're looking for. >_<

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...