Pages

Thursday, June 28, 2012

SuperSerial

I apparently have some sort of obsession with writing parsers, as I've already written like 5 different variations for CPRL alone. After many iterations, I've designed a data file solution that will hopefully be good enough to use for the game as well as other projects. It is an open source serialization library called SuperSerial, that will hopefully make my life much easier when I finally get around to working on game stuff again. It's not quite finished yet, but I don't expect it to take much longer to get into a usable state.

My next order of business will probably be to work on the graphical engine some more in order to optimize it and add features. After that, I'll get back to game stuff.

I haven't been working on personal projects much lately because I have an internship this summer. After spending 8 hours looking at Java, I don't have much desire left to program at the end of the day. Fear not. I will never abandon CPRL. It may take a decade or two, but this damn game WILL get finished.

Monday, April 30, 2012

Character sprite

After putting it off for as long as possible, I finally decided to try my hand at a character sprite.

Here's a mockup of what it might look like in-game. Each piece of equipment is a separate sprite so it can be layered in-game based on what a character has equipped.
Roy Batty (right) faces off against a Tyrell Corporation executive and his two hired guns.

I'm not a great artist, but I think it will do for now. Some of the details are hard to make out, but as long as the sprites are varied enough, I don't think it should matter too much.

I've also been doing some work on a configuration file parser that will allow for pretty flexible data files and may be used for save files as well.

Edit:
I changed the floor tile to make it easier to see characters.
 

Sunday, April 22, 2012

Today I learned the garbage collector and OpenGL do not cooperate

So I thought I'd be clever and write a finalizer for my Texture class so that it would call GL.DeleteTexture when the object was collected. Apparently I can't do that. CyberpunkRL has been a good source for learning new things about using unmanaged libraries in C#... except for the fact that I waste hours of my time trying to figure out these things.

In other news, I switched over to the new renderer with little trouble. All traces of SDL have been eliminated. Here it is in action, looking pretty much exactly the same as before.
Doors!
I also got an infinite world implemented, but I'll eventually limit it to a finite sized city, like in the original releases. Unlike in the original version of the game, you move seamlessly between sub-maps, so no more running from cops by moving off the edge of a map.

I also made a few weapon icons.

Edit:
 

Thursday, April 19, 2012

Graphics engine

I started this iteration of CPRL using a .NET SDL wrapper for the graphics, which I quickly discovered to have one huge flaw that would make it very problematic to do what I want to do. It was pretty much impossible to render sprites with shading or tinting in real time, which would be necessary for the lighting engine I hope to do. Even if I had decided to drop lighting I would still need it for drawing explored terrain outside of the current field of view. Rather than limit my options, I decided to write up my own hardware accelerated 2D framework using OpenTK. Being not very experienced with OpenGL, I was intimidated by the thought, but it ended up only taking me a day to get the core functionality I wanted.
Don't worry. The final game shouldn't look like this.
As you can see, it supports rotation, scaling, and tinting and is also relatively fast. The screenshot is just a sample I did to test as I worked on it. It's not quite finished, so I haven't yet integrated it with the existing game engine. On that note, I did throw together a few new graphics.
Fans of the Sega Genesis Shadowrun game may appreciate this screenshot.
My art really isn't that great, but it's easy for users to swap out tiles with their own, so custom tilesets can easily be a thing if the game ends up being good enough to have a fan base.

2:30 AM Edit:
I wasn't quite ready to call it quits after this blog post, but I did change gears a bit and do something that I've been meaning to do for a very, very long time.
I finally put that level generator to use!

Tuesday, April 17, 2012

Hmm...

Maybe this time?
What is this? The 5th restart? I'm really trying to stick with it this time. There are going to be some big changes in terms of setting and overall style this time around. More details inbound if this project actually holds together for any length of time. In the meantime, is this too dark?