## Inspiration

Being lost on campus and not being able to find MacDonald Harrington when I was a first year. We also love cloudberry so we wanted to make him a large part of our project. We first wanted to make a game where you had to find Cloudberry like so many McGill students do on campus. But this idea slowly evolved into a game where you play as Cloudberry and collect items around campus. Since the game takes place on McGill campus, we thought it would be interesting to make it double as an interactive map to help navigate around campus.

## What it does

The game consists of the player controlling Cloudberry to move around McGill campus. The aim of the game is to gain points by collecting various items such as berries, acorns and miscellaneous things found in trash cans. Trash can items are random and can have different side effects like giving you a boost if you find coffee or reduce your points if you find a rotten egg. As well, Cloudberry must hide from students who are trying to spot her and take pictures of her.
On top of this, players can also use this game to help them get around McGill since the map used in game is an accurate map of McGill Campus. Walking in front of buildings and pressing space shows information of the building such as the name, the opening hours, the available microwaves etc.

## How we built it

### Act I: A bird guides our way

Our journey begins at 12pm, on January 27th. As we decided on what project we’d like to do, one question remained, how would we build it? As we pondered what platform we wanted to develop for, or tools we wanted to use, once clear option appeared to us. Flutter. What better tool to use than one with a cute bird as mascot?
Thus, we began using Flutter and Flame, a game engine made with Flutter. We began by following Google Codelab tutorials and sample projects online to understand how to use this engine. The result 10 hours later? An amazing amount of no progress. Our art team had cooked up the perfect pixel sprites to use for our project, but as for development? Flame was a terrible choice for beginners. We were still struggling to display the map as a background or even just animate the main player character. In an act of desperation, we did the only reasonable thing to do at this stage: we started anew, but with Unity.

### Act II: Uniting in finishing the project

With little time remaining on the clock, we had to speed run our entire project with Unity. After a brief interlude competing in the Mario Kart tournament, we were progressing at the speed of light. In under two hours, we managed to add the map, player movement and control, as well as camera movement. Buoyed by this success, we moved on to implementing collision with our beautiful pixel art buildings of the McGill campus, and a pickup system for the items we wanted our player to pickup. Unity really helped us develop this in such a small time, and it was quite the experience to switch tools halfway through our project. Thus, Cloudberry Campus was born.

## Challenges we ran into

Our main challenge in this was developing our game using Flame. Very few tutorials covered what we had wanted to implement, so as neophytes to Flutter and Flame, it was incredibly hard to figure out. We spent several hours checking tutorials, forum posts and documentation, but we made very little progress. This challenge was so hard to overcome that in the end, we changed our tools to use Unity instead so that we could have a minimum viable product. In the end, that was why we ended up making Cloudberry Campus with Unity.

## Accomplishments that we're proud of

We are very proud of how the graphics of the game turned out as they not only are an accurate representation of McGill and Cloudberry but are also aesthetically pleasing even though they are simple.
As well we are proud to have implemented what we have so far in Unity as most of us did not have any experience with it coming into this. This is especially true considering we only switched from Flutter to Unity almost half way through the Hackathon.

## What we learned

We learned a lot about how to code on Unity such as collision detection and camera angles. As well we did gain a lot of experience and insights on Flutter although it did not turn out like we had envisioned.

## What's next for CloudBerry Campus

* Adding students that roam around campus
* Adding more items
* Expanding the map to all of the McGill downtown campus
* Expanding the map such that Cloudberry can enter buildings
* Adding more iconic McGill lore such as Frank Ferrie, samosas etc.
## Inspiration

Starting a new school year can get exciting, especially before it started because we're all curious to see who will be in our class. However, the number of people that are in our high school class is nothing compared to those university lectures, more specifically, engineers. We can't imagine what it would be like to have received thousands of schedules in a Facebook group or a group chat. And so, we decided to create an App.

## What it does

This app allows university students to get easy login access as there will be an API system that would connect their university to our very own app. In this app, they'll be able to see all of their classmates and be able to interact in a group chat where they can ask for help in the course throughout the year, or just simply send memes and more.

## How we built

We built the app prototype using Adobe XD

## Challenges we ran into

Some challenges we ran into was that we were thinking too broadly into the concept. At first, before all the APIs, we were thinking how if an account has been created, there could be trolls, stalkers, or just strangers in general that could have access to the code which could harm the safety of the students.

## Accomplishments that we're proud of

Some of the accomplishments we're proud of would be that we creating a successful app prototype that reflects on how we would want our app to work. Another thing worth mentioning here is coming up with a problem and creating a solution that targets a specific demographic, in our case, mostly first-year university students.

## What we learned

Through this experience, we have learned that creating an app, even a prototype, takes a tremendous amount of time and effort. A lot of meticulous details that had to be added in which was the main reason why it took so long to create.

## What's next for Student Acquainting App

The next step we would take towards SAA would be a stronger support system so that if there happen to be a lot of people using the app at a given time, it would hopefully not crash and will hold the number of people using it. Another step would be creating an actual API for the app as an API was only one of our ideas and has not been executed yet.
## Inspiration

Virtually every classroom has a projector, whiteboard, and sticky notes. With OpenCV and Python being more accessible than ever, we wanted to create an augmented reality entertainment platform that any enthusiast could learn from and bring to their own place of learning. StickyAR is just that, with a super simple interface that can anyone can use to produce any tile-based Numpy game. Our first offering is *StickyJump* , a 2D platformer whose layout can be changed on the fly by placement of sticky notes. We want to demystify computer science in the classroom, and letting students come face to face with what's possible is a task we were happy to take on.

## What it does

StickyAR works by using OpenCV's Contour Recognition software to recognize the borders of a projector image and the position of human placed sticky notes. We then use a matrix transformation scheme to ensure that the positioning of the sticky notes align with the projector image so that our character can appear as if he is standing on top of the sticky notes. We then have code for a simple platformer that uses the sticky notes as the platforms our character runs, jumps, and interacts with!

## How we built it

We split our team of four into two sections, one half that works on developing the OpenCV/Data Transfer part of the project and the other half who work on the game side of the project. It was truly a team effort.

## Challenges we ran into

The biggest challenges we ran into were that a lot of our group members are not programmers by major. We also had a major disaster with Git that almost killed half of our project. Luckily we had some very gracious mentors come out and help us get things sorted out! We also first attempted to the game half of the project in unity which ended up being too much of a beast to handle.

## Accomplishments that we're proud of

That we got it done! It was pretty amazing to see the little square pop up on the screen for the first time on top of the spawning block. As we think more deeply about the project, we're also excited about how extensible the platform is for future games and types of computer vision features.

## What we learned

A whole ton about python, OpenCV, and how much we regret spending half our time working with Unity. Python's general inheritance structure came very much in handy, and its networking abilities were key for us when Unity was still on the table. Our decision to switch over completely to Python for both OpenCV and the game engine felt like a loss of a lot of our work at the time, but we're very happy with the end-product.

## What's next for StickyAR

StickyAR was designed to be as extensible as possible, so any future game that has colored tiles as elements can take advantage of the computer vision interface we produced. We've already thought through the next game we want to make - *StickyJam*. It will be a music creation app that sends a line across the screen and produces notes when it strikes the sticky notes, allowing the player to vary their rhythm by placement and color.