1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

Main Page

From pygridz

Jump to: navigation, search

Welcome to the Pygridz Wiki!

Pygridz.com is a game engine based on Python and Pygame. Use Pygridz to create multiplayer games: RPGs, arcade-style, board games, even MMORPGs. Non-programmers can create drag-and-drop games. Built-in IDE makes game creation a snap (experienced Python programmers can use their own IDE). The previous version of this project is called Pyxelation.

Contents

Brooklyn Computer Systems

To learn more about BCS, please visit the BCS wiki.

Pygridz Game Objects

There are 8 game object types:

  1. Player
  2. NPC
  3. Tilex
  4. Missile
  5. Room
  6. Level
  7. Widget
  8. Bitmap

A Player is a human player. An NPC is a Non-Player Character, which automatically generates events (such as mouse and keyboard events), just like a human player. A Tilex is a collection of one or more tiles. Every player and NPC is associated with its own Tilex, and inanimate objects are also represented by Tilex objects. Each tile may include a transparent bitmap. A Missile is usually round in shape (with or without a transparent bitmap), and its screen position is not limited to grid intersections or grid lines. All other game objects have those limitations on their screen positions (must be located at a grid intersection or along a line connecting adjacent grid intersections). A Room contains zero or more game objects, and is bounded by walls (not necessarily rectangular in shape). A Level is a collection of rooms. A Widget is a static object such as a label, button, or checkbox, and is not animated (does not appear in an animation window). Widgets are not really game objects, but they have their uses (usually to collect information from users).

A Bitmap is always contained within a tile (except the Missile bitmap). A typical bitmap looks like a desktop shortcut that you double-click on to launch an application (minus the text at the bottom), although it may differ in size. All tiles are rectangular (usually square), and they're all the same size, laid out in a grid. Transparent bitmaps include pixels in a transparent "color" (as well as normal pixels). Transparent pixels are invisible, allowing whatever's in the background to show through. All desktop shortcuts that are non-rectangular in shape include transparent bitmaps.

Game Server

The main purpose of the Game Server is to receive one or more events from one character (player or NPC) at a time, and then to broadcast each event to all players. There are 12 event types:

  1. Mouse
  2. Keyboard
  3. Joystick
  4. Timer
  5. String List
  6. Object Click
  7. Collision
  8. Velocity
  9. Switch
  10. Parameter
  11. Create
  12. Destroy

Mouse events usually generate Object Click events, unless nothing was clicked on. Timer events involve the passage of time, and may repeat many times or just happen once. String List events are generated when a player enters text into a chat window and then presses Enter. Collision events are generated by the game server, when 2 game objects collide. Velocity events are generated when a game object changes speed, direction, or location. Switch events are used to inform all players that 2 given events occurred in a particular order (needed to keep everyone properly synchronized). Parameter events occur when a game object's parameter(s) change: visibility, enters/leaves a room, or some object-specific parameter. Create/Destroy events are generated when a game object is created/destroyed.

After I finish designing the game server, I must design the client engine, which handles animation on each client's (human player's) computer. Then I can implement the game server and client engine.

Business Model

Pygridz.com makes money from selling subscriptions and advertising (to view the old business model, click on Business Model). For a list of Pygridz development tasks, click on Roadmap. What follows is the new business model.

I propose the following 3-tiered business model. There are 3 membership types: gold, silver, and bronze. Bronze is free, silver is $10/year, and gold is $18/year or $10 for 6 months. The incentive to become a paying member is based on a certain linking database on the game server. This database has 3 fields per record: User ID, Game ID, and an XML structure which contains configuration data and historical data such as high scores, and is different for each game. Gold members have an unlimited no. of records in this linking database. Silver members are limited to 3 records (the 3 most recent unique games they have played). Bronze members are limited to only one record, and their user name is the only part of their user profile available to other members.

The primary markets of Pygridz are threefold: 1) those who like creating their own games; 2) gamers who desire and crave a plethora of 2D game choices; and 3) beginner programmers who want to learn Python as their first programming language. Eventually Pygridz will support 3D graphics. As far as I know, no other open source game creation system lets you use Python (as a scripting language) to create all sorts of multiplayer games, and at the same time enables non-programmers to create drag-and-drop games.

Personal tools