Home - CSC4790-Fall2024-Org/Distant-Lands GitHub Wiki
Distant-Lands wiki!
Authors: Joe Favaro and Chris Ferdinand
1. Final Artifact Links
1.1 Final Abstract
1.2 Final Poster
1.3 Lightning Talk
1.4 Project Management
[Trello Board] (https://github.com/orgs/CSC4790-Fall2024-Org/projects/7)
1.5 Final Demo Video
(link OneDrive folder that contains video)
2. Requirements
2.1 Key User Stories
| User Story | Status |
|---|---|
| As a user, I want to input a natural language prompt so that the AI can generate a unique VR environment based on my request. (5) | Met |
| As a developer, I want to set up the Unity environment so that the team has a starting point to build the VR application. (2) | Met |
| As a user, I want the AI to search a predefined library of Unity assets to build the environment in response to my prompt. (5) | Met |
| As a user, I want to explore the generated VR environment so that I can experience the AI-created world. (3) | Met |
| As a user, I want the environment to load in real-time so that I can experience minimal delays after providing a prompt. (4) | Not Met |
| As a user, I want an easy-to-use interface where I can input my prompt so that I can quickly generate environments. (2) | Not Met |
| As a user, I want the AI to combine different assets creatively to produce a visually diverse environment that matches the prompt. (3) | Met |
| As a developer, I want to ensure that all assets used are sourced from royalty-free libraries so that the project remains legally compliant. (2) | Met |
| As a team, I want to document potential risks and create mitigation plans so that we are prepared for any project challenges. (1) | Met |
| As a developer, I want to test the application on different VR devices so that I can ensure optimal performance across platforms. (4) | Not Met |
2.2 Requirements Analysis
[Perspective/Wireframe/Scope] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Release-1)
3. Scope Adjustments
We had to pivot many different times during the project but nothing too drastic. Wanted to use more AI integration but needed a relatively high budget to do so. Decided to pivot more towards a bit of interaction which was once not on the table at all. Turned our AI driven relaxing world building into an AI driven world created by us that utilizes interaction within VR for relaxation.
4. Risks
(https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Risks-and-Mitigations)
5. Design
5.1 Design Narrative
The initial flow chart needed to be updated to fit our project description better. Decided to use a pyramid design because we had a world generation aspect. Our application worked in clear steps that started broad and became more narrow and specific at the top, our new design reflects this change.
5.2 Design Diagram
[Flow Chart] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Flow-Chart-Diagram)
6. Implementation
6.1 Development Environment
[Added Tech Stack] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Flow-Chart-Diagram)
6.2 Implementation Challenges
[Retrospective Release 1-3] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Retrospective) | Largest issue by far was the posting to our github repository which we fixed by just using OneDrive instead. The switch from high-end desktop to laptop also required us to limit some of the high quality assets we had but the concept of our application did not change due to this hardware issue.
6.3 Code Samples
[Basic Code] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Code-Snippets) | Example of a simple Unity script and a screenshot of a fishing rod object in the world with some parameters
6.4 User Interface
[Screenshots] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/User-Interface)
7. Testing
7.1 Test Scenarios
[Test Scenarios] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Test-Scenarios)
7.2 Alpha Test Results
[Alpha Tests] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Alpha-Test-Results)
7.3 Known Issues
[Notes on Issues] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Known-Issues)
8. Future Plans for Project
Realistic chance that we work with Prof Klassner to refine our project and submit it to the cave competition in April. We feel that there was a lot left on the table for our VR project. We could have done much more without the time constraint caused by the uploading issues during half of the semester. Based on a lot of the current VR games on the market potentially flipping this game for profit could be on the table.
9. Project Retrospective
9.1 Reflection
- Successes
- Team Collaboration: Effective use of tools and regular meetings ensured smooth workflows.
- Technical Execution: Utilizing reliable technologies like Unity and basic AI facilitated feature implementation.
- Adaptability: Swift adjustments to scope and strategy helped navigate unforeseen challenges.
- Areas for Improvement
- Planning and Risk Management: A more detailed initial risk assessment could have set more realistic expectations.
- User Engagement: Increased frequency of user testing could have provided more actionable feedback earlier.
- Documentation Consistency: Improved synchronization of documentation with code updates would enhance project clarity.
- Lessons Learned
- Scope Management: Essential to adjust project scope realistically based on available resources.
- Value of Feedback: Regular input from users and team members is crucial for aligning with project goals.
- Planning for the Unexpected: Allocating buffer time for unexpected issues is critical for maintaining project timelines without sacrificing quality.
9.2 Curriculum
- PLatform Based Computing - Provides a strong foundation in understanding different computing platforms which is essential when deploying projects in specific environments.
- Software Engineering - Core principles such as software lifecycle, agile methodologies, and team collaboration are directly applied in project management and execution.
- Algorithms & Data Struc I + II - These courses provide the necessary tools to solve complex problems efficiently, which is crucial for any software development project.
- Analysis of Algorithms - Understanding how algorithms perform under different conditions helps in making informed decisions about which algorithms to use based on the project’s needs.
- Game Development - Offers practical experience in the specific challenges of game design and development, including graphics, user interface, and working with UNITY
- Organ of Prog Languages - Teaches about different programming paradigms and languages, enabling better decision-making when selecting technologies for project implementation.
9.3 Advice
- Start Early: Begin brainstorming and planning your project as early as possible. This allows more time for research, problem-solving, and unforeseen challenges.
- Define Clear Goals: Establish clear, achievable goals at the beginning of the project. This helps in maintaining focus and measuring progress throughout the project lifecycle.
- Regular Meetings: Schedule regular meetings with both your project team and advisor. Consistent communication is crucial for troubleshooting issues and ensuring everyone remains on the same page.
- Document Everything: Keep thorough documentation of your process, decisions, and changes. This not only helps in keeping track of your progress but is also invaluable for writing your final report.
- Manage Time Effectively: Develop a project timeline and stick to it. Use project management tools to keep track of tasks and deadlines.
- Prepare for Setbacks: Anticipate challenges and setbacks. Having a flexible approach and mindset can help you navigate these smoothly.
- Reflect and Adapt: Regularly reflect on what you’re learning and how it applies to your future career goals. Be open to adapting your project based on what you discover along the way.
- Enjoy the Process: While the project is a significant academic requirement, try to enjoy the process of learning and creating. This can be one of the most rewarding parts of CS at Villanova.
[Focus/Velocity/Integration] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Release-2) [Updates] (https://github.com/CSC4790-Fall2024-Org/Distant-Lands/wiki/Release-3)