Hello! My name is Marcus Dubreuil. I've been programming and enjoying games since I was 10 and I currently go to the University of Pittsburgh for a double major in both Computer Science and Music Composition. Click any of the tabs at the top to see some of the stuff I have done!
Some notable projects:
RegionWars: An online game written in NodeJS and HTML5 grpahics library that uses Voronoi Diagrams and Lloyds relaxation to generate pologinal maps for the players to play on. There can be any number of players who fight till there is a winner in each of 3 colored regions. Each region corresponds to an ability so the player must pay attention to what region the player is in in order to succeed. Original idea by Ethan Defrank
Bad Driver: Live the life of a Bad Driver! Bob and weave your way through traffic at high speeds in order to reach your destination the fastest..... please don't do this on an actual highway.
It's essentially a 2D top-down racing game where you have to click 1 of 3 lanes to continuously dodge vehicles you are trying to pass. It's very simple game made for all ages to be played at your leisure. There are currently 2 seasons of 10 levels, more may be added soon!
Java Game Tutorials: These were made while I was in my senior year of high school after many years of development using the java graphics library and during an internship I had helping out in the AP Computer Science class. The series is made for people who are at the end or have completed an AP Computer Science class in high school or something like it like an online alternative. The goal of the series is to give the viewer the tools required and the practices needed to create any game of their choosing in 2D using just CPU graphics.
Bowed: An online game written in NodeJS using the HTML5 browser graphics library. It's pretty much a crossbow war with friends where the map will move dependant on who is winning. The game gets progressively more fun the more players you add!
Live the life of a Bad Driver! Bob and weave your way through traffic at high speeds in order to reach your destination the fastest..... please don't do this on an actual highway. Bad Driver is a game made for Android and IOS.
How to play:
Google Play: Bad Driver
IPhone and IPad: Bad Driver: Swerve Through Traffic
Here is a tutorial series for making a 2D game using just Java and only the libraries included with java. I would recommend starting with Lesson 4 to avoid the tedious setup process of getting a graphical solution out of the java graphics libraries. If you are at all interested in how these libraries work you can still watch the first 3 lessons, just known that they are of worse quality since they are recorded in an actual classroom environment.
The only prerequisites needed is a basic knowledge of java (A hobbiest or high school class level of understanding) and a working copy of java JRE and java JDK (make sure your PATH is set up correctly and both the java and javac commands work in your terminal or console.
Intro Lessons (for an understanding of the Java graphics libraries) (it's recommended to skip to the Graphics Lessons):
Lesson 1 - Setup and Graphics Buffering
Lesson 2 - Handling Threads
Lesson 3 - Render/Update and accessing pixels.
Graphics Lessons (learn how to work with an array of pixels to render and manipulate objects on the screen) --First download the final workspace from the intro series--:
Lesson 4 - Rendering Images
Lesson 5 - Rectangles! Yep...Rectangles!
Lesson 6 - Sprites and Transparency
Input and Mapping Lessons (Mouse and Keyboard Input and mapping our sprites to specific maps layed out in files.) --First download the final workspace from the Graphics series if need be (i'd recommend going through the graphics series)--:
Lesson 7 - Tiles and Maps
Lesson 8 - Player and Input
Lesson 9 - Editing/Saving Map
Utilies (Great utilities to use selectively that provide some sort of functionality or make life easier) Each utility has a different requirement but it's recommended to complete the Input and Mapping series first. --If you must, download the final Input and Mapping workspace--:
Lesson 10 - Animated Sprite
Lesson 11 - Animated Player
Lesson 12 - Graphical User Interface and Tile Palette
What you can do! (Things you can do with the engine. How you can manipulate it to your own game) Lesson requirements are random.
Lesson 13 - Making a Platformer
...More coming soon!
Source Code for each lesson (Last Resort)
Here is a video tutorial on how I created this online portfolio using just HTML and CSS:
RegionWars is a game made in NodeJS and a HTML5 canvas in which any number of players fight to win in an arena where there are 3 regions each with their own ability.
- In the green region you can fire a ball (left click)
- In the purple region you can deflect balls with a barrier (toggled with left click)
- In the blue region you move much faster
The game server and client is programmed in NodeJS and the map generation client is programmed in LibGDX. This Timelapse shows the course of the whole project took. I started with testing out a new type of map generation I'd been interested in called Voronoi diagrams. For those of you interested, the map generation also used Lloyd's relaxation and for a more realistic pseudo-randomization it used Perlin noise. I also anticipated writing the entire game with LibGDX but over the course of the game's development decided the project should be moved over to NodeJS since the most dominant feature of the project is networking and Socket.io is a fantastic, fast, and easy protocol. This also allows for a more wide range of devices to play the game.
- Click here for a timelapse recording of the entire development process
Here is just a small collection of projects I made featuring Perl 6 and the Mojolicious Web Framework.Pollite:
A strawpoll clone that allows to user to enter a poll title and 4 options. Then a custom link is created for that poll.
Example of custom link: http://pollite.marcusman.com/poll?id=KEKSKTKGLR.
An item quiz based on all of the items in one of my favorite games, Old School Runescape.
This program finds a random item and then either creates an easy question with other random items or more likely creates a more challenging question by finding other items containing similar words.