Results 1 to 10 of 31

Thread: A PGD Challenge without Scoring and Judges?

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    It has been mentioned before and is related to Silverwarrior's suggestion of a programming Challenge, but I think it could be interesting with an AI challenge like the Google AI Challenge. It would require that someone would make a simple game with some interesting multiplayer challenges. Furthermore the game will need an API that can be used by various Pascal dialects.

    I realize that it does require some effort from whoever must create the game, but I find the benefits interesting:

    No judges will be needed. We just have to make the AIs battle each other and see who wins or gets the highest score.
    The problem with unfinished entries should hopefully not be an issue. With a well designed API it should require minimal effort to make a simple working AI. It may not be any good, but it Can be submitted to the contest even if you haven't finished it.
    It's a clean programming challenge. No need to fiddle with graphics and Music. No need to waste time on setting up rendering contexts, reading game assets, do proper input handling, collision handling, etc. You only have to focus on designing and implementing your AI.
    Everyone can participate. No matter your skill level you can make a valid entry. Beginners may implement some ad hoc method while more experienced programmers may want to play with decision trees or even experiment with neural networks or reinforcement learning.
    Lastly it is plain fun. We will be competing directly against each other and it is always fun to see how your AI compares to some other AI. It is also interesting to see if some type of AIs fare better against other types of AI but are weak against a third kind.

    Personally I think this could be a great and fun challenge and the competetion length can be as long as you wish. You can get an AI running in one day but can spend a month on improving it.


    btw. I'm writing this from a borriwed iPad and I am really hating the auto-correct.
    Imagine I've written something clever here inspiring you to make something awesome. If that happens give me credits

  2. #2
    I like your idea but you do have to realize that AI development is far from easy. Sure making AI which controll simple movments is easy but if you wan't anything more than that it does becomes quite demmanding. So I'm afraid that many pepole with low programming skils would simply avoid participating in this challenge.

    Anywhay do you volunteer yourself to write such a game to alow us to do this challenge?
    I do have an idea of making game similar to Colobot where the goal of the game is for you to write boots AI. In Colobot you need to write boots ai using C++ so I thought of using Pascal Script for my game.
    But before I can do that I still need to learn a few things about the game development before I would be able to finish any of my game ideas.

  3. #3
    Quote Originally Posted by SilverWarior View Post
    I like your idea but you do have to realize that AI development is far from easy. Sure making AI which controll simple movments is easy but if you wan't anything more than that it does becomes quite demmanding. So I'm afraid that many pepole with low programming skils would simply avoid participating in this challenge.
    AI is as complicated as you make it. The game for such a challenge must be simple enough to allow for simple AIs. This is a game development forum after all. If a person can't make a simple AI, I fail to see how that person can make an entire small game in one month.

    Quote Originally Posted by SilverWarior View Post
    Anywhay do you volunteer yourself to write such a game to alow us to do this challenge?
    I do have an idea of making game similar to Colobot where the goal of the game is for you to write boots AI. In Colobot you need to write boots ai using C++ so I thought of using Pascal Script for my game.
    But before I can do that I still need to learn a few things about the game development before I would be able to finish any of my game ideas.
    I may do it or at least help with creating the game and API, but like everybody else, I have other things to attend.
    I'm not familiar with Colobot, but judging by the few screenshots I saw, it looks much more advanced than what would be needed for this challenge. But in general bot games have been popular for many years. There even was a bot game that used Pascal Script a few years back.
    For this challenge I imagine a game similar to the Ant game for the Google AI Challenge. The biggest challenge for making the game would properly be to create an interface to allow entries made in various Pascal dialects. I would say that at least Delphi, FPC and Oxygene must be supported. One solution would be to use a client/server paradigm and use sockets for communication.
    Imagine I've written something clever here inspiring you to make something awesome. If that happens give me credits

  4. #4
    Simplest way to handle AI bots i have seen, is to use use writeln(), readln(). Host application starts all bots, and writes/reads to each, using those simple console commands. First communication could be from host, who could assign turn number for each bot. Bots writeln() their moves and wait for enemy moves with readln(). Host writeln()'s other bots where he moved, and so on. Point being, you don't need TCP or anything complicated.

  5. #5
    Quote Originally Posted by pstudio View Post
    I'm not familiar with Colobot, but judging by the few screenshots I saw, it looks much more advanced than what would be needed for this challenge.
    Yes Colobot does have some decent looks but the main reason for this is to make it atractive for other pepole to actually use it. From waht I know Colobot was made by a higschool proffesor as a way to atract students into C++ programing. And it can be actually used even by the pepole who never had any prior programming experience. While in most cases you don't need to do any complicated AI in colobot (just MoveTo, Grab, Drop, TurnLeft, TurnRight, Shoot are enough to end most missions), but if you want you can write a preety damn compilcated AI (several bots working in groups).

    Quote Originally Posted by pstudio View Post
    There even was a bot game that used Pascal Script a few years back.
    Can you please remember the name of that game. I have been searching many times to find any such game which would use Pascal language for AI development and I had no luck finding any.

    Quote Originally Posted by pstudio View Post
    The biggest challenge for making the game would properly be to create an interface to allow entries made in various Pascal dialects. I would say that at least Delphi, FPC and Oxygene must be supported. One solution would be to use a client/server paradigm and use sockets for communication.
    Quote Originally Posted by User137 View Post
    Simplest way to handle AI bots i have seen, is to use use writeln(), readln(). Host application starts all bots, and writes/reads to each, using those simple console commands. First communication could be from host, who could assign turn number for each bot. Bots writeln() their moves and wait for enemy moves with readln(). Host writeln()'s other bots where he moved, and so on. Point being, you don't need TCP or anything complicated.
    I don't think ReadLn and WriteLn would be the best choice for this. Yes they can be quickly implemented but they do pose some limitation (the amount od data it can be transmited using this approach). Lets say that you try to develop some more advanced AI that can contoll several units as a group (to cooperate). For doing this nicely you need to be able to retrive the current status for all of theese units (get information about their surroundings) at once and then send varios commands to all of theese units.

    If you ask me I think it would be best to use Dynamic Link Libraries (DLLs). From what I know all of Pascal Development tools are capable of compiling Dynamic Link Librarry.
    But for this to work the game itself should alow the DLL to retrieve needed information so that decisions can be processed and then returned back using some standardiesd procedure. And if you allow theese DLLs to actually be able to store some presistant data you can even write yourself procedures whoch would alow you to actually compile yourself a map so that you can coordinate your units better.

  6. #6
    PGD Staff / News Reporter phibermon's Avatar
    Join Date
    Sep 2009
    Location
    England
    Posts
    524
    the AI you are referring to is comprised of many systems operating together, you have various path finding and steering algorithms for creating 'intelligent' movement from place to place in the environment, this usually operates as a service to higher level code such as state machines, priority lists, scripts etc

    Interaction between entities happens at different levels, to calculate the path for the player to take to walk around an enemy, avoiding intersection of geometry is a lower level from game like interaction such as instructing an enemy to attack the player.

    Also you'd use/have different approaches/restrictions depending on how many AI entities you plan on processing and the kind of environment that they inhabit.

    IE a dynamic destructible environment requires more work for AI to manage than a static environment. Some situations allow you to cache paths across maps, others not so much.

    At the highest level it's all game specific, imagine skyrim and enemy AI casting appropriate spells for the situation etc
    When the moon hits your eye like a big pizza pie - that's an extinction level impact event.

  7. #7
    Quote Originally Posted by SilverWarior View Post
    Can you please remember the name of that game. I have been searching many times to find any such game which would use Pascal language for AI development and I had no luck finding any.
    Sorry, I can't remember the name. Thinking back I Think the game used Delphi Web Script. It was a 3D game where you hd to write the AI for a fighting robot.

    Quote Originally Posted by SilverWarior View Post
    If you ask me I think it would be best to use Dynamic Link Libraries (DLLs). From what I know all of Pascal Development tools are capable of compiling Dynamic Link Librarry.
    But for this to work the game itself should alow the DLL to retrieve needed information so that decisions can be processed and then returned back using some standardiesd procedure. And if you allow theese DLLs to actually be able to store some presistant data you can even write yourself procedures whoch would alow you to actually compile yourself a map so that you can coordinate your units better.
    I'm not sure Oxygene can be compiled into linkable libraries. You would also have to make sure that there's no licitation on OS.

    Quote Originally Posted by phibermon View Post
    the AI you are referring to is comprised of many systems operating together, you have various path finding and steering algorithms for creating 'intelligent' movement from place to place in the environment, this usually operates as a service to higher level code such as state machines, priority lists, scripts etc

    Interaction between entities happens at different levels, to calculate the path for the player to take to walk around an enemy, avoiding intersection of geometry is a lower level from game like interaction such as instructing an enemy to attack the player.

    Also you'd use/have different approaches/restrictions depending on how many AI entities you plan on processing and the kind of environment that they inhabit.

    IE a dynamic destructible environment requires more work for AI to manage than a static environment. Some situations allow you to cache paths across maps, others not so much.

    At the highest level it's all game specific, imagine skyrim and enemy AI casting appropriate spells for the situation etc
    If it is a game like the Ant game then yes; it is built of multiple sub systems. However the game could be anything. If it is a simple board game the fode needed to make a working AI will also be simple. I define a working AI as a program that can make a valid move each turn. It may not be a smart move but at least the game can continue running.
    I will however point out that it will of course not be easy to write a really good AI. It is an AI challenge afterall.

    You make some valid points that need to be considered if we were to hold an AI challenge. But do you have an overall point I'm missing? It's not clear to me if you think the AI challenge is a bad suggestion or if you're simple pointing out things that must be considered.

    Anyway, the AI idea was just a suggestion. A more traditional game making contest is fine by me. Mayor we could also try a more jam like approach and lower the time the challenge will last. Maybe a week or weekend challenge?
    Imagine I've written something clever here inspiring you to make something awesome. If that happens give me credits

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •