Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dab0mb/radial-snake

A tutorial for creating a Tron-style game
https://github.com/dab0mb/radial-snake

cpp emscripten es6 game-development javascript tutorial

Last synced: 21 days ago
JSON representation

A tutorial for creating a Tron-style game

Awesome Lists containing this project

README

        

# How to implement a game engine in JavaScript and build a Tron-style game

[//]: # (head-end)

![snake-demo-full-small](https://cloud.githubusercontent.com/assets/7648874/21073892/ae331a8a-bed2-11e6-9141-9554f9bb808b.gif)

This tutorial will guide you through the following steps:

- [**Step 1**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step1.md) - Creating a server
- [**Step 2**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step2.md) - Creating a game engine basis
- [**Step 3**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step3.md) - Creating a splash screen using a keyframe animation engine
- [**Step 4**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step4.md) - Creating a main menu screen using a font engine
- [**Step 5**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step5.md) - Creating a snake and related geometry shapes
- [**Step 6**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step6.md) - Creating a complex game screen with multiple layers
- [**Step 7**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step7.md) - Bonus! Re-implementing geometry in C++

Make sure you have the following software installed:

- NodeJS with an ECMAScript 2015 support (v6.0.0 and above).
- Any web-browser which supports ECMAScript 2015, with a preference for Google Chrome.

> The final project is a hybrid of C++ and JavaScript. A JavaScript **only** version of this tutorial is available [here](https://github.com/DAB0mB/radial-snake/tree/master%40step6%400.1.3).

This tutorial is mostly based on pure JavaScript, so people can have a deeper understanding of the language and its dynamics. In addition, this tutorial makes a great practice on how to build a nice architecture for complex systems, which can then be expanded and maintained with ease. Yes, it is specifically designed for games, but I truly believe that video games can easily get messed up if not planned and designed properly in terms of object oriented relationships. They are naturally more complicated then any web-app you gonna see out there, so if you can create a game engine and understand its flow, creating a web-app would be a piece of cake for you. By the end of this tutorial, your general sense for programming should be enhanced greatly.

So hopefully that I got you pumped up by now, let's get started!

[//]: # (foot-start)

[{]: (navStep)

| [Begin Tutorial >](.tortilla/manuals/views/step1.md) |
|----------------------:|

[}]: #