[MOD][WIP] FTL: Overdrive

Discuss and distribute tools and methods for modding. Moderator - Grognak
DiEvAl
Posts: 94
Joined: Tue Sep 25, 2012 5:46 pm

Re: [MOD][WIP] FTL: Overdrive

Postby DiEvAl » Wed Jun 05, 2013 6:54 pm

I took a small break from doors, windows, and all other holes that can let crew, fluids, or some mod-defined stuff to pass through:
Image
"Some people want to watch ships burn"
I needed to put some texture on tiles to see that they are being drawn correctly. Fire seemed like the most fun texture. Also it shows that anything can be animated.



Regarding door tunnels. Modder can just draw something on floor.png between those doors to show that they are connected.



EDIT: I think I just wrote a line with more angle brackets than ever before. It looks like this:

Code: Select all

private static Map<Class<? extends Foo>, Class<? extends Bar<? extends Foo>>> map = new HashMap<Class<? extends Foo>, Class<? extends Bar<? extends Foo>>>;
rhaining
Posts: 85
Joined: Fri Jan 18, 2013 12:13 am

Re: [MOD][WIP] FTL: Overdrive

Postby rhaining » Wed Jun 05, 2013 8:48 pm

I'm also eagerly awaiting this project, first time making a suggestion. Sorry, this topic is 31 pages, I can't tell if this suggestion has been made yet or not.

I'd love it if Overdrive had tighter control of random generation, such that everything was either generated up front when the game was first started, or, everything was derived in a consistent way from the initial seed value. The point would be to allow one person to generate a game then share that file so that many people could play the exact same map and compare notes and strategies. Or better yet, allow players to see the seed value for the game they are playing, and allow players to enter a specific seed value when starting a game if they wanted to play a specific map.

This opens up a lot of really fun community interactions.

#1: Players could share seed values of favorite maps, and experience the same exact maps/events.

#2: It could enable mini-competitions to see who could do the best on a given map, or just to compare strategies / play styles while holding the map constant. E.g., seed value is 12398712, everyone has 1 day to post their highest score possible, on their honor that they are only playing the game exactly once. Or, the competition could be open to letting everyone play the map as often as they wanted before submitting entries to the challenge.

#3: A player could hack a starting save file to make a specific constraint or challenge and share that save file with others. E.g., play ship X but remove the shield system, or change the crew type, etc. etc..

It doesn't need to be perfect to be awesome. E.g., what a specific ship does in a specific battle can be random, so long as that ship and that event are always at a specific location.

More info about how the real FTL game handles random generation here:
http://www.ftlgame.com/forum/viewtopic.php?f=12&t=15648
DiEvAl
Posts: 94
Joined: Tue Sep 25, 2012 5:46 pm

Re: [MOD][WIP] FTL: Overdrive

Postby DiEvAl » Wed Jun 05, 2013 9:35 pm

rhaining wrote:I'm also eagerly awaiting this project, first time making a suggestion. Sorry, this topic is 31 pages, I can't tell if this suggestion has been made yet or not.

I'd love it if Overdrive had tighter control of random generation, such that everything was either generated up front when the game was first started, or, everything was derived in a consistent way from the initial seed value. The point would be to allow one person to generate a game then share that file so that many people could play the exact same map and compare notes and strategies. Or better yet, allow players to see the seed value for the game they are playing, and allow players to enter a specific seed value when starting a game if they wanted to play a specific map.

This opens up a lot of really fun community interactions.

#1: Players could share seed values of favorite maps, and experience the same exact maps/events.

#2: It could enable mini-competitions to see who could do the best on a given map, or just to compare strategies / play styles while holding the map constant. E.g., seed value is 12398712, everyone has 1 day to post their highest score possible, on their honor that they are only playing the game exactly once. Or, the competition could be open to letting everyone play the map as often as they wanted before submitting entries to the challenge.

#3: A player could hack a starting save file to make a specific constraint or challenge and share that save file with others. E.g., play ship X but remove the shield system, or change the crew type, etc. etc..

It doesn't need to be perfect to be awesome. E.g., what a specific ship does in a specific battle can be random, so long as that ship and that event are always at a specific location.

More info about how the real FTL game handles random generation here:
http://www.ftlgame.com/forum/viewtopic.php?f=12&t=15648


