Giter VIP home page Giter VIP logo

bad-golf-community-edition's Introduction

bad-golf-community-edition

Bad Golf: Community Edition is a community developed realisation of Patrick Hackett's "Bad Golf" pitches from Double Fine's 2012 and 2014 Amnesia Fortnight events, aiming to capture and celebrate the reckless shenanigans that less professional golfers can get up to when they're left alone with a golf cart.

See the AF pitch that started it all:

https://www.youtube.com/watch?v=6sSYQOJgExU

And 2 years later the pitch that started this project:

https://www.youtube.com/watch?v=icbujpbe5mk

Resources

Important note regarding 23rd Feb repository changes for all existing contributors: Repository changes require rebasing or reforking. Please read the explanation and instructions here!

See our progress on the forums

http://www.doublefine.com/forums/viewthread/13136/P0/

Join us on IRC

Server: irc.foonetic.net

Channel: #BadGolf2

Or just click here http://mibbit.com/#[email protected]

bad-golf-community-edition's People

Contributors

aaronscientiae avatar bc5389 avatar bobsayshilol avatar cheeseness avatar chrafonso avatar drewaburden avatar elneilios avatar erikbehar avatar goldenheaven avatar huitremagique avatar itsjustanothergeorge avatar joshschmille avatar lightsoda avatar lokno avatar maritalwheat avatar nulian avatar osse101 avatar ronnrein avatar ryanmorash avatar slimliner avatar thegsm avatar vaakapallo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bad-golf-community-edition's Issues

Basic Cart Sounds

We'll want the following sounds for our carts:

  • Horn sound
  • Engine sounds (acceleration/deceleration/idle)
  • Braking/skidding sounds
  • Cart collision sounds
  • Engine start/stop sounds (for golf swing mode transition)

Overhead map

In many cases it will be useful to have a second view and see the map and not just the current player perspective view.
For example, when driving the cart, the player should see where it's possible to go.

I'll start with something simple in the test area which we can improve upon later.

Golf Simulation

The titular aspect of the game (golf, not bad) has been highlighted as important by Patrick. His suggestions are to aim for a simplified, predictable golf simulation similar to Mario Golf on the Nintendo 64.

  • Ball ballistics/collision physics
  • Driver swing mechanic
  • Putt swing mechanic
  • Aiming controls (rotate around the ball)
  • Club variations? (multiply power based on club type?)

Basic Golf Sounds

We'll need some basic sounds for the golf sim portion of the game:

  • Golf club swing sounds
  • Golf swing hit sound
  • Golf ball bounce sound
  • Golf ball going into hole sounds

Golf Ball Icon for Minimap & In-Game Ball Indicator

The golf ball is extremely important during the race because players need to seek their own and their opponents.

We need an asset to clearly display the golf ball on minimap for issue #85.
While it's easy to just display a circle, I think we can do something better like a point to the map. For example, the way google displays a position in the map when you search for a location.

Remember the minimap is small, so the object has to be clear yet not take up too much space.

We will most likely programmatically color the object based on the player color.

