• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 01:11
CEST 07:11
KST 14:11
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Code S RO4 & Finals Preview: herO, Rogue, Classic, GuMiho0TL Team Map Contest #5: Presented by Monster Energy4Code S RO8 Preview: herO, Zoun, Bunny, Classic7Code S RO8 Preview: Rogue, GuMiho, Solar, Maru3BGE Stara Zagora 2025: Info & Preview27
Community News
Firefly suspended by EWC, replaced by Lancer2Classic & herO RO8 Interviews: "I think it’s time to teach [Rogue] a lesson."2Rogue & GuMiho RO8 interviews: "Lifting that trophy would be a testament to all I’ve had to overcome over the years and how far I’ve come on this journey.8Code S RO8 Results + RO4 Bracket (2025 Season 2)14BGE Stara Zagora 2025 - Replay Pack2
StarCraft 2
General
Firefly suspended by EWC, replaced by Lancer Jim claims he and Firefly were involved in match-fixing How herO can make history in the Code S S2 finals Rogue & GuMiho RO8 interviews: "Lifting that trophy would be a testament to all I’ve had to overcome over the years and how far I’ve come on this journey. Code S RO8 Results + RO4 Bracket (2025 Season 2)
Tourneys
[GSL 2025] Code S: Season 2 - Semi Finals & Finals WardiTV Mondays Sparkling Tuna Cup - Weekly Open Tournament $3,500 WardiTV European League 2025 Sea Duckling Open (Global, Bronze-Diamond)
Strategy
[G] Darkgrid Layout Simple Questions Simple Answers [G] PvT Cheese: 13 Gate Proxy Robo
Custom Maps
[UMS] Zillion Zerglings
External Content
Mutation # 478 Instant Karma Mutation # 477 Slow and Steady Mutation # 476 Charnel House Mutation # 475 Hard Target
Brood War
General
ASL20 Preliminary Maps BW General Discussion BGH Auto Balance -> http://bghmmr.eu/ Recent recommended BW games FlaSh Witnesses SCV Pull Off the Impossible vs Shu
Tourneys
[Megathread] Daily Proleagues [BSL 2v2] ProLeague Season 3 - Friday 21:00 CET Small VOD Thread 2.0 [BSL20] ProLeague Bracket Stage - Day 4
Strategy
I am doing this better than progamers do. [G] How to get started on ladder as a new Z player
Other Games
General Games
Stormgate/Frost Giant Megathread Path of Exile Nintendo Switch Thread Beyond All Reason What do you want from future RTS games?
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia TL Mafia Community Thread
Community
General
Things Aren’t Peaceful in Palestine US Politics Mega-thread UK Politics Mega-thread Russo-Ukrainian War Thread Vape Nation Thread
Fan Clubs
SKT1 Classic Fan Club! Maru Fan Club
Media & Entertainment
Korean Music Discussion [Manga] One Piece
Sports
Formula 1 Discussion 2024 - 2025 Football Thread NHL Playoffs 2024 TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
A Better Routine For Progame…
TrAiDoS
StarCraft improvement
iopq
Heero Yuy & the Tax…
KrillinFromwales
I was completely wrong ab…
jameswatts
Need Your Help/Advice
Glider
Trip to the Zoo
micronesia
Customize Sidebar...

Website Feedback

Closed Threads



Active: 31734 users

Student Game Dev Part 21 - Background music

Blogs > Soan
Post a Reply
Soan
Profile Blog Joined August 2010
New Zealand194 Posts
April 18 2014 21:59 GMT
#1
+ Show Spoiler [Previous parts] +
Part One - It begins
Part Two - Technical Foundation
Part Three - Game Design
Part Four - Input and Physics
Part Five - More Physics Things
Part Six - Even More Physics
Part Seven - User Interface
Part Eight - UI and the Editor
Part Nine - Editor Progress
Part Ten - Progress, and videos
Part Eleven - Fixing the Physics
Part Twelve - Unproductive
Part Thirteen - Context menu + enemies
Part Fourteen - Enemies and Problems
Part Fifteen - Play testing
Part Sixteen - Editor and Art
Part Seventeen - Video!
Part Eighteen - Layers and Music
Part Nineteen - Water and Enemies
Part Twenty - Score and decisions


