The Code Zone Bargain Basement Blog


Imparting Game Development Wisdom of Dubious Quality Since 1998

Wednesday, March 29, 2006

Happy birthday to blog, part two

It's officially the Bargain Basement Blog's 8th birthday.

In celebration, I worked on standalone Shi Sen some more. It's about 90% done. I still need some better tile graphics. Probably oughta advertise for it on gamedev help-wanted.

After that, it's standalone Voracity, ChessCards, and ConFusebox.

Then probably BaffleBees and one other game. They'll be released as daily puzzles. The standalone games will be released as a six-pack for a few bucks.

Tuesday, March 28, 2006

Happy Birthday to Blog!

The Code Zone Bargain Basement Blog is gonna be eight years old tomorrow.

That's right, worthy supplicants. Way back in the era of the "finger" commands and dot-plan files, I was posting Game Development Wisdom of Dubious Quality(tm) peppered liberally with such greatest-hits gems as. . .

Here's what I'm selling on ebay this week.

Quit writing game engines, you pinhead.

and. . .

Here's what I'm selling on ebay this week.

Eight years of that. Big congrats to me.

For my blog's birthday present, somebody must get Wil Wheaton to post a comment wishing it a happy birthday. That will make it complete.




Oh, and finally, here's what I'm selling on ebay this week.

Content, thy name is Flyman.

Sunday, March 26, 2006

Games are up

Finally got with the server monkeys. For some reason, the tables got deleted (just the data, not the form). He was able to refill 'em from a Wednesday backup.

I'm not sure exactly when the database went kaboom, as I just noticed it last night. Anyway, high score tables on and after Wednesday are gone. Sorry.

I probably ought to work up some kind of backup solution, dumping the database to a text file from time to time.

If anyone's familiar enough with SQL to give me an easy solution to these, I'd appreciate. . .

A) Determining if the DB is down so I can tell the user "sorry, come back tomorrow".

2) Saving the data to a text file so that I can resurrect a database that goes down.

III) Coming up with a consistent way of numbering lists in blog entries.

Games are down

Having a problem with the mysql hosting over on my web server, so the daily puzzles are down right now. I'll have 'em up as soon as I can.

Looking at this, I probably need to run a database check at the beginning when I send the game the initializing info. Then I can automatically pop up a box saying you can't submit solutions, and you won't end up playing a game that you can't submit.


Anyone know some SQL syntax for "is this database all nice and kosher and ready to receive some data"?

Wednesday, March 22, 2006

San Fran next year

Yay, the GDC is gonna be in San Francisco next year.

This works out pretty well for me. I have a cousin who lives a few blocks from Golden Gate park. She's converted her basement into a guest room/apartment. We would've stayed there last year, but she had a guest at the time. Hopefully we'll be able to get it this year.

Also, my cousin has three kids in and around Maggie's age. Maggie is still talking about her week in San Francisco, riding a rented bicycle with mommy, eating mango ice cream, and riding the carousel in the park.

It made for a really good vacation. For about $40, you could get a one-week pass that'd get you on all of the mass transportation (bus, train, trolly) along with about a half-dozen of the local attractions (kids museum, aquarium, etc).

San Francisco has a bus/train/trolly stop approximately every three feet, so it's easy to get from place to place without a car.

San Francisco Travel Hint: It's generally cheaper to fly to Oakland than to the San Francisco airport, and there's a train that'll take you the rest of the way for a couple of bucks. The train goes under the bay, which is kinda cool.

Tuesday, March 21, 2006

Working

Finishing up Shi Sen. Didn't get much work last week, as the kiddo had spring break, and I spent much of the week in kid-wrangling.

Also, we discovered that IKEA makes a cheap knockoff of some of our expensive furniture, so we now have a sectional sofa that we've been needing for quite a while. Our living room comfortably seated three people, which made entertaining a bit difficult. Now it's a bit better. Of course, between moving old furniture and setting up new stuff, we ate up about two days.

Not a productive week, but the house looks better.



During the week, I took Maggie to Red Robin for lunch. Upon seeing a Ms. Pac Man machine by the front door, she chirped "Look Daddy. That's the game you wrote!"

I didn't have the heart to tell her :)



Finally, I don't think that my Roomba is properly following Asimov's three laws of robotics. For example, if I strapped explosives to myself, then placed the detonator-switch on the floor, it wouldn't give a second thought to bumping into it while cleaning the floor.

Also, if I someone tried to harm me in clear view of the Roomba, I don't think it would make any effort to stop the attacker.

I think I need to call the help line. I probably need to confirm this.

Friday, March 17, 2006

GDC coming up

The GDC is next week, and most of the Gamedev press-monkeys will be there.

I will not. I just decided I needed a vacation, as I realized it had been years since I saw anything new there, and I needed a break for a year or two.

