Category Archives: Games

Blast from the Past: Wolf-Pac

Many many many, moons ago back in the year 2006, I got a GBA flash cart, and started coding for the GBA. The first game I made was Wolf-Pac to honour my dad who was a Pac-Man champion back in the day.

I had forgotten about it until 2012 when I met my friend Darryl. Darryl is a huge Pac-Man enthusiast, and knew of Wolf-Pac before meeting me. He was like, “Whoa, you made that?” when he met me. That was pretty cool, though today after being reminded of it again I typed it into Youtube for whatever reason and found a longplay! Much to my surprise.

It just makes me remember how bad it is haha. It doesn’t really make use of the GBA hardware at all, because I didn’t know how to make use of the sprite or background registers yet. Everything is drawn in Mode 3 (a bitmapped mode) with software sprites and pushing pixels for every object. It uses masking to draw the sprites and only tries to clear the screen as little as possible. There are apparently some errors in this method though as you can see the player has to pause and then resume to see the dots that were inadvertently cleared.

Man, looking at is makes me think how much better I could do it now, but it’s fun to travel down and see your origins. 😀 Anyway I thought you may enjoy seeing it.

Until next time!
-Jinroh

Game On Thursday – Dragon Ball: Xenoverse

Hey all! Working hard on games, but gaming too. Dragon Ball: Xenoverse is the first game in a while to really catch my attention.

Now granted I’ve not played a DBZ game since Budokai Tenkaichi 2, but Xenoverse IMO is nearly the perfect DBZ game. I’m a little biased, I’ve been a DBZ fan since 1996 or so, but it’s almost the game I’ve always wanted.

Razenkou
The best offense? Fire Ki Blasts like a Maniac!

The battle system is a bit shy of Budokai Tenkaichi, there are a few things that frustrate me like the inability to block easily after a hit. You’re then stunned for the most part and then can take a barrage of hits. Not game breaking, but annoying when you’re fighting an unrelenting AI at times. Overall the battle system is fun and frantic. It makes you feel like a badass when you charge fly and kick an opponent into a mountain or something. Then blast them with a ki attack. So fun. I did notice though there’s no Beam Battles which I can see because it’s more or less 3 v 3 most of the time, but still hoping to see it in Xenoverse 2.

The game really caters to all my childhood daydreams though, where I would imagine myself fighting alongside the Z Fighters. At times it brought a tear to my nostalgic eye because I really got sucked in, feeling I was helping make a difference for Goku and friends.

Kamehameha
Use the Kamehameha like every character ever!

The create a character is a great addition, I love being able to play as my character, but it could use a few more options. Most of the male characters look too similar for my taste (at least for humans and Saiyans), so I ended up making my goto Female character Jinny in DBZ style. She turned out great. I’m pulling for a few more races to be added as well like the Arlians in Xenoverse 2.

JinnyFrieza
Jinny Laughs in the face of Final Form Frieza!

The main game is helping Trunks fix the time line that has been screwed up allowing the bad guys to beat the Z Fighters. This mode is fun, but requires you to grind a bit with the alternative Parallel Quests, this isn’t too bad though as you get items and skills by doing the Parallel Quests. They’re also neat ‘What-if’ scenarios so it’s cool as DBZ fan to go off on those.

If I was IGN or some rating reviewer I’d have to give the game an 8/10, it’s a solid fresh experience, that is just shy of perfection. Give it a go!

Winsocks the Cat Rocks the Hill

After a long time of wanting to tackle some netcode. I finally had the opportunity to do so.

After reading this great article by: @bshokati on the Code Project, I had a good baseline for taking the next step and making some kind of client server program. I decided to keep it simple, I’d make a chat server that spat messages back and forth. Easy enough.

ChatCap

After a little bit of re-reading the code and getting a feel for everything I had a simple chat server. You could connect via IP, set your chat name, and send messages back and forth. Whoo. Such fun. That program was two, separate applications as well, just for the sake of simplicity. One application for the Client and one for the server. I knew in my next step I’d want to alleviate this so I setup a common folder and separated everything into Client/Server/Common code bases and tied them all together with a Main code file.

