Giter VIP home page Giter VIP logo

lp's Introduction

Logo

Life's Progress

A systemic 2D platformer within a dynamic living ecosystem.

Table of Contents

Features

  • Realistic ecosystem simulation.
  • Open-world exploration in a 2D platformer.
  • Educational gameplay focusing on ecosystem interactions.

Documentation

For detailed information on gameplay mechanics, controls, and ecosystem dynamics, please refer to our official wiki. The wiki provides comprehensive documentation to help you navigate and understand the intricacies of LP.

Contributing

Contributions to LP are welcome! Whether it's reporting bugs, proposing new features, or contributing code, check out our Contributing Guidelines for more information.

Community

Join our community on Discord to engage with other contributors and stay updated on the latest developments. Check out our Code of Conduct for a positive and inclusive community.

lp's People

Contributors

erematorg avatar limweijen avatar m1thieu avatar

Stargazers

 avatar Tiago Costa Araujo avatar Lawrence avatar  avatar  avatar

Watchers

 avatar  avatar

lp's Issues

Design Interaction Framework

Outline the structure and components of the interaction framework.

  • Define interfaces for different types of interactions.

Basic Migration Patterns

Enable entities to move between different areas based on environmental conditions.

  • Implement basic migration algorithms triggered by factors like resource scarcity and seasonal changes.
  • Track and update population distribution across the terrain.

Modular Entity System

Problem Description

LP currently lacks a modular entity system, limiting the flexibility and customization of entities in the game.

Proposed Solution

Develop a modular entity system that allows for the construction and customization of entities with various body parts and behaviors.

Alternatives Considered

No response

Additional Context

This system will enable the creation of diverse and unique entities, enhancing the depth and variability of the gameplay experience.

Develop Terrain Modification Tools

Create tools for modifying terrain in real-time, with support for saving and loading modifications.

  • Design user interface for terrain modification tools.
  • Implement basic terrain modification functionalities (e.g., raising/lowering terrain, adding/removing terrain features).
  • Ensure modifications can be saved to and loaded from a persistent storage system.
  • Optimize modification tools for performance.

Create Attachment System

Develop a system for dynamically attaching body parts to entities.

  • Implement methods for adding, removing, and modifying attachments.
  • Ensure attachment system supports dynamic changes during gameplay.

Implement Terrain Generation

Develop algorithms for generating terrain that supports diverse biomes and landscapes.

  • Research and select appropriate terrain generation algorithms (e.g., Perlin noise, Voronoi diagrams).
  • Implement basic terrain generation algorithm.
  • Create various biome templates and integrate them into the terrain generation process.
  • Ensure terrain generation supports heightmaps and procedural variation.

Implement Dynamic Audio System for Real-Time Sound Generation and Modification

Problem Description

Creating immersive and diverse audio experiences for LP requires a vast number of audio files to cover various species, environments, and interactions. Managing and storing these files can be inefficient and resource-intensive.

Proposed Solution

Implement a dynamic audio system that generates and modifies sounds in real-time based on parameters such as species, gender, age, and environmental context. This system will use a base noise sound that can be tweaked to produce different types of sounds, reducing the need for a large library of pre-recorded audio files.

Alternatives Considered

  • Pre-recorded Audio Files: Using a large library of pre-recorded sounds, which would be resource-intensive and less flexible.
  • Procedural Sound Generation: Fully procedural sound generation for each unique sound, which may be too complex and computationally expensive.

Additional Context

The dynamic audio system will include the following components:

  • Base Sound Generation System: Develop a system to generate base sounds that can be modified dynamically.
  • Sound Modification Algorithms: Create algorithms to modify base sounds based on parameters such as species, gender, and age.
  • Parameter Storage System: Develop a system to store and retrieve parameters for sound modification.
  • Integration with GeneticAttributes and Entity Systems: Ensure the dynamic audio system integrates smoothly with existing GeneticAttributes and entity systems.
  • Testing and Refinement: Conduct thorough testing and refine the sound quality and performance of the dynamic audio system.
  • Documentation: Create comprehensive documentation for the dynamic audio system, including guidelines for adding and modifying sounds.

