Back to Guides

Finishing & Publishing Your Course

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.

Share this article

FacebookLinkedInXEmail

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:

  1. Internal Testing: Play your course extensively
  2. Final Unity Polish: Hole markers, performance optimization
  3. Pre-Beta Checks: Systematic validation using GreenKeeper tools
  4. Beta Submission: Share with OPCD beta testers via Beta App
  5. 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

πŸ“Ί 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:

  1. Too many trees/vegetation
    • Solution: Reduce density, optimize LODs
  2. High-poly objects
    • Solution: Use lower poly models, check import settings
  3. Excessive draw calls
    • Solution: Batch materials, combine meshes
  4. Texture resolution too high
    • Solution: Compress textures, reduce sizes
  5. 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:

  1. Run flyover benchmark in GreenKeeper
  2. Note holes with FPS drops
  3. Load problematic hole in Unity
  4. Open Profiler and Stats panel
  5. Identify high draw call or triangle count objects
  6. Simplify or remove offenders
  7. 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:

  1. Go to GreenKeeper > Benchmark tab
  2. Click "Run Flyover Benchmark"
  3. Automated camera flies through all 18 holes
  4. FPS is recorded for each hole
  5. 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:

  1. Open GreenKeeper > Collider Inspector
  2. Select hole to inspect
  3. Tool highlights collider meshes
  4. Verify coverage is complete
  5. 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:

  1. Open GreenKeeper > Bounding Inspector
  2. Check for oversized bounding boxes
  3. Verify bounds match actual mesh extents
  4. 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:

  1. Save all Unity scenes and GreenKeeper data
  2. Go to Tools > OPCD > Build Course
  3. Select output directory
  4. Build process generates course files
  5. Verify output contains all necessary files

Course Package Contents:

  • .course file (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:

  1. Create account on OPCD Beta App
  2. Click "Submit New Course"
  3. Upload course package files
  4. Fill out course details form
  5. Add screenshots/preview images
  6. Select "Beta" status
  7. 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:

  1. Go to GSPro course submission portal
  2. Create submission account (if needed)
  3. Upload final course package
  4. Provide course details and description
  5. Include designer credits
  6. 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:


Part of the Building GSPro Courses complete guide series

More guides β†’