Brad Wardell's Blog


Object Desktop: Like getting the next version of Windows today

Published on Tuesday, October 13, 2009 By Brad Wardell In Object Desktop blogs

Object Desktop has been on the leading edge of desktop technology since its initial release in 1999.  Features that are considered “standard” today showed up on Object Desktop first – often years in advance.

Years ahead…

Here are a few examples of innovations that showed up first on Object Dekstop:

  • ZIP files behaving like folders
  • alpha-blended shadows under windows
  • desktop widgets and gadgets
  • GUI skinning
  • scripted desktop automation
  • animated wallpaper
  • desktop icon organizing
  • digital distribution clients
  • changing all the windows icons
  • and much more

Some of the things mentioned above probably seem impossible that one program suite could be where so many common technologies first showed up.

Example 1: digital distribution clients

For example, digitral distribution clients.  Today, with programs like Steam and Impulse, not counting all the other programs these days that update themselves (Windows Live updating, Windows update, Adobe updater, etc.) that the first program suite to do this was Object Desktop back in 1999 with “Component Manager”.  It led the way in showing how you could release software that could be continually enhanced seamlessly.

Example 2: Shadows, Widgets, and more

While Macintosh users were claiming Microsoft “stole” the idea of gadgets from Apple or MacOS developers, it was Object Desktop that first introduced users to user-created scripted objects (widgets) back in 2000 – 3 years before it showed up elsewhere. In addition, such basic cosmetics as shadows under windows first became available to Object Desktop users back in late 1999 – years before it was available elsewhere.

Example 3: GUI Skinning

Windows has come a long way since the look of “Windows classic” but even on Windows 7, the mechanism for “skinning” the Windows GUI was modeled after Object Desktop’s WindowBlinds technology.

…And much more…

Of course, there are also plenty of technologies that remain exclusive to Object Desktop users.  For instance, the ability to change all your Windows icons on Windows XP, Windows Vista, or Windows 7 remains exclusive to IconPackager (part of Object Desktop).

The ability to have animated wallpapers on Windows XP, Windows Vista, and Windows 7 remains something that only DeskScapes can do (part of Object Desktop).

And of course, the recently released “Fences” program (part of Object Desktop) is the first and only program for Windows that enables users to organize their windows icons conveniently or simply hide them all in a quick double-click on the desktop.

Seeing is believing

To see why power users have made Object Desktop the first thing they install on their PCs you have to look at some of the things it does today:

 

image

With WindowBlinds 7, you finally gain full control over the Windows GUI.  There are literally thousands of free skins available for download online that can customize Windows a bit or completely transform the GUI to look like another OS or something completely different.

 

image

DeskScapes 3 isn’t just about animated wallpaper anymore. Now, you can take your existing wallpaper and apply a variety of effects for it. This kind of obvious enhancement to Windows is why Object Desktop has remained so popular. Object Desktop isn’t simply about doing cool stuff to your computer but extending Windows in ways that seem obvious in hindsight.

 

image

The Tweak series of utilities (TweakVista and Tweak7) give users streamlined access to underlying capabilities of Windows that normally would require scouring the net for registry secrets.  For example, Object Desktop users were able to alter their UAC behavior on Windows Vista in ways that are now only now coming to Windows in Windows 7 (which means in Tweak7 we’ve upped the features further).

 

image image

Impulse is the descendent of Component Manager (right image).  While most people were updating programs by sifting through websites looking for “patches” Object Desktop users simply loaded up Component Manager to see what new cool stuff Stardock had developed.  Impulse has been steadily building on to these possibilities (which we’ll talk about more at the end of this document).

 

image

Fences, possibly the hottest new desktop utility to be released in the last couple of years.  Screenshots don’t do it justice.  Fences Pro, available only for Object Desktop users right now, has an additional set of amazing features such as auto-fences and more.

 

image

IconPackager is another program that seems so obvious that one wonders why there aren’t dozens of programs like it.  But it remains the only program that can take a package of icons and apply them to any version of Windows.  The IconPackager format has become the defacto standard for users to pass around sets of icons.

The latest version of IconPackager (always on Object Desktop) lets users change their Windows 7 icons and modify live folders.

 

image