Testing and Validation of the Terrain Framework

Test the terrain framework for functionality and flexibility, and fix any identified bugs.

  • Conduct unit tests and integration tests on the terrain framework.
  • Collect and analyze feedback from testing to identify areas of improvement.
  • Optimize the terrain framework based on test results.

Develop Resource Acquisition Mechanics

Implement simple mechanics for entities to acquire resources.

  • Define resource types and acquisition methods.
  • Implement resource acquisition mechanics.

Implement Base Sound Generation

Develop a system to generate base sounds that can be modified dynamically.

  • Research algorithms for base sound generation.
  • Develop a basic sound generation module.
  • Integrate the module with the existing game engine.
  • Test the generated base sounds for quality and performance.

Population Growth and Decline Models

Manage population sizes through growth and decline mechanisms.

  • Create models for exponential and logistic population growth.
  • Develop decline models based on carrying capacity, resource availability, and predation.

Define Basic Weather Patterns

Identify and define basic weather patterns and their effects.

  • Define characteristics and effects of weather patterns like:

  • Rain

  • Snow

  • Wind

Note that you can expand it further with more weather patterns if you feel the need to do so.

Dynamic Population Interaction

Simulate interactions between different species and within species populations.

  • Develop interaction models for predator-prey relationships, competition, and symbiosis.
  • Ensure species coexistence and impact on each other's population dynamics.

Save System Error Handling and Recovery

Implement robust error handling mechanisms to handle save/load errors gracefully and provide options for recovery in case of data corruption or file system issues.
Ensure the save system can detect and recover from errors seamlessly, preserving player progress and preventing data loss. This feature can enhances player trust and confidence in the reliability of the game's saving mechanism.

Dynamic Save & Load

Problem Description

The current save system lacks dynamic capabilities to adapt to evolving game states and player interactions. While it provides basic save and load functionality, it does not support advanced features such as saving dynamic game events, player progress, and in-game choices.

Proposed Solution

Enhance the existing save system to support dynamic save and load functionality, allowing for the preservation of game state changes, player progress, and in-game decisions. This includes implementing mechanisms to capture and save dynamic events, update existing save data during gameplay, and load saved data accurately to reflect the current game state.

Alternatives Considered

Developing a custom save system tailored to the specific requirements of the game.

Additional Context

The dynamic save and load functionality is crucial for creating immersive and engaging gameplay experiences, enabling players to have agency over their in-game decisions and witnessing the consequences of their actions.

The proposed solution aims to strike a balance between flexibility, performance, and reliability, ensuring that the save system meets the needs of both players and developers.

Terrain Framework

Problem Description

LP truly needs a robust terrain framework, right now it limites the complexity and interactivity of the game environment.

Proposed Solution

Develop a dynamic terrain system, most likely along procedural generation techniques, to generate diverse environments, integrating it with ecossytem dynamics, and supporting terrain modification

Alternatives Considered

Pre-generated static terrains

Additional Context

A robust terrain system is essential to create an immersive and interactive game world. The terrain should influence and respond to ecosystem changes and entity interactions.

Design Modular System Architecture

Outline the structure and components of the modular entity system.

  • Define interfaces for body parts and entity customization.
  • Create documentation for the modular system architecture.

Environmental and Genetic Factors

Influence population dynamics through environmental and genetic variables.

  • Integrate environmental factors like weather, terrain, and resource availability into population models.
  • Use genetic attributes (implemented in current LP version) to determine survival and reproduction rates.

Implement Collision Detection

Design and implement collision detection mechanics.

  • Develop collision detection algorithms.
  • Ensure interactions are correctly triggered upon collision.

Integrate Dynamic Audio System with Existing Systems

Ensure the dynamic audio system integrates smoothly with GeneticAttributes and entity systems.

Dependencies: #5 & #9

  • Map GeneticAttributes to corresponding sound parameters.
  • Develop an interface for the entity system to interact with the audio system.
  • Conduct integration tests to ensure seamless operation.
  • Debug and resolve any integration issues.

