GNOME Bugzilla – Bug 509692
Gnobots makeover in Python (aka gnobots3)
Last modified: 2009-03-29 20:24:08 UTC
I'd like to give gnobots a rewrite in Python, and in the process bring the game up to more "modern" standards with respect to usability, look-and-feel, graphics and maintainability. I'll post notes on the progress here. Therefore it would be great if people could post suggestions about what they would like to see improved in the next version of gnobots. If everything goes accoring to plan, then I'd like to commit the new version at the beginning of the 2.22.x development cycle (after March 12). Suggestions?
Python bindings for the games library would be really sweet. This would also allow sudoku to use the high score code in the library. Other than the untranslatable strings and the bad graphics I think gnobots is doing pretty okay. If you can make it feature par with the current and pick the improvements from bug #80240 it will be really nice to have it refactored in python. For all the code that is shareable with the other games I hope you will use the library.
Created attachment 103091 [details] Proposed screen mockup for gnobots3
I've attached a proposed screen mockup for gnobots3: - A randomly generated gradient map. I created the map with the GIMP, but Ihave a pretty good idea about how do reneder such a map with cairo. - Better-looking robots are needed. I also think the game needs some other artifacts, buildings etc. - Minimap in top-left for overview of larger maps. - A new planet area, to add some more sci-fi aspects to the game. - Status-information in bottom-left area.
This does look really cool (and I like the graphics :p ) but the game is still "Robots"or a different new one? In nothing wrong with a different game (your mockup look like something I could play and probably like to contribute graphics) but maybe we should call it so.
Created attachment 103121 [details] 3D-ish mockup An old mockup I made (attached as PNG, the SVG is too large)
And I attached an old mockup I made a couple of years ago, it touches only the look, it was more of a personal study about how the game can look. However, the mockup from Andreas look more like something *I* could play.
Yes, I remember that mockup, it could probably be done with an isometric map. I think the core of the game should still be Robots, but to improve the game I don't think it hurts to add some new concepts on top of the existing.
I think balancing the gameplay may take some work when you add buildings and such to the game but I like the concept. Getting the game on feature par with the old one before adding new stuff would seem wisest IMO. Things that could be fun: - weapons. Picking up e.g. a laser that you can shoot the robots with from distance. EMP's to kill robots with 2 fields. - mines that trigger when stepped on and explode e.g. two turns after that. - portals from one stop to another on the map. - immobile cannons that fire slow moving bullets(1 field pr. turn) when something crosses the line of fields it is looking at. - limited time for each move.
I was thinking about "power-ups" like a dynamite which kill all the robots in a certain radius and maybe dynamite pack, which kill all the robots, effectively ending the map. Another power-up can be a "safe teleporter", which guarantee the next teleport will end in a "safe" area of the map. Another one - maybe access to a "bonus" planet and so on. Another thing I was thinking of is about continents: the terrain is randomly generated and looking at your mockup is possible to get "continents" or "islands". Do robots are able to move from one islands to another? (if they are robots, they may not, but it they are flying UFOs...). Or do you always generate a map consisting of one single continent? Another implication of such a complex shape of the terrain it that the game will need AI for the robots. In the current version of the game they simply move towards you. On a game map like the mockup they will need to calculate a path and do not get stuck in a peninsula. How about teleportation? It will be posible to teleport over water (and die instantly) or you will teleport always over land? I am not sure I understand the part about planets. They are like game levels? If so, once a level (planet) was cleared and you advance to the next, is possible to revisit a planet? If so, it will have the same difficulty level?
> weapons. Picking up e.g. a laser that you can shoot the robots with > from distance. EMP's to kill robots with 2 fields. I like the idea of weapons, especially laser weapons. How should Electomagnetic pulse weapons work? >mines that trigger when stepped on and explode e.g. two turns after that. Cool. > portals from one stop to another on the map. Isn't this the same concept as the current teleportation? > immobile cannons that fire slow moving bullets(1 field pr. turn) > when something crosses the line of fields it is looking at. How would this work? > limited time for each move. Yes, each turn could have a timeout, eg. 60 seconds. The timeout could be related to the difficulty. >Another thing I was thinking of is about continents: the terrain is randomly > generated and looking at your mockup is possible to get "continents" > or "islands". Do robots are able to move from one islands to another? (if they > are robots, they may not, but it they are flying UFOs...). Or do you > always generate a map consisting of one single continent? It is possible to generate continents, and make the robots move from one continent to another, eg. using teleportation. > Another implication of such a complex shape of the terrain it that the > game will need AI for the robots. In the current version of the game they > simply move towards you. On a game map like the mockup they will need > to calculate a path and do not get stuck in a peninsula. Yes, the AI would have to use a pathfinding algorithm to avoid obstacles. I've seen GPL implementations of this that we can re-use. > How about teleportation? It will be posible to teleport over > water (and die instantly) or you will teleport always over land? I think teleportation should be possible across water as well. > I am not sure I understand the part about planets. They are like game > levels? If so, once a level (planet) was cleared and you advance to the > next, is possible to revisit a planet? If so, it will have the same > difficulty level? The idea about planets hasn't been thought all that well through yet, it's just an idea on a mockup... One possibility is that each planet represented a level in Robots. So after the player completes one level, then he owns that planet. For the next level, a different planet has to be chosen. The planets could also be a high-level game of "Konquest" (part of KDE Games), where each individual battle of a planet in "Konquest" represents a game of Robots.
Is anyone really volunteering to take the time to rewrite this in python, or is it just something you'd like?
As I understand, Andreas is volunteering to rewrite the game. If so, I would like to try to help with the graphics..
Here are a couple of ideas about how I see the game graphics: 1. have 4 types of terrain (temperate, desert, jungle and frozen, defined by gradient colors), 4 types of buildings/artifacts (contemporary, sci-fi, fantasy and another one) and 4 types of robots graphics (different groups of sprites). Each planet is a *random* combination of those, so we get a fairy large number of distinct looking combination. 2. a more laborious approach, create complex sets of tied terrain/buildings/robots, so for a frozen planet the buildings are customized, covered in snow and for a fantasy world the robots are also customized (iron golems?). The sets can be derived one from another, but it would imply a lot more work. Maybe start with 1. and leave 2. and an option for later?
As a reply to comment #11, this originally started with me expressing my intent to possibly give gnobots a big makeover, iff the proposal is accepted and other people show interest in helping out as well. Vincent, on the other hand has already said that he is skeptical to it, so that makes it more likely that gnobots will not be improved any more during the next 10 years than it has in the past. So much for the naysayers...
"I like the idea of weapons, especially laser weapons. How should Electomagnetic pulse weapons work?" Like the dynamite idea. Kill all within a radius of e.g. 2 fields. "Isn't this the same concept as the current teleportation?" No. These should be teleportation holes that are always open. It would make it harder to get an overview of the shortest path around the map. "immobile cannons" & "How would this work?" Hard to explain. I could draw the idea if you want to work on this. "Yes, the AI would have to use a pathfinding algorithm to avoid obstacles. I've seen GPL implementations of this that we can re-use." I have been talking to my former adviser at my university. If we could come up with some good ideas for the students to program and write a report about they would like to cooperate. This could be an interesting thing to work on I think. Nothing or nobody should stop you from implementing this. I too have some concerns about balancing the gameplay as this is hard. But if we start out by implementing what we have currently and move on from there we have nothing to worry about. And as Vincent writes another place it could be good to do this in a way where we can share code with other similar games. But you should work on whatever you like and we'll take a look at have the outcome is.
For the record, I fully endorse the last two paragraphs of comment #15.
Andreas is this still work in progress?
No, there isn't any work being done on this now...