WindowBlinds can apply skins that were made for one version of Windows onto Windows 7 and it will automatically adapt the skin on the fly.

 

image

The latest version of WindowBlinds can also add textures to the UI.  Aero never had so many possibilities.

 

image

WindowBlinds also lets you have explorer backgrounds

image

SkinStudio is the only program available that lets users create their own GUIs for Windows XP, Windows Vista, and Windows 7.

The Future…

Meanwhile, with the release of Windows 7, Stardock’s labs are full of new features to be added to Object Desktop to take it even further into the future.  Power users will soon be able to greatly extend their windows experience in all kinds of ways that will extend their capabilities.  With more and more users having high end 3D hardware, multiple PCs they have access to, higher resolution monitors, the possibilities are endless and you will find them on Object Desktop.

To learn more about Object Desktop visit www.objectdesktop.com.

Elemental Modding: Maps, Continents, Environments and Terrain

Published on Monday, October 12, 2009 By Brad Wardell In Elemental Dev Journals

Having spent the weekend modding up Elemental I was able to find some weaknesses in our data driven system that I think we need to address sooner rather than later. 

This technical blog will discuss how worlds are made using the Elemental engine.

Maps

Map data in XML (e.g. mapsizes.xml) defines:

  • Name of the map type (e.g. “Really big”)
  • Map size in tiles (100,25)
  • A default amount of land vs. water ratio (that can be adjusted by the user) as a % (e.g. 75% water).

Map Style

Map Styles (e.g. mapstyles.xml) determine how land is prepared for the map and includes:

  • Name of the style (e.g. “islands”)
  • Seed range (e.g. 5 to 7) to determine the number of seeds to start from
  • Number of continents range (e.g. 5 to 7) to determine the number of total continents there should be at the end.

Environments

The environments (e.g. coreenvirnments.xml) controls where different types of terrain will ultimately be placed.

Examples would include arctic, temperate, tropical.

Environments would include where in the map they can exist (i.e. between 20% from the top to 40% from the top for temperate).

Terrain

Terrain is where things start to get very interesting and complicated.  Mountains, Swamps, Desert, Grasslands, Plains, Hills, and lots of different iterations of these would be types of terrain.

One would imagine inside of a coreterrains.xml things examples like:

Arctic_Hills which includes these controls:

  • What environment(s) it can be placed in
  • Its defensive value
  • Its movement value (1.0 for normal, 0.5 for 50% movement penalty, etc.)
  • Its Influence Type (e.g. “neutral”, “good”, “evil”, “smurfy”, whatever)
  • Its cloth map icon
  • Its 3D tile image (taken from tile editor)
  • Its rarity value (0 to 100%) – what % of the tiles are going to be seeded with this.
  • Its growth rate for N, S, E, W, NE, SE, SW, NW (i.e. growth.se 33.0  which would mean there’s a 33% chance that the tile to the SE of this seed will also be given this terrain type).
  • Its classification (forest, mountain, etc.) if there is something notable about this tile you can classify it (normally you wouldn’t need to do this but forests can be logged and you might want to have 20 different types of forests that all can be logged).

When two terrains compete for the same tile, the rarity value determines which one “wins” the tile.

Now, the reason all this is important is because we (Stardock developers and you guys) as a team are going to want many many months of monkeying around with this data.  We want people to be able to come up with not just “forests” in the generic sense but redwood forests, pine forests, deciduous forests, etc.  We don’t just want “plains” but a zillion different types of plains. 

On the cloth map, it’ll look pretty much the same.  But when we get to the 3D engine, this will matter because, over time, as people submit their own tile creations from the included editors, the worlds will continually get richer and richer and better and more interesting.

For example, in the beta you have right now, there are no hills.  As a modder, I should be able to add hills.  Hills are obvious.  I’m sure there are people reading this who have traveled and seen some great stuff that could be put into the game.

So that’s what’s been assigned out to get into by Beta 1D.

JoeUser traffic over time

Published on Sunday, October 11, 2009 By Brad Wardell In Blogging

image

You see the occasional spike here and there when we’ve gotten linked to on some story. I used to be a lot more aggressive about going out and getting linked to on some political article but now I’ve stopped doing that because people have become hyper-sensitive to political viewpoints (even my Facebook comments get turned into stories).  I suppose that’s the price of success – greater scrutiny.

