Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

The DrumLive! Project

title.png


Overview
The DrumLive! Project is a rhythm-based video game still in early development. Using an input device to hit notes falling from the top of the screen, the play competes to achieve the highest score.
Unlike some other rhythm titles, The DrumLive! Project is based exclusively around percussion, and every song is dedicated to teaching the player the rhythm track. The original idea behind this game was to help me learn songs on my electric drum kit, but it has since expanded to allow for keyboard input using the ASDF HJKL keys. Because of the input change, the layout of the pads in-game is optimised depending on the input method in use.


Controls
Keyboard:
Using the A, S, D, F, G, H, J, K, L, Y and Space keys, the different drum pads can be pressed. All (except Y) relate to position of the pad visually.
  • A: Crash Cymbal
  • S: Ride (Y can also be used)
  • D: Kick drum
  • F: Snare
  • G: Hi-Hat (Secondary)
  • H: Hi-Hat or snare (Primary Hi-Hat) (Holding space makes this become a snare, creating a roll ability)
  • J: High Tom
  • K: Mid Tom
  • L: Low Tom
  • Space: Converts Primary Hi-Hat to snare

Video
May take time to load.

Screenshots
screen7.png

New Animated Title Screen

screen8.png

Song select screen with Default skin

screen9.png

Song select screen with K-ON! skin

screen10.png

Gameplay screen with DDR skin

screen11.png

Gameplay screen with Filthy Frank skin
screen4.png

Animated Title Screen

screen5.png

Animated song select screen

screen6.png

On selection, music begins playing and background fades in
screen1.png

Keyboard Mode

screen2.png

Keyboard Mode

screen3.png

Drum kit Mode


Current Tracklist
These are the songs currently available to play within DrumLive!. More community-created music packages will be downloadable from the internet once support has been implemented, but for now these songs will only come stock during alpha and beta and not in the final release.
  • An - artcore JINJA [Touhou]
  • ChouCho - Yasashisa no Riyuu (TV Size) [Hyouka OP]
  • ClariS - Connect (TV Size) [Madoka OP]
  • ClariS - Nexus (Short ver.)
  • eufonius - Paradigm (TV Size) [Kokoro Connect OP]
  • Haruna Luna - Overfly (TV Size) [Sword Art Online ED]
  • Hatsune Miku - Mythologia's End
  • Jin - Summertime Record
  • Jouhou Shoribu - Se-no! (TV Size) [Yuyushiki OP]
  • Meine Meinung - Oasis
  • nano - SAVIOR OF SONG (TV Size) [Aoki Hagane no Arpeggio: Ars Nova OP]
  • Rhodanthe - Jumping!! (TV Size) [Kiniro Mosaic OP]
  • ROOKiEZ is PUNK'D - ZERO SATISFACTION
  • Samuel Bilney - Encounter with the Sage of Luminosity
  • Samuel Bilney - Opening Theme II
  • Samuel Bilney - Prove Your Worth
  • Samuel Bilney - The Epic Battle


Download
 
[24/10/14] 0.2 - Second Test Release (154MB)
[27/07/14] 0.1 - First Test Release (69.3MB)
 
Current To-do List
(Priority: High | Medium | Low)

  • MIDI Drum input support (50%) - Working for Windows 8/8.1, but notes are delayed for an unknown reason)
  • Interface (90%) - Looking for better graphics/artist
  • Game difficulty modifiers (100%)
  • Song variation (transcribe songs) (5%)
  • Different difficulties (2%)
  • Skin support (100%)
  • Multiplayer song sharing platform (2%)
  • Multiplayer High-scoring system (0%) - Requires Multiplayer song sharing platform
 
Screenshot Update (25/07/2014). Created a song selection screen with placeholder graphics, along with the modifiers lined up to the far right to be selected and de-selected.

If anyone wants to, could you take the song tab and make it look pretty? Feel free to change colours/shape. Just needs the same dimensions for the upper and lower boxes. :biggrin:
tab1.png

tab2.png
 
Spent the day transcribing "Jouhou Shoribu - Se-no!". It was taking so long that I took a break, started and finished another song, and then returned to it (and it only goes for a minute and a half!)

Added current track list to original post.

The double-time modifier now works, speeding up the audio correctly. Also, a modifier to enable hit sounds has been added as well, making each different key press make it's respective sound with only minor delay.

Screen flashes and pulses can be controlled with MIDI events. These are currently only used for the chorus, to add emphasis.

The song selection screen also refreshes the screen while loading song packages too now, displaying load progress. No more massive lags.

Keyboard controls have been changed slightly, having the G key now act as a second hi-hat, and by holding space, H becomes a second snare to assist when rolling. Y has also become a second ride cymbal, visually unchanged.

Still no progress with Drum input support. Is the Ruby library midi-winmm broken for everyone, or is it just me? :pissed:
 
