Radioactive Evolution
Welcome to the official website for Radioactive Evolution, a HTML5 canvas game developed for an assignment at university. Now that we are past the assignment deadline, I've released the game as open source software.
Premise
The local nuclear power plant has been disposing of its waste in a nearby lake. The plankton in that lake is becoming radioactive.
As the player you control a fish, avoiding larger predators and eating plankton. The radioactivity of the plankton accelerates your evolution; you choose how to spend your hard-earned XP and how you should evolve next.
Do you improve your predator avoidance through purchasing the camouflage ability, or concentrate on growing so that you can eat fish smaller than you, or become poisonous and take down the mightiest fish? The choice is up to you!
Architectural Description
The game is written in object-oriented JavaScript and HTML5 and is designed to be modular and self-contained. Indeed, game.html requires just a canvas and a single script call. The intention was always to release this software to the public domain as open source software, so I've programmed with maintainability in mind, making use of object-orientation, factory methods and inheritence.
Cross-browser compatibility
I've tested the game in all major browsers. Here is a summary of the game's cross-browser properties:
![]() |
![]() |
Fully functional. |
![]() |
![]() |
Fully functional. |
![]() |
![]() |
Fully functional, though the cursor doesn't disappear during gameplay. |
![]() |
![]() |
Safari has audio play and preload disabled by default, so sounds don't work in this browser, but the game is playable. Like in Opera, the cursor does not get hidden during gameplay. |
![]() |
![]() |
Internet Explorer consistently crashed when trying to use audio elements. I've removed the audio aspects of the game like in Safari, and now the game is playable. |
Credits
I've used a number of public domain libraries:
- RequireJS - JavaScript file and module loader - used in Run.js for downloading the game files asynchronously and handling dependencies.
- Mousetrap - JavaScript library for handling keyboard shortcuts - used in the implementation of the alternate controls and in the achievement-unlocked-cheat-codes.
- freesound - collaborative database of Creative Commons Licensed sounds - the source of all of my game sound files, which I then clipped and condensed for transfer over a network using the Wavepad sound editor.
- I used copyright-free images from the following sites: MediaLoot, FindIcons, Mayang and Vector Open Stock.