Code Monkey home page Code Monkey logo

minigolf's Introduction

Minigolf

This repository focuses on a simple minigolf game with one level, exploring different physics simulation aspects using PhysX 3.4.2. The level takes place on top of a kitchen counter and allows switching between different types of golf balls to complete the level.

File Structure

The file structure used for the project is outlined below.

.
+-- Extras
|   +-- GLFontData.h
|   +-- GLFontRenderer.cpp
|   +-- GLFontRenderer.h
|   +-- HUD.h
|   +-- Renderer.cpp
|   +-- Renderer.h
|   +-- UserData.h
+-- Graphics
|   +-- include
|       +-- ...
|   +-- lib
|       +-- ...
+-- Headers
|   +-- BasicActors.h
|   +-- Camera.h
|   +-- CustomCollisions.h
|   +-- Exception.h
|   +-- Level.h
|   +-- MyPhysicsEngine.h
|   +-- PhysicsEngine.h
|   +-- VisualDebugger.h
+-- Source
|   +-- BasicActors.cpp
|   +-- Camera.cpp
|   +-- CustomCollisions.cpp
|   +-- Level.cpp
|   +-- Main.cpp
|   +-- MyPhysicsEngine.cpp
|   +-- PhysicsEngine.cpp
|   +-- VisualDebugger.cpp
+-- .gitignore
+-- LICENSE
+-- Macros.props
+-- README.md
+-- minigolf.sln
+-- minigolf.vcxproj

Key:

  • \Extras folder - contains functionality that handles the projects rendering.
  • \Graphics folder - contains files that handles GLUT.
  • \Headers folder - contains the core .h files used to build the project.
  • \Source folder - contains the core .cpp files used to build the project. These call their respective .h file from the \Headers folder.
  • Macros.props - a Visual Studio properties file used to obtain the required NVIDIA PhysX external dependices.

Dependencies

This project requires a Microsoft Visual Studio 2019 environment, with the C++ programming language packages enabled. Additionally, it uses PhysX version 3.4.2 which requires additional step that is configured using the instructions below.

Please note: this follows a Windows 10 install process, some of these steps may be different for other operating systems.

  1. Download the PhysX SDK v3.2.4 from NIVIDIA's website - https://developer.nvidia.com/rdp/physx-downloads.

  2. Navigate to the following file path and unpack the zip file (create the path if required).

    C:\Program Files (x86)\NVIDIA Corporation\PhysX SDK\PhysX-3.4.2
  3. Test that the packages have been unpacked succesfully by opening the run window (keyboard shortcut: windows key + r) and copy the below path.

    C:\Program Files (x86)\NVIDIA Corporation\PhysX SDK\PhysX-3.4.2\PxShared\bin\vc15win64

    If working correctly, proceed to step 4. Otherwise, double check the file paths and folder structure.

  4. Update the Windows system path to allow the program to find the PhysX DLLs. These paths must be set before starting Visual Studio.

    Open the Windows Control Panel and select:

    System and Security -> System -> Advanced System Settings -> Environment Variables-> User variables -> Path -> New 

    Create the following two required DLL paths:

    C:\Program Files (x86)\NVIDIA Corporation\PhysX SDK\PhysX-3.4.2\PhysX_3.4\Bin\vc15win64
    
    C:\Program Files (x86)\NVIDIA Corporation\PhysX SDK\PhysX-3.4.2\PxShared\bin\vc15win64

    Once added at the bottom of the list, click OK and close all the control panel windows. This completes the SDK setup.

  5. Clone the repository, navigate to the minigolf/ folder and open the minigolf.sln file to load it into Visual Studio 2019. Run the local windows debugger to build and test the project.

minigolf's People

Contributors

achronus avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.