Untitled shmup roguelite

  • alt text

    Untitled shmup 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.

    With Untitled shmup (wish I had a better title), 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.

    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.

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

    alt text

  • Oh, sounds like a lovely shmup! Gradius and R-Type were/are great, can't wait to see what you're making there! :D

    I was also working on a shmup before, but the proposal was different (not 100% procedural, and somehow rhythm-based). But this project's on hold now until I finish the current projects :P

    Good luck with your game! :v:

  • @yuigoto Hey Yugi, I actually played a rythm based shmup a while ago, but I played it in person and the developer was showing it to me, so I can't remember the title or if it was ever released. Might be a cool project though!

    Thanks for the encouragment :)

  • 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.

  • 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!

  • 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.

  • The project is now open source!

  • How about putting it as a demo at HF site?

  • @starry-abyss It's not really up to me but honestly I feel like it's nowhere near where I want it to be yet to be demoing it anywhere. Maybe when it's a bit more polished that would be really cool :)

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

    alt text

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

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

    alt text

  • 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.

    alt text

  • I'm making the executable folder public. If anyone wants to try the most recent build, they're welcome to do it.

    (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.

  • I think GitHub has a release page which probably does better than Google Drive

  • @DleanJeans said in Untitled shmup roguelite:

    I think GitHub has a release page which probably does better than Google Drive

    Does it? I'm not aware of it. Point me to it, Dlean.

  • Here you go! I think this is how. Good luck!
    GitHub: Creating Releases

  • You can shoot eggs and die now
    alt text

  • Small mockup of what I imagine the bird to look like.

  • Hey guys,

    I've decided to design this game for mobile first, so I'm trying to come up with an interesting control scheme that will also allow for interesting gameplay.

    I implemented an idea of it in the latest build, which I would be very appreciative if I could get some feedback on : https://drive.google.com/open?id=0By79FfszQd8wX1BWaXNjR3E4UzQ


    W / S / M

    Please let me know what you think. As you play it, imagine that you can tap on the upper part of the screen to move up, lower to move down and right side of the screen to shoot. Obviously this is still a rough implementation of the idea and the game hasn't been changed yet around it, but before I commit I need to get some feedback as it would require an overhaul of the whole level design / enemies, etc. Please refrain from giving feedback regarding content and all that stuff, as it's all just thrown together to make sure the systems work and nothing is balanced.


Log in to reply

Looks like your connection to HaxeFlixel was lost, please wait while we try to reconnect.