Keep an eye on the gamedev front page. For the Nth year in a row, I screamed "YOU GUYS NEED TO ADVERTISE YOUR COVERAGE" followed by the guys saying "yeah, we really need to make sure everybody's worked up to see the coverage when it starts". . .followed by them not doing anything.

At least they got the IGF interviews up. Last year they didn't post one of my interviews until two months after the GDC was over.

Oh well. I'll still be reading the coverage. You should too.

Wednesday, March 15, 2006

Computers in education? Pish posh.

Had to listen to some Fundamentalist Montessorians at a parent-teacher thing a few days ago.

Digression alert. . .

The word "fundamentalist" is quite a weasel-word. It was coined by religious folks a few years ago who wanted to get back to the "fundamentals" of the Bible following the movement towards kinder-n-gentler more new-agey Christianity. In actuality, though, they're doing nothing of the sort. If you ask 'em, for example, if a rape victim should ever be forced to marry her rapist to keep from disgracing her family, they'll suddenly revert back to some of that unbiblical modern moral relativism. There are folks who do indeed want to bring back all of the Old Testament laws (including the aforementioned rape-law) called "Biblical Reconstructionists", but they're pretty few and far between. The modern "fundamentalist" is generally a person with neoconservative politics and Biblical pseudo-inerrecist religious ideas, insisting that the Bible is without error but getting weasley with things like the again-aforementioned rape law.


So when I use the term "fundamentalist", I'm referring to one who holds a doctrine to be without error whether the doctrine contains errors or not. In this case, it's the works of this Montessori woman who came up with a way to teach kids. She now has a bunch of private schools teaching her method to greater or lesser degrees.

We send Maggie there because she's a bright kid who wasn't getting enough learning at Kinder-Care, and it was the only "real school" we knew that would take three year-olds.

We went to a pretty dull parent-teacher meeting a few days ago to meet up with the new school's principal. He belted out lots of talk about mission statements and five-year plans and leveraging synergy and other terms that are as meaningful as tits on a boar-hog (which is Texasese for "really freakin' meaningless").

During Q&A, Shelly asked if there were any plans to introduce computers for the younger kids. She was then met with some Montessori-speak about how younger kids need to be able to deal with a 3D paradigm rather than 2D and how the images on the screen aren't tangible enough for little kids and how computers make kids susceptible to "increasingly clever" sexual predators and kids can get around that net-nanny software and kids need to learn how to write with pencils and computers discourage that.

Here's a news-flash, folks.

1. Books are one-dimensional

I could take an X-acto knife and slice apart a couple of copies of War and Peace, and tape 'em together into a paper ribbon three miles long and two millimeters high, and you could still read it. Moreover, it would lose NONE of its context or scope.

Yet kids seem to be able to grasp the concept of books without them having be three dimensional and/or tangible. Any kid more than about two months old knows the difference between a 2D picture and a 3D object. By the time you're old enough for school, that concept is cemented into your head about as firmly as it's gonna get. Giving a kid a videogame on a 2D screen ain't gonna mess him up a bit.

2. Writing on paper with pencils isn't all that important anymore

If you gathered up every single word you wrote today and put 'em into two bins labeled "typed" and "handwritten", you'd likely find that the vast bulk of your words would be in the typed bin. I'm not saying not to teach kids how to write, but writing long stretches of text in longhand isn't done anymore. Teaching kids to type is MORE IMPORTANT than teaching 'em how to print.

Read the previous sentence again. It's a fact. Live with it.

3. You can make computers completely impervious to sexual predators.

It's quite difficult to do, however. It requires a special technique known as "don't hook the friggin' thing up to a network, you pinheads". This may still require a bit of monitoring, as the average five year-old is skilled at running 10base-T cable and reinstalling any TCP-IP drivers that have been removed from the machine.

