OverdriveGDX

Discuss and distribute tools and methods for modding. Moderator - Grognak
Vhati
Posts: 792
Joined: Thu Oct 25, 2012 12:01 pm

Re: OverdriveGDX

Postby Vhati » Wed Apr 09, 2014 5:11 am

This project may well have been too big for me.

The code, such as it is, will linger, but I don't expect inspiration to strike for the forseeable future. :(

I was drifting away from FTL for the past few months, until recently.
Now my focus has shifted back to the Profile/SavedGame editor.
ScubaSteve3465
Posts: 135
Joined: Tue Nov 19, 2013 3:04 pm

Re: OverdriveGDX

Postby ScubaSteve3465 » Sun Apr 13, 2014 6:12 am

Sad to hear, could have opened up quite a few possibilities... Oh well. Maybe you can help get Superluminal updated for AE :lol:
RebelKeithy
Posts: 3
Joined: Sat May 17, 2014 3:41 am

Re: OverdriveGDX

Postby RebelKeithy » Mon May 19, 2014 3:22 pm

I just started working on something similar to this. I was wondering what different strategies people would have to come up with if you could have pvp in FTL, fights would certainly go differently. I looked around to see if the was a multiplayer mod and found this post in Multispace, So I started working on a game "heavily inspired" by FTL in Java with multiplayer and moddability in mind (so far what I've been making is a clone of FTL, but things will change as more stuff gets added, simply adding multiplayer will force things to change quite a bit).

I just finished my 4th year in college (going for a dual major in Computer Science and Math) so I do have an idea of what I'm doing. I've also spent the past couple years modding minecraft (some mods I've made/worked on are: Metallurgy, Atum, Aquaculture, Agriculture and Creeper Gauntlet), so I've been using my experience with Forge to make this as moddable as possible (engines and augments are coded using the same system mods would use).

I started working on this about 10 days ago, and as of now I have 4300 lines of code, Ships and Weapons are read in from json files I have most laser, missile, and ion weapons in (still need to add fire and breach chances), ships have working reactors, weapons, shields, helm, oxygen, engines, medbay, and jump drive; crew can move around the ship and mann stations (repairing systems will be added soon); I have a "api" for creating augments, the shield charge booster and automated re-loader are both in and working (and each one only took a few lines of code to add after I got the augment api working); There are sectors, stars, and events, though they aren't randomly generated yet and I have not rigorously tested them. Today I'm working on crew pathing and door control.

The biggest thing missing is graphics, the whole system so far has been text based. It's not that I can't do graphics programming, I've made several game prototypes with graphics, but I find coding graphics and the game engine at the same time distracting, and I wanted to focus and getting functionality into the engine first.

I'm now at the point I would like people to work with, I figured this thread would be a good place to start. I read through half of the original Overdrive thread to help get an idea of what people wanted out of something like this. I would put the code on github if I could think of a name for it other than "FTL Clone". For now if anyone wants to look at the source code I put it up on dropbox, Link. There might be problems as I'm in the middle of rewriting crew pathfinding, but everything seems to be working right now. If anyone want's to help let me know.
Vhati
Posts: 792
Joined: Thu Oct 25, 2012 12:01 pm

Re: OverdriveGDX

Postby Vhati » Mon May 19, 2014 8:25 pm

RebelKeithy wrote:I just started working on something similar to this.

An excellent intro, but you need to start a thread of your own for it.

RebelKeithy wrote:The biggest thing missing is graphics, the whole system so far has been text based. [...] I find coding graphics and the game engine at the same time distracting, and I wanted to focus and getting functionality into the engine first.

You may find this post from the original Overdrive thread helpful.

And this one when I ran into the issue of coordinating distributed objects. (Assigning everything int IDs, etc)

Setting up your event queue early on will be essential as well, both for distributing tick events and for indirectly telling all players involved to call their respective APIs to construct things. (Synchronously reserving a new ID from the server, then enqueuing an event to have each player create an object with that id, modifying that object in a following event by referencing that ID, etc)

One little nuisance when serializing over KryoNet: you have to register all the classes you will ever transmit up front when you connect.
  • Register fundamental classes first, like clientversion announcement messages, so the server can gracefully kick, without protocol confusion from seeing an unexpected Class#N in the pipe.
  • It also means if mods want to pass new classes at a later stage, you'll need to send a standard message object to ferry a class name and constructor args, then instantiate the extra class yourself (or args for a central registry/factory class to do that).
  • And I could never get custom BeanShell objects (implementing/extending a base class) to serialize correctly. They stubbornly kept a reference to the BeanShell interpreter itself (for globals and 'this'). And it didn't really subclass, it made a weird reflection-based Proxy class with methods that superficially mimic the original enough to fool APIs. BeanShell could construct and send classes entirely defined in regular Java though. :|

Now I'm curious about what Minecraft did for synchronization...

RebelKeithy wrote:I'm now at the point I would like people to work with

Sadly, these tend to be solo projects.
Partly because the founder is most familiar with the libs and design, and partly because every dev has at least one project of their own. :P

RebelKeithy wrote:I would put the code on github if I could think of a name for it other than "FTL Clone".

Heh heh. The toughest part of any project. ;)


"Allignments.java" should be "Alignments.java", btw.
Probably even "Affiliation.java". (singular)
RebelKeithy
Posts: 3
Joined: Sat May 17, 2014 3:41 am

Re: OverdriveGDX

Postby RebelKeithy » Tue May 20, 2014 12:11 am

Thanks for the advice. Attempting something this big feels like I'm just putting pieces of what I know and learn the rest whenever I realize I've done something wrong.

Vhati wrote:An excellent intro, but you need to start a thread of your own for it.


I considered making a new thread, but I'm not sure where it should go. It's not a mod, but I guess this isn't a mod either.

Vhati wrote:Sadly, these tend to be solo projects.
Partly because the founder is most familiar with the libs and design, and partly because every dev has at least one project of their own. :P


I suppose that's true. Though I would like people who could do things other than coding, (come up with events, weapons, etc) and that I could bounce ideas off of (like, what happens when another player enters a star that you're in the middle of an event with). Also I have never worked with scripts, I attempted a bit a starbound modding, which uses lua, but didn't do much. So someone it would be helpful even just to get input from someone who has.
User avatar
kartoFlane
Posts: 1488
Joined: Mon Jan 14, 2013 10:20 pm

