Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411430 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 19, 2024, 09:52:36 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsSuper Gemini Bird [proc-gen + shmup]
Pages: [1] 2 3 4
Print
Author Topic: Super Gemini Bird [proc-gen + shmup]  (Read 6645 times)
alvarop
Level 9
****


ignorant


View Profile WWW
« on: July 28, 2016, 07:14:51 PM »

SUPER GEMINI BIRD


Hi Tigsource,

Super Gemini Bird is a perma-death, procedurally generated horizontal shmup, in the vein of Gradius and R-Type. I have been working on this project for about a month and this is my first non drag-and-drop game. The challenges have been many and I plan on keeping track of the development of this project on this thread.

I plan to be as transparent and as open as possible during the development of this project, so if you have any questions, advice or ideas, let me know! I am currently streaming the development as I go on livecoding.tv/alvalol or twitch.tv/alvaro_as so make sure to follow me there so you can catch a livestream during the week.

About
With Super Gemini Bird, I am trying to create a unique arcade experience every playthrough. The procedural aspects of it are not meant to create the depth that a traditional roguelike has, but instead, to test the player on his pure skill and understanding of the mechanics of the game. This is meant to be a pick-up and play sort of game, which is what I love about most shmups I play.

One core dynamic that I'm trying to implement in the game is the idea of using the scrolling screen as a gameplay mechanic. Just like the hunger clock in a traditional rogue-like, the scrolling screen limits the agency of the players. If it collides with it, it will damage it, and the scrolling speed increases depending on the player's current HP. Another core idea is that the hazards that affect or limit the player, should also affect enemies. So, the player can either dodge or use hazards (lasers, blocks, etc) to his advantage, making for different gameplay styles.

There are currently 10 different enemies (from turrets to sine-wave enemies), as well as 5 different upgrades (from range to HP up), but I'm currently planning a lot more.

Level generation
The level generation is inspired by an article I read about Derek Yu's Spelunky. Basically I am using templates for "level chunks" which I am then putting together based on some rules (which I still have to work on, a lot) to generate the whole level. The chunks in themselves have some randomness when it comes to choosing what entities will be placed in the map. And the entities themselves do some checks to adjust their placements and other propreties. This is my first time doing any sort of dynamic level generation so I still have to iterate a lot, but I am confident that I will find a way to generate interesting and engaging levels as I keep working on the project.

Targets
Windows, Linux, Mac. There is a possiblity that I might make the game playable on iOS and Android if the controls end up being as simple as they are right now. I am not limiting the design in order to adapt it to these devices, so this may not happen.

Tools
I am using Haxeflixel and Haxe to develop this project, Pyxel Edit for graphics (which are all placeholder as of now) and might be using Bosca Ceoli for music, unless I discover something I'm better at.



« Last Edit: December 21, 2016, 01:08:41 PM by alvarop » Logged

i make games that can only ever be played once on http://throwaway.fun
alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #1 on: August 06, 2016, 10:40:11 AM »

Quick update

Nothing to show image-wise, but I've been re-working the level generator to allow for a better gameplay experience. The one I have right now is pretty basic, so I'm adding a couple of conditions and level "chunk" types so that all levels can be finished, for instance. So, everything else is on hold until I get this to a point where I'm satisfied with it.

If anyone has some resources they would recommend about level generation (I've read quite a few articles and am getting a lot of inspiration from Spelunky's level generator), I'm all ears.
Logged

i make games that can only ever be played once on http://throwaway.fun
alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #2 on: August 18, 2016, 10:48:44 AM »

Reworked level generation from the ground up. Currently using Tiled to create the "map chunks" and then using the data to place entities and set their properties. It's a real time saver and allows for a more visual creation of chunks, which used to suck when I had to enter everything manually in templates.

New feature : seeds!
Logged

i make games that can only ever be played once on http://throwaway.fun
KaiTheSpy
Level 0
***


how to make the game


View Profile
« Reply #3 on: August 18, 2016, 02:46:56 PM »

This is an interesting idea. It's cool to see others using Haxeflixel.
Logged

i am a 14 year old loser who sort of knows how to program
alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #4 on: September 11, 2016, 08:36:23 PM »

Been tweaking the level generation system and honestly I'm a bit over my head here.
I'm currently splitting all the possible level chunks in 5 categories : start, exit, tunnel, open and sandbox.

Start and exit are the first and last chunks of the level. Sandbox is a special type of chunk that I use in debug mode to test new features and enemies, so it doesn't really count. The actual content is in tunnel or open.

