Engine Progress (uzurpator)

Discussions related to programming Transport Empire.

Moderator: Transport Empire Moderators

User avatar
uzurpator
Transport Empire Moderator
Transport Empire Moderator
Posts: 2134
Joined: 10 Jan 2003 12:21
Location: Wroclaw, Poland / Katowice, Poland

Engine Progress (uzurpator)

Post by uzurpator » 14 Mar 2007 15:23

This topic i shall use to report my progress on implementing the engine on my side (I ecourage XerusTC to do the same). Once we have more or less complete framework, we can switch to one of the engines and continue work just there.

Anyhow.

My engine is composed of three parts.
Server - a part that is responsible for pushing the game forward and for synchronising clients
commLink - a layer that organises the client-server communication.
Client - a console which displays messages and graphics.

The whole game is build on a 'streaming processing' idea. in short - it create several threads ,called executors, which traverse a container of tasks in seach of a task that can be performed. The tasks may be interdependant (ie task 4 can be performed only if task 7 was completed). The processing is finished once all tasks are completed.

This approach has the advantage that it does not pose much overhead on single cpu and scale very well with the number of cpus. Read: the game is going to be massively multithreaded and will scale very well with 2 and quad core computers of tommorow.

The graphics:

For the graphics I am using Ogre 1.4 - Eihort. This is a very advanced, fast and mature graphics engine.

For input i use OIS - a library which was made specifically to capture OGRE.

A toolset is composed of Boost - a multi-platform library that can be considered a 'taste' of the C++0x - the next revision of C++ standard.

---

What is done:

1. Setup of envirnemnt
2. Land generation engnine (common with TTD patch)
3. Frame building scheme for both client and server
4. Very, very, very basic commLink
5. Ogre and OIS initalisation and running.

Current work - making of land generation use parallel_for to speed up the process on multi core, create an actual map, display the created map in a way similar to the ancient terrain proto.
All art and vehicle stats I authored for TT and derivatives are as of now PUBLIC DOMAIN! Use as you see fit
Just say NO to the TT fan-art sprite licensing madness. Public domain your art as well.

User avatar
Hyronymus
Tycoon
Tycoon
Posts: 13190
Joined: 03 Dec 2002 10:36
Location: The Netherlands
Contact:

Post by Hyronymus » 14 Mar 2007 15:56

So you're not even considering the use of the TRoS engine?!

User avatar
eis_os
TTDPatch Developer
TTDPatch Developer
Posts: 3602
Joined: 07 Mar 2003 13:10
Location: Germany
Contact:

Post by eis_os » 14 Mar 2007 15:59

Very nice, in the future will you provide a source code link here aswell? That would be very nice...

I wonder a bit of the interdepencies, well, you only have one map data, so when you calculate some stuff, it may be incorrect of multithreading.
So you need locks, while you can have several task, you may end up haveing dead locks. Thats a real nice challenge to manage :D


-edit-
Hyronymus: Well no, as he told already, atleast he doesn't try to create an own Base Graphic Engine and uses Ogre...

-edit2-
It may not be the Transport Empire all wished, but I may be a Transport Empire that can actually consindered as working game. Because of the task system most stuff actually needs to be good seperated, so parts should be reuseable in TRoS...

I am looking forward to your Terrain Sample!

User avatar
XeryusTC
Tycoon
Tycoon
Posts: 15415
Joined: 02 May 2005 11:05
Skype: XeryusTC
Location: localhost

Post by XeryusTC » 14 Mar 2007 16:52

TRoS is of higher quality than Ogre by the last shots/running copies I've seen and TRoS isn't even finished yet. I also don't really like the usage of Boost as it's just one big hack IMO. One downside of TRoS is that it isn't really thread save ATM and some parts won't see thread savity before OpenGL does.
I think we should work together instead of competing which engine is going to be used.
Don't panic - My YouTube channel - Follow me on twitter (@XeryusTC) - Play Tribes: Ascend - Tired of Dropbox? Try SpiderOak (use this link and we both get 1GB extra space)
Image
OpenTTD: manual #openttdcoop: blog | wiki | public server | NewGRF pack | DevZone
Image Image Image Image Image Image Image

