It’s been a while, have some screenshots!

May 12, 2012 Leave a comment

I’m working on a new project with a whole bunch of friends and I just tried implementing multitexturing for the terrain. When I first tested it, I had the texture weight values incorrectly calculated so that only the bottom third had positive values and it looked pretty cool so I snapped some screenshots of it. I’m not sure why everything above the textured areas are blue, but I’m guessing it has to do with transparency and the background color.




And finally, here’s the working multitexturing:

Categories: Uncategorized

Minesweeper timelapse

October 23, 2011 Leave a comment

Last friday night I noticed I was starting to lose motivation in the larger projects I was working on, and I wanted to challenge myself a bit, so I decided to give myself about 5 hours to make a clone of minesweeper, with my own art and all. I decided to record the whole thing with hypercam as a timelapse. I successfully completed the project within 5 hours, and the timelapse is now available on YouTube:

I’m also open-sourcing the project under the zlib license, hopefully it will be useful to someone out there. Using Mono, this game can run on almost any platform, but I’ve only tested it on Windows 7 x64 and Arch Linux x64.

Requires the .NET Framework 2.0 (or Mono 1.2).

Downloads

 
Binaries - Download
Source – Download

Categories: Programming

Summer 2011

October 23, 2011 Leave a comment

This last summer has been really busy, but really awesome. I never got a chance to actually post any updates on what I’ve been doing, so I’m just going to recap everything with as many in-development screenshots as I have taken. Most, if not all of my work is versioned by git, and hosted on my own home “server” which is just a repurposed Dell desktop from around 2004. If I find I don’t have sufficient images, I’ll checkout old commits and take screenshots for this post.

Over this last spring break I decided to move forward with the experience I got from working on Circuit Crawler and work on something in 3 dimensions. I find myself most productive when writing code in C#, so I searched the internet a bit and came across the Open Toolkit Library (OpenTK). OpenTK is excellent in that it still provides the same low-level API that OpenGL does, but in more of a C# style. It works cross-platform out of the box, optionally handling hardware input and window creation. They also have a Windows Forms control, GLControl, which is absolutely perfect for level editors and other game tools. (The Circuit Crawler level editor used OpenTK)

Anyways, with the OpenGL code I knew at the time (no VBOs, vertices stored in arrays – drawn using glEnableClientState, glVertexPointer, glTexCoordPointer, etc.) I got a square drawn in 3d space, but I had no way of moving the world around, so I began work on a Camera class. gluLookAt was part of the Compatibility namespace, and I came into that project knowing that I would work my way up to modern OpenGL (3.3 core) and that by the time I would get there I’d have to rely on my own matrices for transforming everything. So I looked up an implementation of gluLookAt and wrote my Camera class around that. I knew the camera wouldn’t ever roll, so Euler angles were good enough. The rotation was represented by 3 3d vectors, an up vector, a right vector, and a look vector. I didn’t start versioning this project until later, so there isn’t anything to show for that amount of progress.

Stanford Bunny Vertices

Immeidately after, however, I started writing a parser for the .obj file format, and the first model I ever parsed was the Stanford Bunny, which I used some converter program to convert to .obj format. And this is where I started versioning my project, under the name OpenTKSample. At first I couldn’t get the triangles to render properly, it was just a mess of triangles in the rough shape of a bunny statue, so the first screenshot I took was just of the vertices rendered as points. After a short while of scratching my head, I noticed that there was no zero index in .obj file, and I added a “- 1″ to the index parsing code, and suddenly it worked perfectly.

Following that success, I looked up how fixed-function lighting worked and temporarily added in some lighting to make the screenshot more interesting and the bunny more recognizable.

Stanford Bunny (with lighting)

At this point the code seemed pretty valuable to me, so I decided to put it under version control and created a new git repo, then sent it off to my server both for safekeeping and for access to it from anywhere. Around this time, there’s about a week of school left, and I needed a display for my English III final project. I chose to (very quickly) adapt this code into something I could use, which wasn’t much of a challenge considering I wrote most of my final project on game programming and game design. Below is an image of the final display I used. It was a fully interactive demo, and all you could do was fly around the room and look at the bunny from different angles. The camera was restricted within the walls and floors of the room I made using hardcoded maximums and minimums.

Portfolio Exhibit 2011

