Bright Night Games


Still Alive
Posted by Paul

Alright, I know itís been a while since Iíve shown any sign of existence here on the site, but Iím finally making an update. Itís been so long that I donít even remember what has happened, so bear with me.

My team and I finally finished our sophomore year project, Whiplash , this past July. We spent the extra summer months polishing the game in our own time while juggling a few summer courses. The total development cycle took about eleven months, which brought us right up to the entry deadline for the Slamdance game competition. Unfortunately for us, the competition was cancelled this year, so our extra effort will most likely go unnoticed. In any case, I think the game strongly benefited from the extra months of work and should still make for an excellent portfolio piece.

Whiplash Screen
Whiplash title screen.

When I arrived back in Seattle for the fall semester in September, a friend showed me his iPhone game, Hairball, a game reminiscent of the old TI-83 game Falldown. He also showed me where I could buy the game on the Apple store for $2.99. And finally, he told me he had sold 500 copies, raking in just over $1,000 profit in the first month (Apple takes a 30% royalty).

At the time, I had no idea that Apple had even released an iPhone SKD for public use. After a bit of research, I set a goal to make my own iPhone game in C++ taking no longer than seven days. During that week, I designed, implemented, and polished what later became known as Snowball . It took us a couple days to port over to Objective-C and the iPhone SDK, but within a week we had it up and running. Some of the code was down right hideous , but my end goal was to make money spending as short amount of time as possible. After all, I was still taking a full load of classes.

Snowball Screen
Snowball title screen.

Fast forwarding a few weeks, Snowball was released for $1.99 on October 13th, and managed an astounding 5,000 sales in its first month! Somehow, we managed to get featured on the front page of the iTunes store and raked in 500+ sales a day for a full week. Currently, I plan on picking up a MacBook and developing another small iPhone game over Christmas break.

All that good luck aside, Iíve also been working on my junior game project titled Kabloom . Itís a 3D third-person simulation game where the player is stranded on a dying island in the sky and is tasked to transform it back into a beautiful Eden. Itís a hard game to describe, but one of the core pieces of technology we want is to dynamically grow and shrink trees. Since we donít have any artists, we decided to procedurally generate these trees using Lindenmeyer System fractals. Right now weíve got it working fairly well; we just need to integrate it back into the main game project.

LSystem tree with lovely cube leaves.

Whew, that was a lot of information! I feel like Iíve only scratched the surface about what Iíve been doing the past few months, so hopefully I can go more in depth about something and write an article for the site. Speaking of, I finally got around to uploading some Whiplash screenshots, removing Adventure Kid completely, and I added a Snowball section. I also tried to get some of the older art to be a bit more consistent.

Alright, I think thatís enough for now.

More Words
Posted by Andrew

Not much new to say, just feel like writing a little bit about my project.

As I said in my previous update below, I'm working on a new side-scrolling platformer heavily influenced by M.C. Kids. It's tentatively named IcePlod, if only because I needed a name to stick into Subversion. I've been working on it off and on, with a lot of work being done just this past week. I finally implemented basic hit detection, which makes creating and testing the engine a lot more enjoyable. It only works for solid platforms, no slopes or item interaction yet.

IcePlod takes most of its gameplay from M.C. Kids. In fact, while I was working on the game's hit detection and physics yesterday, I used M.C. Kids in an emulator to try to match the original game's physics as closely as possible. I used a stopwatch to estimate the maximum running speed, how much friction to slow the kid while on the ground, maximum falling speed, and things like that. I think I've got a very close approximation of M.C. Kids's physics. It feels about the same to run through level 1 in each game. It's very neat to have my own implementation of their game.

While the game currently appears to be nothing more than a clone of M.C. Kids, I've got plans to turn it into my own game. Mostly I have ideas floating around in my head and on scraps of notebook paper, but I like what it's shaping up to be. Once I'm satisfied with how closely IcePlod mirrors M.C. Kids, I'll begin to create my own unique game. I'm anxious to get to that point, but cloning M.C. Kids provides a very good goal to shoot for in the meantime.