Open, I can almost choose randomly because they will all be chunks without any sort of entrance or exit, so the player will never get stuck and they all fit together somehow. However, for tunnels  I have to match their exists and entrances.

It seems simple enough as it is written here, but I get confused with all the different bits of information here and there that I have to keep track of to allow the level generation to flow well and come out with an interesting (and playable) result.

Can't wait to be done with this part so I can rework on enemies and hazards - so, designing the actual chunks will be fun :D
I also can't wait until I get some sort of presentable graphics in the game so that I can show off a bit more of what it's alla bout instead of writing about my coding process.
Logged

i make games that can only ever be played once on http://throwaway.fun
alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #5 on: September 13, 2016, 10:07:50 AM »

The project is now OPEN SOURCE! https://github.com/Alvalol/Haxeflixel-ShmupRoguelike

 Coffee Beer! Coffee Beer! Coffee Beer!
Logged

i make games that can only ever be played once on http://throwaway.fun
alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #6 on: September 15, 2016, 10:36:27 PM »

There is a bug currently in level generation, so I made this to view levels quickly.


Now wondering if it would be neat to have a mini-map...
Logged

i make games that can only ever be played once on http://throwaway.fun
alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #7 on: September 18, 2016, 10:22:50 PM »

A bug brought me into a whole new idea for the look of the game. Inspired by ‏@lorenschmidt's work.



maybe even
« Last Edit: September 18, 2016, 11:19:47 PM by alvarop » Logged

i make games that can only ever be played once on http://throwaway.fun
quantumpotato
Quantum Potato
Level 10
*****



View Profile WWW
« Reply #8 on: September 20, 2016, 07:20:58 AM »

Hazards affecting enemies sounds neat!
Logged

alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #9 on: September 20, 2016, 08:41:06 AM »

Hazards affecting enemies sounds neat!

Yes, I will have to find a good balance between enemy + world interaction and actuall challenge, as to not kill all the enemies with environmental hazards or have too many inconsistent behaviours.

So yesterday I came up with the idea of having arabic / bollywood sounding music as the soundtrack. Since my music making skills are very basic, I looked up a bollywood song and played it on top of my game. This is what it sounds like





I think something like this, but in chiptune mode + a bit of a slower tempo would do wonders and I really like how it sounds. I'm really liking how putting such diverse elements creates this other-worly feel for the game. I'm gonna go deep into that.
« Last Edit: September 20, 2016, 08:50:30 AM by alvarop » Logged

i make games that can only ever be played once on http://throwaway.fun
alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #10 on: September 20, 2016, 08:35:14 PM »

made a mockup of the main menu. I'm really digging this new art style. Giving me a lot of creative energy.
Logged

i make games that can only ever be played once on http://throwaway.fun
quantumpotato
Quantum Potato
Level 10
*****



View Profile WWW
« Reply #11 on: September 21, 2016, 08:18:19 AM »

Cool! I think the menu would look better with another pink arrow on the right side of the selected item, to frame the option text.
Logged

alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #12 on: September 21, 2016, 08:20:32 AM »

Cool! I think the menu would look better with another pink arrow on the right side of the selected item, to frame the option text.

Yeah there's something off about it. I also thought about using a rectangle for the currently select option.
Not sure yet.
Logged

i make games that can only ever be played once on http://throwaway.fun
lobstersteve
Guest
« Reply #13 on: September 21, 2016, 10:53:38 AM »

I like the look of this.
I especially like how the game is not just about avoiding enemy ships and bullets, but there are other hazards to avoid. Seems like it makes you being more careful about the hazards and makes you time stuff right and so on. Seems more "smart" then just shooting enemies Smiley
I also tried to make a shmup roguelike once, but got bored with it^^
Logged
alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #14 on: September 21, 2016, 10:57:35 AM »

I like the look of this.
I especially like how the game is not just about avoiding enemy ships and bullets, but there are other hazards to avoid. Seems like it makes you being more careful about the hazards and makes you time stuff right and so on. Seems more "smart" then just shooting enemies Smiley
I also tried to make a shmup roguelike once, but got bored with it^^

Thanks.
What have you learned from trying to make one? I want to pick your brain a little...
Logged

i make games that can only ever be played once on http://throwaway.fun
lobstersteve
Guest
« Reply #15 on: September 21, 2016, 11:58:12 AM »