This Week
Hello again TeamLiquid! Welcome back to my blog about the development of The Adventures of Sam the Pirate, the 2D platformer I'm creating as the final game project for my Bachelor of Software Engineering degree. Last week I talked about implementing the score and displaying it. I'll also talk about a decision I made regarding the number of levels, and have another new piece of music. This week I'll be talking about implementing FModto play background music. Bit of a shorter blog this week, as I've been looking for a new place to live, and shifting into some temporary accommodation in the mean time. So not as much time to work on the game as I would like, but that's real life for you I suppose. It's also Easter weekend!

Background Music
Integrating FMods low level api turned out to be really easy. Once it had been installed, I shifted the header, library, and dll files over into my project, so if I was to rebuild it on a different machine it will all just work, and took a look at the included example files on how to play sounds. Initializing FMod was only a few lines of code.

FMOD::System* system = 0;
FMOD::System_Create(&system);
UInt32 version = 0;
system->getVersion(&version);
if (version < FMOD_VERSION)
{
&nbsp;&nbsp;&nbsp;&nbsp;// incompatible version, throw an error
}
void* extraDriverData = 0;
system->init(32, FMOD_INIT_NORMAL, extraDriverData);


Once that was done, I could start playing sounds with only a couple more lines of code. There's some further error checking being done, but I've left it out of this example block of code. The function calls return an FMOD_RESULT, which can be checked to see if it is ok, and if not, there is another function to get what the error is.

Playing background music is similarly easy. Create the sound in FMod, then play the sound. Rather than load the music directly into memory, the file is being streamed as it is played.

Music
New piece of music this week, a piece I'm considering for the cave area of the game.

Oops, looks like your browser doesn't support the audio tag yet. You can download the file manually: http://swashbucklinstudios.com/wp-content/uploads/2014/04/Dark-theme-Area.mp3

If you're interested in more music from the artist, he has a website over at Eternal Vibration that you can check out.

What's next?
Next week I'll get sound effects working, and start on a level selection screen. Next week is a short week as well, two public holidays!

Keep up to date!
Be sure to follow me on Twitter, and like the Facebook page to stay up to date on future content and blog posts when they happen. If you have any questions don't hesitate to ask, either through Twitter or Facebook! You can also check out the blog, previous posts, screenshots and videos over at my site.

Assault_1
Profile Joined April 2009
Canada1950 Posts
April 19 2014 00:56 GMT
#2
I was reading your physics sections and it reminded me of a project I did for my graphics course at university. A physics-based bouncy ball game, in C++/opengl. I have a math/physics background and implemented sphere-sphere, sphere-box, and sphere-inclined box collisions, it took a fairly long time. The whole project took about 100 hours.


I have quite an interest in simulating physics on a computer, I wish I knew more about it. Anyway I had trouble with the marble touching two objects at the same time, it would eventually sink into one of them and I spent a few hours trying to fix it but had to move on to other stuff. In the vid above I conveniently spaced everything far apart enough so you can never touch two objects. I was trying to research this kind of stuff but there didn't seem to be any great sources on it.. like everyone keeps their solutions to themself.

If I had another 100 hours I'd try to implement a squishy ball like this:
Deranes
Profile Joined July 2010
Germany75 Posts
April 20 2014 18:42 GMT
#3
On April 19 2014 09:56 Assault_1 wrote:
Anyway I had trouble with the marble touching two objects at the same time, it would eventually sink into one of them and I spent a few hours trying to fix it but had to move on to other stuff.


Richard Tonge from NVIDEA talked about how to solve this at GDC 2013. Here is a link to the pdf of the presentation:
http://www.gdcvault.com/play/1018160/Physics-for-Game
It starts on page 38 in the pdf, or page 36 if you follow the numbers printed on the pages.
Assault_1
Profile Joined April 2009
Canada1950 Posts
April 21 2014 02:44 GMT
#4
On April 21 2014 03:42 Deranes wrote:
Show nested quote +
On April 19 2014 09:56 Assault_1 wrote:
Anyway I had trouble with the marble touching two objects at the same time, it would eventually sink into one of them and I spent a few hours trying to fix it but had to move on to other stuff.