JU used to get around 4,000 visitors a day (tiny) back in 2007.  Now it’s around half that.  So there is definitely a decline in JU traffic over time now that Stardock doesn’t promote JU anymore.

I mentioned back last year that I was going to focus more on JU as my personal blog site and catch-all for my articles to be filtered to the appropriate sub-site. So my Demigod journals or Elemental journals and such show up here but tend to be read more on say Demigodgame.com or SinsOfaSolarempire.com and such.

Modding on a Sunday night: Part 2

Published on Sunday, October 11, 2009 By Brad Wardell In Elemental Dev Journals

Our story so far…

Lest you think I’m some sort of shut-in. I really did go outside today. Cider Mill and then played with the kids.  So 2 hours spent moving around and the rest of the day in front of the computer.  That’s a ratio I can live with.

image
Only 2 broken bones…

Adding Technologies

Adding technologies to Elemental is still a work in progress because the research screen in Elemental is still a work in progress.

 

image
The UI needs some work…

So before we talk about modding the “tech tree” in Elemental we should probably talk about the concept behind researching in Elemental.

Elemental doesn’t have a traditional technology tree.  The idea here to have a lot fewer “techs”, each of which do something very very interesting in the game (as opposed to in GalCiv where you were researching “lasers IV”).

In Civilization IV getting a technology did something for you that changed the game and made it more fun but of course, once you have it, you have it.

So in an effort to have our cake and eat it too the idea here is that you get a technology and getting that technology does something “cool.”.  For example, researching “Adventuring” will unhide the dungeons on the map (well not right now, but it will eventually).  Researching mining will unhide metal ore you can mine. Researching education allows you to build schools in your cities, and so on.

But on top of that, once you have researched something, you can then keep focusing on that technology make it better than better.  So researching mining will let you mine metal. But you can also continue to research mining and will continually get tiny bonuses in your mining ability for as long as you want to research it. Hence, you get an infinite tech tree.

So here’s how it works right now:

image

We have a file called “CoreTechs.xml”

The file name is irrelevant though to the game – as mentioned previously, any XML file will be read in and parsed. It’s the keyword that matters. We could have made every technology its own file if we wanted (that would be a headache though for us).  But when the time comes and you want to start submitting your own mods, you’ll want to make sure you’re creating unique files and not uploading “coretechs.xml” or something.

Now, the highlighted parts are ones I have no idea what they do and no idea why they’re there.  I will ask about them next week.  The rest is pretty straight forward after a bit of experimenting.

First, you define the technology’s internal name. Then you have a display name and the image you want to use for it. 

Next, you then set up whatever types of pre-requisites you want for that tech. Right now, techs only require other techs as pre-requisites but eventually you could have all kinds of things required to research a given tech (maybe an ancient scroll you uncovered from an ancient ruin, maybe something your hero got on an adventure, maybe a random event, whatever).

The “value” part is how many research points it takes to get that tech.  By default (in beta 1B anyway) each citizen produces 0.1 research points per turn.  So if you make something cost 10 research points, it will take a down of 100 a single turn to get it (very easy).

Next is the tech bonus you define. This is your “infinite” research element.  It needs some work though still as this isn’t finalized.  But basically what it will do is define what sort of bonus researching that tech will provide your civilization.  So for instance, what it should do is that every 100 points you spend on “Farming” should give you a 1 percent bonus to your farming output.  But we have a “TechLevel” field that I suspect is going to go away and we won’t be displaying it as a “tech” on the screen since it’s not a tech, it’s a bonus.

More answers on modding

What will and won’t be possible in Elemental for modders is still really up in the air.  That’s why I’m planning on becoming an Elemental modder early on so that I can be making mods and push the engine early enough so that things can be changed in the engine.  A simple Temple of Apshai type mini-game using the Elemental engine and Python is going to be my test case (not for awhile mind you but hopefully before the game comes out).  That will give us all an idea of what is and isn’t possible.

Where to get Ready to Play

Published on Sunday, October 11, 2009 By Brad Wardell In Ready to Play

If you're interested in getting Ready to Play visit:

http://readytoplay.impulsedriven.com 

