Game Design + Programming

 

This page contains screenshots and descriptions of games and game demos, a few playable demos of game mechanics, a zip of a few sample programs, and several screenshots and descriptions of computer science and design related work. There are also a few hyperlinks to YouTube videos showing programs in action.

Force Blast (C# + Unity 3D Demo)

 

 

 

 

You can run my Force Blast Demo in your web browser!!!

 

click here to play Force Blast ONLINE! (it takes a few seconds for Unity to install)

 

 

 

 

 

 

the game starts with a huge randomized sphere of girders falls from the sky... lots of stuff to force blast

 

 

 

the force blast is very powerful, and when used in quick succession it's super fun to demolish the towers and girders

 

 

 

the force blast discs blasting a path through a dense field of girders

 

 

 

the camera moves closer to the player so it doesn't go through the ground

... also, it's fun to hit the first tower so it falls over creating a chain reaction that knocks over all 4

 

 

 

it's also fun to hit I-beams into the towers at a distance

 

 

 

you can double jump up to the top of a tower

 

Boids Flocking (C# + Unity 3D Demo)

 

 

 

the demo starts with the player's boid far away

 

 

 

You can run my Boids Flocking Demo in your web browser!!!

 

click here to play Boids Flocking ONLINE! (it takes a few seconds for Unity to install)

 

 

 

 

 

 

Boids Flocking demo video

 

 

 

randomly placed boids start to form flocks at the start

... the large waterdrop in the center of the world is just for reference

 

 

 

because of randomization built into the flocking behaviour, sometimes the boids form large or small flocks

 

 

 

 

Hover Tank (Unity 3D Gameplay Demo)

 

 

 

 

Steps to download and run the program:

1. Click the red download button above to download the zip file containing the game to a Windows PC

2. Unzip the file (eg. onto your desktop)

3. Navigate into the newly unzipped folder containing the Hover Tank.exe executable file

4. Double-click Hover Tank.exe

5. At the splash screen, pick a resolution and click the Play! button

 

 

hovering, shooting, bouncy cubes, and other targets

 

 

bullet trails, collapsed brick walls

 

 

lights off, red laser scope is used to aim

Game physics (C# in Unity 3D)

 

Here are screenshots from a few interactive game physics demos that were produced in a gaming physics course I taught. Instead of just doing physics math which was the norm for the course before I taught it, I took the course into Unity programming and we did the applied math there - creating different physics demos that showed off various physics principles including force, collision & relection, wave dynamics, light refraction, and momentum.

 

I started the course by giving the students starting code with the player and navigation controls already done (the wizard with glowing particle effects). Although we were working in Unity (and Unity can do collision physics), we disabled it, so I could show the students how to do *all* the physics math ourselves (forces, momentum, dot products, cross products, and so on).

 

I believe the outcome was far better than just doing math on paper since the students applied their knowledge, and they have demos to send to potential employers.

 

 

Physics Machine

 

To accomplish this assignment, first I helped students create various physics elements such as acceleration zones, gravity toggle zones, bouncy walls (using either perfect reflection, super-elastic, or inellastic collisions), vortecies, funnels, river type behaviour (with different force zones), and conveyor belts. I also showed them how to add visualizations to show direction and speed to the motion elements (the bouncy balls) so it's obvious to the viewer at a distance (eg. variable length trails with colour based on speed or frequency).

 

A flow of randomized balls get spawned, and because of their randomization, they will follow one of 4 different paths... through various physics elements. There is a controllable camera ('player') so you can zoom around and view the various parts of the machine as it's running... for example, to verify super-elastic collisions rather than acceleration zone functionality, and so on. Not only can the player move around the world, but there are also controls that spawn more balls, toggle the view locked to pointing at the the origin (where the balls are spawning) as the player flies around the world, toggle view from the player to one of the balls, toggle inverted mouse control, and reload the demo.

 

Note that the focus of this demo was on functionality, and the ability to test + verify it... not on graphics.

 

Correy Fisher's Physics Machine

 

 

 

... and in action... the black trails show the speed and direction of the bouncy balls as they move through the machine

 

 

 

 

 

Dimitri Pauwels' Power Plant Problem Physics Machine

 

 

 

From this distance, it's hard to see the bouncy balls in this running demo as they spawn from the nuclear reactor, float up into the clouds, fall down and hit the mountain side and into the river, flow through the river through the rapids, are gathered by the vortex of the whirlpool, make their way up into the nuclear reactor, float up into the clouds again to continue the cycle again.

 

 

 

 

Fluid Physics

 

 An interactive surface that responds when you guide the mouse cursor over it. You can create ripples that will continue to oscilate for a while based on the viscosity of the fluid. The user can change the viscosity.

 

 

 

Light Reflection and Refraction

 

An interactive demo showing how photons of various frequencies (coloured accordingly... red, orange, yellow, etc.) can be reflected and refracted by prisms. The prisms can be moved around and rotated such that the light can be reflected and refracted over and over.

 

 

Games I have helped guide (C# in Unity 3D)

... from initial design to gameplay and programming to final product.

 

 

Here are screenshots from a small fraction of the games I have helped with... ideation, design, programming.

 

 

Bound - platformer where you shoot and make your own platforms, different platform powers, can angle shot and make the shot turn into a platform at any time during it's flight

 

 

 

 

 

Zero's Revenge - 2D platformer hack and slash, flaming sword, flowing headband, lighting, shoot out the lights with throwing stars, attack in the dark for a quick kill, avoid falling boulders near the mountain

 

 

 

 

 

Frequency - fps shooter, avoid zombies with smart AI that follows and avoids obstacles, gather radio parts and get to the radio tower to call for help

AI visualization of each zombie's view

 

 

 

 

Dynamic Evolution - blocky one-eyed character can grow by collecting segments which it loses when it takes damage, collect jump and flight power blocks to evolve and gain access to different parts of the level, huge level

 

boxing evolutionflight evolution

spike pits and jump pads

jump / bounce evolution

 

 

 

 

TAFL - Viking strategy board game

 

 

 

 

 

Wave Party - first person shooter + whacking stick + flashlight

flashlight is your only friend

enemies attack

big boss

 

 

 

 

Narcoleptic Rainbow Experience - fps, kill spiders that

 

 

 

 

 

Harold Helicopter - rotor spins, realistic helicopter flight, fly through the gates, put out the fire with a bucket of water that hangs on a rope from the helicopter

 

 

 

 

 

The Last Tower - journey out to gather energy and materials to build up the defense of your tower, many different weapons to build onto your tower, tower wall can be built 4 segments high, minimap, can play game with PS3 gamepad controller, ship flight is smooth

 

 

 

 

 

Voidstar - first person puzzle game with minigames (eg. drive a maze, put code chunks together, swim to get a key)

 

 

 

 

Swarm - first person action, kill bugs with different sticks/pipes with different powers, bugs attack your campsite, then you break through to sail a ship, then battle frost giants!... huge level

 

 

 

 

 

Downtown Ninja - avoid line of sight by the all-seeing beholderbots, climb ladders, get to the end of the level without being detected

 

 

 

 

 

Enemy Skies - arcade flight shooter, enemy AI that follows you, aims, shoots, enemy towers shoot at you

 

 

 

 

 

MindMelt - roll the ball, collect buckyballs, powers - ice kills fire demon, fire kills ice demon

 

 

 

 

 

Mugi vs AAA - maze strategy, force field gates prevent backtracking, laser turrets, several levels

 

 

 

 

 

Space Man - 3d platformer, low gravity, checkpoints, power-ups

 

 

 

 

 

Hive Mind - bee simulator, gather nectar before the year ends and the bear attacks your hive

 

 

 

 

 

Humpback Counterinsurgency - flying whale is on a rampage, breath fire, bubble bombs, realistic whale swimming controls and animations

 

 

 

 

 

RaceGame - 3D platformer and racer, jump between worlds, use a gravity gun to adjust platforms to get from planet to planet, jump around to get to the different races that you can compete in, 2 players on gamepads, huge level

 

planets platforming

track design

2 player racing

 

 

 

 

Punchy - first person punch kicker, collisions on hands and feet

 

enemies swarm from the towers

kick sends enemy flying

 

 

 

 

GunTote - FPS

 

boss battle (boss = huge creature)

 

 

 

 

Fish Domination - fish swimming physics, gather powerups, avoid sharks

 

 

 

 

 

Transporter - 3d terrain, enemies swarm when you're in range

 

 

 

 

 

Spookhouse - enemies move around on waypoints, you are a ghost demon who can hide in certain objects and jump out to scare the enemies to death

 

 

 

 

 

Imperial Armour - tank sim

 

 

 

 

 

Museum Theif - strategy puzzle

 

 

 

 

 

Falling Maze - randomized maze is different each time you play, different maze units have different challenges (eg. zero gravity), minimap

 

 

 

A Few Other Downloadable Demo Programs

 

 

 

Here are a few demo programs that highlight some of my programming talents. Below are several screenshots from some of my programs and 3D models.

 

Steps to run the demo programs:

1. Download the zip file (containing all programs) to a Windows PC

2. Unzip the file (eg. onto your desktop)

3. Navigate into the newly unzipped folder containing the executable files (.exe files) and screenshots (.jpg files)

4. Double-click the program (.exe file) that you wish to run.

 

Demo 1.  Random Tree Generator (randTreeGen.exe)

  • animated 3D growing random tree
  • tree wedges get thinner as the tree grows up
  • user can drag the left mouse button to rotate the growing tree
  • spacebar restarts a new growing tree

 

Demo 2.  Random Terrain Generator (randTerrainGen.exe)

  • animated and interactive evolving 3D terrain
  • the land is coloured relative to the height of the land
  • the user can smooth, enhance, raise/lower, rotate the view around the X and Y axes, and re-randomize the terrain

 

Demo 3.  Unfolding Earth (unfoldingDymaxionEarth.exe)

  • a texture map of the earth is mapped onto an icosahedron that orbits around and eventually unfolds itself (and then refolds)
  • the view is controllable by dragging the left mouse, wheel zooms in/out, and right click resets the view's angle
  • demonstrates mouse event handling, texture mapping, C++ object oriented programming, and the use of recursion to create and animate the folding and unfolding of the Earth.

 

Demo 4.  Shuttle model (model_lambdaShuttle.exe)

  • the model comes together, and the wings fold open/closed
  • the view is controllable by dragging the left mouse, wheel zooms in/out, and right click resets the view's angle
  • demonstrates mouse event handling, texture mapping, C++ object oriented programming, animation and various complicated OpenGL transformations.

 

Demo 5.  Helicopter flight (heli_flight_motion.exe)

  • demonstrates semi-realistic flight motion of a helicopter using animation and various OpenGL transformations
  • mouse left-drag can be used to follow the helicopter, wheel zooms in/out.

 

Demo 6.  Rotating Rubix Cube (rubixCube.exe)

  • demonstrates mouse and keyboard event handling (HCI), texture mapping, C++ object oriented programming, various complicated OpenGL transformations resulting in interesting movements of the cube, cubies, and faces of all cubies.

 

Demo 7. Galaxy Control (galaxyControl.exe)

  • demonstrates digital signal processing (eg. downsampling) and mouse event handling for rotation and translation
  • using triangles, it draws downsampled versions of various source images
  • each triangle represents the colour and the luminance at a particular pixel from the original source bitmap image
  • to give the product depth, the luminance values are used for the z-positions of each triangle
  • notice that the triangles rotate to give the image the feeling that it is more interactive (~alive)
  • the user can change the image, rotation amount and orientation, change to drawing squares, and other features.

 

Program Screenshots + demo videos

 

Scrabble Blast

C++ brew and Java 2D puzzle game

 

Scrabble Blast is like a mix of Boggle and classic Scrabble. You make words by selecting tiles while trying to hit the score multipliers. There are four challenging ways to play including blast, puzzle, action, and classic modes.

  • published through EA games (Electronic Arts) and Atari games via Magellan Interactive
  • developed for various cell phones (different size screens and different hardware requirements eg. memory)
  • I was the lead programmer

 

 

 

 

 

 

Gymmy (Give-me)

C++ and OpenGL 3D game

 

Gymmy is a single or networked multiplayer 3D game where you can run/jump around in a textured world and collect bouncing prizes that bestow upon you different powers such as increased/decreased speed and increased/decreased jumping ability.  There are strategies to winning (especially in multiplayer mode) where you want to be able to jump, but not too high because it wastes time.  You want speed, but not too much because it becomes difficult to control.  You want as many prizes as possible, but if you get all the black springs (decreased bouncing prizes) then you can't jump up to the levels to get the rest of the prizes.

 

  • as a multiplayer networked game, up to 4 players can play at once
  • when the game starts, players run into the world and take a spot on the platforms in anticipation of the falling prizes
  • after about 10 seconds, the prizes have all landed and they continue bouncing
  • as the prizes bounce, you and your opponents race to collect as many as you can before they're all gone
  • jumping at the right time is essential for success, and if you land on top of an opponent, you cause them to lose all their prizes and they explode outward to be collected again by other players
  • the rockets give you higher jump, black coils reduce your jump height, lightning bolts speed you up, but bananas slow you down
  • because of the prize powers, there's a strategy to collect certain powers first, but you don't want too many rockets or you'll be up in the air for a long time each time you jump

 

 

 

 

Screenshots
  • first-person view of the game platforms and bouncing prizes

 

 

 

third-person views of a super high jump

 

 

 

My responsibilities in the production of this game

I was team lead for the game and my responsibilities in the design and implementation included:

  • game concept
  • game design
  • game cycle architecture
  • class hierarchy architecture
  • openGL object manipulation, drawing code, and all player and model animations
  • game mechanics, play control (HCI): mouse and keyboard (mouse look, side-stepping, speeds, etc.) and hotkeys
  • physics and collision detection
  • all 3D player models and prizes
  • different powers from different prizes
  • animated heads up display for multiplayer mode
  • world loading and bitmap texturing
  • avoidance behaviour of last prize (Artificial Intelligence)

 

 

 

 

 

Random Tree Generator

  • C++ and OpenGL
  • the 3D tree rotates as leaf/segments grow randomly
  • the density and the size of each leaf/segment is controlled by time and a growth factor
  • I find it interesting that the trees sometimes look like things (eg. the top 3 look like the silhouettes of dancers to me, bottom #3 looks like a rose, and bottom #4 looks like a tornado)

 

Random Terrain Generator

  • C++ and OpenGL
  • animated and interactive evolving 3D terrain
  • the land is coloured relative to the height of the land
  • the user can smooth, enhance, raise/lower, rotate the view around the X and Y axes, and re-randomize the terrain

 

 

an initial random terrain is constructed, and then smoothed

 

 

 

it is lowered to bring out more colour, then enhanced (increased contrast between the lows and highs)

 

 

 

so, you might start with something like...

 

 

 

... and eventually it may become...

 

Unfolding Dymaxion Map of the Earth

  • C++ and OpenGL animated model of an icosahedral Earth.

 

Rubix Cube

  • C++ and OpenGL
  • puzzle game & screensaver
  • can be played and rotated manually or randomized automatically
  • press A to learn about the different modes and how to control the puzzle.

 

Helicopter Flight Demo

  • C++ and OpenGL animated model that flies around with realistic movements.

 

Star Wars 3D ship models

  • C++ and OpenGL animated models
  • parts come together while ships rotate and music plays, wings fold, flames pulse.

 

. . .

Texture mapping helper application

  • C++ and MFC
  • loads a JPG texture image by drag and drop
  • user can choose what type of surface to make (eg. triangle strip, triangle fan, open cylinder, closed cylinder, dome)
  • user clicks on points in the texture to define the 2D texture and the shape of a 3D OpenGL shape
  • produces commented and formatted OpenGL texture map code that's ready for pasting into a program.

 

arrow grn rt.gif snowspeeder.gif

Galaxy Control & Downsampleator

  • C++ and MFC, digital signal processing
  • using triangles, it draws downsampled versions of various source images
  • each triangle represents the colour and the luminance at a particular pixel from the original source bitmap image
  • to give the product depth, the luminance values are used for the z-positions of each triangle
  • notice that the triangles rotate to give the image the feeling that it is more interactive (~alive)
  • the user can change the image, rotation amount and orientation, change to drawing squares, and other features
  • Galaxy Control allows for rotation, translation, and zooming using the mouse

 

 

Galaxy Control demo video

 

 

 

 

Downsampleator demo video

 

 

 

 

a few screenshots

 

 

Ascii Art

  • C++ and MFC, digital signal processing
  • samples a raster image and then displays it as text characters.

 

 

 

Kinetic Text

  • displays lines of a poem in an aesthetically pleasing way
  • alters the foreground and background colours, changes the motion patterns, and changes drawing styles.
  • C++ and MFC

 

 

 

 

A few screenshots

 

 

"... in the whole history of man..." Music Interpretation Video

  • image processing at the data/pixel level from frame to frame in synchronization with the music
  • full video (all frames) can be pre-processed (smooth animation) or run real-time (a little choppy, and requires downsampling)
  • this music interpretation video is about a lot of things including the big picture, continuity, the beauty of nature and diversity, life, science, wonderment, and taking consciousness for granted
  • coded in C++ and MFC.

 

 

 

 

Some images from the video...

 

Armatron

  • C++ and OpenGL demo
  • shows relations between parts when transformations are compounded
  • transparent 3D parts.

 

bMorph image morphing program

  • C++, digital signal processing
  • morph or blend between loaded images
  • independent research to develop a new morphing algorithm (weighted triangulation)
  • move the nodes in the control meshes to adjust how the morphing is done from source to target image
  • change number of interpolated frames in the resulting movie
  • save output to file
  • there are many more options.

 

  • load images, change warp mesh by moving nodes, and morph from source to target

  • morph source image only

  • blending from source to target (no morphing)

 

 

 

 

 

 

Morphing lion to tiger

 

 

 

 

 

 

 

 

Morphing mountain scenes

 

 

Mountain Scenes Morph demo video

 

 

74 Falling Leaves

  • randomly generated leaves fall, flutter, and rotate as they transparently fade and fall away from view.
  • C++ and OpenGL
  • This was used by a musician online (Youtube) as a background.

 

 

 

 

screenshot

 

Pilpher - Dijkstra/A* Pathfinding Artificial Intelligence Demo

  • C++ and OpenGL demonstration application
  • includes Artificial Intelligence, pathfinding, machine learning, 3D, HCI
  • you and the guard navigate over the randomly generated OpenGL terrain
  • you are trying to get the treasure (glowing orb), and the guard (red) is trying to catch you
  • he protects the treasure using Dijkstras pathfinding algorithm to find the optimal route to you
  • if you switch the guard to learning mode, as you play, he learns how to catch you faster
  • the guard may also change mode to go from offensively hunting you to defensively guarding your path to the treasure.
  • the player view is changeable (eg. angle, height, tilt of the world)

 

 

 

  • lower view of the mountainous terrain

 

 

SoundPlot Sound Editor

  • C++ Win32
  • open, edit, and record sound files
  • shows the real-time Fourier analysis
  • there are volume, frequency, add a robotic echo, reverse the sound, cut/copy/paste sections of sound data
  • has an equalizer (with many functions) that can be used to alter the sound data itself (instead of just changing the sound during playback)
  • the sound data and Fourier analysis has several different visualization styles
  • multi-document interface
  • sound data is visualized in the top window, the frequency analysis visualization is located at the top right (in the black box), and the optional equalizer control is located at the bottom.

 

 

 

 

Screenshots showing the equilizer(using a multiple document interface), Fourier view (blue bars on the right), and a few of the many different visualization options

 

 

  • "trace" time and "histogram" frequency visualizations

 

  • "steps" time and "fading" frequency visualizations

 

  • "blocks" time and "histogram" frequency visualizations

Robocup (simulated soccer division)

  • C++ Artificial Intelligence
  • multi-criteria decision making, multi-agent optimized movement and ball passing AI, player knowledge visualization, networking, statistics gathering and computation
  • when a player has the ball, the red line indicates that player's direction, the green lines describe the player's viewing angle, the black Xs indicate that player's mental map of the position of the opposing players (where he thinks they are), and the white Xs indicate the player's mental map of his teammates' positions.

 

 

 

 

 

Robocup (Sony Aibo robotic soccer division)

  • C++
  • robot dogs are programmed to play soccer
  • involves artificial intelligence, robotics/locomotion, and motion tracking.

 

 

 

 

 

Tetris

  • Visual Basic game
  • mouse controlled, game piece stats graphed, next piece, different challenging play modes, optional special challenging game pieces, game events can be set to different associated sound effects, and other options.

 

Sudoku

  • Java game
  • user can change the difficulty of random games generated, can set game cells as solved or tentative, resizable game grid.

 

Rope physics demo

  • Java: drawing, timers for animation, GUI controls
  • user can draw/create a rope by dragging mouse around
  • various physics are optionally applied to the rope (e.g. gravity, elasticity, viscosity, collision detection)
  • objects for the rope to collide with can be individually enabled/disabled
  • several other options.

 

ImageCap - multi-image capture program

  • Java real-time motion detection and object tracking application using a standard web-cam
  • independent research to develop luminance-based motion detection and object tracking algorithms
  • clusters of changing brightness values are used to detect motion in each image captured in real-time
  • toggle automatic image saving from motion capture
  • manually capture and save an image to a specified file name
  • optionally save a time stamp into the image files
  • change motion sensitivity threshold
  • change time delay between sample images
  • low light motion detection (works as a security camera)
  • automatically adjusts motion sensitivity when ambient brightness is low
  • lightsaber object tracking mode (makes appropriate lightsaber whooshing noises based on the speed of detected movement).

 

 

 

 

Lightsaber object tracking mode

  • magenta dot indicates the lightsaber object’s middle and is used to track the speed of the slashing motion to determine when and what type of slashing sound to play

 

 

Night vision mode, sensitivity testing

 

 

Object tracking based on relative position heuristics

Hi-Q

  • C++ game & solver.
  • can solve the puzzle using tree search or random local search to a desired number of remaining pegs
  • once a solution is found, the moves are saved to text file - which can be automatically openned upon completion

 

HC Team Generator

  • C++/MFC game character roster builder
  • the program randomly creates a team roster from randomly chosen super-heroes (from a game called HeroClix)
  • the user sets requirements for the team and the characters to choose from
  • the program has several criteria that can be changed to suit the type and size of team you want to build
  • you can set skill level, mindset, team points cost, source of characters list
  • the random team generated (character names, skill levels, point costs, and affiliations) is shown in the white list box on the right, and the number of characters and the total points cost is shown in the lower grey box.
  • the user can also change whether or not they want to have their new team saved to a text file and automatically opened when the new team is named and saved to file.

 

Two screenshots showing two teams generated with a desired total points cost of 300.

 

 

Basketball Scheduling Constrainterator

  • C++ basketball scheduler
  • NP-hard (very very difficult) automated problem solver
  • my solution uses heuristics to generate game schedules for a varying number of teams with various hard and soft requirements (ie. things that are necessary to have and things that would be nice to have)
  • performs extremely well at solving a very challenging scheduling problem
  • for instance, reproducibly, my solution could solve for 15 teams in under 1 second, 17 teams in under 4 seconds, and 19 teams in about 35 seconds, but the problem was so complex that it could never solve for 21 teams
  • the best result from anyone else in the class was solving for 9 teams in 9 HOURS!

 

GraphPlot

  • C++ graphics math demo
  • perform various transformations on various shapes
  • mouse events control the transformations (clicks, drags, wheel to zoom)
  • demonstrates C++ with MFC for windows programming (mouse, keyboard, and menu event handling)
  • got 100% in the class.

 

Bergman's Contact Mastery

 

I built this program to store and quickly access my contact information.  I have been using the program almost every day for more than 10 years.

 

There are multiple User Experience (UX) design considerations and features:

  • efficiently uses space for each section and item
  • sections are colour coded for usability

 

contacts are searchable

  • by name automatically when the program opens
  • by keyword and type of contact (eg. friend or family, etc.) if this option is selected

 

  • simple and intuitive navigation
    • contacts list is automatically scrollable using mouse wheel + scrollbar + arrow up/down
    • current contact is highlit and slightly larger for legibility
    • can select multiple specific contacts for printing
    • tells the number of contacts and what position you are in the list (eg. 364 / 386)
    • shortcut keys exist for main functionality (eg. new contact = Ctrl-N)
    • new contacts are auto-sorted alphabetically

 

  • phone numbers are automatically parsed and formatted
    • if the number "5557772222" is entered, when the user scrolls or exits, the number is reformatted into the more legible "(555) 777-2222"
    • auto-formatting extracts the numbers and then reformats automatically so any text and punctuation can be pasted in with the number
      • for example, if the user pastes in "the number is: 6 /56 -4 3.5- 3 5,34.", the result after auto-reformatting is "(656) 435-3534"

 

  • special dates can be set as alerts a certain number of days in advance (eg. birthday, anniversary)
    • the special date alerts text scrolls quickly then slowly for each special date
      • the slow scrolling allows the user to read the current alert before the next one scrolls on
      • the multiple date alerts are numbered and they cycle
      • you can click in the area to pause the scrolling animation

 

  • remembers your position in the contacts list the next time you open the program
  • auto-saves a new dated copy of the contacts database each time you close
    • can open an old copy of a database
    • database files are small and simple
    • can close the program without saving
    • has a read-only function if you do not wish to change the contacts information
    • the read-only function automatically turns on if you accidentally open 2 copies of the program (and the program tells you that you have another copy open as a reminder that your changes will not be saved)

 

  • program is portable, small, and needs no installation (will run off a usb drive)
  • at the bottom, there are 3 tabs which allow you to access short and long-term to-do lists, and an egg timer with several features (count up/down, different alarm sounds, visual feedback via a popup message box with customizable message)
  • user can view an "About" dialog with helpful hints
  • date format in the title bar can be changed

 

Built using Visual Basic in 2003.

 

Possible improvements:

  • more email and web page textboxes, and wider
  • more "other numbers" text box sections

 

 

Multiview Web Explorer

  • BCNET competition entry (2007)
  • Designed to show how web users a few years from now, who have large screens and huge bandwidth requirements, might browse the web.