• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 09:51
CEST 15:51
KST 22:51
  • 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
Team Liquid Map Contest #22: Results and Winners3Code S Season 2 (2026): RO4 and Finals Preview12TL.net Map Contest #22 - Voting & Ladder Map Selection7Code S Season 2 (2026) - RO8 Preview5[ASL21] Finals Preview: Two Legacies21
Community News
[BSL22] Non-Korean Championship from 13 to 28 June2Weekly Cups (May 25-31): Clem doubles, 2v2 circuit heads toward finale0StarCraft II 5.0.16 PTR Patch Notes may 26th151Weekly Cups (May 18-24): MaxPax wins doubles0Crank Gathers Season 4: BW vs SC2 Team League6
StarCraft 2
General
TL.net Map Contest #22 - Voting & Ladder Map Selection Oliveira Would Have Returned If EWC Continued TL Poll: How do you feel about the 5.0.16 PTR balance changes? Team Liquid Map Contest #22: Results and Winners Code S Season 2 (2026): RO4 and Finals Preview
Tourneys
Douyu Cup 2026 Maestros of The Game 2 announcement and schedule ! GSL Code S Season 2 (2026) Sparkling Tuna Cup - Weekly Open Tournament WardiTV Mondays
Strategy
[G] Having the right mentality to improve
Custom Maps
[D]RTS in all its shapes and glory <3
External Content
The PondCast: SC2 News & Results Mutation # 529 Opportunities Unleashed Mutation # 528 Infection Detected Welcome to the External Content forum
Brood War
General
Data needed Quality of life changes in BW that you will like ? BGH Auto Balance -> http://bghmmr.eu/ BW fans in southern Sweden, look here! 25 Years Since Brood War Patch 1.08
Tourneys
[BSL22] Grand Finals - Sunday 21:00 CEST [ASL21] Grand Finals [Megathread] Daily Proleagues Escore Tournament StarCraft Season 2
Strategy
Any training maps people recommend? Why doesn't anyone use restoration? Muta micro map competition [G] Hydra ZvZ: An Introduction
Other Games
General Games
Stormgate/Frost Giant Megathread PC Games Sales Thread Nintendo Switch Thread ZeroSpace Megathread Summer Games Done Quick 2026!
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Trading/Investing Thread Things Aren’t Peaceful in Palestine YouTube Thread
Fan Clubs
The herO Fan Club!
Media & Entertainment
Movie Discussion! [Req][Books] Good Fantasy/SciFi books [TV/BOOK] *SPOILERS* Game of Thrones Discussion [Manga] One Piece
Sports
2024 - 2026 Football Thread McBoner: A hockey love story Formula 1 Discussion TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Facing Challenges in Mobile App Development
TL Community
The Automated Ban List
Blogs
How Streaming Impacts Game P…
TrAiDoS
An Exploration of th…
waywardstrategy
I'm an arrogant trash talke…
FlaShFTW
Gauntlet SC2: A Retrospectiv…
Ctone23
Why RTS gamers make better f…
gosubay
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 9524 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 1h 9m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
LamboSC2 253
Ryung 173
Rex 83
StarCraft: Brood War
Calm 7815
Sea 4582
firebathero 730
Mini 676
Horang2 466
BeSt 440
Soma 409
ggaemo 373
Light 372
actioN 368
[ Show more ]
Mong 348
Shuttle 325
Snow 224
Hyuk 182
Soulkey 166
Rush 151
Last 146
Zeus 122
hero 108
Sharp 95
Hyun 84
Sea.KH 59
Barracks 55
Movie 52
Backho 47
ToSsGirL 46
sSak 46
scan(afreeca) 40
Free 31
zelot 23
Hm[arnc] 19
Sacsri 18
IntoTheRainbow 17
910 16
yabsab 16
Terrorterran 15
Shine 15
sorry 14
GoRush 14
Noble 13
soO 12
Icarus 4
Dota 2
Gorgc4673
qojqva1687
Dendi1036
syndereN115
Counter-Strike
fl0m7151
olofmeister1526
shoxiejesuss986
zeus365
kRYSTAL_12
Super Smash Bros
Mew2King90
Other Games
singsing2599
Lowko1088
B2W.Neo771
crisheroes332
Beastyqt282
byalli214
DeMusliM200
XaKoH 137
Sick95
Hui .62
ArmadaUGS46
Organizations
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 13 non-featured ]
StarCraft 2
• musti20045 38
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Nemesis3861
• TFBlade550
Upcoming Events
Maestros of the Game
1h 9m
Serral vs Rogue
herO vs SHIN
OSC
8h 39m
Replay Cast
10h 9m
OSC
23h 9m
Maestros of the Game
1d
Classic vs Maru
TBD vs Clem
Replay Cast
1d 10h
CranKy Ducklings
1d 20h
uThermal 2v2 Circuit
2 days
BSL22 NKC (BSL vs China)
2 days
eOnzErG vs Mihu
Messiah vs XuanXuan
Jaystar vs TerrOr
Dewalt vs Bonyth
eOnzErG vs XuanXuan
Mihu vs TerrOr
Messiah vs Bonyth
Sparkling Tuna Cup
2 days
[ Show More ]
uThermal 2v2 Circuit
3 days
BSL22 NKC (BSL vs China)
3 days
Jaystar vs Dewalt
eOnzErG vs TerrOr
XuanXuan vs Bonyth
Mihu vs Dewalt
Messiah vs Jaystar
eOnzErG vs Bonyth
TerrOr vs Dewalt
OSC
3 days
Wardi Open
3 days
Replay Cast
5 days
The PondCast
6 days
Liquipedia Results

Completed

BSL Season 22
2026 GSL S2
Heroes Pulsing #1

Ongoing

IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
CSCL: Masked Kings S4
YSL S3
Acropolis #4 - GSB
SCTL 2026 Spring
WardiTV Spring 2026
Maestros of the Game 2
uThermal 2v2 2026 Main Event
Murky Cup 2026
Heroes Pulsing #2
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026

Upcoming

BSL 22 Non-Korean Championship
CSLAN 4
Blizzard Classic Cup 2026
Kung Fu Cup 2026 Grand Finals
CranK Gathers Season 4: BW vs SC2 Team League
HSC XXIX
Douyu Cup 2026
Heroes Pulsing #3
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 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.