Archive for the ‘Project’ Category

Hackfest 1000 Mortem

Saturday, October 15th, 2005

Oops, forgot to post this.  =P

Ben
 o This past week, put together a working demo for the TAs, got some feedback.
 o todo: want to put together a new test type that allows the TA to run a specified test.

Graham
 o This past week, installed frootyloops on his notebook, did homework like a madman.
 o todo: will install emacs.  read swimm sourcecode

Luke
 o This past week, started working on developing apps for trio.  Started writing a bootloader for linux.
 o todo: came up with an idea to improve usability for firefox.  (Navigability without a mouse).  A "generate links" button.
   Also, intelligent transparency.

Vinny
 o This past week, did 3d integration in commotion.
 o todo: want a behavior that puts a terrain in a 3d scene.

Things we learned today:
 o Courtship is the platform of the socially inept.
 o Jesus was a hippie.
 o Graham wants to cruise Nebraska to knock up women.

 

Hackfest 111 Mortem

Friday, October 7th, 2005

Hackfest 111 – Oct 7 2005 7:30 PM

Since Last Time:
Graham: Fun with MPI and OpenMP for his Operating Systems class.

Ben: Has completed much of what the old autograder did in his new framework.

Vinny: OGRE 3D is working with commotion. Basic 2D object tracking is also working.

Titus: Job Interviews.

Luke: Fun with XWindow IDs and reverse engineering windows-only eclipse plugins.

That night:
Graham: Investigated Ning, considered purchasing an audio device for the laptop, and pondered emacs.

Ben: Added UI sugar and honey to the autograder in Netbeans.

Vinny: Worked on Drupal and lost, but he went out fighting.

Luke: Self-realization, Self-rationalization, and a decision to cancel plans to buy a home. Did some dhcp debugging a bit too.

any corrections or missing info? 

Hackfest 110 Mortem

Thursday, September 29th, 2005

Hackfest 110 – Sept 28 2005 7:30 PM

titillating facts:
Ben likes Firefly because it’s Sci-Fi, but they don’t explain any of it.
Ben hates the Magnetic Fields. But likes to dance to other pop music.
You can see the Octane music list from iTunes.
dmesg is one way to figure out what Linux distro a system is running.
/etc/redhat-dist is another way on machines that run some RedHat.

Since Last Time:
Ben-
Autograder generator done, TAUI underway. Cannot view/edit results.
Vinny-
Discovered physics abstraction wrapper – GangstaWrapper (like Ogre abstracts 3d libs) abstracts the underlying physics engine.
Commotion into source control.
Graham-
Nothing on Mused. Setup svn for SWIMM but it’s not working.
Titus-
Found CDT, a plugin that adds C[++] support to Eclipse.
Some Wine development. Trying to get the Newsleecher installer working.
Right now, the installer doesn’t work. It doesn’t let you create directories. The installer is written in Delphi, and it seems to be some sort of win32 problem involving Delphi code.

Plans:
Ben-
Reorganize build structure to remove an extra module and make it simpler.
Get test editor working.
Vinny-
Do something basic in Ogre using Commotion, like basic geometry.
Graham-
Fix the problem with SVN.
Get my file speedup stuff working, which might be hard because I haven’t touched it in weeks.
Titus-
Finish reading EMF (Eclipse Modeling Framework) chapter 1-5.
Stephen-
Doing homework and teaching the graphics gospel.

Realities:
Ben-
Reorganized build structure. Cleaned up ties together.
Vinny-
Reduced 250,000 errors to 2 (bizarre objC error). Basic Ogre setup hacked into Commotion, but not quite.
Graham-
svn now authenticating, rejecting everybody.
Titus-
I messed around with CDT today, and just worked with the Eclipse environment some more. I think it would be helpful to actually be an expert on the environment, as it’s hard to both program for it and learn how it works (from a user perspective) at the same time.

Component: Agent AI

Wednesday, September 28th, 2005

The Agent AI is the focus of the simulation. Each character should seem to have a life of their own, and the characters collectively should act as a system. Aspects of this are:


Disposition


A Disposition, in this case, is a relationship between the character and something else: another character, a place,an activity, an object, or the player. It represents how much a character likes or dislikes that thing. Simply a reference and a quantity are all that is required for a disposition. The character will form these as that character interacts with things and they will effect the character’s behavior.

Knowledge


The character can “see” all that goes on in the character’s own “cell.” These are added to characters “memory”- a list of events that the character observes. There are enumerably many actions that a character or the player may take. Each action has a negative or positive effect on whatever entity the action is performed on. In addition, the character may have a “disposition” toward whatever object the action is performed against. This effects how the character interprets ths info.
So when a character observes an event, the recorded “memory” includes the character performing the action, the action itself, the object that is the target and the computed reaction, which is how much the character likes or dislikes the action.

