Posts Tagged ‘Vodka’

Vodka Paper Available

December 8th, 2008

While Vodka’s initial public release is still a few months away, my senior project related to it has been finished. A part of this project was writing the final paper on the project. The paper covers the design, implementation, problems and future of the Vodka project.

You can download the paper here: Vodka (Final Paper) (428) - 742.94 KB

Vodka is a service based Content Management System / Platform designed with one thing in mind: make a powerful content system that is easy to use.

Bartender

December 4th, 2008

Screenshot of the day: Bartender is an application I am writing to help manage data in Vodka based software. In the below screenshot I have successfully connected to my Vodka site and downloaded a piece of content. To do this, the application first authenticates a user and then sends off for the content. It is important to note that the membership and content services are separate entities, but the content service relies on the membership service to verify a specific user has rights to do anything.

Bartender

FGF Beta, Folder Kill Installers

September 30th, 2008

I have put up a new version of the Focused Games Framework for download. This release includes Thrust v1.1 and Vodka Alpha files. I have also released X86 and X64 installers for Folder Kill. Below is a more complete list of the changes made.

Thrust

  • Created Content Pipeline Project
  • Terrain Content
  • Cleaned some StateObject & Menu code
  • Added repeat states for GamePad
  • Added Xbox 360 projects
  • Added Camera components
  • Added Console component
  • Diagnostics
    • Added Stats component
    • Added Thumbstick Throttle Component

Vodka

  • Created core Vodka project
  • Added core interfaces
  • Implemented a few providers
  • Added Services project.

Finally, I urge you to keep an eye on FGDN as I continue to add to it over the next couple of months.

More On Vodka: Design

August 21st, 2008

One of the principals learned from designing my own Content Management Systems over the year was that deploying a CMS with a built in set of functionality is fine, but takes way too much work due to how different common functionality is. For instance, a forum is programmed quite differently from a poll or survey. In the last CMS I developed (FGCMS 2.0), I attempted to crack this problem by utilizing a hierarchial structure which could automatically be loaded from a database. What this mean was that I could extend a base class with new properties and functionality and store the new data in a new table. While this was wonderful from an extendability point of view, it was absolutely horrid from a consumer’s view.

Instead of having to program individual features, I had to program individual pages, static pages. This, of course, isn’t good because with every change to a class definition came a change to every associated page. The upkeep on this is terrible and what ended up happening was that I never got to implementing the pages for much of the backend functionality.

With Vodka, I am taking a step back and attempting to understand the problem from multiple perspectives. On one hand, XML based content is amazing for developing websites because XSL sheets can transform each piece of content into HTML without the need for static pages. On the other hand, having tangible .NET objects is priceless when it comes to code readability. Let’s face it, operating on XmlNode objects is not a fun procedure and is definately not maintainable. Furthermore, from a security stand point, I want to implement item live (and up) security that is customizable to the nth degree. While this may not be possible, it will be possible for most common uses. This desire comes from working with SharePoint, where security is powerful, but hard to use. It is hard because there are only a predefined set of roles for each item and it isn’t easy to understand security in a grander scheme. You can’t grab a look at what rules are overriding others.

vodka1

Here you can see that Vodka employs the very common three tier approach. The separation of data from logic from UI applications is clearcut. The reasons are fairly simple too:

  • Simple to maintain
  • Plug and Play behavior
  • Common backend accross all applications
  • Data format independency

But there is more to this than meets the eye. As shown above, the Business layer contains two sub layers: Simple Objects and Complex Objects. The goal of these is to provide a common ground of functionality with a split view of the data. On one side, the Simple Objects layer provides the Consumer layer with Xml based data. This makes developing websites, RSS feeds, and more incredibly simple. The other side is Complex Objects, which takes what I have learned from FGCMS 2.0 and bumps it up a notch. The core idea with the Complex Objects is that developers will want to and need to use tangible .NET objects with properties and methods. This fills that gap.

So how does this all work? Two words: Provider Model.

For now, let’s consider an implementation without security. The goal then is to represent data somewhere in memory, and be able to translate this data into other forms. Mainly the two forms in Vodka are Xml strings and .NET objects. Because data will be stored as an Xml string with attached metadata, it makes sense that the Simple Objects provider will always be a necessary step. The data provider model, then, takes data from some sort of memory (SQL Server, etc.) and translates it into a .NET object with metadata and an Xml string. A second step takes this object, and translates it into a Complex Object with properties, methods, et cetera.

vodka2

The great thing about the provider model, of course, is that each provider is fully customizable. You are free to use built in providers or develop new ones as new needs/technologies arise. I plan to implement at least an SQL and Xml File Data Provider as well as a simple Xml deserializer / serializer Translation Provider for the first true release of Vodka.

Vodka

August 7th, 2008

I have started, or rather restarted, a project under the codename of Vodka. This project is the replacement for FGCMS, or Focused Games Content Management System, the backend that has driven my sites for many years (until this site, anyways). The goal of Vodka is to create a simple and extendable CMS that is entirely based on XML and XSL technologies.

It is being written in ASP.NET on the .NET 3.5 platform. I am using Visual Studio 2008 and SQL Server 2008 to write the backend, and plan to employ a lot of slick AJAX/Silverlight controls to provide both the frontend and backend user interfaces. Right now I have been working on a simple content management architecture that takes XML content, transforms it using XSLT and spits out HTML. Check the screenshot below of an early prototype.

Vodka Prototype

Vodka will be built as part of the Focused Games Framework, so look forward to seeing a small portion of it in the next release!

Roadmap For The Rest of 2008

July 25th, 2008

I know I made a post about Gato Muy Splato being available soon, but the first release of GMS has now slipped. This is due to my internal wants and needs changing but also because of the recent announcement of the Xbox 360 publishing. Here is what you can consider my roadmap for 2008. Names of games/software are denoted by acronyms and/or codewords. I have tagged each release with the platform as well since I am now planning to support the Xbox 360 fully. I have also added roadmap information for two unannounced projects: Foxhorn and Vodka.

2008 Roadmap

Please understand that some of the releases will not be made public. This is because as I move to a real business model (us indie game developers do need to make some money) I will need to internalize testing a bit for security.