Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411522 Posts in 69377 Topics- by 58431 Members - Latest Member: Bohdan_Zoshchenko

April 28, 2024, 06:41:11 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityJams & EventsCompetitionsOld CompetitionsAssemblee: Part 2Drifting on Stellar Winds (mmo) (01/04)
Pages: [1]
Print
Author Topic: Drifting on Stellar Winds (mmo) (01/04)  (Read 2306 times)
Mocker
Level 0
**



View Profile
« on: December 27, 2009, 12:08:30 PM »

The month is almost over.. so hey I thought I'd join in on the fun.

Drifting on Stellar Winds
Online Space Exploration (Elite meets Eve Online)

Synopsis:
Flash based persistent multiplayer space exploration. The game universe is supposed to be so big as to be effectively infinite. Currently I have the universe divided into a lot of a lot of 'sectors', with each sector spawning a large spiral shaped galaxy . I have not yet implemented the planet generation algorithm, but it will use the old Accrete algorithm to simulate dust accretion and semi-realistic planet formation . Civilizations will be procedurally generated and ai controlled, and will provide missions/trading/game objectives

Directions:
-Make a new pilot. At username page, click on 'use google' to authenticate via your google/gmail account
-fly around with arrow keys/wasd . Minimap at top shows stars and nearby players are red dots. Fly to center of star/planet to view name. Hit 'n' while on top to rename it.
-Toggle sail mode with 't'. Sail mode pushes you around based on 'solar winds' which is really inverted gravity of all nearby planets. ie planets push you away. The floaty particles get pushed too, and spawn based on how intense gravity is.
-logout when done. When you come back, go to 'continue' and either enter login details or click on the google link

Playable Link: http://play.drifting.thegup.com
*** Latest Update (01/04)**
  • Full rewrite of server from php/perl+mysql TO Python/Django+Appengine
  • changed domain to point to new appengine location: play.drifting.thegup.com
  • DB models for stars and planets hold detailed physical data for later simulation
  • Reworked login/creation to hook up to google account and allow more clickability
  • Used Han's glowy particles for new star sprites
  • Generated spiral galaxy (currently too clustered though)



*** Update (01/01)**
http://forums.tigsource.com/index.php?topic=10123.msg314313#msg314313
  • Working Login/Registration
  • Game loads your persistent character with civ based ships and starting position
  • Other players show up with character ship and rotation
  • Navigation changed to rotate+forward thrust. Starting mode changed to 'Thrusters'. Thruster strength and max velocity altered

Update 12/27:
-created this post
-made most of a basic player creation thing with Flixel.



« Last Edit: January 04, 2010, 11:39:16 PM by Mocker » Logged

I code like the wind - the wind crashes many things
J. R. Hill
Level 10
*****

hi


View Profile WWW
« Reply #1 on: December 27, 2009, 01:36:33 PM »

Cool, looking forward to seeing it in action!
Logged

hi
Alehkhs
TIGSource Editor
Level 0
******


...why not?


View Profile WWW
« Reply #2 on: December 28, 2009, 11:38:03 PM »

Yes.

My love of Rogue-likes is surpassed only by my love for Elite-likes...

Give me a space-exploration game, and you'll have my favor.
« Last Edit: December 28, 2009, 11:44:11 PM by Alehkhs » Logged
Mocker
Level 0
**



View Profile
« Reply #3 on: January 01, 2010, 08:57:04 AM »

The registration/login kind of held me up but now I've got those working (not ideal.. but working), so I can get to the actual game



Play at http://ryanguthrie.com/static/projects/driftload/DriftingLoader.html!

You can:
  • -Continue : goes to login form which will log you in then load the game client
  • -New Pilot : Character creation sequence.
    • 'Pilot Name' the name your game character goes by. Seen by other players
    • 'Class'- currently doesn't affect anything, but might be used later in the game as an avatar
    • 'Civilization'- Starting civilization. The content here will be changed. Currently affects starting position and ship model you start with.
    • Username/Pwd - you'll need this to login but does not show up in the game world
    • Email - eventually will be used for password resets. Not required.
  • -Information : not currently implemented