User avatar
Hyronymus
Tycoon
Tycoon
Posts: 13190
Joined: 03 Dec 2002 10:36
Location: The Netherlands
Contact:

Post by Hyronymus » 14 Mar 2007 18:32

I don't think competing is sound either. I think it may be very resourceful if uzurpator and XeryusTC exchanged expectations/features of the TRoS engine. I don't believe in decisions based on half-informedness.

User avatar
uzurpator
Transport Empire Moderator
Transport Empire Moderator
Posts: 2134
Joined: 10 Jan 2003 12:21
Location: Wroclaw, Poland / Katowice, Poland

Post by uzurpator » 15 Mar 2007 13:51

Progress:

Terain is almost niecly generated - I'm getting some volatility issues to iron, but apart from that - works dandy.

--
XeyrusTC: why is boost bad? And how is TRoS better then ogre (just curius). Ogre isn't thread safe also.

Hyronymus: I do not want to compete. I use what I have, if TRoS will work, I'll use TRoS. I want to make a game, not write a graphics engine - so I use a ready game engine ferinstance.

ois_es: the engine dynamically assigns threads to task. Deadlock is impossible unless the data graph is a loop. But - I am using boost::threads for flow control
All art and vehicle stats I authored for TT and derivatives are as of now PUBLIC DOMAIN! Use as you see fit
Just say NO to the TT fan-art sprite licensing madness. Public domain your art as well.

User avatar
Hyronymus
Tycoon
Tycoon
Posts: 13190
Joined: 03 Dec 2002 10:36
Location: The Netherlands
Contact:

Post by Hyronymus » 15 Mar 2007 13:57

You're not the only one who wants to make a game, uzurpator and if you really don't like writing a graphics you should take time to compare Ogre and TRoS. Although if you don't want to wreak havoc you have little choice, we decided to use TRoS last year. Can you convince me why we should recall that decision?

User avatar
uzurpator
Transport Empire Moderator
Transport Empire Moderator
Posts: 2134
Joined: 10 Jan 2003 12:21
Location: Wroclaw, Poland / Katowice, Poland

Post by uzurpator » 15 Mar 2007 14:07

I would like to remind you, Hyro, that there was a coup, and I am the usurper.

I am not the one to sell TRoS to anyone, XeryusTC is, and he is doing a lousy job at it (sorry, that is the truth). Until there is TRoS SDK, or at least, interface spec, then I'll develop with what I know to work. Frankly - I know nothing about what TRoS can do, how to use it, what architecture it has and how to embed/wrap an application around it. There is no documentation so to speak. In short - there is nothing to compare Ogre to.

Besides. You have decided last year. It is march - no TE code is around. Until there is a way to actually use TRoS, then you can consider your decision cancelled.
All art and vehicle stats I authored for TT and derivatives are as of now PUBLIC DOMAIN! Use as you see fit
Just say NO to the TT fan-art sprite licensing madness. Public domain your art as well.

User avatar
Hyronymus
Tycoon
Tycoon
Posts: 13190
Joined: 03 Dec 2002 10:36
Location: The Netherlands
Contact:

Post by Hyronymus » 15 Mar 2007 14:38

Oh, you put me and Steve aside?

User avatar
XeryusTC
Tycoon
Tycoon
Posts: 15415
Joined: 02 May 2005 11:05
Skype: XeryusTC
Location: localhost

Post by XeryusTC » 15 Mar 2007 15:31