Richard Tonge from NVIDEA talked about how to solve this at GDC 2013. Here is a link to the pdf of the presentation:
http://www.gdcvault.com/play/1018160/Physics-for-Game
It starts on page 38 in the pdf, or page 36 if you follow the numbers printed on the pages.

wow, that got pretty complex! Very cool, howcome nvidia gives away its secrets though, I thought this is private R&D stuff?
Also do you think this would've been possible to implement in 100 or so hours?
Deranes
Profile Joined July 2010
Germany75 Posts
April 21 2014 13:42 GMT
#5
On April 21 2014 11:44 Assault_1 wrote:
wow, that got pretty complex! Very cool, howcome nvidia gives away its secrets though, I thought this is private R&D stuff?

This is just me guessing but heres my thoughts. By telling game programmers how to make a rigid body contact solver that runs efficiently in parallell. Then the physics in their games are going to be able to handle more collisions than before, using the 4 or so cores on the CPU. But the GPU can run waaay more collisions in parallel using it's compute shader than the CPU can. So the physics might start being implemented on the GPU instead in more games. Then some gamers will have to upgrade their graphics cards in order to run the game. Which makes nvidea money since they sell graphics cards.
On April 21 2014 11:44 Assault_1 wrote:
Also do you think this would've been possible to implement in 100 or so hours?

I haven't done it myself yet but I have a hunch that it should be easy to implemented a physics engine using those ideas in less than 100 hours.
Please log in or register to reply.
Live Events Refresh
Next event in 5h 49m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Nina 256
NeuroSwarm 231
StarCraft: Brood War
PianO 415
Leta 275
Noble 8
Dota 2
monkeys_forever894
League of Legends
JimRising 654
Counter-Strike
Stewie2K1016
Heroes of the Storm
Khaldor155
Other Games
C9.Mang01306
shahzam888
WinterStarcraft436
Maynarde77
Mew2King51
RuFF_SC230
Organizations
Dota 2
PGL Dota 2 - Secondary Stream4457
Other Games
gamesdonequick480
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 16 non-featured ]
StarCraft 2
• Berry_CruncH293
• Hupsaiya 82
• Sammyuel 14
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• Azhi_Dahaki137
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Rush1078
Other Games
• Shiphtur290
Upcoming Events
Wardi Open
5h 49m
Replay Cast
18h 49m
Replay Cast
1d 4h
RSL Revival
1d 4h
Cure vs Percival
ByuN vs Spirit
PiGosaur Monday
1d 18h
RSL Revival
2 days
herO vs sOs
Zoun vs Clem
Replay Cast
2 days
The PondCast
3 days
RSL Revival
3 days
Serral vs SHIN
Solar vs Cham
Replay Cast
3 days
[ Show More ]
RSL Revival
4 days
Reynor vs Scarlett
ShoWTimE vs Classic
uThermal 2v2 Circuit
4 days
SC Evo League
5 days
Circuito Brasileiro de…
5 days
Sparkling Tuna Cup
6 days
Liquipedia Results

Completed

Proleague 2025-06-11
2025 GSL S2
Heroes 10 EU

Ongoing

JPL Season 2
BSL 2v2 Season 3
BSL Season 20
KCM Race Survival 2025 Season 2
NPSL S3
Rose Open S1
CSL 17: 2025 SUMMER
Copa Latinoamericana 4
Murky Cup #2
BLAST.tv Austin Major 2025
ESL Impact League Season 7
IEM Dallas 2025
PGL Astana 2025
Asian Champions League '25
BLAST Rivals Spring 2025
MESA Nomadic Masters
CCT Season 2 Global Finals
IEM Melbourne 2025
YaLLa Compass Qatar 2025
PGL Bucharest 2025

Upcoming

CSLPRO Last Chance 2025
CSLPRO Chat StarLAN 3
K-Championship
SEL Season 2 Championship
Esports World Cup 2025
HSC XXVII
Championship of Russia 2025
BLAST Open Fall 2025
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.