Communication


Each character can share his information with others. What the character decides to talk about depends on the importance of the event, computed by how recent the event is and how it affected the character. Each character knows the difference between what they saw and what they heard. Characters will talk to each other as well as the player.

Scheduling


Each character has their favorite activities and their favorite places, but they will not simply do their favorite thing all day and night. The compulsion to do an activity will decrease as the character is doing that activity. They will grow “bored” with what they are doing and go on to something else. Here, a boring equilibrium should not be reached. Randomness and in-game events will change the character’s priorities.

Personality


The characters personality is determined by a series of metrics as suggested in the paper “Personality in Computer Characters” by Daniel Rousseau. Each character’s behavior will be affected by these.

Goals and Challenges:

One goal here is to avoid equilibrium for the sake of extremes. The society should not have a predictable daily routine and there will be several factors to keep this from happening. Primarily, the player will have great power to stir things up. The player is an element of the system that is not under computer control, so the player’s behavior is not likely to be systematic. In addition random or scripted disasters may befall the town. Overall, randomness will be introduced into every decission a character makes.

Why Engine Games Suck, or, Why Game Design is About Rules

Tuesday, September 27th, 2005

What is a game?

[game] noun: a form of play or sport, esp. a competitive
    one played according to rules and decided by skill, strength, or luck (Oxford English Dictionary)

 
Games are fun – thats why kids play them.  Games are about exploring the possibilities of your surroundings, devising a limited set of rules, and then interacting with your environment as limited by those rules.  A ball, some people, and a flat surface can turn into golf, football, soccer, kickball, baseball, or basketball.  All of these share the same basic elements, but otherwise differ widely due to the application of a (generally) small set of rules.

Engines are games without rules.  They are generally based on other rules that are too boring for us to care about, like the rules of physics, sound, or computers (graphics engines, sound engines, etc).  Sometimes, engines are made that try to make creating games easier – these are called game engines.  They usually tie together all the other engines that you might want to use, and provide a framework to base a game upon.  Some game engines are the Quake, Quake 3, and Doom 3 – any of these can be purchased, so that you can write a game using them.

Sometimes, game engines are released as games – like Doom, and Quake 3.  These games tend to get a lot of hype – look at the smooth rendering and high framerates of Quake 3, or the 2.5D environment simulated in real time in Doom.  Unfortunately, these games tend to have short shelf lives.  Doom got the best run of this, due in part to factors outside of gameplay: being the first game massively distributed over the internet, and the relative adolescence of computer games in general.  Ultimately, they tend to have a short shelf life once the hype wears off.

Ground breaking engine games are tough, and then generaly come out poorly.  I think the reason for this is the same reason as any ground breaking software development project: breaking new ground requires research, experimentation, and analysis of your experiment.  Once you’ve figured out the lay of the land that you have recently created, you can now devise a structured environment to play in, ie a game.  Games will always be about imposing rules, because rules are the essence of games.

Games that have great engines

doom, doom 2, doom 3
quake (1,2,3)
grand theft auto Vice City
sim city

 
Poor Games Good Games
doom                   doom 2
quake quake2
quake3 Sim City
doom 3 GTA Vice City

            

Used New Engine Used an Existing Engine
doom                   doom 2
quake quake2
quake3 GTA Vice City
doom 3
Sim City  

      
    Whats different with Sim City?  It was written to be a simulation of
    demographic forces, and was later turned into a game.  It also took
    years to develop.

Suckerville: the Game (miniature agent-based society simulator toy)

Monday, September 26th, 2005

Suckerville: the Game (early planning phase) is based on the comics I write. A few of which are at my comics page. I thought it would be neat to create a game with these characters where you could interact with them. This idea transformed into a lofty concept for a complex(-ish) society simulator. This game is single player and therefore all of the society, except for the players character, are simulated.

This game is loosely inspired by the Nintendo’s “Animal Crossing.” I saw my brother playig it one day and noticed his character had a shovel. I asked if he could hit people on the head with it, for a hilarious cartoony response. The answer was no, unfortunately. I thought I’d make the game like this except you could hit people on the head with a shovel. Naturally this would only be fun If they reacted to what you did, but how far could this go? The problem with the characters in Animal Crossing is that everything they do is tightly scripted. How can characters made to be dynamic. Many game programmers dream of creating emergent behavior in their dynamic content. Is this even possible?

Imagine walking around a city of ridiculous cartoon characters. They talk to you and to each other. They tell you what they like and dislike. They tell you that they don’t like it when you hit them with a shovel. They don’t like it when Charlie down the block hits them with a shovel and ask if maybe you could do a favor and hit him with a shovel. And the shovel smacking is only one of the many things you’ll be able to do. The point is, the characters “know what you are doing and they “remember”, and this affects the way they behave towards you. These characters are not like the typical video game characters that sit around helplessly while you run their errends either. They can do all of the same things you can do. And they can talk to each other as well as you.

The original idea is based around concepts

  1. Each character in the game can do anything the player can do. They do not sit around and wait for you to talk to them, but rather they have a simulated daily routine.
  2. Each character can like or dislike objects, characters, places or actions. Each can observe what any other character does, including the player, within their vision and decide whether they like or dislike what is happening.
  3. Characters can talk to one another and spread their information.
  4. Goofy stuff should happen often. The game should be dynamic and things should change over time. The general feel of the game is one of mayhem and humorous mischief.
Goals and Challenges

To make the game as dynamic as possible. In a game each character may become your friend or your enemy. Maybe you’ll see them a lot, maybe very little. Where are your favorite places? Can the game seem different every time? How can you make the game elements random but not seem like noise? Can the decisions a player makes, make a big impact in the world?
They characters should be complex enough to be interesting. Each character should seem different from the others, and should seem to have a life of their own. Their personality and personal experience should affect what they decide to do. The player should get a sense that there is a whole world around him and that much goes on behind his back.
How far does their AI model need to go at simulating their personality? Is it possible to make the model complex enough so that they seem life-like? Can a general behavior model allow each character to have quirks? What sort of group behavior will emerge?
The player should feel free to do a variety of things. No game will allow a player to do everything, but the player should be able to react to the people and objects in the world in a variety of ways.
The game should be funny. Is it possible to create emergent comedy?

Everywhere Tech

Monday, August 29th, 2005

Useful resources for coding, computing, and hacking for everywhere.

Eclipse Framework for Systems Biology

Friday, August 26th, 2005

Eclipse is a powerful IDE and framework for language development. In this project, we build on the Eclipse platform to support operations and tasks that commonly appear in the course of systems biology.

The project aims to support seamlessly the many biological data formats, such as FASTA, and interface with NCBI and the ExPASy Proteomics Server. It aims to provide a unified interface for biologists working in molecular biology, systems biology, and genetics by treating DNA and DNA-like data as a ‘programming language’.

 

 

Peripheral Device Middleware

Friday, August 26th, 2005

 

GUM-Sticks!

The starting point for work on devices that bridge "stupid devices". 

Some ideas:

  • interactions will be based on scenerios as the device is unlikely to be at easy to interface as a full fledge computer
  • scenerios may be customizable and configurable from a full scale computer
  • the device may have a modular I/O design to support enough bluetooth,firewire, and usb scenerios.
  • using an OS like linux to leverage the large driver set out there (compared to a novel OS).
  • allow for scenerios and device drivers to be modular and pluggable so people can make novel ones and so people can manage the limited memory of the device better.

Todo:

  • spec out the prototype hardware that is portable and can still do some of the goals desired.
  • start developing scenerios

Methods for Managing your Schedule

Friday, August 26th, 2005

The beginnings of a project on developing tools that will provide simple ways of building your schedule without having to do all the work manually.
 

Current ideas being tossed around:

  • Website scraping to produce data from places like: delta, orbitz, hotels, evite, ups, amazon, credit cards, orkut birthdays.  Perhaps even sites of little direct personal interest could have a means to schedule from: concert venues
  • Email scraping: like websites, we receive many emails with good information (and structured) information that could be useful in a schedule.
  • Active scraping: an external service, a system on your machine to scrap
  • Passive scraping: scrap when you view a page or email.
  • Intelligent scraping: instant messages, comments that are unstructured.  This one would be hard and likely not a good starting point.
  • Schedule views:  There are events that are of varying importance.  Sometimes I just want to see my travel schedule and sometimes I want to see the Atlanta Thrashers hockey schedule (and since I’m lazy I want to do this all from the same calendar).
  • Todo lists: some calendar items are due dates or perhaps not calendar items but instead tasks.  I nice way to manage these would be good.
  • Dynamic entries.  If I am looking into the past at the Thrasher’s home schedule, I should be able to get the score and info about the game.  Perhaps there should be an alert system when a schedule item has been changed at the source.
  • Templated Entries.  If I am looking at a travel entry booked at delta.com, I should be able to either get more details by drilling down deeping into my calendar or by having a templated link to go to delta.com and show my itinerary.
  • Event feeds.  You should be able to get feeds that are both of personal interest and general interest.  If you login to atlhack, you should be able to get a feed representing all the iCal events you are going to (perhaps you actually want all the atlhack events so the dynamic feature kicks in and you can look into the past to get the meeting notes 🙂 Also, some sites should provide event calendars so you can have things like "the high museam" view in your calendar to get an integrated exhibit schedule.