Maggie's old Kinder-Care had computers. They ran simple games that taught 'em how to click and drag with the mouse, how to use the arrow keys, and how to type (because, if you haven't noticed, the alphabet on the average computer keyboard is a tad scrambled and requires a modicum of practice to use). Maggie is now more proficient at computers than any of her grandparents, and no internet predator was able to get near her because the computers weren't networked. Weird.


In any case, the whole argument really reduced to "Montessori didn't teach kids computers, so neither will we". Of course, Ms. Montessori died in 1952, but that certainly wouldn't have anything to do with it.

Doesn't bother me all that much, really. Thanks to the Civilgrrl downsizing, Maggie now has a computer in her playroom (which she has re-dubbed "Maggie's Office"). Thanks to the Flash games on noggin.com and pbskids.org, she can click and drag without any trouble. She's figuring out the arrow keys. She's gonna get typing tutor software on the machine, and I'll teach her MS Word as soon as she's mature enough to read the menus.

And if doing so means that she's gonna be typing up her own stories while the other Fundamentalist Montessorian kids are still learning to perceive a 3D world of wooden blocks, that's the other kids' tough luck.

Tuesday, March 14, 2006

I must know

Somebody please tell me why I need HDTV.

It's apparently quite important, because the gubment is planning to force all broadcasters to change the signal so that every little rabbit-ears TV in the US will stop working. . .unless you buy a convertor-box for approximately 5X the worth of the TV itself.

I've seen HDTV. I see 'em over at Best Buy, inevitably playing some undersea documentary from the Discovery Channel. I can't much tell the difference between 'em and ordinary TV's.

At least when they stopped making leaded gas, there was a compelling reason to do so (i.e. airborne lead is a mite toxic). It wasn't just the car companies lobbying the gubment to make people to replace their old cars with new ones. Also, it only affected cars that were at least ten years out of production. OTOH, I can buy a new rabbit-ears TV today that won't be able to receive a signal in a couple of years.




I have a plan for the games:

1. Finish Shi Sen Daily Puzzle.
2. Make standalone versions of the (now four) existing daily puzzles.
3. Make two more daily puzzles.
4. Make standalone versions of those, for a total of six.
5. Bundle together the six standalone games for a price.
6. Release all six daily puzzles for free on the site, only now with an ad imploring you to spend a couple of bucks on the standalone ones if you wanna play more than once a day.




My Software Review Queue. . .

1. ZBrush (review is basically complete)
2. re-review Project Dogwaffle Professional (now a fancy boxed product)
3. Carrara Studio 5 Pro.
4. N-Sided Quidam (haven't received yet, but is supposed to be released this week)

I also have a few books to review. I finally slogged through the Nth edition of "How To Write Role Playing Games in DirectX", which was rather discouraging, as Premier/Thompson/Course/Cougar/Mellencamp still feels the need to strap a 300 page DirectX tutorial on the front of their books to pad the page-count. I thought they were getting away from that with their "focus on" books, but they then dumped that. Too bad.

Wednesday, March 08, 2006

Enough to show off

Okay, there's enough of Shi Sen now to make it playable. I'm still a few days from it being a daily puzzle, but you can now check it out.

here

The rules are fairly simple. There are four of each tile (standard Mah Jongg). The object is to clear as many tiles as possible. You can clear a tile if another tile can be reached using two or fewer turns to touch it without crossing over another tile.

To remove a tile that can be cleared, click the tile then click its mate. If a tile can be removed, crudely-drawn arrows will appear showing that they're two or fewer turns apart.

Easiest place to start is by clicking around the outside edge.

To do:

- The arrows need to be redrawn (obviously).

- New tile icons if I can find some or contract someone to draw 'em. The current set is okay, but it's just the set from my old standalone game with a little aliasing around the edges.

- Something to bitch at you that the game is over if you can no longer make a match. I might not do this, as being able to see matches and continue the game is part of the challenge. I might just have a "give up and enter my name" button that you press if you get as far as you can without clearing the board.

- Time and score display.

- All the networking stuff.

The last two are pretty-much monkey-work.

Anyway, lemme know what you think.

Tuesday, March 07, 2006

Still working

Still working on the Shi Sen daily puzzle. Toughest part to do is the search to check for valid moves. Thankfully, I already wrote that in C++ a buncha years ago for my C++ version.

C++ to ActionScript conversion is both easy and hard. And, interestingly, it's exactly the opposite of what I'd expect. In the past when I had to convert C++ to something else (like Pascal or some high-level database language), the bugaboos popped up with the nasty little bit-fiddling operations that C++ handles beautifully but higher-level languages consider to be the realm of nerdy assembly-monks cloistered in towers on the Microsoft campus. So converting something like this. . .

X = (Y & 0x000f) << (B ? 1 : 2);

(which means "Mask off all but the last four bits of Y, then shift it either one or two bits depending on whether B is true, then store the whole mess in X")


. . .into something that just didn't handle bits or non-decimal bases was just nasty and often required the whole thing to be stretched out over several lines, maybe with a few temp variables thrown in.

Thankfully, ActionScript (i.e. ECMAScript) was hoped to be a scripting language with which engineers could hack together solutions easily, so it handles the above bit-fiddling just fine.

The problem comes with the "big picture" stuff like variable scoping. ECMAScript variables (unlike C++ variables) are static by default. Nonstatic variables must be declared by the nonintuitive "var" declaration.

myFunc = function(x)
{
y = x;
var otherY = x;
}

// now call it
myFunc(3);

// and see what we have
trace(y);
trace(otherY);

The output will be:

3
undefined

Unlike C++, y is now the caller's namespace rather than disappearing when the function goes out of scope. If you want your variable to go out of scope, you must "var" it.

It's just something to watch for. Especially when you're making a recursive function, like my Shi Sen search. You WANT your variables to stack themselves and dutifully go out of scope when the function completes, so plan to watch your scope when converting.

That is all for now.