FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Help offer and small linux bug
Goto page 1, 2  Next
 
Post new topic   Reply to topic     Forum Index -> FreeUniverse
View previous topic :: View next topic  
Author Message
ChristianK



Joined: 26 Sep 2006
Posts: 159
Location: Berlin, Germany

PostPosted: Wed Sep 27, 2006 12:19 am    Post subject: Help offer and small linux bug Reply with quote

Greetings!

I'm a fan of the classical 2d space action and adventure games and have pretty much always had a 'pet' programming project for one of those. However, the lack of artists and fellow enthusiasts has led me to look for projects to contribute to instead.

Since I also really like the D programming language, I'd like to offer my help with the development of FreeUniverse.

Do you have a todo list of things that need to be done, or a list of features you'd like to see in the final version, so I can check out where you're heading?

By the way, I also really like what you've done with Arc, clayasaurus.

While I haven't tested it extensively, FreeUniverse seems to work well under linux. However, you need to rename the font file from "Coprgtb.TTF" to "coprgtb.ttf", since it isn't found otherwise. (I have also filed a ticket)

For now, I'll just be looking through the code to get a feeling for the inner workings and will get back to you later.
Back to top
View user's profile Send private message
clayasaurus



Joined: 21 May 2004
Posts: 857

PostPosted: Wed Sep 27, 2006 5:53 am    Post subject: Reply with quote

Hi, don't confuse me with the main developer, but I know that phr00t keeps something of a todo list at the top of this file http://dsource.org/projects/freeuniverse/browser/trunk/freeuniverse/FreeUniverse.d .
Back to top
View user's profile Send private message AIM Address
Phr00t



Joined: 03 Mar 2006
Posts: 203

PostPosted: Wed Sep 27, 2006 8:47 am    Post subject: Reply with quote

Yay help! Very Happy

Yeah, I am the owner / coder of FreeUniverse -- clay just helps a ton with his ArcGames library Smile

Welp, things at the bottom of FreeUniverse.d are the closest thing I have to a "todo" list, as clay said.

I'm currently working on Space Storms, so if you want to help, you probably want to work on something else so we don't "bump heads". What is important that needs to be done is job / price balancing. The prices for things, rewards for jobs, job parameters are kinda whack... However, feel free to think up new ideas you'd love to see in this game and post them here Smile I'd love to get a fresh mind into the FreeUniverse universe Wink

Let me know if you have any questions on the code! Thank you, and I look forward to working with you Smile

[ edit ] Oh, obvious things that need work on -- converting to Arc v.2 (I believe clay is going to help with this) and sound support. I need to get you both some SVN access? How do I do that?

Quote:
(I have also filed a ticket)


Ahh! I have been written up! Shocked
Back to top
View user's profile Send private message
clayasaurus



Joined: 21 May 2004
Posts: 857

PostPosted: Wed Sep 27, 2006 9:38 am    Post subject: Reply with quote

Just ask Brad about SVN access, I think that is the only way.
Back to top
View user's profile Send private message AIM Address
Phr00t



Joined: 03 Mar 2006
Posts: 203

PostPosted: Wed Sep 27, 2006 12:44 pm    Post subject: Reply with quote

OK, I have asked Brad to add both Clayasaurus and Sequoh to the SVN access list! Smile
Back to top
View user's profile Send private message
ChristianK



Joined: 26 Sep 2006
Posts: 159
Location: Berlin, Germany

PostPosted: Wed Sep 27, 2006 1:59 pm    Post subject: Reply with quote

Nice to meet you two.

I won't do any real work before I've taken a more in-depth look at the code, so no need hurry.

Conceptually, I'd like to know about your 'vision' for FreeUniverse (seriously, it needs a good acronym), mostly regarding gameplay.

That'd include (but not be limited to) questions such as:
- Currently there's direct twitchy arcade movement, is the same intended for combat?
- Is it all player skill or is there a CRPG-esque character skill progression?
- Currently it is single-player. Story planned? Otherwise: What are the player's goals? (or: what makes freeform-play interesting?)
- Will, as usual, combat be the main focus, with trading and other activities being secondary - or do you have other, unconventional plans? (like a whacky game mechanic for exploration or somesuch)
- I know this is hard to convey, but in what way will the primary game mechanic (combat or otherwise) be fun?

As you can see from some of the questions, I haven't played FreeUniverse much yet and apologize if I'm asking redundant questions. Also, please don't consider these questions as a 'I'd prefer to do it that way', mostly I'd just like to know what you're planning. However, I'd be in favor of settling on a feature set / core game mechanic and then doing it right.
Back to top
View user's profile Send private message
Phr00t



Joined: 03 Mar 2006
Posts: 203

