Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

100 Neutral

About LeventeZs

  • Rank
  1. LeventeZs

    RTS AI workbench

    I made some progress and some documentation. Now there's pathfinding, and a very simple computer opponent, a map editor and you can load/save a game. There's no networking or machine learning stuff in it yet. You can check it out here the 0.2.1 version stuff: https://sourceforge....e-wisdom/files/ The documentation (at the moment embedded in Javadoc): http://infinite-wisd...iew_description
  2. LeventeZs

    RTS AI workbench

    1, If you use default Python arithmetic it's much slower. (And not only the arithmetic is slower.) If you want fast arithmetic, you have to explicitely use numpy, and it only benefits matrix operations. 2, "[color=#1C2837][size=2]Implementing linear algebra operations on large inputs with thousand of separate heavyweight Python objects instead of arrays is mere idiocy, not a problem with specific programming languages." [color="#1c2837"]I would benefit fast matrix oprations, if I would use neural networks (MLP/RBF/SVM) for training, but I use a genetic algorithm framework. [color="#1c2837"] [color="#1c2837"]"[color=#1C2837][size=2]Another bizarre misconception: the planes of user defined units (more generally, of game rules scripts) and of AI scripts for specific game rules should be completely separate, and there's no reason to implement rules and game state views with impoverished and cumbersome tools like ad-hoc classes and primitive "poking" with reflection instead of a general object model and a UI layer that takes advantage of it." [color=#1C2837][size=2] [color=#1C2837][size=2]The only use of reflection is to display the custom properties of user defined units to the user, which is exactly what reflection was invented for. There's no reflection in game rules/AI part.
  3. LeventeZs

    RTS AI workbench

    Well, I don't want to work in the "biz", and this is a mere hobby project. On the other hand in academia quite a few people use java in AI related fields (see Weka, Jess or Pellet), and C++ is less popular. Also, I don't think Java programmers are less intrested in modding a game, it's just the AAA shiny engines are in C++/Lua for performance (shininess) reasons. By the way it wouldn't make sense to make the core in C++, and create Python bindings, as the AI will be in user "scripts", and that's where the computational heavy lifting will be (especially in the offline learning mode; remember the goal here isn't shininess). Also, I'll heavily rely on the reflection API to create IDE like features ( Inspector widget e.g. for user defined units).
  4. LeventeZs

    RTS AI workbench

    I already have some nice classes to visualise custom potential fields. (Overlays) Yeah, I see you get the idea. I'm happy to find some like minded fellow, not just C++ snobs
  5. LeventeZs

    RTS AI workbench

    The idea is to spice up scripted AIs with GA. (The GA framework finetunes the "constants" in your scripts.) Also, don't confuse Genetic Algorithms with Genetic Programming. I don't intend to build in support for Genetic Programming. You don't seem to account for the fact that every RTS is going to have a very different set of rules. What made Total Annihilation a great game was vastly different from what made Dune 2 a great game, or Warcraft, or Command and Conquer. Those rules and design decisions shape the AI far more than code ever will.[/quote] As I said, the gamerules are flexible. The default rules are what generic RTS-es does (HP, shield, splash damage), but should be easy to override. Also you're supposed to write the rules in Java (the horror) by extending/reimplementing the gameplay class. I like the concept in principle, so don't take this as anything more than constructive criticism; in fact I think it'd be cool to have a prototyping tool for RTS games that worked very similarly to what you seem to be envisioning. But to make it really kick-ass, I'd suggest shifting focus a bit: build a scripting or other high-level data driven system that lets a designer prototype an entire game from start to finish (sans graphics, sound effects, whatnot) and see how it actually plays. Build in rich support for AI scripts written in, say, Python or Lua, and provide a set of hooks for built-in stuff like a pathfinder and so on. [/quote] I'm already working on a grid based path finding utility that integrates smoothly with the rest of the framework. What you could end up with is a great tool for designers of RTS games to sit down and hammer out all the rules for their game first and foremost, then have AI engineers rough out the gameplay logic for the computer players, and then ideally just copy/paste their scripts into a C/C++ framework that integrates into custom rendering engines and so forth. You could bootstrap an entire game like StarCraft in a matter of days with such a toolkit, and I think it would be truly cool to have something like that available. [/quote] That's the vision. However on the short term (next 1-2 years) I plan to concentrate on the gameplay features, the shiny stuff should come later. Even if it will be a prototyping tool/testbead for new ideas, it could be immensly helpful. As I heard, AI is bolted on in a rush on the later phases of developement in a lot of games. This tool would allow to test AI ideas in earlier phases. Massive bonus points for including a rudimentary network code implementation that can be used for playtesting PvP combat... [/quote] The idea is to be able to train the GAs without networking overhead, and then running them in networked tournaments, with non-cheatable server (no gameplay rules deferred to clients). Also, if you have many machines, you should be able to train them on the network too. But at the moment I concentrate on local stuff, but design interfaces with networking in mind. (Not an easy task.) Anyway, this started as "a fun diversionary project for some research", so I will content even if it remains that. If I can gain some new insights as an RTS player, it was worth it.
  6. LeventeZs

    RTS AI workbench

    I'm working on an RTS workbench tool, that is: minimalist graphics, 2D world, units have hitpoints, attack points, range, speed (these are the default attributes). The intended use is to extend the basic unit class, and override the behaviours/game rules you don't like (default rules mimic a run of the mill RTS). So you can concentrate on experimenting both with unit level ai and player level ai. It's all in really infant phase (0.1), there's no documentation besides some Javadoc (hands-on no getting started guide). But I have some code that runs, and it might give some idea where I'm heading. I also plan to build in some tools for evolutionary algorithms (yeah, I know, sounds ambitious), so you write a player's code, define a sequence of evolutionary attributes and their range, and the in some points in your Player code you read those attributes. The framework will "breed" the player and mutate (e.g. simulated annealing), and cull the population (different specimens of "Player strategies" fighting against each other). I know, there are already projects like this out there, but they ... 1, have weird rules and not resemble regular RTS 2, use C/C++ (I think that's too level language to progam an AI in) 3, are tied to proprietary game (e.g. Starcraft) 4, only provide a server and not an IDE like environment where you experiment, aggregate and visualize data I'd like to hear suggestions/feature requests from you, or just comforting cheering The project is BSD licensed, however I'm not recruiting contributors, so if you like what you find feel free to fork. I'd like to get my planned features and documentation get done till October/November. (My schedule has been quite hectic in the last 1.5 months). The project is hosted on Sourceforge and is humbly called Infinite Wisdom.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!