Game
AFTER
10 years ago

2014 April 10


Not a whole lot got done, as the intro video took a lot out of me, and I sliced open my typing pinky deep enough to where I’m still wary of typing too much.

However, developer log video! Yay!

DEVELOPER LOG VIDEO! COMBAT! YES!

You’re boring. How about something nifty?
Fine. I’ll talk about the AI a little bit.

When I dived into it yesterday to streamline it, I quickly realized something: while the terrain may have the most amount of sub-systems and source files all dedicated to its function and implementation, in terms of lines of code, the AI is the largest system in the game, by far.

The reason for the size is possibly because of all the small subsystems. The AI contains looking around, eye twitching, path finding, target selection, caution calculations, the Metal Gear Solid style aggro system, and the behavior management.

I ended up reworking completely the attack requests from Lua, sending an entire structure to and from the stack to give finer and more predictible control, instead of letting some buggy C++ code that was extremely hard to debug control all the requests. Doing it this way is nice since the Lua can be tweaked while the game is running. In addition, I reworked the access to the C++ implementation of the AI object. All the states were made private, and the queries and state changes in the base NPC object were all updated to reflect this. A side effect is that the first NPC, the Komodo, had to have some special time to fix the issues caused when I made all the AI information private. The Komodo implementation is not based on the base NPC object. They don’t share code beyond the terrain character zoning.

I should mention again I’m programming with 4 fingers on my left hand. I sliced open my pinky when preparing dinner, paring the ends of a yam. It’s not so much it hurts (which it does, it’s painful actually, but when you’re a klutz, you stop caring), but that it keeps bleeding with how I type. I’ve gotten blood in this keyboard before, and it’s a pain to clean. It soaked a good portion of the bandage, even with it wrapped tightly. Slows things down, especially when you can’t feel the difference between Control, Caps Lock, and Shift. I have to say, Visual Studio has a lot of strange shortcuts that I never knew about.

The end result of the “rewrite,” although more of a remix than anything, was that the AI made more sense, was more configurable, and is more predictable for players. Essentially, we made it more dumb, but with the benefit of better gameplay. In addition, the Lua interface, while still really raw, was improved greatly. Specifically, the attacking request the AI performs was simplified to a one-way struct, improving the readability of the Lua greatly. Support for Ranged and Magic focused actions or attacks were also added. The organization of the AI was also clearly defined: queries are in C++, and behavioral aspects are in Lua.

In addition, all of Lua scripts are left in the open. Why? Because everybody loves modularity.

TL,DR. What’s Next?
Writing lines for all 6 races and more deadlines. A lot of cutscene work as well. Personally, I’ve been reworking a fair amount of animations expecting this.

AND IN CASE YOU MISSED IT, DEVLOG VIDEO!



0 comments

Loading...

Next up

2014 April 13 Trying to get more content and pretty things into the game. Eight hours of 3dsMax and Paint Tool SAI later…(I’m a programmer not an artist T_T)

We are under attack!

Successful landing

#screenshotsaturday

Heya there! I really wanted to show you all a little gameplay preview of the first boss fight i'm currently working on i hope you like it ^^

Updated the chest in the maze, adding sound, particles and better animation. But what's in the chest?

Family band complete!

What you all think

In the quest for accessibility, I'm adding Resurrection Shrines for players on the 'novice' end of the platforming spectrum.

In order to unlock the power of a Shrine, you must collect 3 'Souls' from your dead corpses! (the floating blue orbs)

I worked so hard to get all four of them to the end safely, but then...

Made my first ever animation.