[OLPC-Games] [Toronto-dev] Anyone interested in a Game Jam?
Mike C. Fletcher
mcfletch at vrplumber.com
Fri Oct 26 14:33:51 EDT 2007
Myles Braithwaite wrote:
> I am definitely in.
>
Alright, as of now it's just Myles and I, with Soni maybe showing up if
she's got time that weekend. Anyone else interested? We're still
thinking of the weekend of the 16th of November. (Same time as the CMU
Game Jam IIUC). With such a small number of people we might be able to
hold it at Linux Caffe. I'm going to be in Taiwan come Wednesday, so if
we're going to have more people I'll need to know about it soon so I can
find a bigger venue (and/or book a table or two at Linux Caffe).
Here's a trial balloon for a very abstract real-time-strategy game.
Very simplistic social modeler, with very limited set of units and rules.
* Grid playing "field" of a given size
o To start with, a simple grid
o Might allow for adding "dead areas" to the grid eventually
o To start with, regular territories within the grid
* Each player gets X starting units and places them on the board one
after another until the units are all placed
o All players must join before start-of-play
o Loss of a player stops play (game can be stored and restored
by any participant at any time, potentially with other users)
* Resource Production
o Resource production is proportional to the number of
productive units with adjacent empty land (regardless of
whether the land is within the territory the unit is in or
how many units are "farming" it).
o Productive units begin producing when they are adjacent to
empty land
+ They retain their production counter internally until
it is used
+ Usage of resources is done evenly across all units in
all controlled territories
o If a unit converts allegiance or moves to a new territory
then they take their collected resources with them
o A player's current wealth is the sum of the wealth of their
productive units in those territories that they control.
They may dispense this wealth as they see fit (given
constraints on unit maintenance)
* Unit Production/Maintenance
o Unit survival requires resources
+ Each existing unit requires a certain amount of
resources to survive
# this value is comparatively low for productive
units (say 1/10 of a unit's production)
# this value is comparatively high for military
units (say 2/10 of a productive unit's production)
o All units must be fed (starvation)
+ No unit production possible if starvation
(insufficient food for all units) occurs
+ In process unit production is canceled, 50% of
resources are lost, 50% recovered to feed units,
oldest production is stopped first, until all units
are fed or all in-process production is canceled
+ If no units in-production, non-productive units are lost
# Non-productive productive units (most dense area
first)
# Military units (those without empty squares in
their area first (random), then any (random))
# Maybe start off with simple random kill-off
(easy to program)
# (Note: I'd rather have the units switch
allegiance that are in the
other-player-controlled territories, but that's
probably too involved for now)
o Controlled territories can produce new units
+ If there is no controlled territory, no new units are
possible
+ New unit production requires significant resources
# Setting for each unit-type, along with other
requirements (e.g. city status, control of
territory)
# Maybe 500% of unit's production for a productive
unit
+ Wealth remains with the productive unit until a
controlled territory begins producing a unit
# if you do not create units your productive units
become targets for takeover
+ If a territory is taken over (control shifts to
another player) while it is producing a unit, the unit
becomes the unit of the controlling player (the unit
is assigned to the controlling player at the moment
the unit is created, but the cost is borne at the
moment the unit is ordered)
o Cities
+ Very dense population centres, (i.e. those which
occupy every point in a territory), will produce more
mobile units which do not produce resources when
occupying, but which contribute to
controlling/occupying territories (military versus
productive units)
+ Larger cities will produce ever more mobile units
(i.e. two adjacent city territories)
# e.g. one-territory city, 2-unit military,
two-territory city, 3-unit military
+ Military units require exponentially more resources to
produce for each level (e.g. a unit that can move 2
squares at once would cost 4 times as many resources
as a farmer, those moving 3 squares, 9 times).
* Territoriality
o Territories are controlled by having the largest population
in a territory (equal population splits available resources)
o Territories provide access to the controlling player to the
resources of that player's units in the territory
+ Players use resources of all of their controlled
territories to start production of units
o Territories are YxY grid fragments, marked visually, so that
users can see the territory "boundaries" (it would be nice
to allow overlapping, shifting boundaries, but not likely to
be feasible)
* Conversion
o Each territory has a balance of power represented by a
simple count of the total number of units within it, with
the maximum count being the power in control (equal counts
== no controlling balance)
+ Each unit retains an internal counter of "allegiances"
(one for each player)
+ Time within a territory controlled by another player
increases the unit's allegiance to that power (without
upper bounds, so a very old farmer is going to be far
harder to sway than a young one)
# Military units are less affected, but still affected
+ Units start with reasonably high allegiance to the
player that created them, enough to withstand 10
minutes or so in a foreign-controlled territory
+ Units belong to (respond to the commands of, provide
resources for) the player to whom they have the
greatest allegiance
+ Unit conversions will be reported to the user,
individual unit's allegiances can be viewed one-by-one
by hovering over the unit
o Player with balance of power for a territory can use the
resources of their units in that territory to produce new
units in any of their controlled territories
* Motion
o Movement is instantaneous, that is, it occurs at a discrete time
+ All units can move across un-occupied spaces in
response to commands by user
+ Productive units can only move slowly through
un-occupied space (e.g. 1 square at a time, every 15
or 20 seconds)
+ "Military" units can move farther/faster through
un-occupied space (e.g. 2 squares at a time, on the
same period)
o Controlled square motion
+ Units can travel instantly through a chain of their
own units
+ Productive units cannot move through opposing units'
occupied squares
+ Military units can move across opposing unit's squares
if there is an empty square within their movement
range (i.e. a 3-square military unit can jump two
opposing player's squares, but a 2-square unit can
only jump one)
+ Military units can combine a move through a chain of
their own units and a jump over an opponent.
o Player can move as many units as they want as often as the
units are allowed to move (real time operation)
+ New units appear at the closest un-occupied square to
the center of their creating territory
* Goals
o Report "success" at any point in time along various measures:
+ Territoriality (Conquest, number of territories
occupied/controlled)
+ Resource Base (Money, total income over time)
+ Technology (Maximum "tech" level (military distance),
number of cities)
+ Population (Simple count)
+ Loyalty (Average allegiance of population)
Implementation Ideas
* UI
o Simple grid playing field (easy to program quickly in PyGame)
o Unit-type icons required
+ At least two icon types (military and productive)
+ Each player gets their XO colours assigned to their icons
+ Need to look into colour-reliance issues, may need to
provide different icon sets so that black-and-white
mode is playable
o Single-unit-selection only
+ Hover to see unit details (including timers)
+ Click and click empty square to move, click on piece
again, another piece, or territory to cancel
o Territory Icon
+ Click to create new unit
+ Hover to see territory details including unit
production progress
o Heads-up-display
+ Overall map, new unit notifications, statistics
+ Current resource production (rate)
+ Current maintenance resource usage (rate)
+ Current unit-production resource usage (rate)
+ Count of units in foreign-controlled territories (or
maybe a cumulative allegiance change rate)
+ Individual unit display (hover to see statistics)
+ Potentially a "noisy" mode that tells you all changes
that all players are making
o Store/restore UI
o History viewer?
o Observer view?
* Simulation code as a separate engine (i.e. not directly connected
to the display code, so that we can replace the display should we
need to)
o Speed control (new users wanting to play slow, to learn,
experienced to play fast, very experience to play slowly and
chess-like)
* Host will run the simulation (for now we won't worry about "cheats")
o Use whole-board-updates from the server to the clients
(reduce synchronization problems)
o Allow anyone to save off the board at any time (and
potentially resume it later with different players, share it
with others, etceteras)
o Controls are mostly of the nature of "move my unit there" or
"produce new unit"
+ State conflicts will be reported back as flashes or
the like highlighting a blocked move
+ Updates should be first-come-first served
+ We may want to introduce an arbitrary delay into the
host child's updates (to prevent them having an edge)
* Keep the various simulation parameters as controllable parameters
so that we can tweak game-play through development, a few of these
might be exposed to the player
o Board size (e.g. start with 30x30)
o Territory size (e.g. start with 3x3)
o All periods/rates
+ Resource-collection rate per productive unit
+ Production rate per unit/distance
+ Period before auto-placement
+ Cost per unit
+ etc.
No way we'd finish all of that in a weekend, though... still, it would
be interesting to see how far we got. I'm sure a smaller game would be
far more practical. Or we could just cut it down a lot and consider
basic playability the goal, with the various extra rules as secondary.
Anyway, this is *so* not what I was intending to work on today, must get
back to it... oops, and now someones triggered the fire alarm. Bah.
Enjoy,
Mike
> Mike C. Fletcher wrote:
>
>> Hi Everyone,
>>
>> It's been very quiet on the list (mostly my fault). Let's kick-start
>> some discussion with a straw-man proposal...
>>
>> I'd love to have a Game Jam some weekend, come together Friday night,
>> Saturday and Sunday to produce a working game for the laptop. We can
>> likely find sponsors willing to provide us with work-space, maybe even
>> some food here and there. We'd try to make the code usable as sample
>> code, so using e.g. Telepathy for networking, PyGame for graphics and
>> the like, but the focus would be on making a game that children will
>> actually enjoy playing and which might teach something of value.
>>
>> I'm thinking mid-November, maybe the weekend of the 16th, though that's
>> just a date pulled out of the air.
>>
>> Anyway, consider the straw man open for kicking,
>> Mike
>>
>>
>>
>
> _______________________________________________
> Toronto-dev mailing list
> Toronto-dev at lists.laptop.org
> http://lists.laptop.org/listinfo/toronto-dev
>
--
________________________________________________
Mike C. Fletcher
Designer, VR Plumber, Coder
http://www.vrplumber.com
http://blog.vrplumber.com
More information about the Games
mailing list