We wanted a continuation of our previous project which was also aimed to educate young kids about coding. Personally, we have always felt that the best way to learn was with something fun, and there's nothing better than that than a video game!

What it does

What we have now teaches the concepts of coding. It tells the player what a method is, and that despite it being one little line of code, it can carry a lot of stuff within it! The player types in methods to move, and your goal is to avoid obstacles and reach the door!

How we built it

Our original plan was to build it using JavaScript. However, we decided that XNA would have been more powerful and well suited to our needs. We used Visual Studio to code it and the sprites were drawn in PhotoShop.

Challenges we ran into

The first challenge was that we could not display the user's input since XNA doesn't work with texts as easy as Console.App or Windows Form. To get around this, we ended up creating our own way to detect and collect keys pressed.

Our second issue was spawning items on the board. We had an array of boardObjects. Each object had to be coded with an algorithm that allows it to fit comfortably on every screen size. To make it easier for ourselves, we ended up coding a method that returns a Vector2 (A Point on the screen) when you input any number in the array. This made it extremely easy for us to put in sprites and move it since all we had to do was change what x or y location the sprite was and the draw method would update it appropriately.

Accomplishments that we're proud of

We're really proud of our spawning since it randomly generates locations on the board. It runs checks to make sure there's nothing else on that tile before spawning. The exit and start is also randomized each time! (However, they're on the sides to make it more challenging for the player.) The text is also our own work and we're really proud of it as it was the first time we've coded it ourselves. We faced a lot of challenges but we overcame them all with enough testing.

What we learned

We learned a lot this hackathon. In addition to summarizing what we've learned in class, we learned how to properly use it in one big project. In addition to that, we learned how to create functions that we normally take for granted such as saving and comparing typed inputs. We thought that Caps, and other symbols were a given, but we were wrong.

What's next for KidsWhoHack

We have tons of ideas planned!

Optimize our text method Make it more easy to use and smooth.

Add Enemy function Our original plan was that for every turn the Player moves, the enemy moves too! This would require us to add new Methods such as Attack(); and Wait();. Perhaps even a bow and arrow with Shoot(); To balance that, we'd limit the amount of arrows we have.

Add Animations & Sprite "Rotation" We would add in and draw our own walking, attacking, standing animation. We could also add on to our current methods (moveRight(); etc.) by changing the sprite depending on what direction the player decides to go.

Add Health (# of tries), Basic UI, Levels Health is depleted when you are hit by an enemy or other hazard. Whenever you're hit, a small animation would play and you would restart but with a different randomly generated level. The UI would include a Title Screen, Game Over etc. and our levels would include a basic tutorial explaining what each method does and why it works and it would get more and more complex with more enemies as time goes on.

Overall, we're really hopeful for this project. We feel like it has a lot of potential to be both a good game and a great tool for beginners to learn how to code!

Built With

Share this project: