||Interview: Guy Paddock, Project Leader of Cool OS
A couple of days ago Guy Paddock, the
project leader of Cool OS, kindly agreed to do an interview for
Quake Terminus. Cool OS is a revolutionary Quake based 3d operating system
project. He was also kind enough to give us a couple of exclusive pre-alpha
screenshots of the project.
Hello Guy, and thanks for doing this interview. Could you explain briefly
what the Cool OS project is?
Guy Paddock: In a nutshell, Cool OS will attempt to be the first 3D OS, in which users
can meet each other inside a 3D world, explore the terrain, or work inside
their own programs. They may choose to connect to the main server, or a
local "hub" server, and do their work in a social atmosphere, or begin
private sessions in which they are restricted to their "home" map and can
work by themselves.
This project sounds very exciting, do you think something like this has
ever been done before?
Guy Paddock: I have read interviews conducted with John Carmack (a.k.a God of the
Gaming Community, a.k.a. the founder of id software) that state that he had
such an outlook for the future of the Quake engine. I, personally, have been
contacted by a few people with a similar goal, but never exactly the same.
However, like me, their projects are still mostly in theory or speculation,
not implemented as of yet. I have never seen an implementation of a 3D OS.
What type of features can we expect to see in Cool OS?
Guy Paddock: Cool OS will have a multitude of cool new features at the end of the
project... if we are successful. One will be weather effects. A Cool OS user's home
map will respond to the weather occuring in the area they live in. For example, a
user from Seattle, WA will most likely have a home map that features constant rain.
The weather will be retrieved from a weather server in the user's area, and then the
engine will control entities placed throughout the home maps to create weather effects.
Rain, snow, and lighting are currently the only effects that can be implemented; rain
and snow use particles to do so. In addition, the skies in every area of the Cool OS
world will react to the time of day. A user connecting at 8:00 AM will perceive every
area of the Cool OS world as early morning. As part of this, the skyboxes will rotate
slowly to simulate cloud movement. The rotation code is currently there, but needs fixing.
Credit for it is due to QER's message board.
Another cool feature will be the way in which 2D programs will be implemented. Their
windows will be drawn over the user's view with transparency. This will give the effect
of a hologram, and the "home" maps would be the only ones in which users could start
windowed programs. However, that doesn't mean a user would not be able to take their
programs out into the world. In a user's inventory will come standard a portable
pad-type device. The pad will be able to run user programs full screen over a user's
view, but with minimal transparency as they will not be projected as holograms.
The weather effect, time sync, & window transparency can be disabled, of course.
They are optional cool features.
You call it an OS, others have described it as a shell. Which is it?
Guy Paddock: That question is a bit tricky to answer. Ender of QER & The Quake
Standards Group has flamed me many a time I have called it an OS as he still
thinks of it as a windows shell replacement. First, let me explain why there
is a difference of opinion:
In the beginning stages of the project, I had stated that I might be taking
the Windows 3.1 shell & strip it down to its bare essentials. Then, I would
code it so that it would be able to run the Quake engine and nothing else as
its GUI. I figured that I would be able to implement OpenGL & Cool OS would
handle the drivers and hardware installation. That way, a user could install
Cool OS next to their copy of Windows 95/98/NT/Whatever and choose whether
they would like to run Windows or Cool OS. That was before I looked into it,
and remembered how very primitive W3.1 was/is!
Following that, I changed my plans so that Cool OS' ideal distribution would
modify an existing installation of Windows 95/98/NT/Whatever to run Cool OS
as its shell, without directly worrying about drivers. At such a point, it
would be a shell-replacement, but a very in-depth one. No part of the
Windows GUI would be used. However, it has recently been suggested that I
try Cool OS as a variant of Linux, modifying Linux to setup the drivers &
required code, and then firing up the Quake engine to provide the
higher-level GUI. I am currently taking a survey to discover which people
would prefer I do, or both.
Is it going to be like playing Quake?
Guy Paddock: You mean like killing people, getting weapons & ammo, following goals,
picking up weapons, etc? No. Cool OS is not going to be a game, and will not
have a storyline. True, games could very easily be written to run on it as
programs, but Cool OS itself will NOT be a game. A user will still be able
to use the mouse to look around and the keyboard to walk, but not for the
purpose of looking for enemies or targeting weapons. Cool OS users will not
be armed unless they are in an area that requires it, such as a game arena.
Besides the navigational interface, the BSP file format, console, and main
menu will stay parts of the engine.
Can other people join you inside your Cool OS 3d environment?
Guy Paddock: It's more the other way around. You see, when a user first runs Cool OS
(i.e. on system startup) they will be shown the main menu. They can choose
to start a private session, in which their computer starts a server with a
maximum of one user and throws them into it, or they can choose to join an
already-running server. They can also choose to resume a previously-saved
private session. In private sessions, a user starts out in the world inside
their "home" map, but is not able to leave the map and explore the world.
The thinking behind this is for those users who have work to be done, such
as office workers, that normally would not like being interrupted in their
work. Multiuser sessions, in which a user connects to a server, start out
the same way as private sessions, but users can choose to leave their home
maps by walking off of them(i.e. down the driveway/sidewalk, as if a person
in real life were leaving their house and walking onto the road) and explore
the world. In addition, with such users' permission, other users can visit
them at their house. I think it is worth mentioning that the majority of
"areas" (a.k.a. maps) will be hosted on a master server, but others can be
hosted on "hubs". A user can choose to connect to a local hub, perhaps one
that resembles their local town and hosted near them, or they can join the
master server. The master server will be hosting areas that redirect the
user to a more relevant hub, should they reach an area that requires it.
You kindly sent us 2 early pictures from Cool OS. What are we looking at
Guy Paddock: The first image is of a house that is the first "home" map being worked
on. The map was more advanced before it was imported into QuArK, and I am
currently working on finishing it up. Since QuArK is a far more advanced map
editor than my old one, BSP by Yahn Bernier, there are obviously some
setbacks to be anticipated. This is considered the map "house1a.bsp" and
will be modified slightly for variants ranging from "house1b" to "house1c".
Other mappers will be able to create other house maps that take on a
different theme, such as an apartment or condo.
The second image is of the Cool OS' main menu. It may be changed before
the final release, but at the moment that is the way the menu will come out.
Although not shown in the image, the menus have animation. For example, the
Cool OS main menu has the Cool OS logo & the "Main Menu" plaque come down,
and then the two side "crescents" slide out from behind the logo along with
the buttons. The user can select a menu option with the mouse, or with the
keyboard. The image shows the mouse being used to click on the "System
Are you saying that Cool OS currently has mouse cursor support, much like
Quake 3's menu system?
Guy Paddock: Yes. In its current state, Cool OS' menus allow the mouse cursor to be
moved around on screen. If "X-Windows Mouse Selection" mode is enabled, any
menu button the mouse rolls over will be selected and "throb" between purple
and normal coloring to show that it is. If the user presses the enter key,
or clicks the button, them whatever code is associated with the button is
executed. It is all done with what I call "menu elements", basically every
part of a menu is an individual element and has properties which control its
behaviour. In the end, COS' mouse support will go much father than its state
now. Users will be able to click on things in the 3D world and influence
them. I am picturing users being allowed to right click on objects to bring
up menus with different commands to influence those objects (i.e.
right-clicking on their front door would yield a menu of options like "Lock
Door, Open Door, etc.".
How much control will you have over your machine when inside Cool OS?
Guy Paddock: Although I am uncertain at this time how this will be worked out, I would
imagine that my team & I will code the engine so that users can configure
system settings by using a "toolbox" inside the 3D world. Further thinking
has to be done on this before I can really answer this question.
Exactly how will programs be dealt with in Cool OS?
Guy Paddock: There will be two types of programs: those that remain in traditional windowed
format, and those that utilize the 3D world geometry. Programs that are windowed
will not, however, look like windows found on the Mac OS or Windows 98. They will
follow a theme that defaults to a sort of blue-plastic. Windowed programs will have
the option of being minimized to the border around the rendered view, but not maximized.
Programs that take advantage of the world geometry are more likely to be games than
anything else. File sorting programs, maybe, but mostly games. The program would load
and replace some of the system code dealing with the rendering of the view to add a
status bar & weapon. It would then handle the messages from each entity in the world.
Such programs could support multiple users (or players) being part of the same program.
Programs using the world geometry would need to run on the server side, and programs
that would be 2D windowed would need to be run on the client side, each for obvious
What about security. With others inside your OS, wouldn't this be an
Guy Paddock: Yes, it would. That is why I will attempt to implement keys. A person
will have a "key" in their inventory for their house, and will have to give
another user permission to enter their "home" by creating a supplemental
key. Their possessions will be safe from being stolen, unless they choose to
give up their ownership status. When a user is inside the 3D world, only
they can choose to configure the settings for their computer, but not
another user's computer. Another security feature would be the requirement of
Cool OS "citizen IDs". As soon as Cool OS was installed, the user would have
to register themselves with the master server. Their name, address, and any
other relevant information will be recorded, and then their citizen ID would
be created and stored on their machine (at this point the user would also
choose their desired "home" map, and the master server would create a
profile to save their selection so that no matter which server they
connected to, they would always start in their desired home map). The user
could choose to customise their citizen ID with their picture and choose
which personal information could be seen by other users. This ID would be
much like an ID card in the real world, but much more sophisticated. Users
would still need a valid ID before connecting to hub servers. Users could
have certain privileges given to them by the Cool OS staff (for example, to
enter certain areas without permission), and their IDs would be modified to
give them such access as necessary. If a user lost their installation of
Cool OS to a virus or changed computers, they could retrieve it from the
server. The only serious security problem will be the GPL/GNU. I will be
forced to release the source code to Cool OS when I am done, and this will
leave it open for users to remove security features or crack the encoding
scheme of user keys.
You say you are at the pre-alpha stage. Do you have any idea when we
could see a release?
Guy Paddock: Not really. I am still assembling a team now that I have found the
project too overwhelming for myself alone. Once I have a rather sizeable
team, I can give a much better estimate.
Is the name "Cool OS" set in stone or a working title?
Guy Paddock: I consider it set in stone, but I would be glad to change it for a better
one if I received enough feedback to do so. This is currently one of the
things being covered in the Cool OS End-User Survey.
I believe you need some help with the Cool OS project. Who do you need?
Guy Paddock: Yes, I do need help with the project. I currently have a texture artist
and another novice programmer on the project. In addition, earlier today I
was contacted by a modeler who wishes to join the project. If there are no
unforeseen difficulties, I believe he will also be on the project shortly.
For the most part I need people in programming, sound, mapping, & modelling
to get this project going. I would be very glad if anyone who is good in any
such fields and has time to spare would contact me.
A bit about yourself please. What and where are you currently
Guy Paddock: You may find it very surprising that I am only 15. But, I have been
working with computers since I was only 5. I've always considered myself one
of those people that will make it big in the computer world, and I hope that
Cool OS will be my chance. I am currently ending my Freshman year at Notre
Dame Catholic High School in Fairfield Connecticut, taking Honors classes.
My average is 97.5 and I have been on the honor roll for all three marking
periods so far.
What other projects have you worked on?
Guy Paddock: I have been coding some minor programs in Delphi Pascal, but have never
worked on a full scale project. I have experience with Pascal, C/C++, Perl,