PostPosted: Wed Sep 27, 2006 2:25 pm    Post subject: Reply with quote

Quote:
Conceptually, I'd like to know about your 'vision' for FreeUniverse (seriously, it needs a good acronym), mostly regarding gameplay.


There isn't much in-stone "vision" for FreeUniverse -- right now, it is more like a space-simulation engine more than a complete game. We need to add more modules to make it feel more complete

Quote:
Currently there's direct twitchy arcade movement, is the same intended for combat?


I'm not sure I know what you mean by "direct twitchy arcade movement"?

Quote:
Is it all player skill or is there a CRPG-esque character skill progression?


I want to add some RPG character skill, I'm not sure where to fit it. In my previous 3059 game, you gained "skill points" for performing that specific skill -- not sure how to apply it in FreeUniverse. I was thinking by performing certain jobs, you will gain "popularity" for that field of work, and you will be offered bigger / more rewarding jobs in that category.

Quote:
Currently it is single-player. Story planned? Otherwise: What are the player's goals? (or: what makes freeform-play interesting?)


In my previous 3059 game, there wasn't much of a story. The game was made interesting by having so many things to do. It is like the Sims games -- no story, but tons of fun stuff to do. I want this same feeling for FreeUniverse. Sure, we can add some story, but I don't want it to detract from the "openness" of the game.

Yes, something needs to be added to make freeform-play more interesting. In 3059, I had different levels of "bosses" available. If you kill the middle bosses, they dropped a portal-key which brought the player to a special place to fight a super-boss. This super boss dropped some loot that helped in the freeform game (e.g. made the location friendly to you instantly).

Have to do some more brainstorming on this one...

Quote:
Will, as usual, combat be the main focus, with trading and other activities being secondary - or do you have other, unconventional plans? (like a whacky game mechanic for exploration or somesuch)


I would like to balance out the fighting with the other activities (trading / mining / exploration / stealing etc.). Anything unconvential thing that is fun and "fits" into the game would be neat if you have ideas!

Quote:
I know this is hard to convey, but in what way will the primary game mechanic (combat or otherwise) be fun?


You should look at my 3059 game... unfortunately it looks like the server where you download it is down... but just reading this webpage could help:

http://www.allegro.cc/depot/3059/

I want to make FreeUniverse a more involved, "in space" and better looking 3059 game. 3059 was rather successful, I still get e-mails by people enjoying the game.

Quote:
However, I'd be in favor of settling on a feature set / core game mechanic and then doing it right.


Yeah, again, nothing is in stone. I'm sure the way "you want to do it" will be a part of how it is done, and thats a good thing.

Thanks!
- Jeremy
Back to top
View user's profile Send private message
ChristianK



Joined: 26 Sep 2006
Posts: 159
Location: Berlin, Germany

PostPosted: Thu Sep 28, 2006 12:16 am    Post subject: Reply with quote

Quote:
right now, it is more like a space-simulation engine more than a complete game.

Quote:
The game was made interesting by having so many things to do. (...) Sure, we can add some story, but I don't want it to detract from the "openness" of the game.


I have to say I didn't expect you to plan a universe-simulation game (even though you say so in the very first line on the projects main page, doh!). That's quite ambitious! I'm looking forward to it.

Personally, I always seem to lack direction and give up in most of these games. (Freelancer, the X games...)

Quote:
I'm not sure I know what you mean by "direct twitchy arcade movement"?


direct twitchy: You control the ship directly with the arrow keys. You do not click somewhere on the screen to move there, move into the direction of the cursor or control the movement in some other indirect way.
arcade: The ship stops when you don't hit the forward button. (contrary to the 'realistic' inertia based approach in some games)

By asking if combat will be the same, I'm wondering if you'll have to aim and fire manually. The other option would be to select the enemy and hit 'fire weapons' somewhere.

Quote:
I would like to balance out the fighting with the other activities (trading / mining / exploration / stealing etc.). Anything unconvential thing that is fun and "fits" into the game would be neat if you have ideas!


That makes sense for a worldly game.
As for ideas: I'm currently thinking that in these kinds of games, people never manage to make the universe truly dynamic. It's always static: nation borders stay the same, pirate-infested areas always stay that way though you've killed thousands of them, etc.. - That's an area I'd be interested in developing.

Quote:
You should look at my 3059 game


Can you upload it somewhere?
Back to top
View user's profile Send private message
Phr00t



Joined: 03 Mar 2006
Posts: 203

PostPosted: Thu Sep 28, 2006 7:23 am    Post subject: Reply with quote

You mentioned FreeLancer -- some things from FreeLancer are in my game, like the "transpath" system. FreeLancer did have a main storyline, however...

