Zania day 19: AI 5

Decisions

Was doing adminstrative work so it was too late to start programming. Instead, I took the time to deal with the ideal centric approach and fully fleshed out a framework that I will follow in the future developments. Something I can look back and reference if I ever run into design decisions.

Flash platform

  • Advantages
    • All platform.
  • Disadvantage
    • slow with numerous sprites (soon to be solved by browser based GPU acceleration)
    • hard to lock players into paying (figure out income model based on ads? How much do I need to feed myself?)

What others aren’t doing

  • Realistic space fighting
    • Disadvantages:  hard to control leading to user frustration (should be mitigated by control aid… make it researchable through grinding? Or paid feature?)
  • Hardcore skills required. Too many easy games out there
    • Genetic evolution AI should provide the harshness. Although new users should be put up against generation 1 ai.
    • Focus on having lesser enemy but with higher quality per enemy to cut down on hardware usage. (as opposed to increasing difficulty by swarming players)
  • Commitment to a dedicate story based on the Zania universe and continue to develop it.
    • Dedication to the old RPG style story telling.
    • Allow player to change outcome? No
    • Player will be one of the main characters
    • How do multiplayer element interact with the story telling single player world?

Analysis of myself as a game developper

  • Strengths
    • Lots of ideas
    • Open minded
    • Efficient use of hardware resources
    • Do first and think later attitude (Recent development, not sure whether it’ll be a strength)
  • Weaknesses
    • Impatient
    • Math
    • Graphics art
    • Music

Multiplayer element

  • Piracy is unavoidable. So a link to multiplayer with advantages is a must.
  • What works now is to allow people to buy, but don’t chase after piracy (make it easy to pirate)
  • The physics simulation is non deterministic due to the use of floating points, therefore having local copies of the game and syncing then is impossible
    • Global server needed.
    • Just in time Peer to peer connection for those who are in the same galaxy?
  • Flash media server required to sync, writing own code will take more time. (Need more fund to hire programmer if I choose this way)
    • Find out flash media server cost on ec2 cloud.
    • Find out revenue stream needed for this model to be self sustainable.
  • What can player do in multiplayer?
    • Sell wares

Completed work:

Incomplete work:

Change restitution for the bounce effect.

Null object reference at published work. Not seen in debug mode. (Do this first)

AI GetPosition call results in null reference. Body has not finished creation while the actor class has completed. Sigh… async calls.

Need to bring shooting action to the SolarSystem spawner and create a new constructor for bullets.

  • Right now it’s the ship that spawns the bullets.
    • Do I want ships to spawn the bullets?
  • Bullets does not need interaction with the rest of the system besides the physics
    • Physics already linked.
  • OnCollision event? Bullet upate? Or the solarSystem’s job?
  • Need to add timer to bullet lifetime otherwise the world will be filled with bullets that takes up computation time
    • Add a new constructor to actor class to create bullets
      • Ship need to get the orientation and speed vector of the firing body before calling bullet constructor
    • Destroy the bullet a few frames after collision
      • add collision variable to bullet constructor

Inventory display at Player.as Line 93 is done through debug GUI right now, so compilation is not possible without DEBUG::MODE on.

Need to change actor creation to be based on sol.xml loading. (See Sol class)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>