Hello! Welcome to the personal site and portfolio for Matt Critelli. I am a game & web developer who recently graduated from the Rochester Institute of Technology's Game Design & Development major. This site houses examples of my work and the various projects I have been a part of. Most of these can be found under the Works section, while a more formal breakdown of my skills & experience can be found in the Résumé section. As always, please feel free to contact me with any questions regarding any of the projects I am involved with (or check their websites for specific contact details) at matt at matt-critelli.com.

Nokia Ad Mockup



Over the past year I've been gaining more and more experience with both WebGL and OpenGL, and I've recreated the first part of Amobee's Nokia Lumia ad to showcase some of what I've learned. You can rotate the camera by clicking and dragging the mouse (or by touching and dragging on a mobile device), zoom with the scroll wheel, and pan by holding down the right mouse button. Clicking on a color block will trigger transitions between colors.

This example uses ThreeJS to handle some of the rendering - like setting up the basic WebGL renderer, loading meshes and textures, etc. While ThreeJS isn't always fast enough for production uses (although it has improved greatly), for a prototype I see no reason to reinvent the wheel.

All animations are handled in-program with a custom AnimationTween class that allows for precise control over how and when animations fire. Color transitions are handled with a fragment shader that uses the alpha channel of each panel texture to easily swap out a background color vector that is controlled with an AnimationTween. Mouse-panel hit testing is done with a raycaster and use of the getBoundingClientRect() function to accurately generate mouse coordinates no matter where the WebGL context is placed on the page.

Full source is available here (.rar, 1mb).




NB: Best viewed in Chrome or FireFox.

