Ramblings of a maniac

CS488 Project Finished

Entry

The project is done! A website was created, documentation was bound, and demonstrations are finished!  To view, click on either of those links! I recommend starting with the website and at least taking a small look at the user manual.

I recommend the latest version of Chrome (or Firefox) running on a Windows platform.  If you do not have the latest version, then I cannot guarantee you will see anything at all.  I tested it on Firefox latest for Ubuntu x64 and got some strange visual artifacts.  I’m not sure if this is driver or browser difference.  Firefox seems to run a bit slower and may even prompt you to terminate long-running scripts!  Just bear with it and let it continue, and it should work well enough.  This was tested on a 2GHz dual core machine with NVIDIA GeForce 9500M GS and should easily attain interactive frame rates.

The project will hopefully continue to evolve on GitHub.

This is the final project for CS488 – Introduction to Computer Graphics.  I decided to create a SRPG engine in WebGL.  I met 7/10 of the objectives I set for myself.  I’m somewhat pleased.  Mostly pleased.  Sadly, there just isn’t enough time and personal energy to meet them all!

The primary benefits of a WebGL implementation were:

  • easy version distribution of source
  • source files are somewhat easily viewed, for the technologically curious
  • network multiplayer should be very easy to add
  • stream in new maps/playfields to the game via AJAX
  • challenge wrt a limited OpenGL context ;)
  • no need to constantly compile!  or try to compile, but find I made a syntax error.  I can load up the page, be alerted of any script errors in the console immediately.
  • no need to change the header files for a code logic change, and the corresponding compiling/linking errors everywhere
  • loose typing allows me to set anything to anything, but this is also a double-edged sword as sometimes I forget what is supposed to be what
  • ever-increasing portability

The primary downside is being stuck with only JavaScript.  I will investigate if perhaps CoffeeScript can allow me to use more elegant code abstractions.  For example, it’s only slightly obtuse to implement the OO pattern.  Just enough to be painful at times.  Other times, a function is called but loses its scope — ‘this’ now refers to the document root scope rather than the “object” that in which it inheres :(

The terrain is composed entirely of functions of improved Perlin noise.  For more visualizations of this, please see my work in the lab.

For more details and descriptions of the project, please see the page I created as per course requirements.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>