In the first few weeks of summer, a few friends of mine wanted to get together and create a game. So I chose to add a few branches and give all the programmers on the team the password to the account on my server that stored the code. While we eventually put this project on hold and started another 2d game that’s a lot simpler, we spent quite a bit of summer building up the small amount of code I wrote into something much better and much larger. Here are a few screenshots of the project as it developed:

And the most recent version of that project (commited to the server by me yesterday):

At the same time that this was happening, I was involved in another project with some other friends overlapping the game project. This project was an internship at N2 Imaging Systems, and it turned out to be more of a freelance job than a regular internship. The project involves sharing GPS between soldiers on a battlefield and mapping them on a screen that the company had developed, and we also had to write a master control program that receives and plots all the soldiers and include features like the ability to set rally points and mark enemy locations. This program was versioned with git from the very beginning, and there isn’t really much more to say about it, so here are a bunch of pictures as it evolved:

And once again, here’s the current version of this program:

Categories: IMCOG, N2, Programming

Circuit Crawler is now on the Android Market!

April 10, 2011 Leave a comment

Circuit Crawler art

Circuit Crawler is now on the Android market! 100% of all proceeds will go to the Youth for Technology Foundation to help children in Africa and the poorest parts of America get access to the technology that most of us take for granted.

I’ve been working on this game since around November with 4 of my friends. I’m very excited to have this game completed and on the market. New Years resolution #1 completed!

QR Code for market link (click for web market link)

Categories: Uncategorized

More stuff I’ve been working on

March 6, 2011 Leave a comment

Here’s a level editor I’ve made in a week or two, full game released on March 30th.

Categories: Programming

What I’ve been working on…

February 6, 2011 Leave a comment

So this is what I’ve been working on for the past while, I didn’t post the first video, so here’s both of them in a single post.

The first video:

The second video:

Categories: Android, Programming

New Years Resolution 2011

January 1, 2011 Leave a comment

I’ve spent a good day thinking about it. I picked up my first video game when I was 4, and it was the COOLEST thing in the entire world. Not only were the games as a whole just awesome games, but the whole concept of video games, getting tiny little colored dots to display in such a meaningful way was intriguing.

Or, you know, as intriguing as something can get for a 5 year old. By age 10 my mom was teaching me the basics of programming, and VB.NET (this was back when .NET 1.1 was the brand new), and I got some ideas like if statements, loops, etc. Things like object orientation were way over my head at the time.

Still gaming through my pre-teen years, there was a bit of a loss of interest… not in fascination, but in drive. Maybe it was because I knew it would be a while before I could have a deep enough understanding to make anything of any use. I don’t really know. I think this was around the time I picked up runescape, I had yet to discover any mainstream games.

The summer right before high school, I picked up a copy of the Orange Box. I immediately hopped into Portal and beat it that same night. Over the next week or so, I became fully immersed in Half-Life 2 and the Episodes. I think I gave TF2 a little bit of play, my grizzled veteran said I joined just before Christmas of ’07. One thing lead to another, and I discovered Garry’s Mod. It was absolutely amazing and unlike anything I’ve ever seen. Shortly afterward, I discovered the Source SDK and Hammer, so I guess my days of innocent PHX-less, wiremod-less GModding were cut short, but I wasn’t complaining.

Up until this last summer, I’ve been mapping. Absolutely terrible at first (I still have pictures and the VMF), but after a while, better and better. There’s definitely math involved, but it’s really just having a feel for the tools and knowing how to use them in order to turn a mental image into a reality. Of course, there were chunks of mapper’s block, which takes it’s name from writer’s block. It’s essentially a period of time where you can’t really start anything or add anything to a current project because you just can’t. Whatever you try comes out badly. For the most part, it didn’t affect me, and when it did, it wouldn’t drag out for a long time.

For the most part, I had a few major maps. I had gm_CarBuildNTest, originally a request by Facepunch user TMLord95, but I ended up modifying the level layout just a bit, for practicality. This was the closest map I had ever come to complete. There was just a basement that looked terrible and that I was remaking over and over, and I was hitting the displacement limit when I tried to remake it. Give me a few days and I’d release it if I felt motivated to work on it again. Then there was my diner, which I was building from reference images from a TV show I used to follow closely before it was cancelled, Kyle XY. Again, this map was all over the place. It started off afternoon, then went daytime, then nighttime with Half-Life 2 zombies, and I towards the end I was turning it into a full fledged campaign for Left 4 Dead 2. Then there was an ancient Egyptian themed map I was working on for a school project and decided to continue because I felt I could make it look better, and I did. I may or may not have images of these maps up on the Mapping page, but if I don’t, I’ll probably just hop into a level and snap a few screenshots for it.

