• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 07:53
CEST 13:53
KST 20:53
  • 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
[ASL22] Ro16 Preview: Rough Waters10[ASL22] Ro24 Preview: Siren's Call8[ASL22] Ro24 Preview: Summer's End9Serral wins HomeStory Cup 2915Serral wins Maestros of the Game 244
Community News
StarCraft open world shooter announced at BlizzCon63Weekly Cups (Aug 30-Sep 7): herO thrives amid growing schism10Official StarCraft website teases new content ahead of BlizzCon?168Stellar Fest TWO the Moon (Dec 16-20)9Weekly Cups (August 24-30): Patches' balance mod takes over3
StarCraft 2
General
StarCraft open world shooter announced at BlizzCon How do you feel about the StarCraft shooter announcement at BlizzCon 2026? Balance hotfix patch 5.0.16b (July 16) Team Liquid Map Contest #22: Results and Winners Weekly Cups (Aug 30-Sep 7): herO thrives amid growing schism
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament RSL goes to London! 2026 Offline Finals Nov 21-22 KSL Week #92 IntoTheTV X SOOP SC2 League : Weekly & Monthly 2026 GSTL Announcement
Strategy
[G] Having the right mentality to improve
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
Mutation # 542 The Ascended Mutation # 541 Binary Choice The PondCast: SC2 News & Results Mutation # 540 Dodge This
Brood War
General
Official StarCraft website teases new content ahead of BlizzCon? BGH Auto Balance -> http://bghmmr.eu/ Broodwar Prediction Market Practice Partners (Official) [D] Brainstorming a balance patch for Brood war
Tourneys
[ASL22] Ro16 Group B [ASL22] Ro16 Group A Escore Tournament - Season 3 Small VOD Thread 2.0
Strategy
Replay Review Process - What do you do? Simple Questions, Simple Answers Odyssey Mineral Stack Saturation Game Theory for Starcraft
Other Games
General Games
Nintendo Switch Thread Diablo IV EVE Corporation [Maplestory Hardcore] Let's Play~!! General RTS Discussion Thread
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish TSM pausing esports and CLG Dead
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
Things Aren’t Peaceful in Palestine US Politics Mega-thread Trading/Investing Thread UK Politics Mega-thread Russo-Ukrainian War Thread
Fan Clubs
MarineLorD Fan Club The Creator Fan Club The ShoWTimE Fan Club
Media & Entertainment
Movie Discussion! Diablo Animated Series on Netflix
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List Northern Ireland Global Starcraft
Blogs
Virtual Romance, Real-Life C…
TrAiDoS
Regacy Esports:Our Goa…
regacyesports
Dreaming of BW patches (mod…
c3rberUs
LOCKPICKING NOOB
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 7080 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
WardiTV Invitational
11:00
Pre Blizzcon Cup
ByuN vs Percival
Cure vs Classic
IntoTheiNu 816
WardiTV537
Liquipedia
Sparkling Tuna Cup
10:00
Weekly #146
herO vs SHINLIVE!
CranKy Ducklings136
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Rex 108
MindelVK 35
StarCraft: Brood War
Britney 29134
Calm 9449
PianO 3901
Jaedong 2290
Pusan 612
firebathero 415
Mini 242
Hyun 224
Last 167
ZerO 81
[ Show more ]
Mong 61
Sharp 52
Killer 47
sSak 44
HiyA 40
Aegong 37
Sea.KH 34
Shinee 29
Trap 25
ggaemo 22
Hm[arnc] 22
NaDa 21
Shine 18
SilentControl 14
ajuk12(nOOB) 14
JulyZerg 12
Rock 12
Dota 2
ODPixel601
Fuzer 183
Counter-Strike
zeus1449
x6flipin518
edward228
Other Games
summit1g16669
Pyrionflax288
DeMusliM220
KnowMe49
ZerO(Twitch)5
Organizations
Other Games
BasetradeTV206
StarCraft: Brood War
UltimateBattle 28
lovetv 8
[ Show 13 non-featured ]
StarCraft 2
• StrangeGG 104
• CranKy Ducklings SOOP26
• Adnapsc2 13
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• WagamamaTV270
League of Legends
• Jankos2009
Upcoming Events
Shopify Rebellion Sundays
3h 7m
Spirit vs Mixu
Clem vs TBD
RSL Revival
4h 7m
Serral vs Rogue
BlizzCon
6h 37m
IdrA vs MC
Afreeca Starleague
22h 7m
Light vs JyJ
Soulkey vs hero
WardiTV Weekly
23h 7m
Monday Night Weeklies
1d 4h
Afreeca Starleague
1d 22h
Snow vs Shinee
Shine vs EffOrt
GSL
1d 23h
PiGosaur Cup
2 days
The PondCast
2 days
[ Show More ]
Kung Fu Cup
2 days
Replay Cast
3 days
KCM Race Survival
3 days
IntoTheTV X SOOP
3 days
Replay Cast
4 days
IntoTheTV X SOOP
4 days
Replay Cast
5 days
GSL
5 days
Replay Cast
6 days
GSL
6 days
Liquipedia Results

Completed

Acropolis #5 - TRS
PiG Sty Festival 8.0
Big Dog Cup 2026 Div 1

Ongoing

KCM Race Survival 2026 Season 3
K-JUNGMAN
ASL Season 22
Super Anchor Qualifying S3
CSL 2026 AUTUMN (S22)
Acropolis #5
Blizzard Classic Cup 2026
Blizzard Classic Cup 2026
RSL Revival: Season 6
Calamity Invitational
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026

Upcoming

Acropolis #5 - GSA
Acropolis #5 - GSB
Acropolis #5 - GSC
SC4ALL II: Brood War
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 2026
Stake Ranked Episode 5
PGL Masters Bucharest 2026
1win Private Club #2
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
Logitech G Play Connect 2026
SL StarSeries Fall 2026
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 © 2026 TLnet. All Rights Reserved.