Inspiration

As this will be the last Durhack that most of our members attend, we wanted to really focus on creating a challenging product that utilised skills that we weren't familiar with while also producing an eye-catching product. To that end, we wanted to stretch our creativity with our project submission this year rather than abide by a strict sponsor challenge, leading us to explore the idea of chains of events and the ways we could visualise consequences in a simulated space. While we initially toyed with the idea of building a cooperative factory-building game that focussed on maximising efficiency, we instead opted to create a cosier, friendlier experience that allowed players to collaborate with each other to explore nature. This led us to the idea of developing a web-based application for this exact purpose.

What it does

Our project simulates a natural ecosystem, complete with various animals, plants and changing climate conditions to abstractly model how each of these various factors interact with each other. On top of this, users can take matters into their own hands by forcibly altering the conditions of the simulation - which dynamically responds to the stimuli in realistic ways. The simulation is hosted on a webserver that can be connected to via any internet-enabled device, displaying a unique simulated world based on the client who connected to it. Finally, if two clients wish to collaborate, they can enter the same world ID on connection to the server and experience the simulation together in real-time.

How we built it

Our Project's web server is hosted with nodeJS, serving an HTML page that renders the data from our simulation. In order to handle the logic of the simulation, we used a separate C# server that processes all of the data and handles the behaviour of the different entities in it. The two servers communicate via a websocket and the C# server creates separate threads in order to handle the needs of multiple clients at once.

Challenges we ran into

While various members of our group were familiar with some of the coding languages that were being used, interfacing between the two proved challenging, especially given the recent .net framework update to C# that affected many of the networking libraries that our group had originally planned to make use of. We also opted to design and create assets for the project entirely by ourselves, which while enjoyable proved to be a very time-consuming task.

Accomplishments that we're proud of

Ultimately, we were proud to have an aesthetically pleasing product to display for our hard work. Furthermore, the use of multiple languages that some group members were almost entirely unfamiliar with while still producing something at the end of the hackathon was an achievement worth celebrating.

What we learned

While we started somewhat promptly with the development of our project, our scope ultimately proved too great for the time allotted. In future. setting more attainable goals regarding how many features we want to implement would help keep the pace of the group up throughout the hackathon, rather than getting stuck on semantical issues that would largely go unnoticed by the average client.

What's next for BioSphere

Given the modular nature of the codebase, the project can easily be expanded by adding more species, behaviours and systems to the simulation - diversifying the product as a whole and providing a more interesting and educational experience.

Built With

Share this project:

Updates