uzurpator wrote:I am not the one to sell TRoS to anyone, XeryusTC is, and he is doing a lousy job at it (sorry, that is the truth). Until there is TRoS SDK, or at least, interface spec, then I'll develop with what I know to work. Frankly - I know nothing about what TRoS can do, how to use it, what architecture it has and how to embed/wrap an application around it. There is no documentation so to speak. In short - there is nothing to compare Ogre to.
May I say that there is a documentation but that you have to run doxygen yourself to get our documentation (except from some network stuff I wrote and that isn't included by doxygen). There are also plenty of examples in the SVN tree, which you don't want to obtain because you are to lazy to do it. May I also note that I was only around for about 4 months and that I managed to get an subversion server running for us and that it has actual code on it and that YOU who has been around for much more time (4 years what I make from your post) hasn't made ANYTHING and that the only thing I found in the old CVS repository were some experiments by someone else (can't recall his name ATM).
There are also running examples of what TRoS is capable of ATM, although they are semi hacked because some functionality isn't in TRoS yet. If you would have taken the time to download some 40-50MB from the SVN server and followed some instruction in a small file you would actually have noticed this. It is actually harder to test your code as someone would have to download some 500MB of dependencies and try to compile it, and that is just when you are able to get the code which is actually the hard part as someone would have to contact you who is barely online to get the code, TRoS' SVN server is online 99% procent of the time and always responding to your requests immedeatly.
uzurpator wrote:Besides. You have decided last year. It is march - no TE code is around. Until there is a way to actually use TRoS, then you can consider your decision cancelled.
May I point out that this decision was made end october/november, which is only around 4-5 months ago, which is also less significant time than your 4 years of just hanging around and doing nothing. I would also like to point out that it is very rude to just shove the effort that Hyronymus put in this project aside. Hyronymus has tried really hard and spend many of his little spare time (from what I heard) on this project.
Don't panic - My YouTube channel - Follow me on twitter (@XeryusTC) - Play Tribes: Ascend - Tired of Dropbox? Try SpiderOak (use this link and we both get 1GB extra space)
Image
OpenTTD: manual #openttdcoop: blog | wiki | public server | NewGRF pack | DevZone
Image Image Image Image Image Image Image

User avatar
Purno
Tycoon
Tycoon
Posts: 16663
Joined: 30 Mar 2004 12:30
Location: Almere, The Netherlands

Post by Purno » 15 Mar 2007 15:57

XeryusTC wrote:I would also like to point out that it is very rude to just shove the effort that Hyronymus put in this project aside. Hyronymus has tried really hard and spend many of his little spare time (from what I heard) on this project.
Indeed. Uzurpator, at the beginning I was supporting you since it was a step in the good direction, but this is starting to go in the wrong direction. First of all I don't want bitchfights blaming each other on their mistakes.

As I don't know anything about coding, I can't really tell wether Ogre or TRoS is better, but if I read Xeryus's story you haven't really tried discovering TRoS's qualities, and just started coding, which doesn't sound efficient to me.

And may I remind you we still are a team, we don't just undo decisions made in the past without convincing the team undoing is the right decision. So far, you haven't convinced me we should not use the TRoS engine.

I rather see you help coding the TRoS engine, than creating your own engine. Or, I challange you to convince the whole team we should use Ogre (whatever it is) in stead of TRoS.

Now, can we stop blaming each other thingies and just work together? Please.
Contributor to the The 2cc Set and Dutch Trainset. Inventor of the Metro concept. Retired Graphics Artist.
Image Image
Download TT | Latest TTDPatch | OpenTTD | OpenTTDCoop | BaNaNaS: OpenTTD content system | 2048² OTTD scenario of the Netherlands
GRF Codec | GRF Crawler | GRF Maker | Usefull graphics & tools sites | NML Documentation Wiki | NFO Documentation Wiki
All my graphics are licensed under GPL. "Always remember you're unique, just like everyone else."

User avatar
eis_os
TTDPatch Developer
TTDPatch Developer
Posts: 3602
Joined: 07 Mar 2003 13:10
Location: Germany
Contact:

Post by eis_os » 15 Mar 2007 16:44

Hmm, one note,mostly pointed to the Mangement.

I did know http://tt2.cvs.sourceforge.net/tt2/tempire/
It's still here the main annoncement topic where to get code! - needs a fix

I checked out TRoS via svn://zernebok.com/trunk and recieved only an initial import. And I haven't seen any relevant docs, looked around and don't found it a good experience...

Some minutes ago I found
http://tros.ath.cx/subversion

