Tuesday, October 28, 2008
Vecset Prototype
Thursday, October 9, 2008
Vecset for the XO
This weekend I intend to finish debugging my Python code for what will someday become the Vecset Code Editor, and then start translating it into Java. I'm a newbie when it comes to programming in Java. I'm most comfortable programming in Delphi, and I learned Python programming a few months ago.
Saturday, September 20, 2008
Java
I like Java and I'm going to use it instead of Python to develop Vecset for Windows. Vecset will not run under Linux and will not run on the XO Laptop. Vecset will be closed source, not open source.
If Vecset is successful, I hope to sign up at least 1000 paying members/gamers, each of whom pays $15/year, and at least 200 paying members/developers, each of whom pays $30/year: gross income = $21,000/year or $1750/month.
Only gamers who are members can own real estate in Vecset World, and only game developers who are members can have customizable game rooms, located in the game building of their choice (game developers who are not members get the default game room in the default game building). Gamers who are members can store stuff, such as game-related info, in their virtual homes.
Anyone can roam the streets, buildings, and game rooms of Vecset World, logged on as a guest. Also, guests can kibitz games in progress. To play a game, you must register first, entering your name, email address, and screen name. You don't need to download anything to play games, as all games run in your web browser. To create games, you must download the Vecset IDE (game editor).
Monday, September 15, 2008
VECSET
The next steps in the development of Vecset are as follows:
- Finish debugging the newly added classes in the Code
Editor - Upload Python source code to Vecset.net
- Write an OLPC wiki for Vecset
- Apply to OLPC for project hosting
- Post a help-wanted notice on the OLPC Games mailing list
- Continue implementing the Vecset shell
New Vecset Business Model:
Everyone can play/create games for free. Those who elect to become members (paying $15/year, or $30/year for game developers) can own places to live (and store game-related info) and customizable game rooms. Game developers who are non-members get a generic game lobby, located in the default game building (depending on its genre), and they can't customize it very much. So Vecset is a lot like Second Life.
Unlike Second Life, the outer environment (when the user is not in a game) is 2-dimensional, consisting of 2 rectangular windows side-by-side (split screen). One window is always an overhead view, and the other window is split into 2 windows: left-side/right-side, or front/rear. The user uses the cursor keys to go forward (up arrow), left, right, stop (down arrow), or make a 180-degree turn (down arrow while stopped). Pressing Enter carries out the default primary user action, and pressing Space carries out the default secondary user action. Pressing Tab highlights the next command in an onscreen menu. Clicking the mouse in the non-overhead view toggles between left/right and front/rear. Ctrl+Left Arrow and Ctrl+Right Arrow rotates the overhead view 90 degrees in the given direction.
Monday, February 4, 2008
Past, Present, and Future
For newcomers to this blog, OLPC stands for One Laptop Per Child, a non-profit organization which aims to distribute millions of $175 laptops to schoolchildren in developing countries. Each laptop (called an XO Laptop) is Linux-based, includes Python (a free programming language), and comes equipped with wireless, peer-to-peer networking.
Past:
- Design Treescript programming language
- Design board-game components
- Design animation components
- Create web site documenting the Treenimation project
- Implement the Delphi version of the TIL Loader
- Start this blog
- Announce Treenimation project to OLPC Games mailing list
- Purchase XO Laptop ("give 1, get 1": buy a laptop and at the same time donate another laptop to OLPC)
- Install Linux on my home computer
- Install Windows version of Python on home computer
- Install PyGTK and Glade on home computer
- Write "Hello, world" program in Python (an ultra-simple program that does very little, but it works)
- Modify above program to display the user interface of the Delphi version of the TIL Loader
- Create basic classes of in-memory program tree using Python, for the TIL Loader
- Lay the foundations for the heavy-duty Python coding necessary to implement the TIL Loader
- Implement the core functionality of the TIL Loader
- Temporarily change the page size constant from 1000 to 50, in order to test the multipage functionality of the TIL Loader
- Translate the Delphi code which handles user input of arrow keys (to traverse the program tree) into Python
- Implement the non-core functionality of the TIL Loader
- Update web site: both Treescript and Python can be used to create games
- Install PyGTK and Glade for Linux on home computer
- Port TIL Loader from Windows to Linux (hopefully I can reuse my 3 Python source code files without modification)
Present:
- Apply to OLPC for web hosting of Treenimation project (application not yet processed)
- Advertise on the OLPC Games mailing list the position of Chief Linux Developer, which is basically an unpaid position, but if Treenimation eventually makes money, the Chief Linux Developer will receive 10 percent of the gross income of Treenimation.net
- Write the detailed job description of the Chief Linux Developer, who will implement the Treenimation Integrated Development Environment (TIDE), or code editor, including the design specs of the TIDE, and post it on the Treenimation web site: http://www.treenimation.net/
- Hire the Chief Linux Developer, Jake Beard
Future:
- Sugarize the Linux version of the TIL Loader, enabling it to run on the XO Laptop
- Work on Treenimation development at least 16 hours/week (6 hours on the weekend, mostly on Sunday, 6 hours on Thursday, 2 hours on Tuesday, and a total of 2 hours on Monday, Wednesday, and Friday evenings)
- Implement the Treenimation Runtime
- Implement the Treescript Compiler
- Build the Treenopolis web site, a destination for users of Treenimation (both game developers and game players)
- Implement the rating/membership system, whereby avid gamers who need to know their ratings/rankings in every game they play are charged an annual membership fee of $24 (all XO Laptop users play for free)
- Donate 25 percent of gross income of Treenimation.net to OLPC
- Start version 2.0 of Treenimation, which adds support for animated games (not just multiplayer board games)
- Advertise Treenimation.net on PBeM Server mailing list (Play By eMail, a site for email-based board games boasting 2000 members)
- Implement Treescript versions of PBeM games developed by Cameron Browne, and pay him royalties
Monday, January 7, 2008
Goals of Treenimation
The all-encompassing goal of Treenimation is ease of use. Here are the other goals, in descending order of importance:
- The income from avid gamers, who are charged $24/year, exceeds expenses, such as web hosting fees, enabling Treenimation.net to donate a percentage of the profits to OLPC.
- OLPC kids (One Laptop Per Child, see http://www.laptop.org), with minimal support from their teachers, can use Treenimation to create drag-and-drop multiplayer board games.
- Non-programming adults and teens can easily use Treenimation to create drag-and-drop multiplayer board games, without being coached by Treenimation gurus and/or tech support.
- Non-programming high school students and undergraduates can learn Treescript as a first programming language more easily than any other Graphical User Interface (GUI) programming tool.
- Programming novices (who are already familiar with at least one other GUI programming tool) can master Treescript in one month or less, on their own, with little or no coaching from Treenimation gurus and/or tech support.
- Advanced programmers can master Treescript as easily as falling off the proverbial log, unlike most existing GUI programming tools.
- A vibrant Treenimation community blossoms, consisting of game developers and game players from all around the world and including OLPC users.
Sunday, December 16, 2007
Designed GUI of TIL Loader
I now have both Linux and Windows installed on my home computer. I installed the Mozilla Thunderbird email client, which is now working. Also I successfully modified the "grub.conf" file to boot up Windows by default. So things are moving along nicely.
Monday, December 10, 2007
Installed Linux
- I want to change the boot loader's default operating system from Linux to Windows.
- Every time I log in to Linux, I must remove and reinsert the Bluetooth thing so I can use my cordless mouse/keyboard. Luckily I can use one of the USB ports on the front of my computer to make this task easier.
- I can receive but not send email. I emailed tech support but this is still an issue. I intend to ditch my email client and download Mozilla Thunderbird.
I guess the next order of business would be for me to get busy learning the Python programming language and PyGtk, in both Windows and Linux environments.
Monday, November 12, 2007
Ordered XO Laptop
Sunday, November 11, 2007
All in Python
Friday, November 2, 2007
Dual Treenimation Versions
I plan to implement the Treenimation Runtime in Python for both the Windows and Linux versions. However, I intend to maintain 2 versions of Treenimation Builder (the part that lets you create your own games): the full Windows version will be written in Delphi, and the less feature-rich Linux/XO version will be written in Python.
Implementation Phases:
- Translate TIL Loader from Delphi to Python
So after Phase 6 is completed, Windows users will be able to create games (using the text editor of their choice), and XO users will be able to play those games, but won’t be able to create their own games until after Phase 7 is completed.
I’m still in the early stages of learning Python. It seems like a nice language but it’s a lot different from the Object Pascal/Java/C#-style languages that I’m used to. The Treescript Compiler is perhaps the hardest part of Treenimation to implement. Being able to use a familiar tool (Delphi) for that job seems less intimidating to me. That's how I rationalize it, anyway.
Phase 4 is a big job. Maybe by the time I complete that phase I will be confident enough in Python to ditch Delphi and just use Python to implement Treenimation Builder.
Friday, October 26, 2007
Working from Home
I'm almost finished reading the Python tutorial, and this weekend I hope to begin translating the part of Treenimation I call the TIL Loader from Object Pascal into Python.
Benefits of working from home:
- More time to work on Treenimation
- Save money (don't need a car)
- Less hassle (won't have a car to worry about)
- More environmentally friendly (no more driving to work)
- Healthier lunches (fewer McDonald's/Wendy's meals)
- More exercise (going for walks in my neighbourhood)
To Do List:
- Go to http://www.laptop.org/ and find out which version of Linux they recommend
- Find out space requirements of Linux, Python, PyGtk, Sugar, etc.
- Download Linux and burn it onto DVDs
- Buy Partition Magic
- Back up my home computer's data onto a CD
- Make partitions for Linux and Windows XP
- Install Linux at home
- Bring my computer to work (it already has Delphi 4)
- Copy C:\Bdev (over 10 GB) from my work computer to my home computer
- Step 9 will take several hours
- Install Delphi 6 and all our development tools
- Take computer home (sometime in November)
- Start working from home 3 days a week
- Install XO Laptop emulator on Linux partition
- Translate TIL Loader from Object Pascal into Python
- Port TIL Loader to Linux/Sugar/XO Laptop
- Apply to OLPC for web hosting
Sunday, October 21, 2007
Navigation Keys
There exist 3 text-entry modes in the Treescript code editor:
- Free Form
- Structure Editor
- Code Menu
Pressing Esc toggles between Free Form and Structure Editor modes. Typing a question mark (?) enters Code Menu mode (except within comments and string literals; to enter Code Menu mode from inside those, press Ctrl+?). Pressing F1 displays context-sensitive help in all modes.
Structure Editor: a bottom-level token (e.g. a keyword, identifier, operator, or constant) or an entire list is often highlighted. Using the Shift key in conjunction with the Up/Down Arrow keys, it is possible to select more than one token/list at a time.
- Esc - enter Free Form mode
- Up Arrow - go to previous list element
- Down Arrow - go to next list element
- Left Arrow - go to parent list
- Right Arrow - go to first child element (if none, display text cursor following current bottom-level token)
- Shift+Up/Down Arrow - select a range of tokens/lists
- Printable Char. - insert token/list, display text cursor
- Backspace - undo insertion of previous printable char.
- Delete - delete current token/list
- Enter - display text cursor, insert space after cursor
- Space - display text cursor, insert space before cursor
- Ctrl+Enter – if at end of line, append blank line (otherwise break line into 2 lines)
Code Menu: a popup menu above or below text cursor (and including text cursor) is displayed. The contents of this menu include all valid code elements in the context of the text cursor (ignoring anything after the text cursor).
- Esc - show/hide code menu
- Up Arrow - move selection up
- Down Arrow - move selection down
- Left Arrow - go to parent code menu (if none, exit Code Menu mode)
- Right Arrow - go to lower-level code menu
- Enter - go to lower-level code menu (if none, select current menu item, and display new code menu following token/list just inserted)
- Space - go to lower-level code menu (if none, select current menu item and exit Code Menu mode)
- Printable Char. - incrementally select matching menu item
- Backspace - undo operation of previous printable char.
- Question Mark - exit Code Menu mode
Hello, World!
One Laptop Per Child
Welcome
This blog is meant to document the design process and implementation process of Treenimation. I have been working on the design process of Treenimation (albeit very sporadically) for over 10 years. Recently I have begun to implement Treenimation for Windows, using Python and PyGtk.