I’ve begun the process of reintegrating our awesome AI features into the rewrite. It’s going well! The ai stuff was failry abstract to begin with, so it’s not particularly difficult. There are just a lot of methods to implement in the context of our new Request-based architecture. I had forgotten how much power our in-game scripting language has.
Just as an experiment, I added some computer vision to our game. Using just a webcam, you can control where you move in the game just by moving colored objects in the real world (i.e. a pen cap, a marked finger, etc.) It works surprisingly well! We need to put videos on YouTube!
MoveRequests are being synchronized (according to the tests.) But we use MoveWithMouseRequests to drag objects. These should probably be translated into MoveRequests before reaching BodyManager. Should we make a RelationalMoverModule???
Also, I haven’t yet tested anything by running the game. But I made a SimpleServer, which is like ModularSimpleGame, except that it just has a BodyManager and the server modules. In a perfect world, we can run SimpleServer then run ModularSimpleGame and see the AI-Brain-Possessed rock climbing the mountain on both the server and the client. But I am skeptical that this will actually work. Will the AIModule get angry that the rock isn’t being created fast enough? Will there be other, unforseeable problems? These things are impossible to know until the Wikipedia community gets off its ass and writes a series of articles about ModularSimpleGame.
–Stephen
P.S. Would this be cool? First, we make a module with a Will. This module opens a socket to which we can connect remotely with a simple console/shell program. The module takes incoming strings, translates them into NewRequests, and broadcasts to the connected modules. Thus, we would be able to connect to our game with a text-based user interface and mess with a running game in realtime without ever having to run the game…
Also, we could then attach a guiModule to the ConsoleModule and make an in-game console.
In spite of the lack of recent activity on this blog, it is important to note that RedPanda is alive and well. We are currently in the middle of a full rewrite, which will make the game much easier for the open source community to work on.
The rewrite is going VERY smoothly, more smoothly than I could ever have hoped. In just a few months, we have almost recreated all features from version 1.0. After finishing up the synchronization of game entities, all that’s left is to rewrite the artificial intelligence feature set.
We’re hoping for an official release at the end of Februrary!