Re: OverdriveGDX

Postby kartoFlane » Mon Jun 16, 2014 11:33 am

Vhati wrote:And I could never get custom BeanShell objects (implementing/extending a base class) to serialize correctly. They stubbornly kept a reference to the BeanShell interpreter itself (for globals and 'this'). And it didn't really subclass, it made a weird reflection-based Proxy class with methods that superficially mimic the original enough to fool APIs. BeanShell could construct and send classes entirely defined in regular Java though. :|

Looks like there have been some positive developments on the Scala interpreter front -- perhaps could be used in place of BeanShell now?

From http://scala-lang.org/news/2.11.1 :
The interpreter can now be embedded as a JSR-223 Scripting Engine SI-874. (Thanks, Raphael Jolly!)
Superluminal2 - a ship editor for FTL
gamer52599
Posts: 30
Joined: Fri Apr 11, 2014 10:04 pm

Re: OverdriveGDX

Postby gamer52599 » Tue Jul 01, 2014 2:38 am

RebelKeithy wrote:I just started working on something similar to this. I was wondering what different strategies people would have to come up with if you could have pvp in FTL, fights would certainly go differently. I looked around to see if the was a multiplayer mod and found this post in Multispace, So I started working on a game "heavily inspired" by FTL in Java with multiplayer and moddability in mind (so far what I've been making is a clone of FTL, but things will change as more stuff gets added, simply adding multiplayer will force things to change quite a bit).

I just finished my 4th year in college (going for a dual major in Computer Science and Math) so I do have an idea of what I'm doing. I've also spent the past couple years modding minecraft (some mods I've made/worked on are: Metallurgy, Atum, Aquaculture, Agriculture and Creeper Gauntlet), so I've been using my experience with Forge to make this as moddable as possible (engines and augments are coded using the same system mods would use).

I started working on this about 10 days ago, and as of now I have 4300 lines of code, Ships and Weapons are read in from json files I have most laser, missile, and ion weapons in (still need to add fire and breach chances), ships have working reactors, weapons, shields, helm, oxygen, engines, medbay, and jump drive; crew can move around the ship and mann stations (repairing systems will be added soon); I have a "api" for creating augments, the shield charge booster and automated re-loader are both in and working (and each one only took a few lines of code to add after I got the augment api working); There are sectors, stars, and events, though they aren't randomly generated yet and I have not rigorously tested them. Today I'm working on crew pathing and door control.

The biggest thing missing is graphics, the whole system so far has been text based. It's not that I can't do graphics programming, I've made several game prototypes with graphics, but I find coding graphics and the game engine at the same time distracting, and I wanted to focus and getting functionality into the engine first.

I'm now at the point I would like people to work with, I figured this thread would be a good place to start. I read through half of the original Overdrive thread to help get an idea of what people wanted out of something like this. I would put the code on github if I could think of a name for it other than "FTL Clone". For now if anyone wants to look at the source code I put it up on dropbox, Link. There might be problems as I'm in the middle of rewriting crew pathfinding, but everything seems to be working right now. If anyone want's to help let me know.

if you need a name just watch spaceballs

i'll make it for you ftls: faster then ludicrous speed
Tetron the Engi
Posts: 4
Joined: Wed Jul 09, 2014 11:36 am

Re: OverdriveGDX

Postby Tetron the Engi » Wed Jul 16, 2014 3:33 pm

Image
OP PROJECT OBJECTIVE: BETTER FTL EXPERIENCE. SUGGESTION ONCE THIS IS ALL DONE: MULTIPLAYER? REGARDLESS OF RESPONSE: SPREADING WORD OF THIS PROJECT ACROSS STEAM DISCUSSIONS AND FRIENDS. GOOD LUCK, PILOT.
SUͪͥB͐M̈̆I̔̓T́ ͮYͮͬ̐OỦ͐̃RSͣË́ͦL̅̅Fͯ̿ T̈́Ȍ T̂ͤȞE̓͆ ̓́͑̓̈͗͒Eͪ͗NͮͪGI̿ ͪM̒̈̏̍ͬA͊STͪEͥ́̀͑͂͌Rͯ̈́ RAC͆̉Ėͣ
Beerinabox
Posts: 8
Joined: Thu Aug 21, 2014 7:31 pm

Re: OverdriveGDX

Postby Beerinabox » Sat Aug 23, 2014 3:49 am

Is any of this still at all possible?
dalolorn
Posts: 532
Joined: Sun Sep 23, 2012 8:06 am

Re: OverdriveGDX

Postby dalolorn » Sat Aug 23, 2014 10:29 am

Beerinabox wrote:Is any of this still at all possible?


It was never impossible. It just got swept under the rug by real life and stuff. :P

The code's still on github, I expect - you'd just need to figure out where Vhati left it and pick up the project from there.