On the download page, you can sign up.  We pick people from that list to join the beta.  Right now, the number of people invited in is kept very small so that we can monitor bugs and network issues on a per person basis. But as the beta goes on we will be adding more and more people.

Impulse: Ready to Play: Beta WAVE 2 next week

Published on Sunday, October 11, 2009 By Brad Wardell In PC Gaming

If you have either Sins of a Solar Empire or Demigod and play online, make sure you sign up for the Ready to Play BETA.  Next week, we intend to sent out invitations to the second wave which will be drawn from the signups.

Right now, we have approximately 500 people in the beta.  Wave 2 should extend this to around 2,000.

What is Ready to Play?  It is a new program designed for every single person who has ever had a horrible online gaming experience in multiplayer.

I think I can confidently say that Ready to Play really does transform the online experience.

Here’s how it works:

You download and install it. It asks you to prioritize the types of people you want to play online and answer some questions.  It takes this information and from that and recommends people you might want to play with.

From there, it’s unbelievably easy to get a good game going.

Step 1: Pick your game.

image

Step 2: Pick who you want to send the invite to (official friends or ones the system thinks you would get along with)

image

Step 3: Send the invitation

The results are just awesome. You get games going very fast with people who are likely to be compatible with you online. 

Now this is still beta so it has kinks, polish issues, and algorithm tweaks that it needs. So you won’t want to sign up if bugginess and such is an issue.

Based on player feedback, we’ve already started greatly enhancing what it will be able to do (voice over IP is in the works for instance).

You can discuss it more here:

http://forums.impulsedriven.com/forum/614

Modding on a Sunday night: Part 1

Published on Sunday, October 11, 2009 By Brad Wardell In Elemental Dev Journals

Yesterday I talked about how I added some additional resources into the game.  Today I’m going to talk about modding the tech tree.

But first, I want to answer some questions I got from yesterday’s article.

First, the age old issue of multiplayer came up. If I mod what is on my machine, how does that affect multiplayer? The answer is, it doesn’t.  Our solution to this age old issue is, in hindsight, so obvious that I feel shame for our industry (and myself in particular but that’s just my default stance anyway…) for not having done this sooner: When you play multiplayer,the data all sides use is server-side – the data you have locally is irrelevant. So you can mod your game all you want without worrying about multiplayer.

Second, there is, at this stage, a significant issue with hard coding still that will need to get zapped as we go along.  Kingdom, Fallen, etc. should not be hard coded into the game.

image Third, gameplay itself will slowly migrate to Python 2.x  But it will be a gradual process. Early on, our modding will focus on adding and modifying Elemental. Later, I’ll walk you guys through how someone could use Elemental with Python to make a new game.  My goal (and this isn’t a promise because it depends on how long it takes to do) is to make a Temple of Apshai mod (a classic RPG) using Elemental and give out to people complete with source so people could see what I did.

Next…

The tech tree…

Modding on a Saturday night

Published on Saturday, October 10, 2009 By Brad Wardell In Elemental Dev Journals

This weekend I’m trying to see how much I can do to the game without having to have access to the source or, for that matter, without having art skills.

Right now, for beta testers, there’s not much modding possible because there are is no documentation and the data is streamed from our servers so that we can do real-time updating. 

Here’s how modding works:

First, you have to think of everything in the world in three parts:

1. The data that explains what the thing you want in the game is.

2. The image that represents the thing you want in the game.

3. The 3D object that represents the thing in the game when seeing it in 3D.

Right now, we’re lucky because the 3D engine is disabled in the beta and in the final version, there will be a huge pool of 3D assets that modders can make use of or use the built in mod tools to create without ever having to crack open Maya or 3D Studio.

So for tonight, I decided to make a new resource called twilight bees.  This would be a food resource.

Step 1: The data

The biggest load hog on Elemental right now is because of the way we do our XML. We will have to optimize it but it was done to make modding easier.  The idea is that you can toss in any XML file in the data/<your language> directory and voila, the game will read it in.

This way, modders don’t have to worry about modifying existing files. They can easily add their own files.

So I created a file called twilightbees.xml

Using the “stuff” I found in coreresources.xml I reversed engineered how resources were put in (yea, if I was at work, I would just ask but I’m at home so I have to figure it out or worse, look through the google docs on the project).

