Monday, August 16, 2010

Adding Users In Leopard

How to add a user from the command line in Leopard (since it's apparently too much for Apple to include useradd-esque scripts).


dscl localhost -create /Local/Default/Users/zack
dscl localhost -create /Local/Default/Users/zack UserShell /bin/zsh
dscl localhost -create /Local/Default/Users/zack RealName "Zack"
dscl localhost -create /Local/Default/Users/zack UniqueID 502
dscl localhost -create /Local/Default/Users/zack PrimaryGroupID 1000
dscl localhost -create /Local/Default/Users/zack NFSHomeDirectory /Users/zack
dscl localhost -passwd /Local/Default/Users/zack changeme


Also to look at what UIDs already exist...


dscl localhost -list /Local/Default/Users UniqueID


Scripting this is trivial but I am lazy. ;)

Friday, April 30, 2010

Metallica vector art wallpaper

Couldn't find a good Metallica wallpaper so I went and made one using Inkscape and Gimp, and the And Justice For All cover.

1680x1050


Will provide other sizes upon request. I also made a version without the gradient although it doesn't look as cool so I'm not going to post it.

Thursday, April 29, 2010

Boost + Graphviz

BGL is a template library which (I think) means that everything is just a bunch of header files. The Graphviz stuff apparently needs to be compiled though, and while I installed all of the Boost stuff through my package manager (Fedora 12) apparently I did not get this Boost/Graphviz stuff.

Here are the steps I went to build libbgl-viz.so, which can be linked to in order to run the graphviz examples. This is probably all documented somewhere but I could not find very clear instructions anywhere. Also it's worth noting that if you build a dynamic library you will probably have to distribute it with your application as you can't rely on it being in the Boost distribution (because it's not)!

1) Download boost-1.4 source.

2) Go to boost/libs/graph/src.

3) g++ -c *.cpp -I../../../ -Wno-deprecated -fPIC

4) g++ -shared -o libbgl-viz.so *.o

5) Next steps are optional if you do not want to install system-wide.

6) sudo chown root:root libbgl-viz.so

7) sudo mv libbgl-viz.so /usr/lib/

8) Try building some of the examples, you will need to link with boost_graph, libbgl-viz, and boost_regex. If you get any errors try playing with the order.

9) Go party!

Monday, January 11, 2010

Cameras, lights, and balls!

Another bunch of little updates.

* Mostly finished the virtual camera system. It supports multiple cameras with 5 and 6 degrees of freedom. Basically 5DOF = translational degrees of freedom along the XYZ axes and two additional degrees of rotational freedom (pitch and yaw). This is your typical FPS camera.
6DOF is all of that plus roll, more useful for flight sim-type games. The only thing I really think I have left to add is support for strafing. Also I think it would be kind of neat to have a wrapper around gluLookAt() that creates a camera and sets the proper orientation, because a lot of the examples I am looking at use it.

Camera example, mouse controlled flying 5DOF camera through a field of cubes.


* Enabled MSAA (multisample anti-aliasing) by default. Added support for backface culling.

* Renamed all function from the format dX to dgX to avoid conflicts with the physics library I am looking to use (ODE).

* Restructured source/include directories so that it is much more organised. Also I wrote a new configure script that should work better than the old one, supports folders in source directory, etc.

* Added some memory allocation macros.

* Mostly implemented a virtual light system (inspired by Mark Kilgard's multilight example). Still need to add support for shadows, spotlights, and materials.

Port of Kilgard's multilight example to Dagger3D.


* Brought one of my old experiments back to life. Basically it is a 2D box, you press the space bar and balls get dropped with semi-random initial velocities. Gravity affects the balls and they can bounce off each other. Difficult to do efficiently (I did not).

Semi-animated screenshot of bouncing ball experiment.


Starting work on a simple GUI system that will probably only include some very basic stuff, mainly buttons, text, and maybe some very very simple input fields.

Also looking into writing a resource => header file compiler, so that you can include (for example) a texture or font inside an executable.

Ahhhh I totally need to go to bed now...