A quick 3D physics demo done in WebGL with ThreeJS. On the physics side, RK4 integration is used to calculate all physical properties (incl.angular momentum and angular rotation). Collision detection is done via the 3D separating axis test (and is the only Javascript implementation I've seen online).

Full source is available here (.rar, 162kb).

Death in Games Presentation



A presentation about how death is used in video games - both in terms of mechanics and representation. Note that this was intended mainly for a non-game playing audience. Make sure you press N to read the notes on each slide.

Firefox sometimes doesn't like to load the embedded Youtube videos. Best viewed in Chrome.

WebGL: 3D Matrices & Lighting



NB: This demo is best viewed in Chrome; Mozilla has yet to implement the slider input type in Firefox.

A slightly expanded version of an assignment for a class. This demo shows the use of 3D transformation matrices in WebGL without the use of ThreeJS or any other WebGL library.

The majority of the code was written by me; however, I do make use of a few handy libraries: jQuery - for the HTML interface; WebGL Utils - some handy browser-neutral functions provided by Google; WebGL Debug - pretty much the only way to debug anything WebGL.

The entire source package is available to download here.

Serious Social Games: A Paper


This is a paper written for and accepted into the 2012 IEEE International Games Innovation Conference, held in Rochester, NY. To download the paper, click here (.doc, 1.1mb).

Abstract: Given the lack of modern business simulations, a collaboration of three colleges at RIT sought to design an social, serious game (StoreWorld™) to reach out to business schools throughout the world. The proposed paper helps to address how to bridge the gap between social and serious game design by outlining the development process to assist other developers. In particular, the paper uses the case study of teaching introductory business skills. With StoreWorld, students and faculty worked together to make a game that introduces fundamental business concepts by having players run a virtual clothing store. Working in teams, players balance marketing, reputation, employees, and a multitude of computer-generated shoppers to profit more than everyone else playing StoreWorld. The game generates shoppers that use fundamental business patterns, which nudges players to learn how to balance costs, inventory, and many other factors involved in running a store.


Producer/Designer/Server-side Engineer


NB: If the game stops loading at Stage 3, simply refresh the page and it will finish loading.

StoreWorld is an educational business game in which students get to run their own clothing stores while competing against their classmates. StoreWorld has been in development, in one form or another, for 3 years, and has been a collaboration between the School of Interactive Games and Media, the College of Imaging Arts and Sciences, and the Saunders College of Business at RIT. In its current form, StoreWorld is an isometric RPG where players control an avatar in a virtual world that is populated entirely by their classmates. Students will have to compete against each other in order to see who is the best businessperson - and who gets the best grade.

StoreWorld entered its final phase of active development in the Spring of 2012, bringing with it a new group of developers. I joined the project as its new producer, and by the summer became the lead designer and server-side engineer as well. StoreWorld introduced the entire development team to a slew of interesting and challenging problems - like how to implement a fully-functional player-based economy, and how to create a "real-time" game that doesn't have to actually be running all of the time.

By the end of the Summer quarter, when StoreWorld's development reached an end, the dev team had exceeded the goals set for it back at the beginning of the Spring. Not only had the team implemented an advanced player-based economy (designed in part by Prof. Steven Gold of the Saunders College of Business), converted a client-side game into a server-side game (for security and data consistency reasons), but we had also implemented fully-functional financial documents, procedurally-generated market research reports, a loan & banking system, more than doubled the size of the in-game catalog, redesigned the entire UI, and restructured large portions of the code to be more manageable. The project has been a fantastic view of the true capabilities of students, and the resulting product highlights the skills of the entire development team.

Some of these efforts and talents have been detailed in an academic paper, described in the section above.

StoreWorld recently finished it's first official testing session, and received high marks from the students who played the game for 5 weeks. The game is currently in an exploratory phase as we decide what direction to take it in. We hope that the game will be used in an expanded testing session in local schools this Fall.




Blocku is a math-based puzzle game where players match sides of blocks to solve a given math problem. When a user solves a puzzle, they are given a score based on the time it took to complete the board, the difficulty of the board, and how many times they moved the blocks.

The game has the ability to generate random square boards for the user to play - they can specify the size of the board, the number range for the answer, and what type of problem they will solve (addition, subtraction, multiplication, or division). Blocku will also come with an accompanying editor, which will allow teachers to create boards for their students customized for their own curriculum.

Blocku was entered into the inaugural National STEM Video Game Challenge, an educational game development competition sponsored in part by the Whitehouse and Microsoft, and finished in the top 10. In total, Blocku has had 4 releases - in Python, Flash, C#/XNA, and HTML5/Canvas. It is currently in its fifth development cycle, and will soon be released on the Sifteo Cubes, an innovative gaming platform that is quickly gaining popularity. This will most likely be the final version of the game, and when it is released its source code (in C++) will be released as well.


Producer/Designer/Web Developer


SourceForts is a class-based, multiplayer CTF game where the players build their own fortifications each round. Using the Source engine's incredible physics system, players can position blocks of varying sizes to protect themselves and their flag during the Build phase. Once the Build phase is finished, the wall separating the two teams comes down, and each begins the assault on their opponent's base. Players can choose from 5 distinct classes, each of which bring unique abilities to the team, and all of which are required for success. Teams are awarded 1 point for touching the flag and 100 points for successfully bringing it back to their own flag. At the end of the Combat phase (or phases, depending on the server), the team with the most points wins.

The current version of SourceForts (v1.9.4.1) includes 11 maps, all of which have received a graphical update in preparation for the latest release. Anyone in the community can create their own maps using the Hammer world editor from Valve and then submit those maps for inclusion into the next official release of SourceForts.

The next version of SourceForts is currently under development and will bring new maps, gametypes and (finally!) player models. The development team is made up of current students and recently-graduated students, and is spread across 5 countries.

At its height, SourceForts received TV and magazine coverage, was one of the first mods to be added to Steam, and enjoyed over 1000 concurrent players for several months.

Matt Critelli

matt@matt-critelli.com | 908-334-2283 | Rochester, NY

Download: DOC | PDF

StoreWorld, Rochester, NY

Producer, Designer, Server-Side Developer, March 2012 - Aug 2013

  • Managed a team of 12 programmers, artists and business consultants as we created an educational game designed to teach the basics of running a business.
  • Restructured the development team, implemented a new project management tool, and instituted code documentation standards.
  • Controlled a $100,000+ budget and was responsible for defining project's short- and long-term goals and budgets, as well as potential monetization strategies.
  • Set up and managed several live events and demos to showcase the game to students and educators.
  • Deployed the game and led instruction during the game's first use in a classroom of 38 students.
  • Developed potential strategies for marketing and monetizing the game.
  • Designed and implemented market simulation and customer AI, designed and developed much of the game's server backend with PHP/MySQL and administrated the game's Ubuntu server.
  • Worked with faculty to deploy the game and secure funding, led instruction during the game's first use in a classroom.

RIT CIAS, Rochester, NY

Simulations Programmer, September 2011 - March 2012

  • Programmed crowd dynamics simulations for use in a Master's thesis on anomaly detection.
  • Produced logs of these simulations which are later analyzed separately, with the intended purpose of creating autonomous software to detect anomalies, primarily for military/law enforcement use.

First Solar, Inc., Bridgewater, NJ

Training Program Designer, June 2011 - August 2011

  • Designed a 3D simulation of the construction of a solar plant, with the goals of optimizing construction in terms of time and money.
  • Developed a design document detailing the current functions of the program, future features and production schedule needed for completion of the project.
  • Developed a 3D terrain engine with the following features: image map based multi-texturing, multiple vertex/index buffers, quad-tree spatial partitioning and random generated terrain.
  • Primarily worked independently, but gathered specifications and feedback from company engineers.

RIT, Rochester, NY

Teaching Assistant/Grader, September 2010 - March 2012

  • Assist professors during lectures and lab sections to facilitate student learning.
  • Work independently outside of class to grade various assignments.

NJ Tech Medics, Neshanic Station, NJ

Consultant, November 2009 - January 2010

  • Assisted in the design, development, and implementation of a web version of a trade magazine.
  • Worked with Drupal and PHP, with a focus on making the website visually pleasing while user-friendly.

Blocku - www.blockugame.com

Designer/Developer, September 2010 - August 2011

  • Written versions in Python, C#/XNA, and C++ (for the Sifteo game system.)
  • Wrote algorithm for generating a solvable board based on a given math problem.
  • Worked on general game logic, user input, UI design and game-web integration.
  • Developed a website, video demo and multi-page design document.
  • Placed in the Top 10 of the National STEM Video Game Challenge, an educational game development competition sponsored in part by the Whitehouse and Microsoft.

SourceForts - www.sourceforts2.com

Producer/Writer/Level Designer/Web Dev, 2008 - September 2012

  • Managed social media presence across multiple outlets (Facebook, Twitter, ModDB, Steam).
  • Developed and maintained website and 1,000+ member forum.
  • Wrote press releases and developed promotional media (images & video).
  • Led design on the planned sequel.
  • Laid out development roadmaps and production schedules for patches and sequel.
  • First completely independent modification to be featured on Valve’s Steam platform.
  • Led a development team of 10 developers and a testing team of 15 across 5 countries.

Proficient Familiar


JS/jQuery, MySQL, PHP, CSS

Adobe CS, Visual Studio, FlashDevelop, Aptana

C++, Python, Unity, GLSL

SQLite, WebGL

SVN, git

BS in Game Design & Development, Rochester Institute of Technology

3.57 GPA, 3.8 Major GPA - Dean's List All Quarters

Graduated December 2013 w/ Honors