Skip to content
Mo Morsi edited this page Mar 24, 2014 · 3 revisions

!SLIDE small smbullets incremental

How?

  • JSON-RPC (transport agnostic)
  • Role Based Access Control (RBAC)
  • WebSockets & WebGL
  • Rich DSL
  • Open Source (AGPLv3)

!SLIDE code smaller

DSL

galaxy 'Zeus' do |g| system 'Athena', 'HR1925', :location => loc(950,-20,-230) do |sys| planet 'Aesop', :movement_strategy => orbit(:e => 0.65, :speed => 0.008, :p => 6000, :direction => random_axis(:orthogonal_to => [0,1,0]))

...

!SLIDE code smaller

DSL

ship = ship("user-ship", :id => gen_uuid, :user_id => 'user', :type => :corvette, :solar_system => system('Athena'), :location => rand_loc(:max => 10000, :min => 5000))

...

!SLIDE code smaller

DSL

ship.move_to rand_loc ship.dock_to station("user-station") miner.mine resource('iron-455') destroyer.attack ship("opponent-ship1")

...

!SLIDE code smaller

DSL

opponent = "enemy-user" mission gen_uuid, :title => "Destroy #{opponent}'s ships", :timeout => mission_timeout, :requirements => [], :assignment_callbacks => [ :schedule_expiration_events, [:subscribe_to, :entity_destroyed, :check_victory_conditions] ], :victory_conditions => [ [:entities_destroyed, {:owned_by => opponent, :of_type => 'Manufactured::Ship'}] ], :victory_callbacks => [ :cleanup_expiration_events, :update_user_stats ], :failure_callbacks => [ :cleanup_expiration_events, :update_user_stats ]

...

Clone this wiki locally