• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 16:50
CEST 22:50
KST 05:50
  • 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
[ASL20] Ro16 Preview Pt1: Ascent2Maestros of the Game: Week 1/Play-in Preview12[ASL20] Ro24 Preview Pt2: Take-Off7[ASL20] Ro24 Preview Pt1: Runway132v2 & SC: Evo Complete: Weekend Double Feature4
Community News
LiuLi Cup - September 2025 Tournaments2Weekly Cups (August 25-31): Clem's Last Straw?39Weekly Cups (Aug 18-24): herO dethrones MaxPax6Maestros of The Game—$20k event w/ live finals in Paris57Weekly Cups (Aug 11-17): MaxPax triples again!15
StarCraft 2
General
Production Quality - Maestros of the Game Vs RSL 2 #1: Maru - Greatest Players of All Time Team Liquid Map Contest #21 - Presented by Monster Energy Geoff 'iNcontroL' Robinson has passed away Heaven's Balance Suggestions (roast me)
Tourneys
Maestros of The Game—$20k event w/ live finals in Paris RSL: Revival, a new crowdfunded tournament series Chzzk MurlocKing SC1 vs SC2 Cup Sea Duckling Open (Global, Bronze-Diamond) LiuLi Cup - September 2025 Tournaments
Strategy
Custom Maps
External Content
Mutation # 490 Masters of Midnight Mutation # 489 Bannable Offense Mutation # 488 What Goes Around Mutation # 487 Think Fast
Brood War
General
BGH Auto Balance -> http://bghmmr.eu/ [ASL20] Ro16 Preview Pt1: Ascent The Korean Terminology Thread Pros React To: herO's Baffling Game ASL20 General Discussion
Tourneys
[Megathread] Daily Proleagues [IPSL] ISPL Season 1 Winter Qualis and Info! Is there English video for group selection for ASL Small VOD Thread 2.0
Strategy
Simple Questions, Simple Answers Muta micro map competition Fighting Spirit mining rates [G] Mineral Boosting
Other Games
General Games
Stormgate/Frost Giant Megathread General RTS Discussion Thread Nintendo Switch Thread Path of Exile Warcraft III: The Frozen Throne
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
TL Mafia Community Thread Vanilla Mini Mafia
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine UK Politics Mega-thread The Games Industry And ATVI Russo-Ukrainian War Thread
Fan Clubs
The Happy Fan Club!
Media & Entertainment
[Manga] One Piece Anime Discussion Thread Movie Discussion! [\m/] Heavy Metal Thread
Sports
Formula 1 Discussion MLB/Baseball 2023 2024 - 2026 Football Thread TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread High temperatures on bridge(s)
TL Community
The Automated Ban List TeamLiquid Team Shirt On Sale
Blogs
Collective Intelligence: Tea…
TrAiDoS
A very expensive lesson on ma…
Garnet
hello world
radishsoup
Lemme tell you a thing o…
JoinTheRain
RTS Design in Hypercoven
a11
Evil Gacha Games and the…
ffswowsucks
INDEPENDIENTE LA CTM
XenOsky
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1425 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
BSL Team Wars
19:00
Round 6
Team Hawk vs Team Sziky
LiquipediaDiscussion
Maestros of the Game
17:00
Group Stage - Group D
Lambo vs herO
Maru vs TBD
ComeBackTV 1307
SteadfastSC451
CranKy Ducklings336
IndyStarCraft 278
BRAT_OK 165
CosmosSc2 101
EnkiAlexander 97
Rex69
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
SteadfastSC 424
IndyStarCraft 278
BRAT_OK 148
CosmosSc2 96
Rex 69
JuggernautJason67
Vindicta 27
StarCraft: Brood War
sSak 44
sas.Sziky 28
yabsab 20
NaDa 5
Dota 2
The International79788
Gorgc15244
Dendi635
KheZu50
League of Legends
JimRising 471
Counter-Strike
Stewie2K96
kRYSTAL_19
Super Smash Bros
C9.Mang02433
Mew2King97
Other Games
summit1g4313
Grubby3665
FrodaN2081
fl0m1129
B2W.Neo828
Hui .196
Organizations
Other Games
gamesdonequick2483
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 20 non-featured ]
StarCraft 2
• musti20045 61
• Adnapsc2 14
• intothetv
• IndyKCrew
• sooper7s
• AfreecaTV YouTube
• Migwel
• LaughNgamezSOOP
• Kozan
StarCraft: Brood War
• Azhi_Dahaki23
• FirePhoenix12
• blackmanpl 9
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• C_a_k_e 2069
• masondota21002
League of Legends
• Doublelift6326
Other Games
• imaqtpie1508
• Shiphtur177
Upcoming Events
Sparkling Tuna Cup
13h 10m
Monday Night Weeklies
19h 10m
The PondCast
3 days
RSL Revival
3 days
Cure vs SHIN
Reynor vs Zoun
RSL Revival
4 days
Classic vs TriGGeR
ByuN vs Maru
Online Event
4 days
BSL Team Wars
4 days
Team Bonyth vs Team Dewalt
BSL Team Wars
4 days
RSL Revival
5 days
Maestros of the Game
5 days
[ Show More ]
Cosmonarchy
5 days
Bonyth vs Dewalt
[BSL 2025] Weekly
5 days
RSL Revival
6 days
Maestros of the Game
6 days
BSL Team Wars
6 days
Liquipedia Results

Completed

Ultimate Battle Special: Larva vs Mini
SEL Season 2 Championship
HCC Europe

Ongoing

Copa Latinoamericana 4
BSL 20 Team Wars
KCM Race Survival 2025 Season 3
BSL 21: BSL Points
ASL Season 20
CSL 2025 AUTUMN (S18)
LASL Season 20
RSL Revival: Season 2
Maestros of the Game
Chzzk MurlocKing SC1 vs SC2 Cup #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1

Upcoming

2025 Chongqing Offline CUP
BSL Polish World Championship 2025
BSL Season 21
BSL 21 Team A
EC S1
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
MESA Nomadic Masters Fall
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
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.