Quote:
You control the ship directly with the arrow keys. You do not click somewhere on the screen to move there, move into the direction of the cursor or control the movement in some other indirect way.


There isn't much area covered by the screen, so by using the mouse, you couldn't use it for movement very extensively... and, there are many forms of thrust (regular engines, afterburners, cruisers etc.), so one "right click" wouldn't be very sufficient...

Quote:
arcade: The ship stops when you don't hit the forward button. (contrary to the 'realistic' inertia based approach in some games)


I had to add "space friction", becuase it would be too difficult to manage 'slowing down' every time you accelerated. In addition, it would make things like "cruisers" worthless becuase you could just use some really cheap engines constantly to pick up the speed of cruisers...

[ edit ] ahhh, OK, like SubSpace/Continuum does it -- I guess I want the player to have to use "energy" to be in motion... not just use a little energy to get moving, and then drift

Quote:
By asking if combat will be the same, I'm wondering if you'll have to aim and fire manually. The other option would be to select the enemy and hit 'fire weapons' somewhere.


That is how my 3059 game worked, and that is definetly something I wanted to improve on. I want the fights to be more involved -- you get to aim, dodge etc.

Quote:
I'm currently thinking that in these kinds of games, people never manage to make the universe truly dynamic. It's always static: nation borders stay the same, pirate-infested areas always stay that way though you've killed thousands of them, etc.. - That's an area I'd be interested in developing.


Yes, I want the areas to be dynamic too. However, in my game, ships are spawned only by legitimate sources (stations, planets etc.) -- in other words, ships don't appear from thin air like in FreeLancer. So, if you kill many ships in an area, they have to come from a nearby source to "fill" an area back up. I think this automatically solves the problem, and it is more realistic.

And yes, things like economy is already dynamic.

Faction borders will have to adjust very slowly. I want to have a rather simple faction system... in things like FreeLancer, there are just too many factions -- I don't see what the point is, I would just ignore the factions. In FreeUniverse, there is a scale from 0 to 100 -- 0 is completely Alliance, and 100 is completely rogue. As you play, you define what side you fall into, and it can change...

Quote:
Can you upload it somewhere?


I am at work right now... I hope it is on my desktop computer... my laptop hardrive crashed and now the server is down :-\
Back to top
View user's profile Send private message
Phr00t



Joined: 03 Mar 2006
Posts: 203

PostPosted: Thu Sep 28, 2006 10:44 am    Post subject: Reply with quote

OK, I have been told that both of you (Sequoh and Clay) have access to the SVN. You can update the code / graphics whenever using the same login/pass as this forum Smile
Back to top
View user's profile Send private message
ChristianK



Joined: 26 Sep 2006
Posts: 159
Location: Berlin, Germany

PostPosted: Thu Sep 28, 2006 2:57 pm    Post subject: Reply with quote

Quote:
There isn't much area covered by the screen, so by using the mouse, you couldn't use it for movement very extensively...


Well, you could make the ship move into the direction of the mouse cursor when you press a button or something. (think Diablo)

However, I prefer direct control for fighter battles myself. I expect it doesn't work too well with large or very slow ships though.

Quote:
I want the fights to be more involved -- you get to aim, dodge etc.


Great, I can envision how fights will look now. Thanks for all the answers!

Quote:
Yes, I want the areas to be dynamic too. However, in my game, ships are spawned only by legitimate sources


I expect ships are not just flying around for show then? How can players interact with these NPCs? (pirating them seems to be the only thing I can come up with?)


I've started to get into the code now. There seem to be a real lot of assorted global constants and variables in init.d...

What's the rationale for using a linked list for the space objects? (that also goes to clayasaurus: what're the linked list's advantages over the D arrays?)

Is it really advantageous to have a single list of objects? I noticed a lot of type-based casts in space.handler, so maybe keeping many seperate lists of the correct type would be reasonable?

I'm sure I'll have more questions later... Smile
Back to top
View user's profile Send private message
Phr00t



Joined: 03 Mar 2006
Posts: 203

PostPosted: Thu Sep 28, 2006 3:14 pm    Post subject: Reply with quote

Quote:
I expect ships are not just flying around for show then? How can players interact with these NPCs? (pirating them seems to be the only thing I can come up with?)


They definetly will be for more than show. Interaction functions / commands need to be added. For example, you should be able to request formations, enable "auto-follow" mode, perform trades in space?, and police should be able to scan your inventory for contraband.

The flying ships already will follow you randomly and help you fight, police will try to protect you if you are their faction, pirates / killers will attack etc.

Quote:
There seem to be a real lot of assorted global constants and variables in init.d...


Yeah, I want those things to be generally seen by all modules... so I can use the enums and such -- init.d is getting a little messy!