Below is a picture I took of the game a few weeks ago. Since I've been working on physics and hit detection lately, a more current screenshot would look very similar. After I "finish" with the hit detection, I'll begin working on the graphics, which are in sore need of improvement (note the stretched texture along the ceiling).

IcePlod Screen Capture
IcePlod very early in development
(Click to enlarge)

To that end, I've been playing around with graphics shaders, specifically Cg, lately. I chose Cg over GLSL since my laptop only supports OpenGL 1.4, which does not implement GLSL, but does work with the shader programs that Cg creates. I don't know yet how or if IcePlod will use shaders, but it's another tool to have handy. I'm hoping for the game to look really neat, though I know that'll take a lot of work. I don't have any specifics about what I'd like to do, but I'll get to it after hit detection is done enough.

More later.

One Year Later
Posted by Andrew

A year goes by quickly.

Been keeping busy for the past year with various projects. I created another game late last year. It's a top-down shooter in the style of a bullet hell game, written in C++ with SDL and OpenGL. I made one complete level, then quit work on it as I became disinterested. I don't think it's good enough to do a formal release, but you can download what I ended up with here. Includes source, Linux, and Windows binaries.

This summer I started working on a new OpenGL game, this time written in Java. Since beginning my current job, where I work with Java, I've taken a liking to the language. Having a huge library of tools and not having to deal with garbage collection are really nice features not available in a low-level language like C. The type of games I write also run just fine in a virtual machine -- they're not exactly graphical marvels.

The new game is based off of one of my favorite games M.C. Kids, which I've mentioned before. In short, it's a side-scrolling platformer with 3D graphics and gameplay that will closely reflect that of M.C. Kids. It's way too early in development to give a screenshot, but things look promising. The map editor is complete enough to be usable, and player controls and gameplay are starting to come into place. I'll put up some pictures once it's presentable.

Hopefully this year will be more exciting than the last!

Setting up BNGCVS and a small update
Posted by Andrew

For the past few days, I've been working on a fun side project. I'm setting up a server to act as the central point for Paul and I (and any future members of BNG) to store and share our projects with each other. After asking around for advice, I decided to use Arch Linux as the operating system for our new server. Arch is really nice because it lets you choose exactly which packages to install and has a really impressive and easy to use package management system. With Arch, you install the "base" packages which allow you things like network support, basic programming tools (GCC suite, etc.), and the package manager itself. Then, you find which other packages you want and grab them from the Arch repository using the package manager.

Because I was setting up a server, I stuck with the base install and just a few other packages. Of course, there is no GUI or window manager, so that really simplified setup. When we need to access the server's OS itself, we can SSH into a terminal (running OpenSSH). It also has an FTP daemon (bftpd), should we ever need to share larger files.

But the main reason for setting up this server was to have it act as an SVN server. My Game1 project is nearing completion. My plan for it is to have a main trunk which is not specialized for any type of game and regularly gets improved between projects. Things like better tile support or an improved sound system would go into the main trunk. When I decide to create a new project, I'll start a new branch and start writing the more specialized code. Things like gameplay mechanics or classes specific to a game go into the branches. By using an SVN server, I can have everything be automatically tracked for me as I create new game branches or improve the trunk.

While I'm here, I'll also post a quick update on the new game I'm making. Like I mentioned earlier, the engine is nearly complete (for this game, anyway). I've still got a few features to put in and probably a million bugs to fix, but the focus right now is on the game's actual content. I may have said it before, but I'll say it again - this is the stuff I really don't like doing. I'm about halfway done with the level layout for one level, and have also sketched out a large portion of the level's art. What's left is to put it all together into one full level package. I started with the most difficult and ambitious level, so once I've knocked this level down, I think things will get a lot easier.

Exciting things are going on here and I'm anxious to get this game out of the door so I can start work on my next project which I've had sitting in the back of my mind for some time. Stay tuned.

