John The Redeemer

The current events of my life, including but not limited to: game dev, school, and work

January Game - Complete

Kind of…when I say complete, I mean that it is a game that is playable until you die…which will probably be never. 

I decided to continue with this game for my February game(and possibly March) because I’m not happy with the quality of the game as it was. There is much to be desired from it. 

The limitations of my game are many. I created the basic framework to get it all working, but there is no enemy variation, it’s all slime monsters. There are no class choices, just the one guy who you beef up. The art assets are not complete, so buttons offer no explanation. Nothing is properly balanced, so you progress at an awkward rate. All the slimes have 1hp, so everything dies in one hit anyways, negating any point to raising damage. You only lose health when hit by an enemy, but it’s easy to avoid them. And my final large gripe is that if two slimes get in the same position(which they inevitably will), you can kill both with one hit. 

I’ll work on these deficiencies this month, and add content as I go along too. 

January Game - Second Update

This morning before work I started in on creating the classes and I managed to implement the 3 classes I’ll have in the game after work today. The classes featured will be the Soldier, the Thief, and the Wizard(cliche, I know). 

  • The Soldier will be the slow moving, heavy hitting fellow with the least range. 
  • The Thief will have the fastest attack speed, fastest movement speed, furthest range, and the lowest attack damage.
  • The Wizard is the middle ground, with mid damage, mid move speed, and mid range. 

All of these will most likely be tweaked next week, once I’ve got some time to focus on making the game a bit more balanced and polished. I created a sound and music player so I can play any sound through it.

I finished off some more collision code, so that the player actually does damage to the enemies instead of just causing them to disappear. I think I’d like a cool fade away to red and then nothing effect when I kill enemies, because I don’t think I’ll be having any dying animations (my utter lack of art skills holds me back). 

Finally, I created some equipment classes and added methods to equip them. Equipment will effect your stats, but thus far I’m not sure how. My first impressions is:

  • Head: Range
  • Body: Life
  • Hands: Damage
  • Feet: Speed

Something nice and simple to allow players to pick and choose between rounds. 

Ideally I’ll have enough time by Saturday to finish the rest of everything that needs to be done. I have to create animations, create a proper UI and menus for navigating the game when not in battle, hopefully have some sort of stat upgrade system in between rounds (training, as it were), actual win/lose conditions to make it an actual game, and then start settling in and making enemies and equipment to bring the game variation. The enemies and equipment can be done on Sunday and Monday, then polish it for Tuesday and Wednesday, publish Thursday! 

I’m really looking forward to getting my first game complete and out there. 

First Update

So I didn’t work on the game much in the last couple of weeks, but today I got some solid work done. I implemented most of the framework for the collision detection, some basic ranged attacks, a background map, a slime enemy, an asset loader, and a basic user interface. 

Next week I hope to clear a few more things off my plate, namely: finish off the UI (including some menus), game states, sound, music, some varied enemies, a couple of classes(melee, ranged, magic), win/loss conditions, upgrading stats(damage, armour, speed), maybe some equipment and environmental items (if I have time). 

Ideally I’d like to leave the 27th - 31 for tweaking the game, bug hunting, getting some people to try it out pre-release, and finalizing game assets! 

Some of this week will be easier than others, and it does help that I have 3 days off work next weekend too. If I can cram in a couple of hours a day, I should have it in the bag!

A Long Hiatus

It appears I have gone through a long hiatus. A lot of the projects I worked on have sputtered and failed, much like they usually do. However, I think it’s because of my inability to maintain scope on my projects. As a way to battle with that, I’m joining the efforts of others with one of my resolutions for the New Year.

The initiative comes from One Game a Month which looks really fun and inspiring. I could just do my own ideas, but it’s fun to be inspired by the concept he has put forth and see how everyone interprets it. 

My concept is a basic top down game, where your goal is to stop enemies from entering the gate. I’m still working out the details, but I’m hoping for a couple of classes (a melee and a ranged), some stats to upgrade, and equipment. 

The entire game will only have one screen, with a differing GUI based on whether the player is in combat or between waves, choosing stat upgrades or equipment. 

