Finishing & Publishing Your Course
Home > Guides > Building GSPro Courses > Finishing
Overview
You've built your course, configured GreenKeeper, and tested it in GSPro. Now it's time to polish, optimize, and prepare for public release. This section covers final Unity touches, performance troubleshooting, pre-beta testing checklists, and the submission process for official GSPro distribution.
Publishing Path:
- Internal Testing: Play your course extensively
- Final Unity Polish: Hole markers, performance optimization
- Pre-Beta Checks: Systematic validation using GreenKeeper tools
- Beta Submission: Share with OPCD beta testers via Beta App
- SGT Submission: Official submission to Swing Golf Technologies for public release
1. Final Unity Polish
Adding Hole Markers to Unity Scene
📺 Adding Hole Markers to Unity scene
Placing visible hole number markers on tee boxes and signage.
Hole Marker Elements:
- Tee box signs (hole number, par, yardage)
- Directional arrows or fairway markers
- Distance markers (100/150/200 yards)
- Yardage plates on cart paths
- Green-side signage
Placement Best Practices:
- Place on or near tee boxes (visible when standing on tee)
- Orient signs toward golfers
- Use consistent style across all 18 holes
- Match real course signage if it's a replica
- Ensure markers don't interfere with play
OPCD Sign Assets:
- Pre-made hole marker prefabs included in base project
- Customizable materials for course branding
- Variety of styles (modern, classic, rustic)
- Editable text for hole numbers and yardages
Marker Checklist:
- ☐ All 18 holes have tee box signage
- ☐ Yardage markers placed at standard intervals
- ☐ Signs are properly oriented and visible
- ☐ Text is legible and accurate
- ☐ Style is consistent throughout course
Performance Troubleshooting
Diagnosing and fixing frame rate issues.
Performance Targets:
- Ideal: 90+ FPS consistently
- Acceptable: 60+ FPS minimum
- Problem: Below 60 FPS (stuttering, lag)
Common Performance Issues:
- Too many trees/vegetation
- Solution: Reduce density, optimize LODs
- High-poly objects
- Solution: Use lower poly models, check import settings
- Excessive draw calls
- Solution: Batch materials, combine meshes
- Texture resolution too high
- Solution: Compress textures, reduce sizes
- Post-processing overhead
- Solution: Disable effects, reduce quality settings
Unity Performance Tools:
- Profiler: Identify CPU/GPU bottlenecks
- Stats panel: Real-time draw call and triangle count
- Frame debugger: See rendering order
- Occlusion culling: Hide objects not in view
Optimization Workflow:
- Run flyover benchmark in GreenKeeper
- Note holes with FPS drops
- Load problematic hole in Unity
- Open Profiler and Stats panel
- Identify high draw call or triangle count objects
- Simplify or remove offenders
- Re-benchmark and verify improvement
Quick Optimization Wins:
- Disable 3D grass on distant meshes
- Use billboards for background trees
- Combine small objects into single meshes
- Enable GPU instancing on materials
- Reduce post-processing quality
2. Pre-Beta Validation Checks
Before submitting to beta testers, run systematic validation checks using GreenKeeper's built-in tools. This ensures your course meets quality standards and won't have obvious bugs.
GreenKeeper Pre-Beta Checks - Introduction
📺 GreenKeeper Pre-Beta Checks - Introduction
Overview of the pre-beta validation process.
Pre-Beta Checklist Overview:
- Base course info completeness
- OOB boundary validation
- Hazard area coverage
- Tee position accuracy
- Pin placement quality
- Scorecard correctness
- Flyover benchmark performance
- Collider mesh integrity
- CPU/GPU bounding checks
Why Pre-Beta Checks Matter:
- Catch errors before beta testers do
- Ensure professional quality
- Avoid resubmissions and rework
- Demonstrate attention to detail
- Respect beta tester time
GreenKeeper Pre-Beta Checks - Base
📺 GreenKeeper Pre-Beta Checks - Base
Validating course metadata and base information.
Base Information Checklist:
- ☐ Course name is correct and properly capitalized
- ☐ Designer name(s) listed
- ☐ Location specified (City, State/Country)
- ☐ Course type set (Public, Private, Resort, etc.)
- ☐ Year built/modified included
- ☐ Course description is accurate and concise
- ☐ No placeholder text remains ("Test Course", "TBD", etc.)
GreenKeeper Pre-Beta Checks - OOB
📺 GreenKeeper Pre-Beta Checks - OOB
Verifying out-of-bounds areas are properly defined.
OOB Validation:
- ☐ All 18 holes have OOB boundaries defined (even if minimal)
- ☐ OOB polygons are closed (no gaps)
- ☐ Boundaries are on terrain surface (not floating/underground)
- ☐ Adjacent holes have separation OOB to prevent crossover
- ☐ OOB areas are logical and fair
- ☐ Tested with shots near boundaries
Testing OOB:
- Hit shots toward each OOB line
- Verify penalty is triggered correctly
- Check that ball is marked OOB appropriately
- Ensure no false positives (balls in play marked OOB)
GreenKeeper Pre-Beta Checks - Hazards
📺 GreenKeeper Pre-Beta Checks - Hazards
Verifying water hazards and penalty areas.
Hazard Validation:
- ☐ All water bodies are marked as hazards
- ☐ Hazard type is correct (yellow/red stakes)
- ☐ Polygons completely cover water surface and edges
- ☐ Drop zones placed for complex hazards
- ☐ Penalty triggers correctly when ball enters
- ☐ No invisible hazards (marked areas with no visual water)
Testing Hazards:
- Hit shots into each water hazard
- Verify penalty stroke and drop options
- Check that splash effects appear
- Ensure fair relief areas
GreenKeeper Pre-Beta Checks - Tees
📺 GreenKeeper Pre-Beta Checks - Tees
Validating tee box placements and aim points.
Tee Validation:
- ☐ All holes have all tee sets (typically 4-6 tees per hole)
- ☐ Tee markers are on flat tee box surfaces
- ☐ Tee markers face correct direction
- ☐ Aim points are set appropriately
- ☐ Yardages are accurate
- ☐ Spacing between tees is logical
- ☐ No floating or buried tee markers
Testing Tees:
- Load each tee in GSPro
- Verify camera aim is correct
- Check that tee shot has clear view
- Confirm yardages match expectations
GreenKeeper Pre-Beta Checks - Pins and Conditions
📺 GreenKeeper Pre-Beta Checks - Pins and Conditions
Validating pin placements and green conditions.
Pin Validation:
- ☐ All holes have 3-6 pin positions
- ☐ Pins are on green surface (not in fringe/collar)
- ☐ Pin locations have variety (front/middle/back)
- ☐ Pins avoid extreme slopes
- ☐ Default pin is set for each hole
- ☐ Green speed and firmness are realistic
Testing Pins:
- Hit approach shots to each pin
- Verify flag is visible and positioned correctly
- Check green speed feels appropriate
- Ensure putting lines are realistic
GreenKeeper Pre-Beta Checks - Scorecard
📺 GreenKeeper Pre-Beta Checks - Scorecard
Verifying scorecard accuracy and completeness.
Scorecard Validation:
- ☐ Par totals 72 (or appropriate total for course)
- ☐ Yardages match measurements
- ☐ Handicap rankings are logical (1=hardest, 18=easiest)
- ☐ Front 9 and back 9 totals are correct
- ☐ Course rating and slope are calculated
- ☐ Tee set names are consistent
Scorecard Balance:
- Par 3s: Typically 4 holes (2 front, 2 back)
- Par 4s: Typically 10 holes
- Par 5s: Typically 4 holes (2 front, 2 back)
- Front/back balance: Similar difficulty and length
GreenKeeper Pre-Beta Checks - Flyover Benchmark
📺 GreenKeeper Pre-Beta Checks - Flyover Benchmark
Running automated performance benchmark.
Flyover Benchmark:
- Go to GreenKeeper > Benchmark tab
- Click "Run Flyover Benchmark"
- Automated camera flies through all 18 holes
- FPS is recorded for each hole
- Report generated with performance summary
Performance Standards:
- Excellent: 90+ FPS average
- Good: 70-89 FPS average
- Acceptable: 60-69 FPS average
- Needs work: Below 60 FPS
Addressing Performance Issues:
- Identify worst-performing holes from report
- Load problem holes in Unity
- Use optimization techniques (see Performance Troubleshooting above)
- Re-run benchmark to verify improvements
GreenKeeper Pre-Beta Checks - Collider Inspector
📺 GreenKeeper Pre-Beta Checks - Collider Inspector
Verifying terrain collision meshes are correct.
Collider Validation:
- Colliders define where ball can land and roll
- Must cover all playable surfaces
- Holes or gaps cause balls to fall through world
- Overlapping colliders can cause physics glitches
Using Collider Inspector:
- Open GreenKeeper > Collider Inspector
- Select hole to inspect
- Tool highlights collider meshes
- Verify coverage is complete
- Check for gaps, holes, or overlaps
Common Collider Issues:
- Missing colliders on meshes (ball falls through)
- Colliders not conforming to terrain (ball bounces oddly)
- Overlapping colliders causing physics conflicts
- Non-convex colliders on complex shapes
GreenKeeper Pre-Beta Checks - CPU_GPU Bounding
📺 GreenKeeper Pre-Beta Checks - CPU_GPU Bounding
Checking mesh bounding boxes for rendering optimization.
Bounding Box Validation:
- Bounding boxes determine when objects are rendered
- Incorrect bounds cause pop-in or invisible objects
- GPU instancing requires proper bounding
Using Bounding Inspector:
- Open GreenKeeper > Bounding Inspector
- Check for oversized bounding boxes
- Verify bounds match actual mesh extents
- Recalculate bounds if needed
Bounding Issues:
- Oversized bounds: Objects render when off-screen (performance hit)
- Undersized bounds: Objects disappear when partially visible
- Incorrect center: Objects cull prematurely
3. Beta Testing
Once all pre-beta checks pass, you're ready to submit for community beta testing.
Preparing Your Course File for Submission
📺 Preparing Your Course File for Submission
Building and packaging your course for distribution.
Build Process:
- Save all Unity scenes and GreenKeeper data
- Go to Tools > OPCD > Build Course
- Select output directory
- Build process generates course files
- Verify output contains all necessary files
Course Package Contents:
.coursefile (main course data)- Texture files (compressed images)
- Metadata JSON (course info, scorecard)
- Preview images (thumbnails)
Pre-Submission Checklist:
- ☐ All GreenKeeper pre-beta checks passed
- ☐ Course plays smoothly in GSPro
- ☐ No known bugs or glitches
- ☐ Performance meets standards
- ☐ Course files built successfully
- ☐ Preview images created
- ☐ Course description written
OPCD Beta App - Course Submission, Update and Removal
📺 OPCD Beta App - Course Submission, Update and Removal
Using the OPCD Beta App to share your course with testers.
OPCD Beta App:
- Community platform for testing in-progress courses
- Invite-only beta tester group
- Feedback and bug reporting tools
- Version management (update courses)
- Download statistics
Submitting to Beta:
- Create account on OPCD Beta App
- Click "Submit New Course"
- Upload course package files
- Fill out course details form
- Add screenshots/preview images
- Select "Beta" status
- Submit for review
Beta Testing Phase:
- Beta testers download and play your course
- Feedback collected via Discord or Beta App comments
- Common issues: OOB bugs, hazard problems, yardage errors
- Iterate based on feedback
- Upload updated versions as needed
Beta Etiquette:
- Respond to feedback promptly
- Be gracious (testers are volunteers)
- Fix reported bugs quickly
- Update version notes with changes
- Thank testers publicly
4. Official SGT Submission
Once beta testing is complete and all issues resolved, submit to Swing Golf Technologies (SGT) for official GSPro distribution.
Submitting Your Course to SGT to be Played Officially in GSPro
📺 Submitting Your Course to SGT to be Played Officially in GSPro
Final submission process for public release.
SGT Submission Requirements:
- Course must be beta tested
- All bugs and issues resolved
- Performance meets standards
- No copyright violations (if replica course)
- Professional quality and polish
Submission Process:
- Go to GSPro course submission portal
- Create submission account (if needed)
- Upload final course package
- Provide course details and description
- Include designer credits
- Submit for SGT review
SGT Review Process:
- Typically takes 1-4 weeks
- SGT tests course for bugs and performance
- May request changes or fixes
- Once approved, course added to official GSPro library
- Available to all GSPro users worldwide
Post-Release:
- Monitor community feedback
- Address any post-release bugs
- Submit updates if significant issues found
- Celebrate your achievement! 🎉
Official Release Checklist:
- ☐ Beta testing completed
- ☐ All feedback addressed
- ☐ Final playtest confirmed quality
- ☐ Course description polished
- ☐ Designer credits accurate
- ☐ Preview images professional quality
- ☐ Submitted to SGT portal
- ☐ Awaiting SGT approval
Congratulations!
You've completed the journey from raw lidar data to a published GSPro course. This is a significant achievement that requires patience, attention to detail, and passion for golf course design.
Your Course is Now:
- Playable by GSPro users worldwide
- Part of the growing OPCD course library
- A testament to your dedication and skill
- A contribution to the golf simulation community
What's Next?
- Build another course (each one gets easier!)
- Explore Advanced Techniques for polish and refinement
- Help others in the OPCD Discord community
- Consider building fictional or dream courses
- Experiment with unique design challenges
See Also:
- Advanced Techniques → - Polish techniques and advanced tools
- GreenKeeper Setup - Course configuration reference
- Unity Setup & Materials - Unity optimization guide
Part of the Building GSPro Courses complete guide series