New 2D Engine
Posted by Andrew

For the past few months, I've been working on a new 2D game engine from scratch, tentatively titled "Game1". Engine writing is something I really enjoy doing. All three of the BNG games I've worked on (Slide's Adventure, ABAHD, and Dyox) have been written, other than the input/output libraries, from scratch by me. SA used OpenGL for its graphics, while the two PSP games just drew pixels directly to the screen.

This time, I'm using SDL. SDL has support for graphics, audio, sound, and keyboard and joystick input. SDL is by far the best 2D graphics library I've used. OpenGL is mainly a 3D library, which means 2D support is sort of hackish. SDL, on the other hand, has no support for 3D by itself, which means it excels at 2D operations. It's really simple to use - just tell it where to draw a bitmap and it's there. One of the best features of SDL is that it's completely cross-platform. My game engine should compile and run on any OS that has the standard library and an SDL port.

By using SDL, most of the graphics things are already taken care of, which means I can concentrate on the game itself. Right now, I'm building the engine using a small, simple platforming game as a test. It's turning out wonderfully. It has collectables, enemies, two draw layers (background and foreground), and almost nothing hard-coded in. The engine is getting near completion for what this small game requires. What's left is story-telling devices (like dialog boxes) and audio. When those are complete, I'll be able to put together some levels, string them together, and release it.

Game1 Editor
Game1 Level Editor showing a Tetris-themed level
(Click to enlarge)

When it's complete, I'll do a more thorough writeup of how the engine works. I haven't decided yet if I'm going to release the developer tools so that others can use the engine to create their own games. We'll see how things go after the release of this small game.

After this game is complete, I have plans to work on a much larger and more impressive platformer. I'm shooting for quality near that of Cave Story. I've got a rough outline for a story in my head and have been working on fleshing it out on paper. Of course, this is all far off in the future. Plans change.

Speaking of changing plans, I've stopped work on Dyox Complete. There doesn't seem to be much interest in it by players or myself and I'm not involved in the PSP scene at all anymore. If you'd like to see Dyox Complete released, shoot me an email and that might motivate me enough to clean it up and release it.

Aside from all that, Paul let me play Toasted a little while ago. The game was real fun and pretty well made, especially for a first-year project. It struck a pretty good balance of being challenging but not annoying. It was cool to see a project that 5 different people worked on come together into one playable game. From what he told me, and how the game ended up, the teamwork went really smoothly, which is pretty neat to me. I'm looking forward to more games coming from him and his team.

Posted by Paul

Another large update!

Well, I went ahead and added my first Digipen game, Toasted, to the site. We finally completed it, so I decided to upload it for all of our frequent readers. This should tide you guys over for a while longer...


Adventure Kid
Posted by Paul

Alright, big site update!

We categorized the games section on the left portion of the site to account for some new titles. I finished my first semester game at Digipen last month, Adventure Kid. More information can be found by following the new link on the left. I also went back and updated the history, now and the future, and the development pages of Slide's Adventure. Nothing major there, mostly grammatical errors.

I had the opportunity to check out Dyox hands-on this holiday break, and I must say it is coming along well. Not only is the game much more polished than I remember seeing it last time, but it's fun to play, and that's what really matters.

As far as college goes, I've started my second semester here at Digipen and I'm excited to start work on our text-based shooter. Expect to see "Toasted" complete by the end of April. There will most likely be another section on the site after its completion, but until then, enjoy the development page of Adventure Kid.

Dyox Complete
Posted by Andrew

Dyox Complete, an updated version of Dyox including many things that were missing from the original, is being developed. It will feature:

  • 5-15 more levels
  • A timer and high score list
  • An actual menu
  • More cutscenes
  • Sound effects
  • Possibly full background music
  • And more

Look for Dyox Complete to be out sometime in December, if not sooner.

Dyox Complete
Two New Games in Development
Posted by Paul

In my GAM100 class at Digipen, the students were broken up into groups of 4-5 people to start working on a text based game. This semester, we're only Responsible for having a completed Game Design Document, but by the end of next semester the game will be completely finished. I took on the role of team designer, so I'm basically responsible for making the game fun. I pitched an idea to my team for an action packed top down shooter game and I was surprised by their excited responses. The only down side is, being the designer, I'm responsible for having this 20 page document complete only eight weeks from now.

The other game that we're required to make is our own individual title using the ProjectFUN engine. This tool basically takes of all the nitty-gritty out of making a game, but we're still responsible for our own code to make it work. I decided to create a 2D platformer game where the player has the ability to pick up and throw blocks, similar to the 1992 NES title M.C. Kids. So far, I've gotten the player to scroll and pick up and throw blocks. It's a solid start, but there is still a lot I have to finish by the end of this semester.

Dyox Development Page Up
Posted by Andrew

I took some time this weekend to write up the development page for Dyox. In the article, you can find some information about my inspiration for the game, and how I went about making it. Hope you enjoy reading it.

Playing with Game Boy Programming
Posted by Andrew

I've been having a great time these past few weeks learning about programming for the Game Boy Advance. There's a lot of functionality here that I never encountered when working with the PSP. Since the GBA has such a weak processor compared to the PSP, many of the operations that I used to carry out by writing my own software functions have to be moved onto the hardware.

One example that comes readily to mind is displaying graphics. On the PSP, I wrote a few simple software functions to draw sprites onto the screen. These functions worked in bitmap mode -- that is, they would draw each and every pixel to the screen each refresh. This is incredibly slow, but at the time, I didn't know there was another way to do it. I'm still not sure if the PSP hardware has sprite drawing functionality built-in, but I'd guess it does. Since the PSP's processor was relatively fast, it was able to keep up with drawing to the entire screen in less than 1/60th of a second. The Game Boy Advance, on the other hand, is very weak and could never keep up with drawing the entire screen every refresh. The developers of the hardware obviously new this, so they built in functions to handle drawing into the hardware.

Learning to work with the hardware instead of just doing everything myself is a challenge, since I've never done it before. There's a lot of new information to absorb, but it's all fascinating. I've gotten a hang on working with sprites, and the next challenge is backgrounds. I'll be sure to update this page once I have a real project underway!

If anyone is interested in learning about GBA programming, I've been using the TONC Guide & Library as a guide to help me learn these things. It's an incredibly well-written piece and contains the vast majority of the information you need to get started programming your own GBA games.

First Day of Class at Digipen
Posted by Paul

Well, today was my first day at Digipen, and may I say it was awesome! There were many interesting people to talk to, teachers who knew everything, and lots of boring first day syllabuses. But honestly, today marked the first day of a new beginning for me. Over the next four years, I shall have more math and computer science thrown at me than I could ever imagine.

Maybe in the future I'll upload some of the games that I'm sure to be making at Digipen, though I'm not sure if thats entirely legal. Either way, this site will definatly grow within the next four years.

Dyox Places in Homebrew Competition!
Posted by Andrew

Exciting news! Dyox, my most recent project, has taken 6th place in the NeoFlash Summer Homebrew Competition for PSP Games! The download is finally available directly from Bright Night Games. Go give it a try if you're into PSP homebrew software.

For my prize, I chose a Flash Cartridge for Game Boy Advance. In short, it will allow me to make games for the GBA and possibly the Nintendo DS -- if I can figure out how! I'm looking forward to playing around with this new piece of hardware.

Yet Another Site Redesign
Posted by Andrew

Once again, gets a rehaul. There is nothing new here content-wise, but I should have something nifty to put up in the next few weeks. You may have also noticed a link to Dyox on the left-hand side with no real content - don't worry, I'm adding it soon. It's just hard to write decently at 1:30 in the morning, as you can tell by this news post.

Well, enjoy the new site. I'm off to bed.