10 октября 2005

Budget consuming

So, I defined some expectations on budget consuming tasks of the project.
By the word 'budget' - I understand not only money, but time, human resources, efforts, etc.

So, the tasks are:

  • user interface - 10 %
    - programming classes - 5 %, including:
    - main screen - 0.3%
    - planet screen - 0.1%
    - production screen - 0.1%
    - ship design screen - 0.1%
    - colonies screen - 0.1%
    - planets screen - 0.1%
    - fleets screen - 0.1%
    - sitrep - 0.1 %
    - leaders screen - 0.1%
    - contacts screen -0.1%
    - diplomacy screen - 0.1%
    - info screen (ranking, etc.) - 0.1%
    - data-get module - 0.3%
    - extra to go - 3.3% (for completing extra tasks, not yet defined)
    - design graphics - 3%, including:
    - screen graphics - 0.3%
    - star textures - 0.1%
    - planet textures - 0.1%
    - planet buildings models and textures - 0.2%
    - starship modules models and textures - 0.3%
    - extra to go - 2% (for completing extra tasks, not yet defined)
    - design audio - 1%, including:
    - music files - 0.7%
    - in-game interface sounds - 0.1%
    - extra to go - 0.2% (for completing extra tasks, not yet defined)
  • server-side logic - 10 %
  • bot-programming - 6 %
  • database - 5 %
  • extra to go - 18 % (for completing extra tasks, not yet defined)

You may ask, why I defined so much extra spendings. The answer is that it is a real life, you'll never know what extra spendings will be.

30 августа 2005

Communication training

This is the best site I ever seen about the communication.

SQL to XML

So, I tried to investigate how one can get XML from relational data on web/data server side. Here are ways:
  • you can use Oracle, but you should write constructions like this:

SELECT XMLELEMENT( "Star", XMLFOREST(s.name, s.x, s.y, s.z, s.type), XMLAGG(XMLELEMENT("planet",XMLFOREST(p.id, p.size, p.type))))

AS result

FROM (star s INNER JOIN (planet_owner po INNER JOIN planet p ON po.planet_id = p.id) ON s.name = p.star) INNER JOIN star_explored se ON s.name = se.name

WHERE se.empire="empire"

GROUP BY s.name

  • you can use MS SQL and you should write constructions like this:

SELECT s.name, s.x, s.y, s.z, s.type, p.id, p.size, p.type

FROM star s, planet p, star_explored se

WHERE s.name = p.star

AND s.name = se.name

AND se.empire="empire"

FOR XML AUTO

So, if your page code can render data in XML format, which it can get by HTTP, as Backbase can - that examples suits you pretty well. But... the problem is that these solutions are proprietary. So ...

  • you CAN use MySQL, but here problems start:

MySQL itself has no native support for XML - so all you can do - use scripts/programs to transform SQL query to several queries, then get results, parse it and write XML, send it to browser. It seems that problem of "SQL-XML transformation" is quite repeatable and there should be several solutions ou there in Internet - NO, there is no suitable solutions. There is some libs that seems to fit the problem, but there function differs a bit from our task. So, our choise is:

Perl module - DBIx-DBStag-0.07 - as you see an early, very early alpha.

26 августа 2005

MoA Specs

So, here we go...
Technology:

  • AJAX
  • Perl
  • JScript
  • XML
  • DOM
  • HTML
  • HTTP(S)

Applications:

  • Apache
  • Perl
  • Backbase
  • Oracle / MySQL (when MySQL will support Views good enough)

Environment:

  • Multy-user online strategy game
  • One universe for all
  • No OS-Dependancy - using browser (any supporting JScript & DOM)
  • Open-Source product - so anyone can take part in creating the game

If it's still not empressing you, make your wishes - I'll consider them all.

ER chart

Now draft of ER-chart is ready. For now I can't publish it on the WEB, since I haven't chosen free reliable hosting yet. ER-chart contains all main entities, which supposed to be in the system.

MoA Project

Today I started MoA project. Flankly saying the project lasts about year or so, but gaps in it's movement are soooooo huge and their q-ty is huge. So I can say it's the beginning.