Somebody's blog

To content | To menu | To search

Tag - revolbeat

Entries feed - Comments feed

Thursday, February 14 2013

New rhythm game project

Few days ago, I started the devblog for my new game project, but as it may interest non-french speakers, I'll also write an english one.

So, later this month I started developing a new game called Revolbeat, but with only a couple of hour every evening it never progressed well. Unfortunately, I lost my job as game developer at Mandala last week, and now that I am unemployed, I decided to use this first week to work completely on the project.

As it is my first android game, I don't want to make something completely unknown. I'm a huge rhythm game player and also made another rhythm game called Koto 2 years ago which as the particularity to use the whole keyboard as an input. It was so mad I left this game unpolished... (You can find screenshots and a video of it in the french section of my blog : /fr/tag/koto, and even try it if you're brave enough). So this one will also be a rhythm game. I had the idea of making this game after being frustrated by playing Cytus on a tablet : almost 50% of the time, my hand were hiding some parts of the screen. And, unless I had played a song at least a few time before in order to remember these hidden notes, I couldn't hit them. I also love the look of Super Hexagon, and when I mix both, it give me a rhythm game based on a circle where the notes came from the center and goes to the border. By having the note coming from the center and taping on the outside of the circle, whether you use your thumbs on a phone or you hands on a tablet, the action zone will never be hidden. I will confirm that once the game is more advanced, but I'm very confident on this point.


The gameplay will remain a classic beatmania-like, you tap the right notes at the right time, nothing more. The fun from this type of game comes from the high difficulty due to the very high number of APM. But without any sensitive feedback on tablet and mobile (I know I could use the vibrator of cellphones but it don't even have one-tenth of the feedback of a real button, and tablets generally don't have one) the song charts can't be as intense as in a more classic rhythm game. So, in order to keep the game hard enough without being too frustrating I'll change some execution difficulty into reading difficulty, pretty much like Super Hexagon, by adding spins, flashes, etc...

This game won't change radically the rhythm or mobile games, but it's not my goal either. For this first mobile game I decided to put the major part of my work into the feeling of the game. That means that I want the game to be hard and that the player rage, but only because he doesn't still have enough skills no because the game is unfair (bad timings, wrong hitzones, imposible gesture, etc...).

So, this is the main idea.

For the development, I first wanted to make it in Haxe with NME as it could be directly deployed on Android and iOS, but as I don't really know what's going on behind this engine and needed a good reactivity, I was not fully satisfied with this option. This is after the discovery of Avian (a tool that compile JVM code into native code, including for iOS), that I decided to make my own one in Scala.

I build the engine as I need new functionalities in the game. That keeps away useless and too generics components (which are so generic that they don't do a thing anymore). Currently, I have basic 2D scene engine which handle, shapes, sprites and texts, and also dispatch touch event. I worked a lot with flash the past 2 years, so it is clearly influenced by it. I put some effort to make the allocation of object during the rendering to 0, but as Scala has some overhead (like for loop which are in reality anonymous functions called N times) it's not yet perfect. The next things I'll add on the engine will be caching to a texture, which will be useful for long text retracing and a better use of VBOs. But, the rendering speed at this point seems ok, so I'll put more work into it once I really need to.

On my previous rhythm game, Koto, I made a mistake that made me abandon it : I never made a song editor. Instead for writing song, I used a custom text format which (I think) was not bad since it was mostly clear and human comprehensible. But editing the song on a text file, then going back to the game, then refreshing the song and finally testing it, took so much time, even for a basic thing. So, for this one, I decided to make the song editor as I make the game.

Currently I have made solid parts on which I'll build the game later:

  1. a chart model, which can be edited in real time (for instance, if you change the tempo, all the note after will be updated to their new time)
  2. an editor in which you can
    1. move and zoom
    2. add, move and delete notes

And before I start working on the game part, I need to polish the basic editor functionalities:

  1. anchors edition: for song with changing tempo
  2. main offset edition
  3. magnetism edition: to "glue" notes on divisions like 1/2, 1/3, 1/4, etc...
  4. automatically remove duplicate elements: only one note at the same place
  5. add boundaries to the position and zoom: so you can be at -1 min or have 5 min of song on the screen

Once all of this is done, I'll start making the game part in a way that it will be directly playable in the editor so that the cycles edition/test are really short.

That's all for now, I'll try to make at least an update per week, and for the next one (I hope) a finished editor. :)