CS作业代写 CSC 388/588 (Type in fields) 5 – ASync Load – cscodehelp代写
Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report CSC 388/588 (Type in fields) 5 – ASync Load
Student Information
Integrity Policy: All university integrity and class syllabus policies have been followed. I have neither given, nor received, nor have I tolerated others’ use of unauthorized aid.
I understand and followed these policies:
Copyright By cscodehelp代写 加微信 cscodehelp
Name: Date:
Submission Details
Final Changelist number:
Verified build: Yes No
Required Configurations: YouTubeLink:
Discussion (What did you learn):
Real-time Multithreaded Architecture Sprint Assignment
Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588 (Type in fields) YouTube Process
• Record the YouTube demo
o Youneedtorecordinstereowithcommentary
2 channel with both computer (desktop) and microphone recording o Suggestion:OBSscreencapture
• Record the desktop (enough to show your directory and the visual studio and output) o Showyourdirectoryinrecording
Launch the visual studio (double click solution) o Showoffrelevantpartsofthecodewithcommentary o LaunchanddemotheSprint
Play the demo and add your commentary in real-time o Watchyourvideo
Verify that video clear and can you hear the commentary with audio in stereo?
• Note: Weekly Sprints cannot be longer that 2:00 mins o Ifyougoover…doitagain
• Publish your YouTube recording
o Makesureitisaccessiblewithoutanyloginorpermissiontoplay o Itcanbeprivatebutnotrestrictivetoplaybyanyonewiththelink
If unplayable as-is… Grade 0
• Submit your code to perforce to the appropriate Sprint directory
o form (this document)
• Submit this PDF to perforce o Fillinform
Name, changlelist, etc… o Submitbacktoperforce
Check it out
Submit it back to perforce to the same location
Real-time Multithreaded Architecture Sprint Assignment
Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588 (Type in fields) Verify Builds
• Follow the Piazza procedure on submission
o Verifyyoursubmissioncompilesandworksatthechangelistnumber.
• Verify that only MINIMUM files are submitted o No–Generatedfiles
*.pdb, *.suo, *.sdf, *.user, *.obj, *.exe, *.log, *.pdb, *.db, *.user
Anything that is generated by the compiler should not be included o No–Generateddirectories
/Debug, /Release, /Log, /ipch, /.vs
• Typical files project files that are required
o *.sln,*.cpp,*.h
o *.vcxproj,*.vcxproj.filters,CleanMe.bat
Standard Rules
Submit multiple times to Perforce
• Submit your work as you go to perforce several times (at least 5) o Assoonasyougetsomethingworking,submittoperforce o Havereasonablecheck-incomments
Points will be deducted if minimum is not reached
Write all programs in cross-platform C++
• Optimize for execution speed and robustness
• Working code doesn’t mean full credit
Submission Report
• Fill out the submission Report o Noreport,nograde
Code and project needs to compile and run
• Make sure that your program compiles and runs o WarninglevelALL…
o NOWarningsorERRORS
Your code should be squeaky clean. o Codeneedstowork“as-is”.
No modifications to files or deleting files necessary to compile or run. o Allyourcodemustcompilefromperforcewithnomodifications.
Otherwise it’s a 0, no exceptions
Real-time Multithreaded Architecture Sprint Assignment
Real-time Multithreaded Architecture use Adobe Reader to complete CSC 388/588 (Type in fields)
Project needs to run to completion
• If it crashes for any reason…
o Itwillnotbegradedandyougeta0
No Containers
• NO STL allowed {Vector, Lists, Sets, etc…}
o Noautomaticcontainersorarrays
o Youneedtodothistheoldfashionway-YOUEARNEDIT
Leave Project Settings
Submission Report Keenan
• Do NOT change the project or warning level
o Anychangingoflevelorsuppressionofwarningsisanintegrityissue
Simple C++
• No modern C++
o NoLambdas,Autos,templates,etc… o NoBoost
• NO Streams
o Usedfopen,fread,fwrite…
• No code in MACROS
o Codeneedstobeincppfilestoseeanddebugiteasy
• Exception:
o implicit problem needs templates
Leaking Memory
• If the program leaks memory
o Thereisadeductionof20%ofgrade
• If a class creates an object using new/malloc o Itisresponsibleforitsdeletion
• Any MEMORY dynamically allocated that isn’t freed up is LEAKING o LeakingisHORRIBLE,soyoulosepoints
No Debug code or files disabled
• Make sure the program is returned to the original state
o Ifyouaddeddebugcode,pleasereturntooriginalstate
• If you disabled file, you need to re-enable the files
o Allfilesmustbeactivetogetcredit.
o Bettertolosepointsforunitteststhantodisableandloseallpoints
No Adding files to this project
• This project will work “as-is” do not add files…
• Grading system will overwrite project settings and will ignore any student’s added files and
will returned program to the original state
Real-time Multithreaded Architecture Sprint Assignment
Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report CSC 388/588 (Type in fields) TestConfiguration file (if provided) needs to be set by user
• Grading will be on the UnitTestConfiguration settings
o Pleaseexplicitlysetwhichtestsyouwantgraded…noregradingifsetincorrectly
• See Piazza for due date and time
• Submit program perforce in your student directory assignment supplied.
• Fill out your this Submission Report and Sprint to perforce
o ONLYuseAdobeReadertofilloutform,allotherswillberejected. o Fillouttheformanddiscussionforfullcredit.
o Asyncloading
You need to use FileSlow library o Creatingafilethreadwithaqueue
o Callbackattachedtotheasyncloading
Signaling the game thread when done loading
Assignments
0. Create a directory Sprint5
a. Do all your development in Sprint5 directory
b. You need to use FileSlow methods for Sprint 5, 6 and milestone2
c. Make sure you submit this project many times to perforce as you develop
i. You need to submit the project and the video for this Sprint
• 3 samples
o Given2simplemonowavesamples
Sampled at 48Khz, 32-bit o Given1stereowavesample
Sampled at 48Khz, 32-bit
• Create 3 separate simple playlists (scripts) – 1 sound wave, one sound ID
o 501–Electro
o 502–Alert
o 503–Beethoven
Real-time Multithreaded Architecture Sprint Assignment
Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588 (Type in fields)
• We are demoing Asynchronous loading and game user file load callback o Create1uniquegameuserfileloadcallback
Using Debug::out() to the output window wave file name loaded Example:
• Beethoven.wav Loaded
Callback is triggered when the file load is finished
o Goalofthisdemo
Load 2 sound waves 501, 502 initiated on the game thread Start playing sounds 501 and 502
After starting 501
• Load 1 sound wave asynchronously
• Once loaded – a callback will be triggered (communicating its
• Call the SPECIAL loading file loading functions
o SincemanyhaveSolidStateDrive…weneedtosimulate Delay and latency of network or slow hard drive
o UsetheFileSlowclasstosimulatelatency FileSlow::Open()
FileSlow::Read()
FileSlow::Seek()
FileSlow::Tell()
FileSlow::Close()
Start Demo – hit the
• This is triggered in the update() method of the game o Readthekeyboardinput
o ThenloadandgowithyourDemo
• The demo should play from there.
o Nouserinterventionneeded–justneedthetimertriggersworking.
• Setup your playlists
o Loadthemonowavedataneededfor501and502initiateonthegameside o DONOTLOAD503-Beethoven
It’s OK to have the playlists table on the Audio Thread side
o Audiosidecannotloadthewavedata,thathastobeinitiatedonthegameside
• Create game user file loading callback something like GameLoadingCallback() o Thiswillbeusedontheloadcallinthedemo
Printing to the output window wave file name loaded when file is finished loaded
• Load all the timer events for this demo at once – let the timer do the work
Real-time Multithreaded Architecture Sprint Assignment
Real-time Multithreaded Architecture CSC 388/588
use Adobe Reader to complete
Submission Report Keenan
30 35 40 45 60
File Async Callback Ends Trigger
on Game Thread Play
503 Pan: center Vol 50%
Start the demo
100% Right 30% Vol
Initiated on
Blocking Blocking Load Load 501 502
Initiated Initiated On On Game Game thread thread
(Type in fields)
Time (seconds)
Async Load
User File Callback
Initiated On Game thread
• In Demo (Start with a key press) o BlockingLoadingSnd501
100% Left 100% Left 100% Left 100% Left 100% Left 100% Left
Initiated on Game thread
Initiated on Game thread
Initiated on Game thread
Initiated on Game thread
Initiated on Game thread
Initiated on Game thread
Initiate on Game Thread
Async Loading Beethoven –
Electro … naturally ends
User File Callback
Add Debug::out() to show the call on the correct thread o BlockingLoadingSnd502
Initiate on Game Thread
Add Debug::out() to show the call on the correct thread o Printthewavetable
Use Debug::out() in the wave table printing; o Whenloadedstarttimedemo
• Timer: 0 seconds
o SndA=Play501,vol:30%,pan:100%Right,Prioritydefault(optional)
Add Debug::out() to show the call on the correct thread o StartwaveloadingasyncdatawithGameLoadingCallback()
Game thread initiates the Beethoven wave data load
• The callback is created on game side
• Will be triggered when that wave data (Beethoven is loaded)
Add Debug::out() to show the call on the correct thread
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
Add Debug::out() to show the call on the correct thread
Play Beethoven
Print wave table using Debug:out()
Unload wave 503 Initiated on Game thread Unload wave 502 Initiated on Game thread Unload wave 501 Initiated on Game thread
Stop 503 Initiated on Game Thread
Print wave table using Debug:out()
Print wave table using Debug:out()
Real-time Multithreaded Architecture Sprint Assignment
Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588 (Type in fields)
• Timer: 5 seconds
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
Add Debug::out() to show the call on the correct thread
• Timer: 10 seconds
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
Add Debug::out() to show the call on the correct thread
• Timer: 15 seconds
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
Add Debug::out() to show the call on the correct thread
• Timer: 20 seconds
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
Add Debug::out() to show the call on the correct thread
• Timer: 25 seconds
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
Add Debug::out() to show the call on the correct thread
• As soon as the Beethoven is loaded… from the callback o StarttheBeethovensound
o SndC=Play503,vol:50%,pan:center,stereo,Prioritydefault(optional) Beethoven should start
Debug::out() in the callback o Printthewavetable
• Timer: 60 seconds o StopSndC
o InitiatedfromGameside
Unload( 501 wave); Unload( 502 wave); Unload( 503 wave);
o Printthewavetable
Nothing else – the callbacks to the work
Questions:
Place in a separate PDF call Sprint5_Questions, in the same directory as the Sprint5 PDF
1) Please explain and diagram the way you did Async user File Callback?
a. Talk about the commands, threads and how the wave table is protected
2) How does a wave table entry gets delete/removed?
Real-time Multithreaded Architecture Sprint Assignment
Real-time Multithreaded Architecture use Adobe Reader to complete CSC 388/588 (Type in fields)
a. Talk about each scenario. (unload command)
Deliverables
Submission Report Keenan
• Stand-alone C++ demo
o CreateademotoshowofftheALLoftheabovefeatures
o Useaudiosamplesthatallowyoutodemonstratetheabovefeatureseasily
• Visual Studio 2019 Enterprise Edition
o C++warninglevelall
o Minimumcode,notemporariesorgenerateditems
o Needstobeabletocompileandrun“as-is”withoutcheckingoutfromperforceor
changing the attributes of the files
• For some people – the demo is hardest part of this exercise
Validation
Simple checklist to make sure that everything is submitted correctly
• Submitted project to perforce correctly
o Istheprojectcompilingandrunningwithoutanyerrorsorwarnings? o Isthesubmissionreportfilledinandsubmittedtoperforce?
o Followtheverificationprocessforperforce
Is all the code there and compiles “as-is”?
No extra files
o Istheprojectleakingmemory?
• Submitted the YouTube link to perforce? Hints
Most assignments will have hints in a section like this.
• Dig into the material read the online blogs… o Lotsandlotsofinformation
• You can discuss the tools and drivers on Piazza o Share
• Use the ORUMs
o Read,explore,askquestions
Real-time Multithreaded Architecture Sprint Assignment
程序代写 CS代考 加微信: cscodehelp QQ: 2235208643 Email: kyit630461@163.com