The End of Summer
Summer break (as brief as it was) ends here in a few days. The break has been pretty good for me and I’ve gotten to have a lot of fun. Between travel, my project Arrogance, StarCraft2 and just otherwise relaxing this has been a splendid four weeks.
Today we got to see pretty much all of the incoming Guildhall cohort and its always refreshing to see the fresh, smiling faces. It makes me happy to know what pain they’ll be encountering so swiftly. The best part is when you really try to convince them that its going to be hard and they laugh and shrug and giggle. Soon, young ones, soon.
- Loren
StarCraft 2
Having played SC2 pretty extensively early in the beta I was super excited for when it would finally come out. Now that its out and my buddies and I have setup nightly play routine I am happy to find its what we hoped for: a new StarCraft. Its not too different but it has definitely been iterated on enough to really bring out a new experience with new strategies, more varying gameplay, and good times. Now if they could just get the in game voice fixed…
- Loren
Windows PDF Viewer
I have an annoyance I hit every time I setup a new Windows system: no PDf viewer. Thats fine, I’ll grab one. But wait, thats right, I hate all the common Windows PDF viewers!
First, there is Adobe’s. It is slow to load, has a fairly awkward UI, complains about needing to be updated regularly, it needs the updates due to frequent security flaws, … bleh. With all of these, this is not a valid solution.
So I stopped using Adobe’s and started using Foxit’s PDF viewer for Windows. When I first did this it was pretty great. Good browser integration, search worked, not a terrible UI, didn’t bug me about stuff… not bad. But as time passed and it grew in popularity, so did all the crapware they try to push with it. Now its not just browser integration but a Foxit bar in the browser and other trash. So this is no longer a solution.
But wait I thought, “I wonder if Evince, the viewer I used so much on Linux, is available for Windows?” Behold, it is! And its fast! Free! And! Not! Annoying! Anyways, if you want a good free PDF viewer for Windows check out Evince.
- Loren
Work!
Summer has been pretty excellent so far! Had a lot of fun times with Steph here and got to try out some amazing foods from around the area including a crazy good burger from The Grape, supposedly the best in Texas and I believe it.
I recently picked up Dragon Age and have been playing through the game. I must say that of all the things Bioware tried out with this title my favorite addition is making it so your relationship with your team is based on your actions while speaking to them and by the choices you make in game. It really makes me appreciate the characters for who they are and who I am trying to play as and you cannot any longer buddy up to one person and then do things they disagree with without consequences. Very cool.
That said, I have a huge complaint for the game: I hate having DLC pushed, but embedding it into the game dialog is the worst. It killed the suspension of disbelief so much that I had to stop playing for the night a couple of days ago. The very idea of getting in game story characters to push your ware in game may seem like a smooth advertising solution but on the whole it just felt rude.
Anyways, I’ve been working full time on my masters project Arrogance and it is going well. Only two major sub-systems remain and a bit of polish and then I’m going to be starting on the gameplay programming, all of which should be pretty quick. Follow the gameplay programming up with some polish and I should be done on schedule here in two months time. I’ll post a video here later this week.
- Loren
Summer
With only a month off for summer break, this summer is feeling awfully rushed. That said, almost two weeks in it has been a blast. It started with some (very) aggressive gaming, was followed by going to Minnesotta for Steph’s family reunion with some interspersed work, and is now flowing nicely into working full time on my masters project.
The project itself is going well and tonight I finished off the last tech I needed for the core of the Arrogance engine which I am now forking for the purpose of this project. The engine is very clean and has some nice features modeled after things I’ve encountered in the UDK, Flixel, and my previous engines. I’ve even included some things that I thought up while I was studying Lua to determine whether or not I wanted to integrate it (I do, but later). Of all of this, the most favorite feature I have so far is reference counted resource management. Beyond a new game state system, better management implementation, etc., being able to have the game shut down and report zero memory leaks is very very nice.
Anyways, development continues, if your interested check out the developers log available on the right. Cheers,
– Loren
Lockless Linked List
For some recent work I needed to make a lockless linked list. These kind of lists are awesome because, for the most part, you can add things to the list from multiple threads with minimal cost. For my case a limitation on the needs of the list was that it only needed lockless insert, removals would be managed from a single thread. This allowed for a pretty awesomely efficient insertion function which I document here. Unfortunately this implementation is Windows specific but could probably be switched to whatever CAS your local OS uses. Enjoy.
template<typename T>
void Insert(const T \& d)
{
volatile Node<T> * current = _root;
Node<T> * n = new Node<T>(d);
volatile PVOID * ptr;
do
{
// Traverse to the end
while(current->next != NULL)
{
current = current->next;
}
ptr = (volatile PVOID *)(& (current->next));
// Attempt to swap in our new node
} while (InterlockedCompareExchangePointer(ptr, n, NULL) != NULL);
InterlockedIncrement(&_nElements);
}
Cheers, Loren
Skinned Animation
One of our projects for the last two months has been to build a 3dsmax exporter and an accompanying importer/render pipeline for our engines. This is the result of the project. The exporter supports exporting skinned and un-skinned meshes, bone structure, and scene graph to maximize mesh re-use. The stored format is XML based making it readable but not optimal.
Cheers, Loren
DevLog 2.0
So, seeing as I have homework to do I totally decided to work on DevLog instead! The software now supports multiple projects and users with the schema done up to support the addition of RBAC here in the near(ish) future. I very much ripped the CSS code for it from the theme I’m using for this blog by the awesome gentleman Nevan Scott. I cannot find you on the internet but thanks, where ever you are.
Anyways, on a more realistic front, a lot of work needs to be done to get DevLog release ready. Currently it uses sqlite3 (not a bad thing) but triggers need to be added to enforce foreign keys. User input from logged in users needs to go through more validation resulting in more queries to the database as well. Project and user management is currently done from python scripts run outside the server so some form of admin panel needs to be added to manage users, RBAC groups, projects, and posts. Moreover, the code needs to be moved out of the root webpy code and into a module (which uses webpy). This will aid in integration of the software into other webpy sites. Finally, some work could be done on the configuration front in terms of making it easier to theme and setup.
This is all on a back burner behind my thesis project (Arrogance) but feel free to keep up with it and other development from my developers log!
- Loren
DevLog
I started a project today, partially out of necessity and partially out of want. The project is called DevLog, short for Developers Log, and is a very simple system for creating quick log messages. It is very much inspired by micro-blogging software but made to be even simpler. The goal is that a developer can make quick log entries about what they are doing, where they are in the code, problems they have had, whatever, without losing concentration. No big interface, no clicking to add an entry, just type and hit enter and done.
I built it using web.py and it only took a few hours and totals at around 50 lines of code. Pretty nice and runs on sqlite to make it usable on both a local machine and a server quickly.
Once I’ve added a theme to it and a few more features I will be releasing the code for it. I’ve wanted these things so often and they are never there, now one is.
Anyways, you can find my personal devlog for my masters project Arrogance over on the “Other Stuff” bar on the right or by clicking here.
Cheers, Loren
On and on and on
Behind. I hate it, being behind. It has to be the most stressful thing in the world. Anyways, I’m catching up. Tired of it.