This last summer I was really excited. I was at a stage with mapping where things became natural and I could make things that looked really good. My pitfall with mapping is my perfectionist tendencies. For 2 years I had never once released a map or texture pack. I was ready to enter a Facepunch contest to make a single-player campaign based on Half-Life 2: Episode 2. I started cracking on it, getting a ton of work done. I hadn’t done much work with AI or particles, so I ended up picking those up through the contest and pushing onward. I’d say I was about 35-40% done with the project as a whole, ready to release a second youtube video showing the improvements, but some things happened, I ended up going to an afternoon SAT boot camp for essentially the rest of that summer. While I did feel more prepared by taking 8 SAT’s in 8 weeks, in 4 hour time slots each, without the breaks, it really dug into all that free time I had. Digging may not even be the right word for this, it essentially gave me no time to do anything. The first week was the hardest, with adjusting and all. I didn’t have enough time to just check Facebook for an entire week.

Needless to say, I never finished that contest. There literally weren’t enough hours in a day to do enough homework to just barely stay out of detention (yes, they had 1 hour detention for a 4 hour day, and it was possible to get 2 hours. If you somehow were in enough shit to rack up more than 2 detentions, they would make you stay after class on another day.) and to get a decent amount of work done on a level. I thought that was going to be the one project that I’ll actually finish, but it wasn’t. There was even a 48 hour extension because people were having a hard time putting the finishing touches on it and getting it all packaged up and everything. But that gave me about a week to catch up with everyone else who had another 2 months to work on their projects. It just wasn’t possible.

That was the very moment where it struck me, that despite 2, almost 3 years of level design, and I hadn’t ever released a map. Nothing. Nada. Not so much as a small construct level. It saddened me, and make me think about everything. About what will happen in the future, and if I’ll ever be able to finish anything, or if I’ll always dabble in something and never be serious enough to finish a product. It made me thing about how I have next to nothing to show for 2 years worth of hard work. Of course, I kept thinking. What if I lose interest in technology? What if I wake up one day, and don’t feel inspired by a video game, by a level, by the prospect of using technology to make something? I don’t have anything to fall back on, and that was really scary to me. It was a mix of uncertainty and a sudden realization.

For the next few weeks, I couldn’t do anything on any of my maps. Mapper’s block had set in pretty quickly, and wouldn’t let up, so I eventually took up programming again, but this time, C#. I find that I can remember most of the concepts, and go to teach myself the concepts I don’t quite understand yet. Over this last year, I’ve taken AP Computer Science, which is an introductory class to Java. I got a few friends together and we’re working on something that’s way beyond the scope of the class for our Service Learning project. Things are looking good, but I can’t forget that feeling, and I can’t forget the fact that I have not once released a major project of mine.

As for my resolutions, I hope that this year I will:

  1. Take a video game from concept to completion, available for the public to purchase. If this game is the same one I’m working on for Service Learning, I’m hoping that we’ll be able to make at least 100 sales by the end of 2011. Otherwise, just getting the game released will be enough.
  2. Finish a map, release it, and get at least 100 downloads from it by the end of 2011. It’s been too long for me to never release a map.

And with these two, I’m not going for a shotgun approach where if I solve 1 I’m happy. I must meet both for me to successfully meet my new year’s resolution by Jan 1, 2012. I’m not going to set out to do the impossible and know I can’t achieve it, and I won’t do something of trivial difficulty just so I can say I’ve met my resolutions. I want to feel challenged, but not overwhelmed.

To wrap up this, I think I’m going to quote my elementary/middle school art teacher,

“The hardest parts of art are starting and stopping”

 
I know this is a massive post, it’s longer than some essays I’ve written. If you’ve managed to make it this far and have read this entire thing, thanks.
 
Edit: I just realized how related the title of this blog is to my resolutions. Hah…

Follow

Get every new post delivered to your Inbox.