…is basically a birthday present gone wrong. Or right. Depends.
Long story short…
…this is a birthday gift which I threw together in about a month. Please don’t sue.
Download the current build from Dropbox
Short story long…
So I have a good friend with whom I play some games some times and one time we decided to give the Trine – Games a chance. And boy, I wish they had never ended.
We started with the second game of the Trine-Saga, continued with the first one and finally stopped with the third and last game, Trine 3.
While Trine 2 and 1 were the best of them, Trine 3 was kind of a let down…
At least after playing such a wonderful row, it was disappointing to end on a game, that took a few steps back regarding mechanics. (Also it got shipped only serving half the story, but what ever.)
Said friend of mine wished a birthday present I could not buy – Trine 4.
Damn. Nevertheless I started developing and since it was four days before his birthday, I had no time to implement fancy stuff, so I stuck with the main mechanics and some minimalistic graphics for the things I could not get from unity itself (Sprites mostly).
I could finish most of the intro and outro on the day of the deadline, but still had no sprites for the enemies. So I had to create and implement them in the car on my way to the restaurant we were meeting at, and even took some time in said etablisment to have at least something to show. 😀
This version though did not even include any sound AT ALL – which is quite devastating for a Sound Designer… 😐
Nice to have, especially for the “official” giving, is/was the multiplayer though.
Since we always played the Trine – games in multiplayer, of course Trine 4 had to have it.
It works via one player-class, by simply using player-ids, to keep all the avatars stuff seperate (UI-Stuff, Which Avatar is Which Character, Input, etc). Some things only need to be called only once, so I basically used the character with player-id like a host, who handled everything important. Other Avatars who triggered functions simply called the host and asked him to handle their problem.
Well, all that* happened between the 21. and 25. of August.
Now, about four weeks later, I had some time (mostly procrastinating my bachelor thesis), so here’s a version, that I can live with being an okay-ish gift. (I guess you never really quit developing, so you have to put an end to a project, even though there’s so much that still bothers me…) But hey – you can even switch languages 😀 😀
* No AI, no Sound, no PostFX, no Skyboxes, …
Also not really much to show off with: Unity – Standard Terrain and Environment stuff, PostFX and some handrawn Sprites. Also the Sounds are not quite something to show of, but what the hell. The only thing I’m quite fascinated by, is the MusicControler I wrote for – well who knew – controlling the music in the menu and level.
The Music Controller
…since I wanted this to be done as soon as possible and thus had not that much time for composing, I wrote a controller that composes musical pieces by layering horizontally and vertically. Thus, giving quite an amount of possibilities.
I then composed a short track (~25s) with – if I remember correctly – five Instruments. (Also each instrument’s track has two variations.) The music controller loops this track endlessly and depending on certain ‘chance’-values some instrument layers get switched on, and some are being turned off. If a layer is going to play in the next round, the controller then randomly picks one of the two variations. Last but not least, I gave each instrument some volume differences (by chance), so that sometimes different instruments stand out a little bit more (I thought of it as soli, but in the end it’s simply more overall variation)
For the level, the controler works exactly the same, only that I exchanged the instrument’s with “calmer” ones. So instead of e.g. brass I used woodwinds.
Of course this kind of music handling is nothing new, but I was quite suprised that such a short loop and small variety of instruments & variations could be enough to create something that does not turn out to be too annoying after quite some time.
…is dumb as hell. I hope you play multiplayer, guys. Well, at least I got them to jump over various things and created a shitty replacement for the Off-Mesh-Links which DID NOT WORK properly. Probably my fault though 😀 Also they attack, which is quite nice.
I don’t know why, maybe because I restricted my game to 2 – Axes only, but the NavMesh – Stuff did not quite work for this project. So I somehow created a symbiosis between the NavMeshAgent component and my own stuff. It’s not something that turned out well, so I’m not going to describe it further. It’s really basic though 😀
Yeah, well. I learned quite some things, which is great.
I had something to do besides my bachelor thesis, which is… okay I guess.
As always I’m always thinking about changing more and more, but sometimes you have to just call it a day. That’s it. I’m calling it a project.
…which started as a dumb idea for a birthday present and turned out to be an okay-ish present, but also helped me learn a little bit more, so I would say:
Ciao, thanks for having me, see you next time. (Hopefully with “an adventure in space”);