Lobby UI Design (split from #16)

Split from #16, we need a design for a lobby which allows for options for player model and cart selection (with possible expansion for other customisations such as voice?). The lobby should also provide text chat functionality and show other players' model/cart selections.

We'll also want a lobby creation screen where the host can set game parameters (in the future, this will be game name, course, game modes if we have them, etc.), as well as a lobby join screen where a player can select from available lobbies (or enter details for a lobby to directly connect to?)

Car Simulation

Patrick has highlighted that getting the cart driving aspect of the game feeling fun and solid should be a top priority.

We'll need to focus o making sure that handling and collisions feel right (right meaning fun, and not necessarily real-world accurate).

  • Steering
  • Sliding
  • Braking
  • Accellerating (forwards and reverse!)
  • Cart collisions
  • Ball collisions
  • Damage modeling (location specific damage? should damage change handling?)
  • Transition to/from golf swing mode

Basic Player Model Animations

We'll need poses and animations for our player model (#1). To begin with, we should focus on the following:

  • Driving pose (optional steering animations)
  • Standing golf pose (and swing animation)

Add In-Game "Pause" Screen

We currently have no way to return to the main menu from the game itself. Implementing this as some kind of "pause" menu overlay (which would only pause local games rather than network games?) seems like the best way to go.

Golf Cart Model

We need a textured golf cart model capable of accommodating a player model (#1).

Ideas that have been floated so far:

  • Use a modular mesh and swap damaged portions in to show cart damage
  • Use a rig to deform the cart mesh into damaged states (blending could allow for incremental damage)

Placeholders are welcome.

In-game look and feel

Some work needs to be done in Unity to create the overall look and feel we want, this includes, but isn't limited to:

  • Skybox
  • Lighting
  • Atmosphere
  • Shadows

Basic Player Facial Animations

People are moving ahead with facial animation, so it's better to push this out into its own issue rather than cluttering up #3.

To start with, we're looking for:

  • Happy reaction face
  • Angry reaction face
  • Neutral face

In-game Music

We'll want some music to play during the game itself. This may consist of one or more tracks.

Patrick's pitch videos for Bad Golf suggest that he had a metal type tone in mind.

Music should be contributed in 44.1KHz WAV files, named with a level_ prefix. Feel free to include your github user name, eg: level_<username>_funky-metal-track.wav. Please avoid spaces in file names.

Since we'll hopefully be cycling through a selection of in-game tracks, these aren't likely to be looping.

Course Doodads

We'll want to poplate our course (#4) with some scenery objects that we can use as obstacles or to block off map edges.

Some possible doodads:

  • Shrubs
  • Trees
  • Rocks
  • Cliff faces
  • Waterfalls

Player Model

We need a rigged and textured player model suitable for sitting in a golf cart and taking a swing.

So far in IRC, we've discussed the idea of making it a caricature of Patrick, and Taekon has done a couple of bits of concept art.

Placeholders are welcome

player_concept

fhnrucx

Add Manual Reset Button For Cart Reorientation

Based on our playtesting experience so far, a manual reset key (with some kind of cooldown to prevent spamming it?) feels like it's going to be important for when the auto-righting fails to detect that a cart is stuck.

Related to #21

Victory/Loss Music Cues

We could have musical interludes/cues to signify the game end (with win and lose variants).

These should tie in nicely with #10

In-game UI Design

We'll want to develop layout and widget design for the following in-game elements:

  • Mini map
  • Golf simulation swing/power/aim indicators
  • Current score indicator
  • Ball location indicator (to make balls easier to find and drive to/over)
  • Ball offscreen indicator
  • Current leaderboard (everybody's score) overlay?
  • Text chat widget (#19)

Additional Player Model Animations

Beyond our base player model animations (#3), we'll eventually want a more fully fleshed out set of animations

  • Jeering animations (in cart and out)
  • Horn honking animation
  • Reverse driving pose (and steering animations)
  • Emotive animation following good swing
  • Emotive animation following bad swing
  • Victory animation
  • Loss animation

Title/Menu/Etc UI Design

We'll want to develop layouts and graphics for the following "screens":

  • Title/intro (optional)
  • Main menu
  • Credits screen
  • Network connection screen
  • Lobby creation screen
  • Lobby screen
  • End of game score screen

Test Course Terrain

We'll need a test course to practice our (golf) driving and (cart) driving on.

Ideally this should include a tee, a hole, a green, some fairway and some rough.

For now, let's steer clear of sand traps, water, landmines, etc.

Fix audio levels in music

Right now it seems like the music gets louder in parts where there is less stuff playing. I think it is bringing the volume up when the music gets quieter and thats why it actually seems LOUDER in those parts. The game is doing some work in the background it shouldn't be doing, instead it should play it the way it is.

Fix Mac OS Binary Name

The binary file name in the Mac OS build is BadGolf2 (buildname.app/Contents/MacOS/BadGolf2).

This should be updated to be BadGolfCommunityEdition or BadGolfCE.

Organise Project Folder Stucture/File Naming

With new content coming in, it's probably high time that we addressed folder structure and naming conventions. I've created a wiki page that we can use to bash this out.

I'd like to see us refactor the folder structure list so that it's planned and cohesive, and supplement with some descriptions about what belongs where (to make things clear for people submitting pull requests).

[asset] Player scoring

Need to add animation and sound for when the player gets the ball into the hole.
One person could o both or by 2 people, one doing the animation the other the sound, just make sure both are in sync.
Also see if the overall look/sound fit the current game theme.

Menu & Config Changes

Changes to clickable script:

Commented Update Section ( To be Uncommented if
Input.simulateMouseWithTouches doesn't allow touch to call mouse events
).

When mouse is over avaible options will turn text color red.

When mouse is no longer over the text will change color back to white.

Changes to GameControl script:

Changed Application.LoadLevelAdditive to make it load from selected
menu level.

Commented Update Section as it wasn't doing anything.

Changed intro object and object that holds current level text to
allow:

Added Tag "Intro" to intro object

Added Tag "LevelID" to current level object

changed the name of current level object to levelID

Created script Config to allow load of files:

Write basic config xml as start

Function to load levels

Created script LevelSelect to allow level selection on menu:

Loads level names from Config.cs

Added to change level select on arrow key input

Made changes to config.cs and gamecontrol.cs to allow levels to be
loaded on the path specified on the config.xml, but it will only work
after the second time that it is ran if you change the default path.
(unity free limitation)

Lobby Music

We'll need some music for the pre-game lobby (perhaps something with an elevator musak type feel?).

Music should be contributed in 44.1KHz WAV files, named with a lobby_ prefix. Feel free to include your github user name, eg: lobby_<username>_funky-metal-track.wav. Please avoid spaces in file names.

Lobby tracks should be looping, and may be paired with a title track (as discussed, we've been talking about the idea of having the lobby track start at whatever point its corresponding title track was at when switching from main menu to lobby screens).

Debug Console

It was suggested the idea of creating a debug console to inspect in-game variable behaviors.
There is still some information needed in order to code a debug console though :

  • What variables need to be inspected
  • if debug behaviour is the same in singleplayer or mulplayer mode
  • assets loading restrictions
  • log saving features
  • other debug commands ( suggest please )

Merge Core Game Components

To move us towards our next test release build, we should aim to start integration of our currently disparate core game compnents, namely #bobsayshilol's work from #20, @Slimliner's work from #21 and @Vaakapallo's initial work from #22.

Notable concerns at the moment are:

  • The networking system assumes that it can apply forces directly to the car
  • The current car simulation implementation could do with some documentation in the vein of Networking how to
  • The golf sim also needs documenting and appears to be less mature than the other aspects

UI Sounds

We'll want some sounds for our out of game UI:

  • GUI widget hover sound (mouse over)
  • GUI widget select sound (click)
  • GUI notification sound (chat message? new user connected?)

And some in-game sounds:

  • Score increase sound?
  • Lead position taken sound (when player takes the top position on the leaderboard)
  • Lead position stolen sound (when player loses the top position on the leaderboard)

Title Music

We'll need some music for our title/menu screens.

Music should be contributed in 44.1KHz WAV files, named with a title_ prefix. Feel free to include your github user name, eg: title_<username>_funky-metal-track.wav. Please avoid spaces in file names.

Title tracks should be looping, and may be paired with a lobby track (as discussed, we've been talking about the idea of having the lobby track start at whatever point its corresponding title track was at when switching from main menu to lobby screens).

Player Sounds

We'll need some sounds for our player:

  • Cart collisions grunt sound
  • Good swing vocalisation (non-verbal)
  • Bad swing vocalisation (non-verbal)
  • Ball run over vocalisation (non-verbal, to also serve as an audio cue for when the player's ball has been run over offscreen)
  • Jeering (non-verbal)
  • Winning cheer (non-verbal, end of game, ball in hole)
  • Footfall/jumping sound for transitioning from/to cart mode

Detect ball reached hole

Need to detect when the ball has reached the hole and got in.
Most likely has dependencies on the golf ball simulation implementation #22.

[asset] Minimap version of the test map

We can certainly benefit from someone looking at creating a second version of the map for the minimap. Eventually I think we should also consider doing this programmatically so anyone creating a level won't need to do things twice. So I suggest you also document the process you are doing. Even if we don't do this programmatically eventually such document will be useful in the guidelines for creating a level.

Need to ensure we can still use the same mechanism of a camera above the course for now. So we need this new map to be overlayed on top of the existing map (same scale)

@EmberEgg said he can start looking at this issue.

Game Flow

This is a brain dump issue to give a sense of direction rather than a proper todo.

  • Create lobby
  • Start game when lobby is full or when host forces start
  • Turn based tee off (suggested by Patrick)
  • Real time game
  • Start of hole gating (suggested by Patrick)
  • Display score/leaderboard on course win and return to lobby

Configuration Loader

Load configuration variables from file at game start up and provide runtime access to them.

Player Icon for Minimap

We need a nice, low res friendly icon for players on the minimap (#85) that indicates direction and will most likely be programmatically coloured based on the colour of the player it represents.

@AustinCarr has done some nice minimap icons stuff in #110 and #111.

Split Screen Mode/Multiple Player Input

We currently have a split screen view in-game, but multiple input devices is not handled yet.

The big question to ask here is whether mutliple input devices and local multiplayer is something to look at on in the short term, or whether we should entirely focus on networked multiplayer for now.

I've been following a cross-platform input library for Unity called InControl for a little while. It might be a good option to look towards as Unity's built in input handlers aren't very consistent across operating systems.

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.