Quote:
What's the rationale for using a linked list for the space objects? (that also goes to clayasaurus: what're the linked list's advantages over the D arrays?)


Well, say there are 50 space objects. If the player destroys object #27, I want to remove that object from the space objects list. This is tricky with D arrays, but easy with a linked list.

Quote:
Is it really advantageous to have a single list of objects? I noticed a lot of type-based casts in space.handler, so maybe keeping many seperate lists of the correct type would be reasonable?


Well, SpaceObjects is a list of FU_OBJECTs. FU_SHIPs and FU_ITEMs are just extensions of the FU_OBJECT class. So, I want to handle all of the FU_OBJECTs the same way in the same list, but then do a little more computation for FU_SHIPs and FU_ITEMs etc.

It also adds some performance overhead, having to go through multiple linked lists...

Quote:
I'm sure I'll have more questions later...


Keep em comin! Gives me something else to do here at work Wink
Back to top
View user's profile Send private message
ChristianK



Joined: 26 Sep 2006
Posts: 159
Location: Berlin, Germany

PostPosted: Fri Sep 29, 2006 2:57 am    Post subject: Reply with quote

Quote:
Well, say there are 50 space objects. If the player destroys object #27, I want to remove that object from the space objects list.


Ah, obviously! Really should have throught of that myself. Indeed, constant time removal of elements in the middle of the list is very useful.

Quote:
Well, SpaceObjects is a list of FU_OBJECTs. FU_SHIPs and FU_ITEMs are just extensions of the FU_OBJECT class. So, I want to handle all of the FU_OBJECTs the same way in the same list, but then do a little more computation for FU_SHIPs and FU_ITEMs etc.

It also adds some performance overhead, having to go through multiple linked lists...


Well, it's just that I've learned to avoid casts wherever possible. The performance overhead, I think, is arguable. After all, you'd get rid of quite a bunch of comparisons you need to do per-element now.

Lastly, I see
Code:
(cast(FU_OBJECT)SpaceObjects.data).handle_object();
(cast(FU_SHIP)SpaceObjects.data).handle_object();

in handler.d. Couldn't both be replaced by
Code:
SpaceObjects.data.handle_object();

since SpaceObjects.data is already of type FU_OBJECT and handle_object is polymorphic?
Back to top
View user's profile Send private message
Phr00t



Joined: 03 Mar 2006
Posts: 203

PostPosted: Sat Sep 30, 2006 7:09 am    Post subject: Reply with quote

I really don't think casting causes any runtime performance overhead? I believe it would just generate different pointers to the correct functions / handle the object's pointer as it would the casted type?

Quote:
since SpaceObjects.data is already of type FU_OBJECT and handle_object is polymorphic?


SpaceObjects.data is an FU_OBJECT, so when I do SpaceObjects.data.handle_object(), wouldn't it just always call the FU_OBJECT's handle_object()? Even if the pointer really pointed to an FU_SHIP object? I put the cast in there to make sure the correct handle_object is called...
Back to top
View user's profile Send private message
ChristianK



Joined: 26 Sep 2006
Posts: 159
Location: Berlin, Germany

PostPosted: Sat Sep 30, 2006 8:13 am    Post subject: Reply with quote

Quote:
I really don't think casting causes any runtime performance overhead?


Probably not or neglegible (don't know if the D makes sure the cast is valid or not). I was pointing to the

Code:
if(spaceobject.data.type() == SOMECONSTANT)
  // do appropriate cast


that could be removed. But let us not argue performance where there's no problem. It's just a style issue, but since it works there's no real reason to change it at the moment.

Quote:
SpaceObjects.data is an FU_OBJECT, so when I do SpaceObjects.data.handle_object(), wouldn't it just always call the FU_OBJECT's handle_object()?


No. Even though SpaceObjects.data is of type FU_OBJECT, in cases where it holds a derived class, the derived functions will be called.

You can verify that this is true by trying the following example:

Code:
import std.stdio;

class A
{
  void foo()
  {
    writefln("Called A::foo!");
  }
}

class B : A
{
  void foo()
  {
    writefln("Called B::foo!");
  }
}

int main()
{
  B b = new B();
  A a = b;

  b.foo();
  a.foo();

  return 1;
}


It will output "Called B::foo!" twice.

While it is not required, you can (and it is probably a good idea) add the 'override' attribute to the handle_object function declaration in FU_SHIP to indicate this. (it just makes sure that there actually is a function to override)

It'd be great if I could talk to you directly in order to better coordinate work. (these forums often load incredibly slowly for me, is that my ISP or a general issue?) I'm usually on ICQ (#43927552) and IRC, but could get on MSN if that's your network of choice.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> FreeUniverse All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group