Category Archives: CSE

Showing off Student Work

Students work hard on their projects. I love to show off their work almost as much as they do. Here are some good examples of what students in the Mobile and Game Development program are creating.

Anonymous student id’s have been assigned to protect student privacy and are used unless otherwise noted.

Student #10000

This utilizes a relational data driven UI. It shows that the student was able to design the database for the NFL team schedule and use appropriate windows forms controls to present and manipulate that data. This project was created with C# and Windows Forms.

Student #19110

Partical System Waterfall
Partical System Waterfall
Level Design - Cavern
Level Design – Cavern

Some nice shots by a students work. These are levels being designed for a game.

Student #12213

Multiplayer Game
Multiplayer Game

This is a UI for the player select screen of a multiplayer paintball shooter. There is much more to this particular project which includes multi player network capabilities and good old fashioned FPS style action. I am sure we will have a movie of it in the near future.

We are careful to limit the level of violence in games we create so we avoid actual bullets and blood. The principles of detecting collisions and writing code calculate the path of a projectile don’t change much between bullets, paint balls, or arrows.  All this code was written by the student using C# and the Unity3D engine.

Student #17335

Catapult
Catapult

A model that this student has been working on in Maya which is slotted for use in one of the games being worked on.

Student #12241

LanCaster
LanCaster

This student is writing an app that will let me as the instructor broadcast my screen to the class during lecture. This is easier than trying to read text on a projector from across the room.

This is written in QT/C++ and uses multicast capabilities to send a video of the screen. In addition, the student is writing his own custom video codec to compress and stream the data.

Student #17213

SpaceShooter
SpaceShooter

This is the result of a student working through one of the projects in a text book. The student is learning about animation techniques, input control, and tracking game state of multiple objects.

Student #14231

Creating Fur in 3D
Creating Fur in 3D

We see here a student learning to create fur in 3D. Clothing, hair and fur are particularly difficult to get correct.

In addition, you see a movie animation of the solar system created in either Maya or Blender (I forget which).

 

Written By: Ray Pulsipher

Mono and ISPConfig 3

We use Linux quite a bit. Mono is  a great tool if your app is built to run on it. Installing it is easy enough (yum install mod_mono, a2enable mod_mono, etc..) but you have to take 2 additional steps to enable it on each website before it actually works.

As an admin user in ISPConfig, go to the site and the “Options” tab. In the Apache Directives paste in the following code (replace website.com with the name of your site).

MonoAutoApplication enabled
 MonoDocumentRootDir "/var/www/website.com/web/"
 MonoServerPath example "/usr/bin/mod-mono-server4"
 MonoApplications website "/:/var/www/website.com/web/"
 Alias /mono "/var/www/website.com/web/"
 <Directory /var/www/website.com/web/>
 SetHandler mono
 MonoSetServerAlias website
 AddHandler mod_mono .aspx .ascx .asax .ashx .config .cs .asmx
 </Directory>

After that, make sure to change the ownership of the web folder to www-data (or whatever username your apache web service is running under) .

chown -R www-data /var/www/website.com/web

Once you turn this on, throw an ASPX page in the folder and try it out.

If you have a problem you can look for errors here:

tail /var/log/apache2/error.log

Be aware that turning this on will mess with other scripts specifically PHP.

Written by: Ray Pulsipher

Games Behind Bars – Serious Game Association Presentation

Slides from our presentation at the Serious Games Summit Sept. 2013

Games Behind Bars: Serious Play for those Doing Serious Time

Nearly two million people are incarcerated each year, many with severe educational and emotional needs. Learn how Peninsula College in Port Angeles, Wash. is using game design and development to prepare offenders at Clallam Bay Corrections Center for life after prison. Discover the challenges of providing high-tech education in a non-internet connected world and how the instructors have overcome it. Find out how you can be involved in serving this unique population. 

Written By: Ray Pulsipher

Khan academy offline (KALite) – Run on port 80

KALite is a great tool if you want to bring the resources available to an offline environment.

We run a virtual server with KALite. We point a DNS name at it an everything, but we don’t like that it runs on port 8008 rather than port 80.  Here is a recipe to make it work on a Debian 7 server without having to change configuration of the KALite script.

Problem: You can change KALite to run on port 80, but you have to run it as the root user, which it doesn’t want to do.

Solution: The firewall can automatically forward all traffic from port 80 to port 8008. KALite doesn’t know anything has changed.

Step 1 – Create a file on the debian server: 

nano /etc/network/if-pre-up.d/iptables

Step 2 – In that file paste this code:

#!/bin/sh
#Redirect all traffic from port 80 to port 8008
# (khan port)
iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 8008

NOTE: The iptables command wraps here and it should be all one line when you paste it.

Step 3 – Chown file so it is owned by root:

chown root:root /etc/network/if-pre-up.d/iptables

Step 4 – Chmod file so it can be run:

chmod +x /etc/network/if-pre-up.d/iptables

Step 5 – Reboot:

Assuming you have KALite starting on reboot, you should be able to access it without the :8008 at the end now.

Written By: Ray Pulsipher