Our project will be a tutor for students who are having a hard time understanding basic
programming concepts. The program will allow the student to enter a block of computer code,
and it will parse it. Then the user can step through the code, or create a visual representation
for that computer code (referred to as the program machine).
There will also be a section for viewing variables, much like a debugger's watch window.
The user will also have the ability to create a program using the visual representation
(the "program machine") to create computer code. The program machine will be based on a few
basic parts: declarations, basic operations, and program constructs.
Since most programming students are learning C, the program will be written to parse, step
through, and convert C code. It will also be able to create C code from the visual representation
For those of you that are unfamiliar with the game, pac-man is a simple maze game. A character
(represented as a yellow face) runs around the maze eating small pellets for points. This icon is
being chased by 4 ghosts who kill him when they meet. The figure can retaliate against the ghosts
by eating a power-up, which is represented by a really big pulsating dot, which gives him the power
to eat the ghosts for points as well, but it runs out quickly.
The mazes will be created randomly using graph theory. The different AI's for the ghosts (and pac-man
himself) will also use graph theory to wander through the maze.
Each ghost will have their own AI level of difficulty which will attempt to target pac-man in a
shortest path algorithm. In the more advanced levels of the AI, the ghosts will attempt to track
pac-man's next moves and head him off. There will also be a simple pac-man AI for the game screen
saver so when no game is being played it will cycle between the opening screen and an AId pac-man
frantically trying to avoid the ghosts and get the dots on the screen.
There will be a few different modes of multiplayer:
Double Pac: where there will be two pac-man's running around the screen controlled by the two
different players. They will work together to clear out the maze.
Pac & Ghost: where one person plays the pac-man character running around the maze, and the other
player(s) play the ghosts whose aim is to destroy the pac-man character.
Knockout: The goal of this is to collect points up to an arbitrary number first. There is only one
person playing the pac-man character and only the pac-man character can gain points. The other player(s)
will be playing the ghosts. Whomever kills pac-man then becomes pac-man and then can start racking
up points. When an AI'd ghost kills pac-man a random player will then become pac-man.
Single player will be modelled after the classic 'pac-man'. The different colored ghosts would have
different levels of AI, which would in turn get harder each level completed. Also, the mazes
themselves would be randomly generated using graph theory instead of being hard coded.
Group 7 - Procedural 3D World in OpenGL
Today, 3D titles are becoming larger, and more complicated with more details, more layers of
textures, etc... With all these great enhancements, however, bandwidth becomes a serious issue.
Why not harness the power of client processors?
Nature tends to lend itself to much symmetry, and as such it is possible to unload lots of
"busy" work onto the processor saving artist development time, and bandwidth consumption. Using
the power of OpenGL we algorithmically generate everything in this world from terrain geometry
to cloud textures at startup, and on the fly. Currently we are focusing on Windows 2000
as our main platform, but because OpenGL is so portable, we may port our work to other
platforms (if it catches on as the next greatest thing since sliced bread ;-).
Procedural 3D World in OpenGL
Group 8 - UIML IDE: User Interface Markup Language Integrated Development Environment
UIML is a language used in developing a single user interface that can be converted to
multiple languages. The purpose of this project is to generate UIML code through a
graphical user interface created with Java. The user will be able to place objects
through the use of buttons/toolbars and modify the attributes of these objects.
When everything appears as desired, the user will have the ability to export the
interface created into UIML code. The UIML code can then be converted back into
Java or any other suitable language based on your features.
Group 9 - OASIS - Online Administrative System for Interactive Software Engineering
The purpose of the project would be to REPLACE the current auctioning process of project pieces with an online auction, and in addition, to create an online environment that allows the teams and "employees" to communicate, share data, and "learn" about each other. Of course, presenting a project would have to still be done in class, so this project is not being designed to be a substitute for the presentation of a project, just the auctioning process and point system, including addition of other features.
1. Team accounts (password protected), including allowing teams to post an online team project web page, to create separate folders for employees to access (file transfer for project pieces).
2. Individual accounts, including a resume web page (automatically generated by signup questionnaire, scale of 1 to 10).
3. Online auction for posting of project piece descriptions, allowing bidding by individual users. (Each piece may come with a calendar of important dates.)
4. Suggestive Matching. When teams post project pieces, they will be prompted to fill out a questionnaire of skills (scale 1 to 10) needed by employee for piece. This will be matched to individual with closest match (algorithm for this matching not yet decided).
5. Point system maintained. (Individuals cannot contract more than 100 points before certain date, teams must contract out certain number of points, etc.) When contract is complete, allows "transaction" of points, i.e., user is assigned points by team. (Separate accounting for contracted and acquired points.)
6. Chat room for communication between members to discuss projects, etc.
7. HCI is an important emphasis in designing the web interface. We would want this system to REALLY work if so chosen by future classes, and with ease. The interface would be one of the most important aspects.
8. Lastly, we would implement the walkthrough (keep track of peoples credits as designers, programmers, and outsiders).