Currently I do checkout from it so I can't say more about it.
But again I felt in the trap of having not the right version. When does this end? Could you please finally fix this mess? Personally I don't like to hunt every time several pages of topics to find essential informations.

-edit-
Ok, some notes: I see a general lack of License, I think I remember something about the license of TRoS. I think that would need some clarify.
To be honest I don't think I do want to cripple my buildsystem currently.
Maybe someone in the TRoS Team could clarify this a bit? For a general overview it would be helpfull to have an hosting of a snapshot of the doxygen output.

I simple looked a bit into trosengine, I am not quite sure why this should be better then Ogre or any other engine. Wasn't the point haveing a engine to not heavily depend on say OpenGL. Or is TRoS a opengl only engine?

-edit 2-
How will TEmpire fit in the image? I mean I haven't yet seen a real sample directory. Will there be a snapshot made of the used tools and then handled in an dedicated svn?
Last edited by eis_os on 15 Mar 2007 17:16, edited 2 times in total.
TTDPatch dev in retirement ... Search a grf, try Grf Crawler 0.9 - now with even faster details view and new features...
Image

User avatar
Hyronymus
Tycoon
Tycoon
Posts: 13190
Joined: 03 Dec 2002 10:36
Location: The Netherlands
Contact:

Post by Hyronymus » 15 Mar 2007 17:06

You sound like you have just been through the worst ordeal in your life, eis_os. Calm down, mind your hypertension and heart rate ;).

I've searched the forum and I cannot find a link to the old CVS. If you mean it's still up while we switched to SVN: we decided not to delete any old code repository.

As for TRoS: I let XeryusTC handle that.

User avatar
XeryusTC
Tycoon
Tycoon
Posts: 15415
Joined: 02 May 2005 11:05
Skype: XeryusTC
Location: localhost

Post by XeryusTC » 15 Mar 2007 20:50

First of all, TRoS doesn't have a license yet. Seniltai and me didn't look that far into it yet.
And we don't have doxygen anymore, I poked Seniltai numerous times (and will do again now ;) ) to set up doxygen on the server as I was running it before but I didn't install a new http server after a clean windows install. You will just have to wait for now I create your own (the necessarry files are in the repository under /trosdoc).

TRoS does indeed depend on SDL and with it OpenGL, we did this for the multi platform use and we aren't planning on changing the SDL dependency. And TRoS is a complete engine which comes with a terrain renderer, GUI library, shader and material engine, network engine, database support, sound engine and many more. A quick look at /trosengine/trunk/include will show you the elements implemented ATM.

There are also examples all over the repository, /trostools is a good place to take a look for a start (except from the logreader I guess). troscreator2 would also be a good place to look as it shows some nice GUI and Node implementation.


There is way more to tell, but I don't like typing big posts so I wont ;) :P.
Don't panic - My YouTube channel - Follow me on twitter (@XeryusTC) - Play Tribes: Ascend - Tired of Dropbox? Try SpiderOak (use this link and we both get 1GB extra space)
Image
OpenTTD: manual #openttdcoop: blog | wiki | public server | NewGRF pack | DevZone
Image Image Image Image Image Image Image

User avatar
uzurpator
Transport Empire Moderator
Transport Empire Moderator
Posts: 2134
Joined: 10 Jan 2003 12:21
Location: Wroclaw, Poland / Katowice, Poland

Post by uzurpator » 16 Mar 2007 08:16

XeryusTC wrote:May I say that there is a documentation but that you have to run doxygen yourself to get our documentation (except from some network stuff I wrote and that isn't included by doxygen). There are also plenty of examples in the SVN tree, which you don't want to obtain because you are to lazy to do it. May I also note that I was only around for about 4 months and that I managed to get an subversion server running for us and that it has actual code on it and that YOU who has been around for much more time (4 years what I make from your post) hasn't made ANYTHING and that the only thing I found in the old CVS repository were some experiments by someone else (can't recall his name ATM).
As I said, lousy job. Your PR sucks.
There are also running examples of what TRoS is capable of ATM, although they are semi hacked because some functionality isn't in TRoS yet. If you would have taken the time to download some 40-50MB from the SVN server and followed some instruction in a small file you would actually have noticed this. It is actually harder to test your code as someone would have to download some 500MB of dependencies and try to compile it, and that is just when you are able to get the code which is actually the hard part as someone would have to contact you who is barely online to get the code, TRoS' SVN server is online 99% procent of the time and always responding to your requests immedeatly.
http://www.google.de/search?hl=pl&q=ope ... j+w+Google
Pick and choose. Virtually all of them provide the same - and, as I might point - they have so called _documentation_. It is not the same as "running doxygen". And all of them have features not actually hacked into.

