Found some old pics of an old project, thought I would share since my updates are incredibly slow =P
Found some old pics of an old project, thought I would share since my updates are incredibly slow =P
( Who the hell am I kidding, that chart is way underestimating my success. )
Been fixing some few bugs I’ve made recently because of the whole materials refactoring, but unfortunately I couldn’t spend too much time. Time is now becoming more and more important for me since I’m no longer a student and I no longer have the power to work on the game whenever I want. Ten months ago, before I started to work, I thought that an IT job would be pretty much equal to a school, much to my surprise, I was wrong. Somehow, I didn’t realize that I wasn’t doing much at school, which in consequence granted me all this energy to spend on coding in the evening, but now at work I actually have to use my energy all the time leaving me so little to spend on the game. Not to forget the infinite amount of distractions available to me after work that just suck away my time.
Luckily there’s an advantage to this whole shitty situations, the more away I am from making my game, the more motivated I become.
Oh look, a new episode of Game of Thrones is out today !
What characterized the old RTS titles such as C&C series was the simplicity of the gameplay. If we check all the modern RTS games, we notice that multitasking plays a bigger and bigger role everyday, and that could be considered as the current rising problem in the latest strategy games. They tend to become so complicated that just learning how to play the game starts taking hours ( Achron ) or units become so dull that normal strategies require a huge armies in order to succeed ( SupCom ).
We notice that recently a lot of old games have fully succesfully risen back from their graves with a new title and new enhancements. Starcraft II, Mortal Kombat 9, Diablo III, TorchLight, and many other games - instead of trying new random crazy experiments that have great chances of failing, decided to go back to old days and take the old gameplay back to the future. You might think that old gameplay flows were unpolished and bad, you may be right in some cases but generally all those old games were made simple enough so that people could easily understand the concept and get into them without a problem. I’m not talking about making games mainstream, mainstreaming is making a game easy to all audience, what we want is for people to be able easily adapt to our game and the best way to do that would be creating a gameplay that’s simple and yet can become really complicated and challenging. Once again, Chess would be the perfect example for this.
The first time I played a C&C game was a random skirmish, I hadn’t even started the campaign mode. The game started with one MCV and the only thing you could do is deploy it, then after deploy the only next thing was building a Powerplant, then Refinery, Barracks, Units, and slowly like that I understood the whole flow of the game. The gameplay was some sort of step-by-step tutorial itself, the flow was so easy that even a kid could grasp it.
The problem now is that when a game becomes too simple, it looses it’s aspect of strategy. We have to find the right balance between the complexity of the gameflow and simplicity of the gameplay, so that people can easily adapt and still have many possible strategies at their disposal.
Don’t get me wrong, I love the Supreme Commander series ( except SupCom2 ), but every time I play I feel that almost every single unit in that game is worse than a simple chess pawn.
Fun is the one of the most important elements in any game.
Games have to be fun, otherways people wouldn’t play them? True, but unfortunately, the problem is that the word fun varies from genres and slowly through time it evolves and changes. We found Pac-Man fun in the beginning, but what if the game was released today ? It would’ve been considered as a one boring, replayability-lacking and unimaginative game. The reason why it would turn out like that,is because that genre ( which can be put into action games ) has a strong evolving definition of ‘fun’, because it’s a game that can be played only in one way and doesn’t have much to offer in terms of strategy choices. How about if we choose to go with Chess? Did chess become boring? No, Chess has kept its title of being a good game thanks to all the possible strategies you’re able to use. RTS games are like that, but even better. They do not only offer good reliable strategy choices, but they also rely on your speed of execution of those strategies.
You might think that a realistic RTS game might be fun, it’s not. Fun gameplay and a realistic world don’t mix well, reality involves one of the most strategy-defying elements called “randomness”. Having randomness kills most strategy and ruins the gameplay in a worst way possible. Imagine if Chess games were realistic and your every piece had a certain percentage of defeating the opposing piece, that would render most known strategies useless and the outcome of the whole battle will be fully depend on a lucky roll of dice.
A good RTS bases on reliable strategies and speed, just like Chess but without turns.
The advantages and disadvantages of making an engine.
Before starting to work on this game, I decided that if I go with an engine everything would go much faster and smoother but unfortunately even though using an existing engine helped much, for me it seemed way too “magical”. It reminded me way too much of those days when I would open Blitz3D and write
(not exactly B3D, just some pseudo code)
loadModel model, “crap.b3d”
PositionModel model, 12,0,32
in order to get everything done. It was just way too easy, and it lacked real challenge. The idea I always have in my mind is _“If my project fails, at least I learned something” _but that was just not possible when most of the fancy functions were hidden away from me.
The biggest advantage of making your own engine, is like I said : challenge. Making a good engine can be one hell of a challenge, and optimizing it can be endless but that’s what keeps most programmers motivated.
A project that offers no challenge is boring and it is bound to die.
The second advantage is that you’ll be coding it, and you know what you need and you work the way you want to. You’ll have an engine following your personal workflow, you’ll be more efficient when working with it, and that’s more fun than browsing through APIs and tutorials for hours just to get the idea on how their engine handles everything.
The real disadvantage is the fact that it takes away too much time, reducing the amount of progress committed to the actual game to 0%. Getting stuck on difficult parts is another time-eater, putting everything on-hold until that darn thing is done can lead you to days of working like hell. There are also traps when working on engines, and those would be the endless amount of optimizations and refactoring you can do to the whole structure of the engine itself.
Anyhow, the context of that picture above : my result of my new material system which I’m completely happy with. I spent weeks thinking how I would code it, because not only materials were involved but the whole rendering order, sorting and batch handling needed to be adapted as well in order to preserve the performance. What I had previously was one texture and shader per model, now I’m able to apply different shaders to different parts of a single model =)
Imagine having a building with fancy eye-candy crystals on them, wouldn’t that be awe?
Once again, another half-arsed update !The reason why it took me so long to put something up is because I went through something any...
In the beginning, I was actually making some sort of HTML-like user interface for my game where it would basically support all kind of HTML features and allow users to easily edit and mod the UI themselves without a sweat. But even though my UI engine had a lot of basic stuff done, it wasn’t fully finished nor was it any near the power of the mighty HTML. I made a promise to myself that I would work more on the game than the engine or some other dumb pointless features that can be added or improved later, so I needed to get it done fast. It was either finishing my UI engine which would’ve taken at least a month or two, or find something that might work as a replacement.
At some point thanks to the Wolfire Blog and their ingenious idea of implementing webkit, I said to myself : “Hey, why not?”
An RTS game doesn’t use the GUI much, nor does it require any fancy effects since those might distract or just simply annoy the player while he’s ingame, having html+js for the UI was the perfect choice. Using chromium engine ( through Awesomium ) to do all the rendering, logic, the solution ended up being really handy ! Thanks to it, not only did I save a hell lot of time but I’ve implemented something really powerful and flexible.
( Picture shows the half-arsed alpha-beta-gamma lobby screen, re implemented into webkit )
I guess I’m perfectly fine when it comes to posting one update every month, but things are indeed speeding up !
Have a screenshot of my pink army kicking the shit out of some green units, mwhahaha
This was my first successful 4-player test, and I’m pretty happy with it even though we did encounter few crashes because of some unexpected actions =)
Happy 2012 !
It may sound lame, I’ve only worked on a new model importer lately because our modelers were having trouble importing FBX format ( which I wrote pretty badly ) into our game. As you can see on that fancy gif, I decided to go and use Valve’s very own 3D model format because apparently it’s way simpler and more game-oriented than the complex FBX one.
As for the rest, I mostly enjoyed my relaxing days where I provided 0% of progress to the whole project, other team members did the same thing or just went into the full-panic mode in order to prepare for their exams =P
( Antlion model is owned by Valve, but I made that crappy animation )