image

The stuff I highlighted is the stuff I couldn’t figure out and think it needs to be either taken out entirely or have a pretty important point for existing because they don’t seem to matter except rarity but what does “3” mean?  I am going to ask that rarity be simply a percent 0 to 100% odds of the item showing up in a given tile.

Step 2: The image

I found a bee hive image on the net and copied it into the gfx/tacticalicons directory.

In the game

They I ran the game and was greeted with this:

image

One thing that was nice is that I didn’t have to worry about sizes. Old modders reading this know what I speak of.  The game took care of sizing it properly for me so I didn’t have to make it some 128x128 image or whatever.

image

Once I had farming tech, I could build a farm on the twilight bees.  Why a farm?

Because I kept the <Type> as fertileland and in the file k_farming.xml is where the “farm” improvement is.

image

One thing I learned is that there is a lot of XML possibility already in the current beta.  For example, there is also a f_farming.xml for the Fallen farm.  What resources show up is all data driven and what improvements, how they look, what they do, is all data driven.

So for instance, I could create a race of dwarves with their own tech tree, their own improvements, but could act on the same land in different ways.  Maybe Dwarven mines, for instance, could be more productive than the standard mines.  Or maybe there would be resources that only dwarves could even see on the map.

My main complaint right now though is the sheer amount of clutter that I’m not convinced is necessary. We’ll have to be careful not to let too much legacy XML stay in there.

Now, the question rises, what should be in the game by default in terms of “stuff”?  It’s always a challenging question to answer.  For instance, having spent years playing games from Dominions to MOM to Civilization and HOMM and so on, each game has its own take on how much “stuff” the user needs to deal with.

I’m of the opinion that I’d like to see quite a bit of different stuff on the game map that does interesting things even if it makes the map a bit more “cluttered”.

Tomorrow, I plan to start digging into the technology trees for the game.

Object Desktop: Tweak 7 and beyond

Published on Friday, October 9, 2009 By Brad Wardell In Personal Computing

imageYesterday Object Desktop Ultimate users were treated to the latest build of Tweak 7.

There’s been a lot of work with this under the hood and I’m still not sure what the ultimately direction for this program should be because I don’t want it to become full of snake oil tweaks. We want to focus Tweak 7 on useful features, ideally ones that can be put into the new version of TweakVista as well.

One of the new pages is called “Usability”.  This is one of the areas I’ve been pounding on for the past few months here and we’ve tried lots of different things with varying degrees of success.

Let’s walk through the usability tab for this blog:

image

Context handlers are one of those things that drive many users nuts. They’re the system tray clutter of 2009 – everyone wants to get their crappy thing into the right-click menu.  There are plenty of programs out there that can manage them but they often seem really cryptic. Our goal is to make this a very easy and safe way to control what gets put into those menus.

image

The Profile location is still a work in progress but the idea here is to let you put your “stuff” on other drives.  My C drive is an SSD and my D drive is a huge conventional drive.  I don’t want all my stuff on the C drive.  You can move some of your folders over from Windows explorer but many others you can’t easily do so and it’s a pain.

The idea here is to let people put their stuff wherever they want rather than being forced to use the C drive. It works extremely seamlessly.

image

The third tab includes the confirmation options.  This is an area that will be growing and growing and growing as we find new ways to get rid of the “Are you sure?” dialogs that Windows seems to love.  We’re just getting started on this but you get the idea.

If you don’t have Object Desktop Ultimate, you can get it here: www.objectdesktop.com.

If you do, make sure you have chosen to see betas in the Impulse settings.

Impulse gets integrated customer ratings

Published on Thursday, October 8, 2009 By Brad Wardell In Personal Computing

Ever wanted to see what people who actually bought a given game or application truly think of something? Impulse now supports customer reviews – from within Impulse, users can rate their games and applications on a scale from 1 to 5 stars.

image
Rate the games and applications you have within the Impulse client

image
The explore page on the ImpulseDriven.com website as well as within the Impulse explore tab will now display customer ratings.

Because of the ease of rating, the developers of Impulse believe that the programs will receive a much more accurate rating than what has traditionally been possible and in addition ensures that only those who actually have the program can rate.