HiPoyion":1hean9fj said:
WaBOPsu.png

Chrome tried to chat me up when I tried to dl your project...
I have no idea why it's doing that.
Looks like Chrome doesn't like my .exe files all of a sudden - Apparently other people have been hit for a while now. I could either password protect it to prevent Chrome from sticking it nose in or upload a .rar.

I assure you that there is no malicious code in there, its a false positive.
 
Console application that display window. Some basic AV doesn't like this. Make a Win32 application that Attach a Console.
On my computer it only displays the console, uses 24Mo of RAM, drop down to 1.2Mo and does absolutly nothing after.
 
It takes ages to load up the console sat there for a good 120 seconds before anything appeared. I'm guessing it's crawling all the resources at startup which is why it takes a while?

It ran brilliantly on my machine, the beats matched up perfectly, no timing issues whatsoever, using MIDIs was a smart move!

I did encounter a bug, I had a single note come down but the moment I hit it another note appeared directly after it as if it was a double tap, I was able to hit the beat of the second note in time so this doesn't look like a graphical bug.

How did you find the experience of using Ruby to develop a game from scratch? I've never tried Ruby from scratch for game development, only ever used it as a scripting language, so I'm interested in what practises you followed for developing this.

EDIT: Oh yeah, chrome flagged this for me, but my AV didn't react (I'm concerned about my AV now), maybe because it's an oddly named zip file with an exe inside?

EDIT2: Here's the solution for your chrome problem, basically sign up for their webmasters tool and eventually they'll mark your website as trusted. (Weird?)
 
Xilef":3lpu2o5j said:
It takes ages to load up the console sat there for a good 120 seconds before anything appeared. I'm guessing it's crawling all the resources at startup which is why it takes a while?
That's right, I'm using OCRA to package it, where it extracts everything to a temporary directory before running a Ruby interpreter. It's the only way I can get it running at the moment (Gosu doesn't support JRuby)

Xilef":3lpu2o5j said:
It ran brilliantly on my machine, the beats matched up perfectly, no timing issues whatsoever, using MIDIs was a smart move!
Thank you very much! I had a lot of fun implementing MIDI support; it is still quite limited, but I'll address those issues later. It's all time based, so frame drops and lags are completely safe.

Xilef":3lpu2o5j said:
I did encounter a bug, I had a single note come down but the moment I hit it another note appeared directly after it as if it was a double tap, I was able to hit the beat of the second note in time so this doesn't look like a graphical bug.
Could you let me know what song that was? It was probably two MIDI notes on at the same time.

Xilef":3lpu2o5j said:
How did you find the experience of using Ruby to develop a game from scratch? I've never tried Ruby from scratch for game development, only ever used it as a scripting language, so I'm interested in what practises you followed for developing this.
It's really fun, actually. Using a super-easy language like this makes development go so fast that you get results almost immediately. The copy of the game you're playing was 4 days of work (including transcribing the songs)!
As far as etiquette, I used the same concepts as the RM series. The reason changing screens is so slow is that everything is loaded in #initialize instead of #main, which gave me a little more adaptability in the loop used in all scenes. There are serious limitations with Ruby, especially performance, and I really can't control things like the initial load time and stuff which does feel depressing.

Xilef":3lpu2o5j said:
EDIT2: Here's the solution for your chrome problem, basically sign up for their webmasters tool and eventually they'll mark your website as trusted. (Weird?)
I'm hosting on Dropbox, though. I can't imagine I can do much with that, especially as I'll be changing the exact URL with different releases.
 
Version 0.2 is available now!
I've decided that the game will ship with only 2 or 3 songs. More songs will be downloadable upon request through the game client. The current available songs will stay included within the initial download until the multiplayer/song sharing platform is complete.

Options that are incomplete or have technical issues have been disabled in the menu. Configuration can still be changed in the preferences.txt file.

The changelog may look short, but this is an update bigger than it seems!
  • Significant performance increase after initial loading, especially on slower PCs
  • Added custom skin support. Have a look at the files and try making your own!
  • 6 example skins
  • Added more menu customisation
  • Added menu music
  • Added option window sound
  • Re-arranged/polished gameplay screen
  • More songs (total 18 now)
  • Backspace now restarts song
  • Added ingame settings menu (some options disabled for stability at the moment)

Updated first post with more screenshots!
 
This project is on hiatus until I get around to figuring out why reading the buffer of incoming MIDI messages is delayed so significantly.
 
The input is accessed using UniMIDI for Ruby.
I'm going the non-blocking route, using #buffer_gets and manually clearing the buffer after the input check with #clear_buffer.

The last time I worked on the MIDI input, I didn't have Win 8.1 on my main desktop, so I was using my craptop instead. On my desktop, it seems to be working fine.
:|
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top