And frankly - all of them will work well in TE.
May I point out that this decision was made end october/november, which is only around 4-5 months ago, which is also less significant time than your 4 years of just hanging around and doing nothing. I would also like to point out that it is very rude to just shove the effort that Hyronymus put in this project aside. Hyronymus has tried really hard and spend many of his little spare time (from what I heard) on this project.
Dunno if there is anyone who has gobs of spare time, let alone wants to spare it on TE. And I shoved aside anyone's effort. Including mine.

Anyhow.
If you want me to use TRoS, and I really have nothing against it, then it is your job to prepare the following:
1. What tha engine can do (graphically, input, output, sound, timing etc), without anything hacked into.
2. What is its design philosphy, how each part operates with another
3. eis_os is 100% right. Without a licence I will not touch TRoS with a 10 foot pole.

As an example - take a look at SDL documentation. Imvho it is a perfect example of how to make a doc to an api. Notice - it is not made out of doxygen files.

Simply put - make a freaking SDK. Noone in their right mind will use your engine if they have to mow through Doxygen babelfish. Doxygen is for you as a developer, not for me as an user.

BTW - you honestly do not want your engine's part to be interdependant. Ie - if I (or anyone else for that matter) wnat to use TRoS for networking and sound, then I should do that without the rest being used.

Hyronymus:

Purno has your answer. We are still something that resembles a team. Imho you did pretty good job trying to manage it, but still you are managing a zombie. Even you saw that when in the status report you calimed that you have grown sick of nothing being done, and lost enthusiasm.

And the cancellation is the effect of Pioneeer Law. Since I am the one who writes the engine, I make the decisions. If Xeryous, Hellfire, Rein, PJayTycy, Fujitsu or anyone else delivers an engine earlier, his engine will be used. Clear and simple.

Purno:

You are right. I came up a bit arrogant. How are those letters going?

EDIT:

GEt this discussion to ANNOUNCEMENT - usurpation topic. This one is for me to report progress.

1. Client now correctly talks to server
2. Terrain is properely created

Next: Display the terrain.
All art and vehicle stats I authored for TT and derivatives are as of now PUBLIC DOMAIN! Use as you see fit
Just say NO to the TT fan-art sprite licensing madness. Public domain your art as well.

User avatar
Purno
Tycoon
Tycoon
Posts: 16663
Joined: 30 Mar 2004 12:30
Location: Almere, The Netherlands

Post by Purno » 16 Mar 2007 08:39

uzurpator wrote:How are those letters going?
Letters? Hmm... I feel like I forgot something. Could it be someone here, possibly you, asked me to create a font?