Implement Audio Parameter Storage System

Develop a system to store and retrieve parameters for sound modification.

Dependencies: #5 & #1

  • Design a data structure for storing sound modification parameters.
  • Implement storage and retrieval functions.
  • Integrate with GeneticAttributes and Save/Load systems.
  • Test the parameter storage system for reliability and performance.

AI Basic Foundations

Problem Description

LP currently lacks an AI system, hindering the development of dynamic behaviors for entities within the ecosystem. Without AI, entities cannot interact intelligently with their environment or other entities, limiting the depth and immersion of the gameplay experience. It also matters to make AI living by itself and not only being for the player purpose.

Proposed Solution

Implement foundational blocks for the AI system in LP to enable entities to exhibit simple behaviors, interact with their environment, and respond to stimuli. This involves laying down the groundwork for future AI development and creating a framework that can be expanded upon in later iterations.

The goal is to develop basic AI behaviors for entities, enabling them to perform simple decision-making and actions within a mock environment such as:

Alternatives Considered

Exploring alternative approaches such as finite state machines, rule-based systems, or pre-scripted behaviors for initial AI implementation in the project, considering the simplicity and scalability of each approach for laying down the foundational blocks.

Additional Context

The implementation of basic AI foundational blocks is crucial for kickstarting the development of LP's ecosystem simulation. While the initial focus is on creating simple behaviors and interactions, this feature request sets the stage for future expansions and enhancements to the AI system.

Integration of the Genetic Attributes with Creature Behavior

Integrate genetic attributes more deeply with creature behavior and interactions, ensuring that genetic traits influence creature AI, movement, and decision-making processes.

  • Identify key genetic attributes that should influence creature behavior.
  • Develop algorithms to translate genetic attribute values into behavioral parameters.
  • Integrate the genetic attribute system with existing creature AI systems to affect behavior dynamically.

Genetic Attributes System (DNA)

Problem Description

The current Genetic Attributes System lacks depth and flexibility, hindering the ability to create diverse and dynamic creatures within the ecosystem. While it provides basic genetic attribute management, it falls short in supporting advanced genetic interactions, evolutionary dynamics, and integration with gameplay mechanics.

Proposed Solution

Enhance the existing Genetic Attributes System to support a wider range of genetic traits, dynamic attribute evolution, and seamless integration with creature behavior and interactions. This involves refining the genetic attributes structure, optimizing randomization mechanisms, improving the preset system, and integrating genetic attributes with creature AI and behavior.

Alternatives Considered

Developing a custom genetic attributes system tailored to the specific requirements of the game.

Additional Context

Improving the Genetic Attributes System is essential for creating a vibrant and diverse ecosystem within LP, enhancing player engagement and immersion. The proposed solution aims to address existing limitations while providing a solid foundation for future expansions and iterations of the genetic simulation mechanics.

Design Modular System Architecture

Outline the structure and components of the modular entity system.

  • Create detailed documentation or comments in code for the modular system architecture.
  • Define interfaces for body parts and entity customization.

Integrate Attribute System with Entity System

Ensure the attribute system works seamlessly with existing entity mechanics.

  • Implement methods for dynamically updating attributes.
  • Ensure compatibility with the modular entity system.

Identify Key Behavioral Attributes

Determine the most essential behavioral attributes for entities.

  • Define attributes such as movement speed, aggression, and resource preference.

Population Control Mechanisms

Prevent overpopulation and extinction by managing population sizes.

  • Implement carrying capacity limits based on environmental resources.
  • Develop feedback systems for population regulation, such as predator-prey dynamics and competition.

Develop Sound Modification Algorithms

Create algorithms to modify base sounds based on parameters such as species, gender, and age.

Dependencies: #40 & #5

  • Define parameters for sound modification (e.g., pitch, tone, duration).
  • Develop modification algorithms for each parameter.
  • Integrate algorithms with the base sound generation system.
  • Conduct initial tests to ensure modifications produce desired results.