Navigating login/creation screen is combination of mouse and keyboard. on ToDO is to make it more intuitively interactive and clickable.

Playing the Game:
 Currently there isn't much content in the game
 Navigation: Left/Right or A/D to turn. Up/W to thrust. T to toggle Thrusters or Sail
 (Thrusters=regular navigation. Sail='gravity' pushes you around but max speed and thruster strength is increased)
 Planets: fly to the center of a planet for information about it. Hit 'n' and type in a new name to rename it

 Other Players: The world is persistent online so other players are visible with their names over their ships. I currently have the updates somewhat slow so while you (should) move smoothly, they will not. Once I make sure my server won't explode I'll increase the update rate.


Assets Used: a lot right now and I am not organized to give people proper credit yet. The ones I know I'm sticking with are:
     
  • FTM Music - Calm Retaliation and Precarious Precipitation are perfect for the target atmosphere of the game
  • SaveDino - awesome spaceships and I'll be using the glow sprites soon
  • Skaab - crosshairs and soon some of the other stuff. Ships will prob be used for nps
  • Saint11 - characters for avatars
  • Han - particle sprites
  • *have to figure out who the space bg (on loader) is from and the lightning ball .

Technology Used:
    Games are Flash, built as Actionscript classes using Flixel
    Web page is generated with PHP and includes some basic Javascript. I will be putting a lot of character management and multiplayer functions directly in the webpage .
    Server is an ungodly mix of php,perl and MySQL which I want to move to Python/AppEngine cause my server is a cheap vps that dies if you breathe on it hard.

Working on Next:
   Interactive UI to display things you might like to know. Including better text input
   Add mouse handlers to planets and other players
   Add particle emitter for visualizing which way gravity is pushing and how strong
   Form based chat with in game speech bubbles

*Side note: How do I change the Icon for this thread to the assemblee thing?
   
Logged

I code like the wind - the wind crashes many things
Mocker
Level 0
**



View Profile
« Reply #4 on: January 04, 2010, 11:32:12 PM »

Woo finally ready for another update..
(btw it is playable and accounts will be persistent now, even if the universe gets wiped a few times - play)

the past few days I've been working pretty non stop on this. My cheapo vps was flipping out when I had 2 or 3 people playing at the same time (sending request packets about every 300sm). I'm pretty sure the company has me running off slow budget hard drives cause MySQL read/writes went sloww as crap even with small indexed queries, and the table lock just held up the rest of the queries making everything break.

Anyways, I decided to bite it and redo the whole thing to use Google Appengine. It went pretty slow but now I have everything running in a nice organized framework, using up Google's bandwidth (at least the amount they give for free). Considering I haven't used Python for 2 years, have never used Django, and have never used AppEngine, it went better than expected.

One of the biggest issues is this nice little gem: You cannot run inequality comparisons on more than one field when querying an appengine datastore. ie.. "select stars where x < 0 AND y < 0" turns into a giant mess. I initially tried using the built in GeoPT module used to store latitude, longitude.. but a giant bajillion width flat 2d map doesn't work out . Dividing everything into sectors made filtering objects by position more reasonable though.

Yesterday I finished up the account creation / login hooks and updated the flash loader to make it slightly more intuitive. UI's in Flixel are a pain in the ass..

Today I started working on my algorithms for stars and planets. I am using an image of the Universe as a data source by reading a pixel for each sector, and using the red and blue values for age of the sector, and luminosity to determine number and density of main sequence, giant and dying stars.  I found this nifty post for generating spiral galaxies, so I ported it from C++ to Python . Currently it still clusters stars too close to each other. I am trying to get it so in game space the stars are actually all pretty far from each other, even near the center of the spiral. At least far enough where I can generate distinct solar systems for each star.
Once I get the stars spaced a little better, I'll trying to port a python implentation of StarGen, based off ACRETE, to do semi-realistic solar systems. I'll tweak the numbers to make there more habitable worlds however
Also coming soon: Chat and Pilot profiles. Those are fairly straightforward so maybe tomorrow I'll throw them in.

This is what happens when I scale a clustered star system too high:


tl;dr - I did a lot of crap but still have lots of crap to do. try it
Logged

I code like the wind - the wind crashes many things
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic