Spellcaster Studios

Make it happen…

More classified work…

Not much time today to work, my cat had surgery and I have to keep an eye on her to make sure she doesn’t attack her stiches!

Today I started playing with the new enemy which will become the final boss on Chrome Hunter, but did no real progress… Oh well, hopefully tomorrow I’ll have more time to dedicate on this…

Link of the Day: Really love this one: a simulation system for smoke, etc, that really accounts for the space around it… It looks really cool, would be awesome in a space like game (yeah, I know smoke doesn’t propagate like this in space, but it’s a game, doesn’t need to be realistic!):

Classified!

Today I started work on the last scene of the game, the final conflict!

I don’t want to give much away at this time, so this is the only viable screenshot:

screen214

Anyway, this last part will have an unique enemy, which will be very different from the previous ones, and visually will be mostly procedurally generated!

Link of the Day: This is something that popped on my regular websites the other day, and it’s very interesting for people that are interested in procedural generation… It would have come in handy when I was making the procedural pirate bases, it has some neat ideas: http://www.gamedev.net/page/resources/_/technical/game-programming/procedural-level-generation-for-a-2d-platformer-r3794

Cutscene finally over!

As the title indicates, I finally finished the cutscene I was working on… This one was very challenging…

First, the camera angles and the motion was a bit off… I couldn’t really tell what was wrong with it, but I needed a lot of trial and error to get it to feel right.

The problem with most of the camera work I do is that the you don’t want to distract the player from what’s happening on the screen, but at the same time you don’t want to be just static, you need to make the scene and the camera to work together, especially in low-budget cutscenes like I have in the game.

screen213

Anyway, next step is the last area of the game, which I won’t show screenshots of… Smile Let the game have at least one surprise!

Now listening to “The Classical Conspiracy” by “Epica”

Link of the Day: Here’s something that might come in handy sometimes… For years, I’ve avoided having to use Excel files as data sources (for my DayJob or game dev), but with this article I’ve found that Excel files are just ZIP files with some other files, which made it way easier to understand and use… Maybe it’s useful for you guys sometime: http://www.codeproject.com/Articles/208075/How-to-read-and-write-xlsx-Excel-file-Part-I

More work on the almost-final cutscene…

Today I’ve worked a bit more on the cutscene… This one is a lot more work than the previous ones, because it has more special effects and I’m trying to make it a bit more “movie-like”.

First, I had to build a new shader for the portal effect when it’s open… Because of some errors, I ended up doing something pretty cool (especially while moving):

screen211

That inner part circles around, it looks like an animated watercolor, it is neat, but it wasn’t what I wanted to build…

When the portal opens, I wanted something more like a… well, a portal, and less like a vortex. After playing around with the shader, I got what I wanted:

screen212

Then I continued with everything else on the cutscene, but I’m really not happy with the way it is chained together… It looks disconnected, like there’s two cutscenes in one, without relation between them…
So, I’m thinking on how to improve it… I have some ideas, but not sure they’ll work as well, and they suffer from the problem of extending an already relatively long cutscene… Guess I’ll have to try…

Hopefully, I’ll be able to finish this one tomorrow!

Now listening to “Secret of the Runes” by “Therion”

Link of the Day: I think I already linked this one in the past, but it’s looking pretty good… I used to love this sort of “construction/sandbox” games, but for years I haven’t been able to find something that really pulled me in in this genre. This one looks like it might change that:

More lightning effects…

Today I worked a bit more on the cutscene, took me forever to get the lightning effect to behave like I wanted it:

screen210

It doesn’t look like I want, but the behavior is there, the rest is just adjusting parameters…

These days are fun, but I got so little to show that it’s a bit frustrating when I blog about it! Smile

Now listening to “Valley of the Damned” by “Dragonforce”

Link of the Day: For years, both in my game development and in my day job, I’ve been very skeptic of software development methodologies, and (more importantly), how they’re implemented in the work place (like a religion of sorts, instead of something that helps you estimate and keep a project on track and with high quality). This article mirrors a bit my feelings on this, and there’s some cool stuff in the comments as well: http://typicalprogrammer.com/why-dont-software-development-methodologies-work/

Playthrough, Part XVII

Nothing much today, except for working on one of the last cutscenes of the game…

This one is kind of complicated, because I’m trying to make it a bit more dynamic through camera-work that the others in the game (if this works properly, I’ll probably review all the others with my “newfound” talents).

screen209

I’ve started to settle on a style of my own while “directing” my cutscenes… I’ve noticed I make all my camera work is very slow (and most of the cutscenes have this slow pace about them)… not sure if it is because the tech behind Chrome Hunter isn’t that good, or if it’s the style of cutscenes I actually like…

In case you haven’t noticed, I’m reaching that point that I’m not sure about anything anymore… I look at certain cutscenes/texts/gameplay moments and feel they’re great at one time, and terrible at another. Mostly, I think I’m too close to the game and a bit tired of it (it has been almost one year since I started this one, and 3 months of “one-hour development per day minimum”).

Now listening to “Absolute Dissent” by “Killing Joke”