I’ll post more once I have a firmer idea of what I want to build and start building. 

Another Routine Summer

A few weeks into summer and I’m finally beginning to settle into a routine. I’ve been talking with a friend from B.C. and going over an idea we’ve bounced back and forth for a while now. Work, exercise, and hanging out with old friends has been consuming most of my time, but with some time management I should be good. 

I’ve started working again (sadly nothing programming related), so it’s nice to have some income which can feed me. Getting used to consistent early mornings has been pretty hard, I’m very much a night hawk. As well, I’ve started exercising and been slowly changing my eating habits to get myself on track health wise. Now that all of those things are more or less together, I can begin focusing on a project. 

The idea is to make a game that can assist children with learning a language. At the moment it’s planned to be based on an Aboriginal language(Ktunaxa), to help their youth learn the language. I want to design it so that all language files are located in external files though, so it’ll be easy to transfer over to another language with minimal code changes. 

We’re tossing around ideas still, but it seems that it will be a platformer. The goal of each stage will be to collect each letter in a word, with a sound bite playing when each letter is collected and a sound bite playing when the word is fully collected. 

I’d love to have this done by procedural generation, so each level and each objective is unique, but first job is to get the planning, then the framework built. I’d like to have a prototype done by the beginning of September, in the hopes that I can receive funding to continue working on this project. 

In any event, it will be a nice learning experience and something I can look forward to doing. I’m also still reading about networking, because I would really like to become proficient at it. 

Beginning of the Summer

I’ve been reading up on various game engines and I feel like I might learn Unity3D. I feel as though it has some really good reasons for me to learn it. 3D, networking, level design, and scripts are all things I should learn to deal with. 

Learning to deal with a 3D environment is something I would really like to learn about. I have very little 3D experience outside of one class in college, so this would be a solid way to deal with working in more than 2 dimensions. I don’t think anything complicated will come from the first attempts, obviously, but it will almost be refreshing. Networking is something I’m working towards, so I can eventually move that knowledge towards a 3D environment. Designing levels would be a fun distraction when I’m just not in the mood. The scripts can be written in C#, which is a bonus to me. I prefer to work in C# if I can, as that has been my primary language so far. 

So in my spare time I’ll read up on the Unity manual and do some of the tutorials to familiarize myself with working in Unity. But overall learning the network programming will be my main focus, as that base knowledge will help in the end. I’ve also been reading up on database design and programming, as that has been a large weakness of mine in general. 

Summer Project

I’ve been thinking about what I should gear my summer towards. I foresee even less time being available over my summer, so that’s never good. Work, exercise, and some much needed friendship time in my hometown will all consume my life. However, what time I have can be spent purely on my own things, not school work. 

Back to the main point here, I have been thinking of what my summer project should be. I really want to finish an actual project in the four months, but on the flip side, I really want to continue learning about network programming. A halfway point needs to be reached, methinks. 

I’m fairly certain I can toss together a decent tower defense game in four months, which is my first idea for finishing a project. This game consists of normal TD game concepts, but has Heroes that are persistent across levels, allowing you to make them stronger and unlock more abilities. That’s the basic idea I have for my TD game, and one day this will be made regardless. 

In terms of the networking programming, I feel like this is a necessary skill I should learn. I would like to learn the basics of network programming and what it takes to create a persistent world. I would like to dedicate the summer to setting up a 2D world that friends can join and play in together. One player could run the server software for a personal server for friends to play on. I’m not looking to create an mmo, but as a learning experience I feel this would greatly help me. 

So I feel like my halfway point is to create a demo for the concept of a monster battling game. The bulk of my time will go into learning and creating the client-server structure, then toss on some basic battling mechanics(most likely a turn based, pokemon style battle system). Once the concept is functioning, I could slowly work on it and add things through the following school year. 

In the end, my main focus is learning how to efficiently communicate over the Internet. As usual, I’ll post my progress, ideas, and thoughts weekly. Ideally I’ll be able to have something to show off and possibly release a prototype. 

Week Seven