Good idea. I've added it to the list. But I think it'll be difficult to enforce it on custom map generators.
Vhati
Posts: 792
Joined: Thu Oct 25, 2012 12:01 pm

Re: [MOD][WIP] FTL: Overdrive

Postby Vhati » Wed Jun 05, 2013 10:16 pm

DiEvAl, have you set up a repo yet?

I'm curious to see what you've written, as a TWL demo at the very least.
I've only tinkered with that lib once.

But I could also start porting game state classes from the editor...
DiEvAl
Posts: 94
Joined: Tue Sep 25, 2012 5:46 pm

Re: [MOD][WIP] FTL: Overdrive

Postby DiEvAl » Wed Jun 05, 2013 10:21 pm

Vhati wrote:DiEvAl, have you set up a repo yet?

I'm curious to see what you've written, as a TWL demo at the very least.
I've only tinkered with that lib once.

But I could also start porting game state classes from the editor...

https://github.com/DiEvAl/FTL-Overdrive-1


In other news: this door opens and closes when I click on it! With animation!
EDIT: Oops, those are only doors in vertical walls. Doors in horizontal walls are a bit... weird:
Image


EDIT2: Found the problem. It was just a quirk in TWL:
A select element will draw only one of it's children based on their conditions. The conditions of the child elements are evaluated in the order in which they are specified in the theme XML file. The first element with a matching condition is selected and rendered. The size of the first element will be used to determine the size of this select element. The last child element is the only one which can omit it's condition, t will act as a default (or as the else in a if/elseif/elsif/else chain)

It doesn't make much sense, but ok.

EDIT3: Everything works, committing soon.
Vhati
Posts: 792
Joined: Thu Oct 25, 2012 12:01 pm

Re: [MOD][WIP] FTL: Overdrive

Postby Vhati » Thu Jun 06, 2013 9:04 am

I've forked and made automatic dat finding cross-platform.
TODO: Prompting the user with a minimally-themed TWL dialog (no dat resources available, obviously) and storing the chosen path.

Since TWL uses URLs for everything, I'm working on a custom protocol handler so themes' xml can reference images within dats, without the need for extraction.
DiEvAl
Posts: 94
Joined: Tue Sep 25, 2012 5:46 pm

Re: [MOD][WIP] FTL: Overdrive

Postby DiEvAl » Thu Jun 06, 2013 9:41 am

Vhati wrote:Since TWL uses URLs for everything, I'm working on a custom protocol handler so themes' xml can reference images within dats, without the need for extraction.

Cool. I didn't know that was possible.



Regarding door tunnels again. Even if modder doesn't show it in any way, player can still tell which doors are connected by hovering over one of them:
Image
(in-game screenshot, not photoshop)
vacantmind
Posts: 10
Joined: Sun Oct 28, 2012 1:31 am

Re: [MOD][WIP] FTL: Overdrive

Postby vacantmind » Thu Jun 06, 2013 4:49 pm

I am very excited to see this project progressing, keep up the good work guys.
Vhati
Posts: 792
Joined: Thu Oct 25, 2012 12:01 pm

Re: [MOD][WIP] FTL: Overdrive

Postby Vhati » Fri Jun 07, 2013 5:51 am

Okay. Got my fork of the main menu demo running with the ftldat: protocol. (Pull Request)

Code: Select all

../resource.dat/img/main_menus/main_base2.png
becomes
ftldat://resource.dat/img/main_menus/main_base2.png

You an also use this in source code...
InputStream is = new java.net.URL("...").openStream();

The Theme Editor needs to recognize it too. So I wrote a bootstrapper class to find/parse the dats, then invoke the editor's main() via reflection.
John Luke Pack Hard
Posts: 112
Joined: Thu Nov 15, 2012 8:45 am

Re: [MOD][WIP] FTL: Overdrive

Postby John Luke Pack Hard » Fri Jun 07, 2013 2:51 pm

DiEvAl wrote:Regarding door tunnels again. Even if modder doesn't show it in any way, player can still tell which doors are connected by hovering over one of them:


That's complexity without clarity, which is a bad game design design principle. I'll see if I can get something up and running myself.

EDIT: I manually rigged a merge from Div's branch. Let me get this started and figure out how deep this rabbit hole goes....

Who is online

Users browsing this forum: No registered users and 29 guests