Hello there and welcome back to Metalspy's wondrous game (development) blog!
About four months ago I posted about my first steps using UDK, mainly as a preparation for my internship at a (small) game company. In those four months I have barely done any game development, or software development in general, in my spare time. A lack of time and especially a lack of energy prevented me from doing so. Last week however I got a sudden boost of motivation and energy, so I launched UDK and Visual Studio to finally continue my work on my game project. Oh my, was I in for a surprise. As soon as I exited "Play in editor" mode, the UDK editor crashed. According to the log this was caused by my own code. Diving into the code to fix the error I was met by a second surprise: the code I had written in my 'UDK beginner phase' was ugly, lacked organisation and did not allow a lot of easy expansion of the existing feature. So I decided to throw everything away (it was uploaded to a repository so it wouldn't be permanently lost anyway) and start all over. I did this with the following goals in mind:
(Basically: write good software that's accessible to beginners!)
After approximately six hours of work I had set up and recreated most of my previous work (which wasn't all that much and certainly nothing special). Four months ago that took me FOUR WEEKS. This time my code was shorter, a lot better organized and easy to expand. It even changes the material of the object during the placement phase and allows the player to rotate the object (s)he is placing, which was not possible before. Working full-time with UDK during my internship certainly allowed me to gain a lot of experience! And the most important thing: I had a lot of fun during those six hours of developing. I definitely hope I won't lose this energy and motivation anytime soon so I can create a prototype of the game I had in mind!
Anyway, here are some screenshots of the current state. It's basically the same as last time, but the code that's running under the hood is way better :)
1. Placement phase
2. Result after placement phase
The last couple of weeks I have been busy learning how to work with UnrealScript/UDK. Yesterday I have made a 'simple' "place an object where you click" testmechanic. I write 'simple' between quotes because it took me quite a while before I understood what the values I was working with actually meant. For those familiar with UnrealScript: I wasn't sure what the Canvas.DeProject function out-params, WorldOrigin and WorldDirection, were supposed to be/do, which made doing a decent Trace impossible. Thinking my world's orientation was different than it actually was didn't help too much either when I was trying to figure out what I was doing wrong. Anyway, here are three screenshots showing the progress I made yesterday, because after hours and hours staring at the debug-log I am proud of what I eventually have accomplished, even though it is nothing too fancy or original.
1. First results - Clicking all over the screen resulted only in different rotations of the placed object, the object is always placed at coordinates (0,0,0). Still not sure why the rotation changed, I didn't set it anywhere myself..
2. This looks better, but the only way to change the location of the object-creation was by moving around the camera: the object always spawned at the center of the camera, no matter where on the screen I clicked.
3. Final result - The objects are placed exactly where I click, as demonstrated by the mousecursor and the object at the same location.
I probably could have downloaded the code from the internet, but I did create and figure this out all by myself because it is supposed to be a learning experience. Downloading code != learning.
That was all for today to be honest. Just being glad I solved the problem and sharing it with the world! :) I will probably post some more about this UDK project in the future, because believe it or not: this is me working towards an actual game prototype (and preparing for my internship, where I will be using UDK as well).
I don't believe that I have written a single line of game code in the past few months. I've never finished any of my game projects because I wasn't dedicated enough, which was caused by me not having faith in my own game. I always feel that my game concepts are either too boring or lacking originality, and why would you continue working on such a game, right? I suppose it doesn't help being a perfectionist either, it causes ideas to be never 'original' or fun 'enough'.
Realizing that I've been wondering: is it better to discard every idea that, in my opinion, doesn't sound good enough and wait for.. well, probably ever until I get that single one special and perfect idea, or should I just start creating a game based on one of my concepts and perhaps add some interesting new ideas while developing the game? At the very least I will have a finished project that I can show when someone asks for previous work. Of course I'm not talking large-scale projects, I'm talking simple games, but still. My main concern about going with the last option is that it will feel too much like work and that my lack of 'love' for the game will show and actually make the game even worse than the initial idea.
A third option would be to join a modding team on here, but it's so damn hard to find a team that is dedicated enough. The fact that I don't think I can write code well enough (while I probably can) doesn't make me too enthusiastic about this option either, and not being able to work on my own pace and people depending on my work is another reason I still haven't joined one of those teams. I just don't want to be in the way of someone creating the mod (or game) he or she is passionate about. Ugh. So.. yeah. Any advice would be welcome, because I actually seriously consider sticking with playing games and forgetting about developing them.
We have been together for over 1.5 years now and while our relationship usually was not without problems, it still was a great time. We have at some amazing moments, for example when we finally made my first custom spawnsystem work without bugs, or when we finished the base for a in-game shop system so players could mid-game buy new items. And remember all those silly yet amusing experiments with the properties of players, projectiles etc? Yes, those were good times.
Torque3D, I've got a confession to make: I have cheated on you. Yesterday I gave Unity another try and I have fallen in love. Unity and I had been together before the two of us had even met. It was only for 3 days, but still. Back then I didn't realize how user friendly she was and I gave up very soon because I was confused by certain things. I was confused because I didn't want to put effort in learning the engine/editor, because hey why would I put effort in learning something that was free and could be discarded as easily as I had obtained it.
Then I bought you, in which I would invest quite some time because I had paid for you. It took quite some time before we could finally be productive, because you weren't all that user-friendly (especially back when there wasn't too much documentation about you), but at least I had the source code of the engine which was one of the main reason I was glad to spend some money. Anyway, back to Unity. Sure, she doesn't give me the source code, but creating a game is so much easier and faster and writing scripts feels so much more organized. Importing 3D models is very easy and doesn't require manual .dae file editing to work. I don't even have to pay for her to be mine! Yes, I'm in love and I'm going to leave you, even if that means that I have to miss your dynamic shadows and access to engine source code. This free beauty saves me so much time when developing a game and in the end time == money and spending way too much time trying to get things working right == frustration.
I really hope this didn't sound and look too creepy... just having some fun man don't take it too seriously :D
Ladies and gentlemen, allow me to introduce Level Up: The Game! This innovative and 'ultimate' game is a result of the latest developments in the game industry. It allows the player to level up almost indefinitely by earning XP through clicking the button on the right side of the window. In most games you have to do boring tasks like killing enemies and completing quests in order to earn XP and level up, but not in Level Up: The Game! Instead of having to run around, casting spells, issuing attack orders and completing quests I have created one single button that represents all of these activities, saving you the hard work so you can focus solely on earning XP and leveling up.
Background: After noticing that a lot, and I mean a lot, of modern (?) games have some sort of leveling system with people seemingly playing those games with as only purpose leveling up I said to my friends that I should make "Level Up: The Game" which has only a button and a leveling system revolving around an exponential function. I figured I could sell it for 30 bucks because those suffering from 'levelingmania' would even play a crappy game like that (not really, of course ;) ) While I certainly don't dislike leveling it sometimes feels as just a cheap way to keep people playing the game. Anyway, today I was bored and had 15 minutes to spare, so I figured I could finally (and actually) program this 'game' :)
Hello whoever reads this! Here is a quick little update on my game development activity.
After a break from Torque 3D I started working on a test game again. It is not the same project I was working on a year ago but an entirely new one. Reason for the 'restart' is the updated version of the engine, which came with a good amount of documentation which made setting up de basic functionalities a lot easier, and the fact that I have had a little time to work on a game the last few weeks. The game, working name "Guns vs Magic", is a team based shooter with two distinct teams: a team with mages and a team with 'ordinary' soldiers. Players earn credits for killing enemies and those credits can be spend to buy weapons, upgrades or other items, kind of like in Counter Strike.
I have had this idea in my head for a couple of years now and because I knew it wouldn't be interesting enough for a 'real' game I figured I could make it my Torque 3D Test Project. Of course I doubt the game will have more than 3 or 4 players, namely me and my friends, but the main purpose of developing this game is learning more about the possibilities of the engine and game development in general. I might write some more detailed blog posts about this project in the future, but I don't think I will have anything interesting to show before summer due to an oncoming lack of time.
That is it for now. Not much and very undetailed, I know, but like I said I don't have anything to show yet and talking about the game in detail isn't that interesting either.
Edit (3 February 2012): Yesterday I was browsing the GarageGames (Torque3D) blogs and I noticed this post. I bought that pay-what-you-want SFX library from here and I think it's really worth my money (paid only $10, feels like stealing :/). I'm not trying to advertise, I'm just hoping to help anyone out who reads this and happens to be in need of SFX :) I for one have been looking for decent, affordable sound effects for a while and I never found anything suitable so I'm very happy that I found this website.
Lately the use of "indie" (or "indy" as some people spell it) has started to annoy me. People seem to have forgotten the meaning of the word "indie". The so-called indie supporters praise every game developed by a small development team, regardless of the quality of the game, and bash the big gaming companies such as the much hated Activision/Blizzard because supposedly this company only makes and publishes games for the profits and is therefor not indie. I'm not a huge fan of Activision/Blizzard either, or any other big company for that matter, but saying that the company sucks for not being indie is non sense. In the first place because this reason is obviously a bogus (and childish) reason to hate a company. In the second place because Activision/Blizzard actually and ironically enough is an - and possibly the biggest - indie developer. For those of you who say "Stop talking crap D:", let me explain.
"Indie (developer)" originally comes from the word "Independent", meaning that the development team does not receive (financial) support from an external publisher, such as EA games, Activision/Blizzard Bethesda Softworks or Tripwire Interactive. As far as I know most indie teams do most if not all of their marketing and PR themselves. Usually these independent development teams are small ones, yes, making small-scale games compared to AAA games for lower prices than the average AAA game. In most cases these games are distributed by digital means, such as Steam or Desura. Activision/Blizzard however, besides being a publisher, also develops and distributes its own games without the help of an external publisher. It has enough money to do this all by itself. This makes Activision/Blizzard by definition an indie developer. Valve is another example of a large company that also is an indie developer.
So please think twice before you start bashing Activision/Blizzard as a self-proclaimed indie supporter. It makes you look ignorant, which you very well could've been before reading this. Although most small development teams are indie, that doesn't mean that every indie team is a small company/studio.
Oh, and being all into indie games, or pretending you are, doesn't instantly make you one of the cool kids. "Indie" isn't some kind of special status, which is something certain people seem to think. It just says something about the fact that there is no external publisher involved. My advice: stay true to your own preferences and support and play games because you think they are interesting and entertaining, not because they are 'indie'.
I have been playing quite a couple of 'old' games lately and I must admit that I actually liked those games better than almost every 'new' game I have played recently. Deus Ex, Doom and Commandos, to name three of them, have crappy graphics, sounds, animations and presentation in general for today's standards, yet I was way more immersed than I was while playing Crysis 2 or Call of Duty: Black Ops.
I was wondering: could this have to do with the fact that new games focus more on presentation and utilize newer, complicated techniques which cause the focus to shift from story/gameplay to engine features and all that? Or could it be me getting old (hey, I'm 20 already! >.<) and being nostalgic? And do you know any recently released games that have the same atmosphere and great gameplay as the 'golden oldies'?
Because as much as I like games like S.T.A.L.K.E.R., Dragon Age (Origins) and Fallout 3 New Vegas, they don't give me that warm fuzzy feeling inside that I get from playing those classics.
After some more hours looking at TorqueScript I am starting to understand how it works. I would have been able to create some basic functionality of my test game if there would have been some more, and more understandable documentation on TorqueScript. It is a real shame that I can't even find a list of the basic callback methods. It is quite annoying, frustrating even. I will continue my quest to learn TorqueScript though!
Anyway, today a friend started helping me out with 3D model creation. Hopefully he will continue to create various models for this project so I can invest more time in scripting instead of asset creation. To share the files we are using a program/site called Dropbox (Dropbox.com), which is a great way of sharing files for small projects like this one. With a free account you get 2 GB of storage space and you can share folders with friends. It is also very handy when you are working on multiple PC's or for backup purposes. It is very easy to use: just drag and drop files into the Dropbox folder on your PC and it will be automatically uploaded to the server and downloaded by the people you are sharing the folder with. Can it be easier? I think not.
So this was just a quick heads-up. Nothing special really but I hope to be more productive in the future! With some luck (and effort.. mostly effort) I will be able to give the first screenshots/video of a functional game (on a basic level) at the next update. Thanks for reading and see you next time!
Hi all and welcome to my new blog entry! I am not much of a blogger but I think it is time to show you what I am currently working on.
A couple of years ago I used to hear good things about the Torque engine but it also used to be too expensive for a poor student like me. I recently started looking for a cheap yet powerful game engine and fortunately for me Garage Games is currently selling their engine licenses for $99! In my opinion that sounds like a great offer so I decided to go for a Torque 3D license. All I need to do now is learning how to use the engine..
I decided to create a simple shooter as a test project. It will have a very simple, undetailed and 'low poly' art style because I would like to try something 'original' (it is probably done before but it is not something common now that we have enough rendering power to use highly detailed models in games) and also partially because it doesn't take too much effort to create such models.
The first two (test) objects, a player character and a tree, can be seen in the following image.
Obviously this isn't very pretty but I still had to change some materials settings when I took that screenshot. As you can see this is very simplistic and undetailed (I intend to use only material colours, no textures) and this is exactly how I had imagined it. I even want the (player) characters to be like the one in the image, but it might get a (partial) texture so you can tell which way the person is looking, which is currently not possible for the model is symmetric.
The following image is an updated version of the tree in the first image.
As you can see I made some changes to the material settings, which allows self-shadowing (if that is the correct name) and adds specularity. I also added 'leaves' at the top-center of the model, because I thought the first version of the model looked rather odd without leaves above the trunk.
Finally I would like to show a little scene.
In this scene there are some trees (all the same model but rotated and scaled), rocks and fences. The materials still need work but this scene was made to give an idea of the overall style I am aiming for.
To create a game I also need to create scripts, of course. One problem though: I am having a hard time getting my head around 'scripting'. I am used to programming and I thought scripting was basically the same but apparently it isn't and a lack of useful information on TorqueScript isn't much of a help either. Hopefully I will be able to figure out how scripting works but if you are willing to explain me a bit about scripting (TorqueScript or scripting in general) I would be happy to hear it! I understand how to write code, that's not the problem. I just don't understand when and where certain functions are called from. So yes.. every bit of help will be much appreciated!
Hopefully I will be posting a new blog post with some results of my scripting experiments soon. Stay tuned ;)