The first developer discussion of the new year on AiGameDev.com is a fantastic opportunity to discuss trends for the upcoming twelve months. What do you think will be hot, or not?
Screenshot 1: Trends in artificial intelligence and game development.
In particular,
Scripting Languages — Will discontent with Lua spread or will its adoption continue to grow? Do you foresee any competitors?
Middleware — Do you foresee any major shifts in the middleware business? What are you looking forward to the most?
Technology — Is there any particular AI technique that you think will make it big in 2008? If not, why not?
Game Innovations — What games do you think will influence the field of game AI the most?
Let everyone know what you think; post a comment below!











Comments
Comment on this article. | Show full forum thread.As with GFx Engines, Physics Engines and all the other middle ware, i think we will see more & more AI middleware, and i think it will be a good thing for the games and their quality
• The increasing availability of planners (HTN mainly) in middleware solutions.
• An increasing focus on co-operative AIs, like the dog in Fable 2 or Alyx in Half-Life 2.
• Designers becoming more efficient at designing groups / eco-systems (with emergent behaviors) and integrating them with the story.
• A great boost in popularity of behavior trees and their editors...
• Developers becoming more unhappy with the Lua interpreter's performance, but alternatives on the horizon (e.g. a compiler).
Regardless, it'll be interesting to see what happens!
Alex
Also, I think that the major break away from state-based machines will be a big deal. Look for more autonomous agents and less scripting. Certainly that will be limited to the games that can support and show off these sorts of behaviors, but the change will happen nonetheless.
With regard to autonomous characters, I look forward to the development of more complex behaviors that go way beyond the standard fight or flight. I'd like to see fewer game units used as cannon fodder, and a much greater use of the subtleties of negotiation, including intimidation, threats, etc. Imagine how much better it would be to have game entities who embody the desire to not only achieve a group goal, but also individual preservation. For example, if groups of enemy units include individuals who want to be promoted (maybe all of them do), then their goals of achieving objectives would by necessity also include their own preservation. This can lead to greater motivation to negotatiate, perhaps not only with the player character, but also with each other. The complexities of game play would be much more compelling.
It'll also be interesting to see how the mod community changes over time. As the emphasis moves away from pre-scripted behaviors and set triggers (though continues to include them), and toward the development of complex characters, behaviors and physical sensors, the third-party development tools will also need to adapt to this change. Modding will by necessity be even more involved in character development (as objects/agents/behaviors/sensors are created), and less with event/location based scripts. This shift will change the nature of mod development a bit, but will be an improvement for the development of more engaging games.
Also, I would be very interested in hearing what alternatives this community believes would be viable competitors to Lua. I have spent a significant amount of time researching scipting languages recently and I have been unable to find another language that is as efficient as Lua. I believe that this along with the the portability and ease of integration are the primary contributing factors of Lua's popularity.
I've been looking forward to ECMA Script 4 but unfortunately there are no implementations that are currently worth using. .NET could be a viable alternative, but only if you already have a dependency on that platform. I personally feel that Squirrel, AngelScript, GameMonkey and Python all fall short in one area or another. I guess that covers most of the existing solutions that are commonly considered (Does anyone out there really care about Ruby, Lisp or Javascript?). Any thoughts from the other readers?
I realize this post sounds rather fanboy-ish so I thought I should write a disclaimer: I'm in no way affiliated with Lua or LuaJIT but I am a fan of both and thought that I should mention LuaJIT for your community to consider.
we used LuaJIT in Stalker, and it proved it is very efficient (2.5-3 times faster than pure Lua). It is a pity that it can compile only in x86 instructions, which limits it to PC platform only :( This can result in less intensive Lua usage on consoles.
it is also interesting to know if guys from Crytek have memory or/and speed issues because of Lua usage.
Compiling a dynamically typed language is much harder when you can't do it with runtime data to help you out... The approach ShedSkin (Python) takes is to require you to write tests for each function to show how it will be used, which gives you the types/data to compile the functions before execution.
Alex
Alex: LuaJIT has a compilation mode called Ahead of Time (AOT). This is still runtime generation of code but I imagine that it must be able to determine data types in this mode which means it's potentially a step or two away from full pre-compilation.
Also, I've not really looked at the LuaJIT code but I would hope that the compiler is somewhat retargetable and I would imagine that even poorly compiled native code would outperform the VM on most consoles.
Regardless, overall I predict a decline in the usage of scripting languages for the specific purpose of game AI. I think that visual editors are increasingly popular and significantly more friendly fro designers. Engines such as the Vicious Engine and Virtools have already moved on to what could be considered the next evolution of the scripting language. Unreal (which has had scripting significantly longer than most engines) now has Kismet, which seems to have superceded direct use of UnrealScript for the specific purpose of gameplay 'flow'. I think other engines are likely to follow suite.
I reviewed discussion "Squirrel vs Lua" and Mike Pall (LuaJIT author) proved LuaJIT is very fast. I haven't got deep into Squirrel though.
About future scripting language usage in games: I agree, most of the modern engines have reach WYSIWYP editors, which allow game designers to do a lot of things without scripting. Probably, script languages in future game engines will be used for data description purposes only. BTW they have several good properties for this:
* it is easy to find out what is wrong with the data, since there are descriptive errors
* it is easy to use with any version control system, since merge operations on binary data are painful
* no LittleEndian/BigEndian, alignment and other issues
of course, it is slower solution, especially if you store triangles in script :-), but it may help in most other cases.