hm, what have i learned?
well some basic shmup stuff, because i never made one before. pretty much the first article you find on google is actually pretty good: http://shmuptheory.blogspot.co.at/2010/02/anatomy-of-shmup.html , probably you've already read this.
i read that you are making it in HaxeFlixel. I don't know about how well it handles a lot of stuff on screen, but i made my game in flash, and it doesn't. But with "cacheAsBitmap" i could handle a lot of sprites that don't have animation, like bullets (http://imgur.com/tDBGwgC), maybe there is something similar in haxeflixel, or maybe haxeflixel takes care of it automatically, idk.
Also, what i liked a lot in other shmups are enemy patterns that make their behaviour visible from the start. Like for example, in ikaruga, there are enemies, that come from the side and start circeling around and tightening you in - so you know what they'll do and how to react to it, but you have to act quick. That's also unfortunally what made me bored of making the game. I made the game not totally random, but with "preferable" positions for enemies. So, i had to create lots of content manually, instead of making stuff with algorithms, and that's what i like the least in game making.
Some games you could look at for inspiration, which remind me of yours design-wise (flying through "tunnels", not just open space): takatis, nanostray 2, humans must answer.
Best shmup in general: ikaruga Smiley
Logged
alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #16 on: September 21, 2016, 12:00:34 PM »

hm, what have i learned?
well some basic shmup stuff, because i never made one before. pretty much the first article you find on google is actually pretty good: http://shmuptheory.blogspot.co.at/2010/02/anatomy-of-shmup.html , probably you've already read this.
i read that you are making it in HaxeFlixel. I don't know about how well it handles a lot of stuff on screen, but i made my game in flash, and it doesn't. But with "cacheAsBitmap" i could handle a lot of sprites that don't have animation, like bullets (http://imgur.com/tDBGwgC), maybe there is something similar in haxeflixel, or maybe haxeflixel takes care of it automatically, idk.
Also, what i liked a lot in other shmups are enemy patterns that make their behaviour visible from the start. Like for example, in ikaruga, there are enemies, that come from the side and start circeling around and tightening you in - so you know what they'll do and how to react to it, but you have to act quick. That's also unfortunally what made me bored of making the game. I made the game not totally random, but with "preferable" positions for enemies. So, i had to create lots of content manually, instead of making stuff with algorithms, and that's what i like the least in game making.
Some games you could look at for inspiration, which remind me of yours design-wise (flying through "tunnels", not just open space): takatis, nanostray 2, humans must answer.
Best shmup in general: ikaruga Smiley

Thanks dude.
I've been playing a lot of shmups while making this of course and I find there are BIG differences between horizontal and vertical shmups. So Ikaruga, while amazing, is hard to use as an inspiration because of how the patterns work and how busy the screen is. I don't think I c an make this game into a bullet hell type game, but at most, something like Gradius.

Logged

i make games that can only ever be played once on http://throwaway.fun
lobstersteve
Guest
« Reply #17 on: September 21, 2016, 12:08:40 PM »

ha, yeah i already thought i'm telling you nothing new Smiley
but check out nanostray, it's also a little faster, but has some interesting hazards
Logged
alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #18 on: September 23, 2016, 07:19:30 AM »

I'm making the executable folder public. If anyone wants to try the most recent build, they're welcome to do it.
https://drive.google.com/open?id=0By79FfszQd8wT1BpT3BxWW1qZjQ

(the highest number in GeminiBird.zip is the most recent build. I update often)

In other news, I'm really unhappy with where the game is at the moment. I started adding chunks and trying out content and it's such a mess, it's depressing. Time to work on basic features that are totally needed + rethink the game's design gameplay wise to make it all fit nicely.
Logged

i make games that can only ever be played once on http://throwaway.fun
Amp
Level 0
***



View Profile
« Reply #19 on: September 23, 2016, 07:40:27 AM »

I played the latest release and found it an amusing distraction. I'm less than pleased to report that I died probably 50 times- I'm not all that used to shmups that require you to move forward on your own  Big Laff

Is there / will there be a point to the differently-sized cube pickups?
(Also what does the purple pickup do)

The bird's short range and self-immolation on contact with literally everything makes for a difficult time, lmao

The only other point I can think to bring up would be, is the screen meant to shake persistently when you fire? The instant I noticed this my eyes wouldn't concentrate on anything else
Oh, performance, also. I made a game out of generating as many of the yellow ghosts as possible and then watching them all clog the framerate by sliding off the screen and exploding. :V

It could be great, I think
Things I'd focus on/think about would probably be that there's little by way of difficulty progression; more distinctive chunks could be added; dynamic terrain? like obstacles that move or require you to shoot them and then they'll start moving; and visual effects! I can't stress enough how viscerally satisfying it is when things in-game react very juicily to your actions.
Logged

Pages: [1] 2 3 4
Print
Jump to:  

Theme orange-lt created by panic