Showing posts with label game. Show all posts
Showing posts with label game. Show all posts

Monday, August 15, 2016

Building and Testing Tezad in Go 1.6 vs 1.7

Go 1.7 just got released! How does Tezad fair?

Tezad is pezad's puzzle game project, written in Go. It still has quite a lot of polishing ahead of it, but at least the game is playable (besides not knowing where the boundaries are). Take a look:

The latest version of Tezad, built on Go 1.7. Look at me almost get a home run, or a quadruple, or whatever the non-infringing name would be!
It's got lots of other stuff though: A game that ramps up gravity every 10 line clears; gravity which can drop 2 or more lines every frame towards the higher end, even instantly dropping to the bottom on the last levels; CW and CCW rotation, fast drop, instant drop, wall kicks, a ghost tetromino that will show where your tetromino will land... you can even hold tetrominoes too, it's just too bad you can't see what you're holding.

Go 1.7 supposedly has a compiler that will make smaller and faster binaries, and will do this faster than previous versions of Go. Let's try it out!

I can test the compile times and binary sizes easily enough, but the game doesn't yet have an automated benchmarking tool. What it does have is unit test for core parts of the game logic, all running parallel. So, I ran a bash script to build Tezad in a loop n times, and another script to loop over running the tests n times as well.

Turns out they weren't lying! Take a look:

Go Version1.61.7diffratio
Total build time sec63.28357.426-5.85790.74%
Total builds25250100.00%
Avg build time sec2.531322.29704-0.2342890.74%
Tezad size bytes50556964531984-52371289.64%
Tezad size MiB4.8214874274.322036743-0.499450683689.64%
Total test time sec91.83670.13-21.70676.36%
Total tests25250100.00%
Avg test time sec3.673442.8052-0.8682476.36%
As tested on an old 13-inch late 2009 MacBook with 2.26 GHz Intel Core 2 Duo, 4GB DDR3, Crucial M2 256GB SSD.

Build time improved over 9%, size of the binary improved over 10%, and the time to run the tests improved over 24%. Not too shabby for not changing a single line of code!

(As an aside, you may be wondering what happened to Tezad since you saw it around 2010 or so. That was the C++ version. The new one is a complete rewrite. Code isn't yet available to the public, but someday it should be.)

Thursday, January 22, 2009

Tic-Tac-Toe: Released

You can get Tic-Tac-Toe by visiting the google-code stake of pezad!

It might have taken longer than expected to get Tic-Tac-Toe out the door, but when you start out with a completely clean slate, I suppose the beginnings would be a bit humble.

Yep, project Tic-Tac-Toe started out as but a glint in the eye on Oct 16, 2008. Here we are, 98 days later with a finished product. I must say the end result is much better than the hello world code that it started out as. Still, I can't help but feel a little disappointed with my efforts, considering it should take less than a day to program start to finish. In any case, we've finally got a game under our belt, and we can continue on to our next project! And hopefully it's a game that people will want to play more that a couple of minutes.

We got some great things out of this game though. We figured out how to use OpenGL, SDL, and FreeType without the help of some external framework. The graphics, while amature, fit the motif of Tic-Tac-Toe nicely. Check out the two levels of AI difficulty too, most implementations offer only one.

The most amazing thing about Tic-Tac-Toe was that, somehow, not one, not two, but THREE professional musicians agreed to do music for the game. Chad Nigh was on drums and did the mixing/producing, Kyle Moreland played the funkodyne (er, the acoustic guitar), and Blake Kresge on bass guitar. Check out Kyle's Build Yourself A Boat CD. And then buy it.

I'm not sure why I spaced out on the music credits in the game (I only gave production credit of Chad) but I can't give enough thanks to the group for the aural bliss they provided.

In conclusion: We've got game #1 out the door, let's keep it going!

Saturday, July 19, 2008

The Game that Became Portal

Narbacular Drop was developed as a student project at DigiPen by a team of developers called Nuclear Monkey Software. This game was noticed by Valve which eventually hired those students, and later went on to fully develop this game's core concepts as a commercial product now known the world over as Portal (teaser trailer).

You can download Narbacular Drop for free at the website. This game is much shorter than Portal, and can probably be finished in less than an hour. Noticable differences are that the character cannot jump, there is a turtle that you must steer over the liquid, and the player can also shoot portals through portals (this is important because some levels require this action in order to continue). There isn't as much hand-holding here either, the difficultly isn't as simple at the beginning as Portal's was. However, this game is JUST as fun as Portal, so check it out. Don't be a game snob just because it is Windows only or just because you've already played Portal.

Be sure to check out a few of the documents on the website too, including the Postmortem (c'mon, Spiffy McGee! Pull it together man!), the technical document, and whatever else you like. Since DigiPen is the college for training the world's next great game developers, these contain valuable insight as to how to bring a game together. They outline milestones, achievements, and specifications that must be met. None of this have I done for any of the games I've worked on in Pezad. No wait, I did some of this for Entrippy, I just forget to use it.

What other goodies did I find in the docs? Some of Narbacular Drop's "Product Competition" include The Adventures of Lolo, Stretch Panic, Ico, and The Legend of Zelda: Windwaker (woo!) (Game design document, page 4). Personally, based on the videos, I don't see it.