If so, you want pixel font (e.g. image file) or vector font (e.g. font file (I only have one, and can't create new ones due a lack of tools FYI)).
Contributor to the The 2cc Set and Dutch Trainset. Inventor of the Metro concept. Retired Graphics Artist.
Image Image
Download TT | Latest TTDPatch | OpenTTD | OpenTTDCoop | BaNaNaS: OpenTTD content system | 2048² OTTD scenario of the Netherlands
GRF Codec | GRF Crawler | GRF Maker | Usefull graphics & tools sites | NML Documentation Wiki | NFO Documentation Wiki
All my graphics are licensed under GPL. "Always remember you're unique, just like everyone else."

User avatar
uzurpator
Transport Empire Moderator
Transport Empire Moderator
Posts: 2134
Joined: 10 Jan 2003 12:21
Location: Wroclaw, Poland / Katowice, Poland

Post by uzurpator » 16 Mar 2007 09:17

Purno wrote:
uzurpator wrote:How are those letters going?
Letters? Hmm... I feel like I forgot something. Could it be someone here, possibly you, asked me to create a font?

If so, you want pixel font (e.g. image file) or vector font (e.g. font file (I only have one, and can't create new ones due a lack of tools FYI)).
Indeed me did. In a pm some time ago :) Pixel font.
All art and vehicle stats I authored for TT and derivatives are as of now PUBLIC DOMAIN! Use as you see fit
Just say NO to the TT fan-art sprite licensing madness. Public domain your art as well.

User avatar
Hyronymus
Tycoon
Tycoon
Posts: 13190
Joined: 03 Dec 2002 10:36
Location: The Netherlands
Contact:

Post by Hyronymus » 16 Mar 2007 09:54

uzurpator wrote: Hyronymus:

Purno has your answer. We are still something that resembles a team. Imho you did pretty good job trying to manage it, but still you are managing a zombie. Even you saw that when in the status report you calimed that you have grown sick of nothing being done, and lost enthusiasm.

And the cancellation is the effect of Pioneeer Law. Since I am the one who writes the engine, I make the decisions. If Xeryous, Hellfire, Rein, PJayTycy, Fujitsu or anyone else delivers an engine earlier, his engine will be used. Clear and simple.
That's hilarious but sadly for you incorrect. We've always made decisions as a team and even though TE came to a halt for the x-maniest time I see no reason for changing that procedure. The problem with TE coming to a halt isn't just the discussion of thing but also the production of code. That's what you get with "spare time projects" I'm afraid. And as I may loose enthousiasm occasionally I will not give up on TE easily.

If you really wanted people to go for the same thing with you, you shouldn't have presented your plan as you did. You said XeryusTC made a mess of the TRoS PR-job but you fared worse with your personal PR in your attempt to get TE moving.

User avatar
Purno
Tycoon
Tycoon
Posts: 16663
Joined: 30 Mar 2004 12:30
Location: Almere, The Netherlands

Post by Purno » 16 Mar 2007 09:54

What are the sizes of letters you are aiming for? My brother has a bitmap full of all kinds of fonts made by him (and some by me), I could ask him if we can use that one too...
Contributor to the The 2cc Set and Dutch Trainset. Inventor of the Metro concept. Retired Graphics Artist.
Image Image
Download TT | Latest TTDPatch | OpenTTD | OpenTTDCoop | BaNaNaS: OpenTTD content system | 2048² OTTD scenario of the Netherlands
GRF Codec | GRF Crawler | GRF Maker | Usefull graphics & tools sites | NML Documentation Wiki | NFO Documentation Wiki
All my graphics are licensed under GPL. "Always remember you're unique, just like everyone else."

User avatar
uzurpator
Transport Empire Moderator
Transport Empire Moderator
Posts: 2134
Joined: 10 Jan 2003 12:21
Location: Wroclaw, Poland / Katowice, Poland

Post by uzurpator » 16 Mar 2007 09:57

Purno wrote:What are the sizes of letters you are aiming for? My brother has a bitmap full of all kinds of fonts made by him (and some by me), I could ask him if we can use that one too...
bigger = better. 64x64px/letter seems ok.

EDIT: Hyronymus

Calm down. I make you a deal. Today it is 16 of march 2007. If until 16 of june 2007, there is no running TE alpha from me with:

1. thread support
2. modifable terrain
3. some bits and pieces of GUI

then I leave the project, and you get it your way. Until then Pioneer Law is in effect. Deal?
Note: if someone else deliveres the alpha before me, then it is once again your way ofc.
Last edited by uzurpator on 16 Mar 2007 10:07, edited 1 time in total.
All art and vehicle stats I authored for TT and derivatives are as of now PUBLIC DOMAIN! Use as you see fit
Just say NO to the TT fan-art sprite licensing madness. Public domain your art as well.

Post Reply

Return to “Transport Empire Coding”

Who is online

Users browsing this forum: No registered users and 1 guest