So I’ve managed to make the character move without breaking the application and having it crash, but it only works if I press and release the key, which only moves me one press at a time. The next step is getting the server to constantly update the character so that movement is smooth and continuous. 

I’ve been thinking though(always a good thing), that it’s breaking because I’m polling too often. Tomorrow I will have to set up a timer so that it only checks every 30ms or so, to keep information being thrown all over the place. I have the server logging whether the character is moving and what direction, changing when keys are pressed and released, so I have to come up with a way for the client to accept all this gracefully. Hopefully tomorrow’s experiments run well!

I’ve been using UDP, but I’m seriously considering changing this whole setup to TCP. I’ve read all about the differences, but seeing as this game would hardly be a time sensitive application, I think TCP is the way to go. Reliability is really most important, and I really don’t intend on there being massive amounts of people logging on all at once. I assume out of the box, a basic server will easily handle ~200 connections simultaneously. Not that I ever expect to have that many connections, but that just seemed like a good number in my head. 

I’ve been thinking of some good ideas on how to create an online monster training game. I think battles can be pokemon style, in that players can win money for battling other players(or AI trainers). In the event that two players battle, they can bet x amount of money on winning. Other ways of making money could be putting your monster to work around the world, cutting trees, moving rocks, plowing fields, etc. They would have to have appropriate abilities, of course. 

This building of a map editor keeps hanging over my head, but I stumbled across a cool implementation of the Tiled map editor that works for XNA. I’ve yet to use it, but learning to implement it will be a hell of a lot easier than building my own map editor from scratch. 

Week Six

So I’ve managed to get very little done. I’m in that final month of school, so I’m pretty much filled up with school for now. On the bright side, I am almost done, meaning I’ll have a nice 4 month period of where I can work on personal projects without being bothered by school. 

I’ve been filling up my time looking into some other things too. I’ve been learning some udp programming in the hopes of making a small morpg for playing on. I’m still determining what it’ll end up being, but I’m feeling pretty good about it. I’ve got the idea of a monster training game still in my head, so I’ll play with that idea some more. I’ve been working on a GDD for it, so I can flesh it out and make it into something I enjoy. 

Initial attempts at making a character move from messages by the server have been tricky at best. The character indeed moved, but so far that the coordinates displayed an exponent… rather ridiculous. I’ve only given it one day of learning and programming though, so I expect things will clear up as I go along.

I’ve been looking into threads as well, as I will need them for accepting multiple players on the server. It’s been a long while since I’ve dealt with threads, so I’ve been refreshing myself on all that. I’m feeling all of it coming together in my mind though. 

Basically I’ve been going off the wall with ideas and not enough time to do it! I’ll still write out what I’m doing and explaining as I go though, keep myself in the habit of posting at least once a week! 

Week Five

Another week gone! I’m starting my 5th week on this. Sadly it hasn’t been 5 weeks straight development. I made the Event and Tile classes, but haven’t implemented them. I really can’t get myself to accept how I built my map editor(which is basically a game window with a floating winforms right beside it). As such, I’ve been working on integrating a custom control into winforms so I can draw the map right into it. I’m still working around how to attach everything together, but I feel like it needs to be done. Once it’s all one happy piece, I can continue down the path of adding my features. 

On the other hand, the game I’ve had in my mind is starting to feel doubtful. I like to come up with an idea, and then just let it stew around for a while to see if it has any lasting power. I feel like the overall concept can work, but I can’t find an implementation in my head that I find appealing for a game. The basic concept was a monster training game that featured dragons as the monsters you’d raise. However, tons of little things kept ruining it for me. Perhaps I’ll just file it away until my mind comes up with something a bit snazzier. 

In the meantime, I can continue working on the map editor and thinking of different ideas that i want to do. Tons of concepts come to mind, from a body hopping game, to a god game where you raise a village(which seems less a game and more of a toy), to a card game(a mix between MtG and FF8 card game). 

But since I’ve still got goals, here are this week’s:

  • Add custom control to winforms that allows me to draw my map
  • Refactor and rebuild everything so that the code is less hacked to make up for trying to communicate between (technically) 2 applications