Integrate the Terrain Framework with the Entity System

Ensure the terrain framework supports entity interactions and behaviors.

  • Develop methods for entities to interact with terrain features (e.g., collision detection, pathfinding).
  • Implement terrain influence on entity behaviors (e.g., movement speed, resource availability).
  • Ensure seamless interaction between terrain and existing entity systems.

Dynamic Event Logging

Implement a system to capture and log dynamic game events, such as interactions, progress, and environmental changes.

Implement Environmental Effects

Develop systems to simulate the effects of weather on the environment.

  • Implement effects such as wet terrain and snow accumulation.
  • Ensure weather effects influence entity behaviors.

Design Basic Interaction Mechanics

Problem Description

LP lacks a system for governing basic entity interactions making the world more living

Proposed Solution

Implement basic mechanics to govern entity behaviors, focusing on simple interactions like movement, collision, and resource acquisition

Alternatives Considered

Potential Static Interaction Patterns

Additional Context

Basic interaction mechanics will form the foundation for more complex interactions in future iterations

Testing and Validation for Behaviors

Test the behavioral attributes for functionality and balance.

  • Conduct testing to ensure proper functionality.
  • Optimize the system based on test results.

Refined Genetic Attributes Structure

Review and refine the current genetic attributes structure to accommodate a broader range of traits and interactions, ensuring coherence and consistency in creature generation.

  • Analyze the existing genetic attributes structure.
  • Identify areas for improvement or expansion to support additional traits and interactions.
  • Propose and implement modifications to the structure to enhance flexibility and coherence.

Implement Basic Interaction Mechanics

Design and implement basic movement, collision detection, and resource acquisition mechanics.

  • Develop basic movement patterns for entities.
  • Implement collision detection mechanics.
  • Design simple resource acquisition mechanics.

Incremental Saving

Develop a mechanism to update save data incrementally during gameplay, ensuring that changes are reflected in the saved game state without overwriting existing data.
Implement a system to periodically save game progress, updating only the relevant data to minimize storage requirements and processing overhead. This feature enhances player convenience and reduces the risk of data loss during gameplay.

Birth and Death Simulation

Simulate the natural lifecycle events of entities, including reproduction and mortality.

  • Implement methods to simulate births based on reproductive age and mating conditions.
  • Develop algorithms to handle deaths due to age, predation, and environmental factors.
  • Track population size dynamically.

Implement Population Dynamics System

Problem Description

LP currently lacks a population dynamics system, which is crucial for simulating realistic ecosystem interactions. Without this system, entities within the game cannot simulate natural processes such as birth, death, migration, and population control. This limits the realism and complexity of the ecosystem, affecting both gameplay and the educational value of the simulation.

Proposed Solution

Develop a Population Dynamics system to simulate births, deaths, population changes, and interactions among species.
Such as :

Alternatives Considered

Static Population Models:

Considered using static models where population sizes are fixed and do not change. This approach was deemed too simplistic and unable to capture the dynamic nature of real ecosystems.

Simplified Birth and Death Events:

Implementing only basic birth and death events without considering environmental and genetic factors. This alternative lacks depth and realism, making it less suitable for LP’s goals.

Additional Context

This feature will form the backbone of LP’s vision, driving the game's realism and complexity. It is crucial for creating an immersive and lifelike ecosystem where species interact dynamically. The initial implementation will use mock data and placeholder entities, with plans for future enhancements to incorporate more sophisticated models and real data.

Develop Basic Behavioral Attributes

Define minimal behavioral attributes for entities and implement attribute assignment and modification.

  • Identify key behavioral attributes.
  • Implement systems for assigning and modifying these attributes.

Implement Attribute System

Develop a system, such as integrating it along the GeneticAttributes System, for assigning and modifying behavioral attributes.

  • Implement systems for behavioral attribute assignment and modification.
  • Ensure attributes influence entity behavior.

Implement Basic Movement

Develop basic movement mechanics for entities.

  • Implement movement patterns.
  • Ensure compatibility with the existing physics system.

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.