Wednesday, September 22, 2010

Redesign

I've had no large chunks of time to play with this lately. :(

However, now that I work for the Microsoft Surface team, I'm surrounded by game designing enthusiasts! One of them runs the local game designers/developers meetup group! She's amazing. She has one social meetup per month, and one workshop meetup. I find myself among people who design games in XNA, in WPF, on the Surface (wouldn't I love to make a 3D model of a press you could play with on a Surface!!!), on Xbox, on Windows, on Windows Phone, etc.

It's been a very encouraging environment. One guy who's developing my all-time favorite game for the Surface (can't say which one) said he just tinkers when he has 20 minutes, without hoping for any outcome. That's quite a mind-shift for someone like me. I'm gonna try it. I had a couple hours tonight. I sat down without any expectations and just dinked around.


I've decided to create the UI in the new Metro style. I can't find a link to the Metro design principles. Mainly, you want to help your user focus on content rather than get them distracted by decoration. Plus, you should only make UI elements appear to your users when they're needed. There are a few other principles, like using natural and intuitive gestures and not trying to contstrain yourself by mimicking realism when it would be more convenient for the user to be true to the technology, etc. One of my team mates is creating a booklet illustrating the whole Metro idea. (Man, I'm lucky.)

I've posted an app that's just the menu. Emeralda v2 - Metro menu idea. My next task will be to wrap it in the cool code I created while going through Michael Snow's book that allows you to make the Silverlight control fill your screen, create a game loop, etc.

Thursday, March 11, 2010

Demo woes

Uhg. Even an intro page takes forever to download the first time when using Silverlight 3. See how long the intro takes.


I found a topic on MSDN called Silverlight Splash Screens. It looks promising. If I use the model described in that article, and don't use any image files, and kill the sound, I should be able to make a splash screen that will start immediately, and run while the whole app downloads.

Also learned while creating this brainstorming demo, a Silverlight app should run entirely from MainPage.xaml, and you shouldn't switch between Silverlight apps like my demo is currently doing (the intro and the level are two apps). You should suck all your content into the main page of one app, like it describes here at Silverlight Tip of the Day #84 – How to Dynamically Load a Control from a DLL. You can also suck raw XAML into a frame in your main page, but I'll need whole controls, with coded functionality.

So, the demo isn't much. Just an intro page to set the mood, and then a test layout page for playing. It's funny, but I've had this layout in my mind for ages, thinking it was the best, and now that I see it in practice... I hate it. I hate how busy the screen is. Sure, everything is easy to get to, but the playing frame is too small, and the experience won't be immersive.


The only thing I like is the three videos that play as you mouse over them. I think that mechanism for delivering instructional info is perfect. They let the player view at their own pace.

OMG! The guy who wrote the Tip of the Day article (Mike Snow) wrote a whole book, Game Programming with Silverlight. I'm gonna check it out.

Monday, February 1, 2010

The first secret message for our player

I just watched a demo of a video secret message (VSM) for our player. Placart Alert. I LOVE it! I love the style of it. Way to go Bill!! We'll need a way to paint an object in the game with a video.

Choosing a game engine with valid evidence

We have an edge piece to lay down
When putting together a puzzle, I always start with the edge pieces. (No, not the corner pieces. And I have no philosophical reason why not.) I feel like we have an edge laid down now.

It’s good to start out with a game idea. Bill had the idea.

However, during our brainstorming sessions, we dreamt up all aspects the golden version of the game. I pictured a detailed, opulent 3D multiplayer world with amazing cooperative features and a deep story woven into the gameplay. The learning aspect would be so subtle, so full of analogy, and so graduated, that people wouldn’t even notice they were learning theory as well as practice. I pictured eventually moving the game to Xbox and using the new NATAL input device where people could make the motions of turning the wheel of the press and would see their character doing it on screen. I had definitely left reality.

When I started trying to implement the game in SecondLife, then Unreal, I got bummed out cause I didn’t see how those engines could fulfill our golden vision. Then, doubt crept in when I heard things like Bill lamenting that he couldn’t get anyone in his demographic to log onto SecondLife. Or that they might not have the hardware required for Unreal.

Postmortem: I think if I knew last year what I know now, I would’ve asked for data from our player demographic as soon as we finished with the game concept and before we got emotionally invested in gameplay details. Now we can choose a 3D game engine and begin detailed design and development with total confidence. What a difference that makes!! I’ve been working more on the game in the last 48 hours than in the last couple months. I’ll be showing Bill a demo in Silverlight on Sunday. When we discuss what we like and want to change, I’ll know ahead of time what’s possible.

Game engine choice
First, since I already had it, I looked up the system requirements of Unreal 2004. Funny. If I used Unreal 3, only 40% of Bill’s survey respondents would’ve been able to use the game. With the older version of Unreal, almost all of them could’ve used it. But now that I’ve seen Unreal 3, it would break my heart to use Unreal 2004.

I won’t go near the Source engine because of the massive frustrations I experienced, with both Valve’s Steam delivery mechanism, and using Source in a school environment. Of course, I was reminded that I hadn’t tried Steam since 2006, so I tried it again last week. It STILL brings my computers to a standstill.

Last night I found a game engine that looked positively awesome! Game Studio. It was inexpensive and came with lots and lots of assets. Also, it boasted rapid and easy development with the use of behaviors that you can tack onto game objects.

But then I found a discussion comparing Game Studio with Torque 3D here. Wowsers. I wasn’t thrown by the negatives people raised about Game Studio because they really weren’t that bad. I assumed some loss of detail and flexibility in a rapid application development (RAD) tool. However, the comments people made about features Torque 3D were illuminating.

With Torque3D, I’d get everything I wanted, plus some things I didn’t expect. You can publish your game to the web!! Holy crap! Since when?! That would help for Bill’s customers who can only use a library or internet café computer, with which they wouldn’t be allowed to install anything. Also, if we build an installable game, you can build for the Max and Linux as well as the PC. Awesome!! And, if we use TorqueX 3D, we can build for Xbox 360. In school, I preferred Unreal to Torque, but I’m gonna have to get over that. Yes, Torque has less assets and it takes more time to get things going, but on the up-side, Torque was not built to favor shooter games. Yay! That satisfies Bill’s concern about “Engines conceived *outside* of socially redemptive cultures (cultures based in competition, aggression, exploitive imperialism, etc.) are less likely to serve.”

OK. On with developing the demo. I have 5 days.

Data from our player demographic

Bill got over 12 responses to his email survey, and he did me one better—he put a due date on it, and offered respondents a set of collectable artist trading cards if they answered all of the questions. (I love those cards.) He totally knows how to run a show like this. It probably comes from being a professor.

Here’s a small summary of the data we received:

Hardware
Only 5 out of 13 people had the minimum requirements for Unreal Tournament. Geeze.

However, 10 out of 13 had the following:
> 1.5 GHz processor speed
> 1 GB memory

If we dropped our requirements to 512 MB memory, we’d add one more person.

Graphics hardware followed a similar curve.

On a side note, one person had a Mac.

Game consoles
One person had a Wii and one person had all three (Xbox 360, PS3, and Wii).

2D vs 3D and moving around
This surprised me. One person didn’t care because they focus on other aspects of games, and one person preferred 2D. Wow!

The pressure is on to find a 3D game engine that would produce something that could run on 1.5 GHz processor and 512 MB RAM.

One person mentioned the frustration of moving around in 3D. We need a solution for this. I like Neverhood’s solution, of a solitary path of travel. You can’t move to every spot of the surface you’re walking on—you can only click to move a few steps in any valid direction, as if you’re in a roller coaster car on invisible rails. I also like the solution of the original Myst. When you move, the scenery that you’re looking at changes in regular intervals, creating the illusion of movement, as if you’re clicking through slides that were taken by pressing a camera button every 2 seconds. I might use this tactic in my demo.

Granted, this grievance against moving around in a 3D world is mostly coming from me. I HATE it. I hate how you can’t be precise, and how easy it is to overcorrect your direction, and so on and so on. Maybe, I won’t worry about movement too much until we’ve had some of Bill’s clients playtest the game.

Game preferences
What a diverse list. Some refer to physical games that aren’t on the computer. Here is a chart of likes and dislikes: (page down to see the table)









LikesDislikes
Flight Simulator
Myst (3 people)
Q/A games
Jigsaw puzzles
Flash games on Facebook like Farmville
Tetris (2 people)
Strategy
Chess
Poker
Memory
Action (avoiding capture)
Cribbage
Sudoku
Arcade
Card games like Solitaire
Mario Galaxy
Little Big Planet
Scrabble
Monopoly
Shooting
Racing
Killing
Most (oh no!)
Violent ones
So complicated that you give up
Q/A games that give no aid or resources or allow a difference of opinion
Flat, superficial feeling
Themes of societal greed and consumerism
Too simple
Games with activities that aren’t incorporated into the final goal

Tuesday, January 19, 2010

It's official - we don't know what we're doing

I worked up a rough map of the Emeralda world in Unreal Editor on my home computer. Then I tried to install Unreal Editor on my laptop so I could meet Bill at Blue Saucer and show him what it looked like. My laptop is only 5 years old. But it wouldn't run Unreal Editor without warning me that it didn't like the inferior shader engine that my graphics card supported. I ran Unreal Editor anyway, and it was DOG slow. I mean, I could've brewed a pot of coffee while it was opening.

I compared Unreal requirements with my laptop. Unreal requires:
- Windows XP or Vista
- 2.0 GHz
- 512 MB RAM
- 8 GB of free space on the hard drive
- NVIDIA 6200 (released 2004) or ATI 9600 video card (released 2002)
And that's only the bare minimum.

My laptop, purchased in 2005, has:
- Windows XP
- 1.59 GHz (.41 GHz shy)
- 448 MB RAM (64 MB shy)
- 74 GB hard drive
- Radeon Xpress graphics card (released 2004, but without Shader 2 support)

Then it hit me--the possible players in our major demographic will likely NOT have computers that support Unreal. We need to consider what hardware our possible players have access to.

After all, when Bill had a hard time convincing some of his existing customers to install and log on to SecondLife, we realized that we needed less of a barrier-to-entry for our game. For example, what possible player in our major demographic would have the patience to create a SecondLife account, download and install SecondLife, log in, make their way through Orientation Island which almost forces you to customize the appearance of your avatar, and in which it's difficult for a new person to move the camera to read the instruction boards, read our instructions on how to get to Emeralda, and THEN play? We realized we needed a one-click install, a one-click start, simple ways to move around, and a good UI. This minimal research guides us in part of our game design.

Now we need to do more focused research. Do most of our possible players have gaming computers? Then yes, we can use Unreal. But what if some of our possible players only have access to computers at libraries and coffee shops? Then, they won't be able to install anything. They might only be able to run Flash or Silverlight games in a web browser.

Man, we went about this backwards. Speaking for myself, I dreamed up a gorgeous, immersive 3D world with a 3D press that could somehow convey tactile feedback that was a close to reality as possible. We should've started with what our possible players are willing to do, and what hardware they have. We could've done that while hashing out the backstory, minigames, and methods of teaching.

I've asked Bill to email his customer base with these questions. I hope we get lots of responses.

We are developing a fun and easy game that will teach etching and printmaking, but we need to know the kinds of games you like, and how powerful are the computers that you have access to.
If you take the time to answer these quick questions, you will receive (something).
Feel free to answer only some of these questions.
Questions:
1. What kinds of games do you enjoy playing most on the computer? You can list game names (like Tetris, Myst, Viva Piñata), or game types (like puzzle, action, adventure, arcade, first person, etc), or whether you only play Flash games on websites.
2. What kinds of games do you hate playing?
3. Do you like detailed 3D environments that you can move around in by simultaneously using the mouse and multiple keys on your keyboard? Or do you prefer simple 2D environments that you can explore with only the mouse or arrow keys?
4. Do you have regular access to an Xbox 360, or a Playstation 3, or a Wii? If so, is it connected to the internet?
5. How powerful/fast (or how old) are the computers that you have access to?
If you have the time to answer this question in detail, and you have a Windows computer, here are some handy steps:
To find out the operating system, speed, and memory:
1. Right-click My Computer (on Windows 2000 or Windows XP) or Computer (on Windows Vista or Windows 7), and then click Properties.
2. A window should pop up, titled "System Properties" (on Windows 2000 or Windows XP) or titled "View basic information about your computer" (on Windows Vista or Windows 7).
3. Look for "Windows" to find the operating system. For example, "Windows 7 Home" or "Microsoft Windows XP".
4. Look for "GHz" or "MHz" to find the speed. For example, "Processor: AMD Phenom... 3.00 GHz" or "Computer: ...795 MHz".
5. Look for "GB" or "MB" to find the memory. For example, "Installed memory (RAM): 4.00 GB", or "448 MB of RAM".
To find out information about graphics card:
1. If you closed the system properties window, right-click My Computer (on Windows 2000 or Windows XP) or Computer (on Windows Vista or Windows 7), and then click Properties again.
2. If you are using Windows 2000 or Windows XP, click the Hardware tab.
3. Click Device Manager.
4. In the Device Manager window, click the arrow or plus sign next to Display adapters to expand the node. What does it say in the node that appears? For example, "NVIDIA GeForce..." or "ATI RADEON...".
Thank you so much for your time!

Saturday, January 9, 2010

It's official - we're moving to Unreal 3

Since neither Bill nor I can spare money each month for land in SpotOn3D or SecondLife, and since using Unreal Editor 3 will cost only $40 one time (until we need to license the game), we're going to go with Unreal for now. Once the game is made, we'll probably port to SecondLife/SpotOn3D, but it makes more sense to develop with Unreal now.

Post-mortem note: Man, I wasted so much time fretting about the restrictions of the SecondLife development model that it blocked me on everything. But that's probably due to my all-or-nothing mental issue. :o) Must not let that happen again.

We still love you SecondLife/SpotOn3D!

Melissa showed me an awesome book, Mastering Unreal Technology, Volume 1: Introduction to Level Design with Unreal Engine 3. I'm going to use that to ramp up/refresh my Unreal skills.


Update: WOW, Unreal Editor 3 has some great improvements over Unreal Editor 2004! The new Properties window with better tooltips (see pic), shortcut tools, snapping to avoid BSP errors, better organization of UI elements, applying on materials to meshes and wrapping textures in the materials, fixes to packaging errors, giving a visual warning when you put your player start too close to the ground, etc. This totally validates our decision to move to Unreal. And when I read that Unreal was used to make Bioshock, I no longer had a fear that I wouldn't be able to take the harshness out of this first person shooter engine to create a mellow learning game for our target demographic.

Yay! My articles were published!!

Finally! I wrote them so long ago, one of them is already a little obsolete.

The one that relates most to our project:

Using Expression Blend to create educational games and tools for teachers

Another loosely related one:

Creating games in Expression Blend: Simon Redux

The third one doesn't really relate.

Saturday, January 2, 2010

Beta testing Office Live Workspace

Oh my! Once you get going, tools come out of the woodwork. I got an invite to try out Office Live Workspaces, http://workspace.office.live.com/. (Actually, probably everyone with a Hotmail or Live or MSN email account got the invite.)

It's cool! It's like a Sharepoint site, but I really like the simplified features. You can EASILY create multiple workspaces, allow others to view them, post a range of document types, and organize them. I LOVE IT! All it needs is version control so you can see previous versions of a document. An http:// sourcesafe.office.live.com. :o)

It's a wee bit buggy, but not in any way that would cause loss of data, thankfully. Dates sometimes don't show up, or you can't save documents back to the server (you have to re-upload them), and I'd like to be able to store non-Office type documents to new folders (not just a Note, Excell spreadsheet or Word doc), but it'll TOTALLY serve our purposes.