After I had all the code organized I wanted to step it up and make a simple game, to make a good base for when I add netplay to my 3D School Maze engine. I decided, since I love to abuse the Console window, I’d dust off my old Textmode game skeleton and make a game with smileys running around. I decided to make a textmode smiley deathmatch.

It was simple, the game would be one on one with you shooting the other player with an arrow. Easy. One client, one server, that’s it. Coding the game was easy enough because I already had all the drawing stuff setup, the harder part was figuring out how and when to send the data across the way to keep the games running and the players playing against each other. First I thought, hmm…what if I send the keycodes and have a keyhandler take care of the movement. Then it’ll be like you’re playing someone with a controller right next to you.

SmileyCapture

This is a good idea in theory, but data packets on the internet sometimes get stuck in traffic and things get out of sync as I quickly learned. Bright eyed and bushey tailed, I fired up my Smiley Deathmatch and started a game 1 on 1 connected via localhost. I moved around and soon I realized, “OMG these are not in sync!” as I looked at the two different windows.

After some thinking, I was on the right track I thought. Sending the keycodes back and forth is a good start, but there needs to be a way to keep things in sync. After some reading, I read about Server Authority, where the Server has final say in everything that happens. So I thought ok, the player can use his keys, and send to the server, and vice versa, but after the server processes the keys of him and the client, he should send a sync packet and sync up all the players.

I then added the states, positions, etc. to the packet, and sent them over. “Viola!” The games were in sync. It does a good job of keeping things in sync, there is no prediciton on the part of the client like “Dead Reckoning” to interpolate where things might be, before the sync packet is sent. This doesn’t seem to be a big deal though as I don’t see things jumping around like crazy. In a 1 on 1 game, with relatively little to keep track of this is fine. Though I imagine that if you scale things up, they may get crazy. It’s a good simple test and I’d like to share with you.

Keep in mind the code is just quick and dirty as it was basically a test so there’s no “professional” coding scheme just basic conventions and trying to get it coded up as quickly as possible so it may be a little hackey, but hey it’s a nice learning example and maybe can help some people out as I did not see very many if any at all examples of simple Winsock games. It’s not meant to do any damage, but I am not liable for any, and use at your own risk.

Enjoy, and make some Cool Stuff!
-Jinroh

Download Source and EXE

Doin’ the Donkey Kong

Donkey Kong has been a hot Nintendo property for a long time. Few people I know are as passionate about DK as Darryl. He even wrote an article in the late 90s about Donkey Kong and all his related ports. A great read if you’re unfamiliar with all the different nuances between the various ports, and the game in general. From talking with him it’s a lot deeper than it would appear on the surface.

Give it a read and go enjoy one of the various DK ports.

Hit up his website and check out some of his other work as well.
DarrylGuenther.com

Until next time!
-Jinroh

More progress…

Just a quick update, but got some more time to do some coding.

Bleh Bleh Bleh!” Lil’ Billy’s getting chased by one of the Living lunch monsters! Hurry Billy! Grab that pudding pack. (If you have no idea what I’m talking about these are all elements from my previous game, School Maze.)

Hurry

Nearly all the elements from my previous Android adventure game and the elements from School Maze have been realized in OpenGL.

One of the next things I want to add is Netplay Code. In School Maze one of the things I wanted to do was have a Co-Op mode, but it was a pain with Flash, so I didn’t get around to adding it. That shouldn’t be a problem though with SDL_Net or WinSockets.

Things are cooking.

Not much to update, but I am working on several projects.

Working on a 3D OpenGL version of a game I originally started as a 2D tile based game on the Android. It translated pretty well to 3D and I just added a new messagebox system. Makes me reminisce the days of my youth when I first started playing with RPG Maker 2000 or whatever.

Words

Levels are completable as of a few weeks ago so that was a nice feeling to get it back to the level of completeness of the Android version. Now that the messagebox system is finished I can start fleshing out the levels with the story prompts and such to give them a bit more polish.

Stay tuned. 🙂
-Jinroh