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?
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 )
Maps will look less ugly now that we have floating rocks with trees on them everywhere !
Because emm.. why not?!
Been rewriting the rendering algorithm during this week. I couldn’t exactly go without optimizing anything since our game features the extreme zoom out ( aka strategic zoom ), and once everything is zoomed out you’ll be supposed to see all these small units and bases. Without those optimizations, you can say bye-bye to your mid-range PC or the strategic zoom =]
Some real advanced shit is going on at this current moment !Not much to show though…We’re getting there, no worries.
Some real advanced shit is going on at this current moment !
Not much to show though…
We’re getting there, no worries.