Link of the Day: Cliff Harris of Positech Games has relaunched an indie game store, different from all others (Steam, etc), in the sense that his objective is to connect the developers to their audience, without any take from the store… They’re having a sale now, so it’s a good time to take a look at it: http://www.showmethegames.com/

AI issues fixed!

Finally managed to fix the AI issues with the “large scale battle”. There was a lot of small mistakes, but one was the real culprit – The Line-Of-Sight (LOS) functions: the “lost LOS to target” and “regained LOS on target” functions weren’t exactly “symmetric”, which meant that I would lose the agro correctly, and would regain it from an algorithmically standpoint, even if I didn’t exactly have LOS on it (the first one had a tolerance, the second one didn’t). So the AI would twitch between states.

screen208

Now it works correctly (even if not 100% yet), especially after increasing the size of the steps (the navigation mesh wouldn’t be correctly built on those small steps).

Here’s a video of it in motion:

Now listening to “Outbound” by “Keldian”

Link of the Day: These two videos are nerg-gasmic! Finally I got that urge (that apparently every dev in the world already felt) that I need an Occulus Rift and a Sixsense controller:

  

AI issues

Still working on the AI issues I’ve found yesterday, although I’m getting closer to the problem…

screen207

I’ve built some rudimentary debug tools to track this issue, and I found the culprit… Basically, the AI twitches because it acquires and loses LOS on the current agro target.

The idea of the AI is to track the biggest threat and try to kill it… If it lost line of sight to it, it would move towards the position where it saw the enemy last and if it gained LOS, it would go back to shooting it.

What I’m seeing in practice is that the AI moves towards the last seen position, it sees the target and then loses it again, etc… The part I don’t undestand in this whole  issue is why it doesn’t move anyway towards the same position… If it sees or not the target should be irrelevant to the pathfinder, so the movement shouldn’t be “restarted” because of it, the target position is still more or less the same (give or take a couple of centimeters).

Now I have two choices: bite the bullet and rebuild the AI code, better structured and more organized this time, since I now know exactly what I need it to do, instead of keep adding to it, or just try to figure out why the behavior isn’t the one I want…

Now listening to “Faith” by “Eyes of Eden”

Link of the Day: I had more or less this conversation the other day with someone that wants to make games for a living… This article puts it better than I could, but it really matches to what I know: http://www.hobbygamedev.com/beg/a-frank-look-at-making-videogames-professionally/

More AI trouble

For the cutscene I’m currently building, I need an epic battle feel between a lot of cultists and corporate hit men… The basic code for it works fine (they have a faction and all the aggression code is based on that). To make the fight never-ending, as soon as one dies, another spawns.

screen206

The problem is that the problems I’ve been struggling for ages on the pathfinder and AIs become more noticeable when you have so many running at the same time… I’ve done a video to show you the issue:

Initially, I thought the problem was due to the collision avoidance, but on the video above, I have that part of the code turned off, and it still twitches like hell…

So, the possible culprits is the pathfinder itself (unlikely, I think, since there is a path between the opponents, as illustrated by the arrows), or a fast switch between agro targets… Anyway, this is hard to debug, because when I stop the action to inspect the entities, I’m looking at a snapshot of a moment, and only by sheer dumb luck I’ll catch the actual moment when the bad decision was made, and even if I can, I need to track one entity that’s actually doing that, etc… And I can’t reduce the number of entities, because this only happens when I have lots of those.

If I was using my “Spellbook” engine, I would have a lot of debug stuff I could use to track the problem (record the actual state of the finite-state machines that comprise the AI is easy on Spellbook), but since I’m using my lightweight engine “Cantrip” (because of the way this game was born, in a 48-hour competition), I don’t have those luxuries, so I’ll need to identify possible causes, and do the code to be able to see the issues more clearly.

The joys of gamedev! Smile

Now listening to “Ziltoid, the Omniscient” by “Devin Townsend”

Link of the Day: I don’t even understand exactly what I’m seeing here, but it is awesome! AR/VR is starting to do amazing stuff:

Throwing the towel…

Looking at what I still have to do to make the game playable, and considering the time I’ve already used up, I’ve decided to throw the towel…

I don’t have enough time to finish the game, and even if I can make it playable (which is unlikely), it won’t be balanced or fun.

I really underestimated the UI-making time on this framework I’m using. For really simple stuff it works, but this game is a bit UI-heavy, so it takes me forever to add options and make everything work properly and intuitively… I’ll probably need to review that for the next compo.

The other issue was that I tried making the game more data driven (so that I could have simple load/save mechanisms), by making most of the game logic in Lua… The problem is that I was making the logic in Lua, but the UI in C++, which meant passing data to and from, and that generates a lot of repetitive, error-prone code, besides super-ugly…

Next time, if I want to do something like this, I’ll have to stay either on one world or the other, mixing them doesn’t work that well…

screen07

The game itself had some nifty ideas, but it would take me forever to implement and (more importantly) balance it. I’ve never done an economic/political simulator, so this was a big challenge right from the start.

Maybe if I had a better UI framework or done the game fully in C++, it might be possible…

Oh well… Good luck everyone!