Skip to content

This is a project I've created whilst learning Java in Version 1's Birmingham academy.

Notifications You must be signed in to change notification settings

ryanmcnally93/footballProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Football Management Game

This is a personal project I started working on whilst an Academy student in Version 1 Birmingham. Inspired by various other football management games with a number of original ideas for a better experience.

This is a non-profit, just for fun game.

Stars Size of repo
Open issues GitHub last commit

Contents

UX

User Stories

Managers

  • Include example of a user story.

Design Choices

The game will use colours specific to the teams currently selected or playing, along with original football imagery. The navigation needs to be possible through keystrokes and mouse clicks for ease of use.

Fonts

  • Include explanation of font used.

Icons

  • No icons have been used yet

Colours

  • The colours I want to use, exclusive of the teams colours, will be professional greys and dark blues.

Styling

  • App 'scheduler' will have an office type feel.
  • 'Match frames' should have a grassroots football feel to them.

Backgrounds & Images

  • Include explanations of images chosen.

Wireframes

I created these wireframes using Name of app.

Java Swing

  • Include explanation of use of Java Swing

Cards & Navigation

Include explanation of page navigation.

Q & A of Consumers

I've asked the following questions to:

  • Person 1
  • Person 2
  • Person 3

Roadmap

This roadmap indicates the importance and viability of specific opportunities.

Opportunities/Problems Importance Viability
Feature 1 5 5
Feature 2 1 1

Features

Existing Features

Start Page

  • Add explanation of pages features

Scheduler & Events

  • Add explanation of pages features

Match Pages

  • Add explanation of pages features

Features Left to Implement

Main Menu

  • Add explanation of pages features

Transfer Pages

  • Add explanation of pages features

Competition Pages

  • Add explanation of pages features

Tactics Pages

  • Add explanation of pages features

Testing

You can view all testing in this document.

Fixed Bugs

  1. I struggled with splitting the screen in half on the 'MatchScorers' page, the preferredsize wasn't working.

I managed to find a fix and it has worked for future implementations. If setting preferredsize alone doesn't work, setting it alongside setMinimumSize and setMaximumSize does work.

  1. The next big issue I came across was the sliding panel, which enters the frame when a goal is scored, and lowers after a few seconds. The frame was acting as required, but the 'z-index' was behind other components, and it needed to appear on top of everything else. ChatGPT recommended using JLayeredPane, but attempting to implement it was messing things up furthur, as I needed to make every other element a 'DEFAULT_LAYER' item, so I had to re-arrange all of my elements within the Match Frames cardMap.

In the end I realized I had to add it to the contentPane and add things to that. The sliding panel was then passed to a stronger 'layer', and this worked.

  1. Another issue I had was when I updated the play button in match frames to a continue button, I needed it to take the user back to the scheduler. This meant updating the mouse and keystroke event listeners.

I fixed this by removing the button from the parent element, along with the next button that was before it, and adding a new button 'continue' and putting the next button back. I initially tried to update the actionMap but this proved a more difficult to fix to removing and adding the buttons was the cleaner fix.

  1. The goal slider started slowing down during gameplay. The whole match wasn't flowing as nicely graphically.

The issue turned out to be caused by nemesislookandfeel, which I added to make customize my buttons easier. I intend to use it on individual elements in the future but for now this isn't needed.

  1. On a few occasions, Match Week 12 would be created but week 13 couldn't be created due to conflictions with the 8 matches left. My first attempt of a fix was to remove game week 12 and return the fixtures from that week to the available fixtures, and re-create the last 3 weeks, to give the method a better chance of completing. This worked on occasion, but also failed from time to time.

In the end I decided to make the whole process restart if we hit this endless loop, removing the original matchweeks and restarting the process. Excessive use of print logs massively helped with breaking down the process logic and the fix works 100% of the time now.

  1. The first time I managed to get a whole season of matches playing, I noticed after the first match I lost every other match spectacularly, until I reached a team I had already played, and then it was a 0-0 draw.

This turned out to be because the players stamina was reaching 0 in the first game, and never being reset! As a temporary measure, I have made a method that sets the stamina of all players back to 100 at the end of a match.

Unfixed Bugs

  1. Give Tactics CardMap ability to add captain changing, and add a player view button (Broken link for now)
  2. Make UsersMatch go to tactics or confirm selection before going to MatchFrames
  3. Update Bugs
  4. Write tests
  5. Add some images to pages / decorate some things or work on match logic

Responsive Design

East & West boxes

  • Add explanation of responsive design.

Inner Content

  • Add explanation of responsive design.

Setting Width & Height restrictions for the app

  • Add explanation of responsive design.

Credits

Code

  • Explanation of code borrowed or outsourced.

Tools Used

  • Explanation of tools used.

Media

Images

  • Images borrowed.

Acknowledgements

  • Explanations of people who have helped with this project

This readme.md will be spellchecked using the spell checker extension for Chrome.

All documents within this repository will be formatted using "Prettier".

About

This is a project I've created whilst learning Java in Version 1's Birmingham academy.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages