Jump to content


Photo

PRG-Engine


  • Please log in to reply
25 replies to this topic

#1 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 27 April 2003 - 05:42 PM

Well it is official, i had finish the engine (at least to the state i can publish it).... Tomorrow (monday) morning here like 1300 GMT i will upload the complete file to my account in this server for all of you to download (10 MB). The link would be: Engine Source. The source wont be here until i upload it, so check often after 1300GMT

The CVS will not be ready by tomorrow because i have to figure out how to link all that stuff in DevC++ (GCC) specially the DirectX stuff. Tarmat do you want the job of making a SDL Driver for the mouse and keyboard? (the Joystick interface is not finished yet)...

Will make a lot of restructuring of Xenocide Directory structure... Some examples:

Deprecate the os-dep directories, all the OS Dependent code will be put under a win32 (if windows), osx if apple or posix (linux for example)... The reason is that a os-dep directory would have to recreate the source structure (to make it tidier), not a nice idea having nested 6 directories just for OS Dependant code... In this way the OS Dependant code is pretty near but isolated, just like in the old way.

Move common headers and QA Tools like the new assert to a utilities package instead of having separate for both the engine and xenocide....

Move all not directly from xenocide to the utilities module like: Network Layer, QA Tools, LiveUpdate Facility, Common headers, etc....

The OS Dependant and Compiler Dependant binaries like import libraries or static libraries, etc will be packaged by someone from the team and wont be put on SourceForge CVS, they will be put to download them from the project page... that was a hard decision but it is better to have a standard set of precompiled and tested libraries like OpenAL, PNG, Vorbis, and others, instead of putting the burden of downloading and compiling those to the developer (with the posible version inconsistency between developers). The result an easier learning curve on the project building at least, if you check other open source project the biggest problem always is linking the project....

Changed some common typedefs to agree to somthing standard, for example StringList to stringList.... cause for example "real" was with non capital and StringList with the first in capital letter.

This is not final so if anyone has a problem with this and a really strong argumentation of why shouldnt be so, just post and we will discuss it before putting all that stuff into the new CVS structure...

Greetings
Red Knight

Edited by red knight, 27 April 2003 - 05:51 PM.

Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#2 cyberdrift

cyberdrift

    Captain

  • Forum Members
  • PipPipPipPip
  • 102 posts

Posted 27 April 2003 - 08:24 PM

RK,

I know we have a ton of work ahead of us, but this is a great announcement!

I have been assuming the following video cards will be supported:

nVidia GeoForce 4 MX and TI cards
ATI Radeon cards

Is this still true?

Edited by cyberdrift, 28 April 2003 - 03:21 AM.


#3 tamat

tamat

    Sergeant

  • Forum Members
  • PipPipPip
  • 27 posts

Posted 28 April 2003 - 03:59 AM

RK:

First of all, are you going to use doxygen to document your source? It's useful and the HTML can be upload to the server. I hate SDKs where documentation are on pdf or inside the source, I prefeer html docs like doxygen, more info Doxygen webpage

Second thing, I can programme the SDL driver for mouse, but I think than using several different librarys will be a problem. I propose use SDL as system layer, SDL have functions to create OpenGL windows, send audio, control message like keyboard, mouse and joystick, open sockets, create threads, and lot more stuff.
As a programmer I always recommend use SDL because are a really simple library, maybe not as large than use the native API of the OS but really simple, with calls like CreateWindow( 800,600, 24, SDL_OPENGL | SDL_FULLSCREEN ); More info SDL Homepage
But I have no idea how it works when merging diferent libs like you sugest, creating window with win32, taking mouse control using SDL, creating audio with openAL... I'm affraid this will be really unstable.

There are two choices, first are programme only mouse/keyboard using SDL and the other is use win32, on second choice the port to other OS requiere more work but under win probably are more stable.

Think on it, I know that all your source use win32 API and it is unnecesary port it to SDL but maybe are necesary and this are the kind of work than I can do.

And well, when all the source are visible reply the thead to download it.

Oh, something more, I can upload the DSP and DSW for those people than use VisualC++ if somebody are interested. I hope i'm not the only programmer here using VC++ ;)

Edited by tamat, 28 April 2003 - 04:00 AM.


#4 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 28 April 2003 - 07:01 AM

nVidia GeoForce 4 MX and TI cards
ATI Radeon cards

Is this still true?

Yes, thats middle end hardware for xenocide, lowest is GF2. The engine do very little assumptions about what kind of hardware you are using, it is Xenocide who have the restrictions...

Greetings
Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#5 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 28 April 2003 - 07:23 AM

First of all, are you going to use doxygen to document your source? It's useful and the HTML can be upload to the server.

That is already covered we use doxygen from the very beginning.

Second thing, I can programme the SDL driver for mouse, but I think than using several different librarys will be a problem. I propose use SDL as system layer, SDL have functions to create OpenGL windows, send audio, control message like keyboard, mouse and joystick, open sockets, create threads, and lot more stuff.

Ok take a look at the code all windows specific code is isolated, and take a look to discover if you have enough flexibility with SDL, take in account that SDL MUST NOT be used outside of the engine code (that is a design philosofy), Audio will be handle by OpenAL, because it is a pretty portable, and simple but yet powerful library.

As a programmer I always recommend use SDL because are a really simple library, maybe not as large than use the native API of the OS but really simple, with calls like CreateWindow( 800,600, 24, SDL_OPENGL | SDL_FULLSCREEN );

You should check the OpenGL renderer and the device handler to be sure that SDL flexibility is enough to handle the needed functionality... The same for force feedback joysticks (even though it wont be used on xenocide, i dont want to contrain it because of a library desition. It is an engine after all).

There are two choices, first are programme only mouse/keyboard using SDL and the other is use win32, on second choice the port to other OS requiere more work but under win probably are more stable.

Under SDL porting should be a non issue (at least for most of the stuff.

Think on it, I know that all your source use win32 API and it is unnecesary port it to SDL but maybe are necesary and this are the kind of work than I can do.

There is not such thing as necesary is a trade off you make... if as an app developer you can forget about SDL existence then you are making a good job at keeping the library hidden (that is what we need).... and in that case SDL will be useful.

And well, when all the source are visible reply the thead to download it.

If the FTP client dont lie to me it is ready to download.

Greetings
Red Knight

Edited by red knight, 28 April 2003 - 07:31 AM.

Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#6 cyberdrift

cyberdrift

    Captain

  • Forum Members
  • PipPipPipPip
  • 102 posts

Posted 28 April 2003 - 07:54 AM

Oh, something more, I can upload the DSP and DSW for those people than use VisualC++ if somebody are interested. I hope i'm not the only programmer here using VC++ ;)

I have another thread where I am asking people to tell us exactly that. I'm trying to figure out how many different tools the build needs to support.

#7 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 28 April 2003 - 03:38 PM

You have to support only the official... that all. C++ Name mangling will prevent us from cross compiling...

Greetings
Red Knight
Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#8 mamutas

mamutas

    Colonel

  • Forum Members
  • PipPipPipPipPip
  • 1,067 posts

Posted 28 April 2003 - 03:48 PM

Second that. Only builds with official IDE should be supported.
mamutas@sourceforge.net

#9 Guest_stewart_*

Guest_stewart_*
  • Guests

Posted 29 April 2003 - 08:23 AM

Man I thought we agreed on this a LONG time ago.

Yes.
1) Cyberdrift builds using only the official compilers.
2) Only ONE official compiler/platform.
3) Such compiler is free.
4) The official executables are built and posted (if posted) by Cyberdrift only.

and . . .

5) No check-ins until build is built.

#10 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 29 April 2003 - 09:28 AM

It is time we make a Official Programming Dept FAQ... Stew can you handle that?

Greetings
Red Knight
Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#11 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 29 April 2003 - 09:30 AM

This is the last iteration of the code and directory structure.... Take a look, now you can compile MathLib (Math library ripped from the engine code) and QA Tools (An advance assertion system)...

Greetings
Red Knight

Attached Files


Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#12 TheAssassin

TheAssassin

    Squaddie

  • Forum Members
  • PipPip
  • 9 posts

Posted 05 May 2003 - 02:26 PM

the bmploader.cpp in the vc++ project is pointing to the wrong file ( actually doesn't exist ) you will have to remove it and add the one from src\objects\loaders\textures\bmploader.cpp to make it work.

#13 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 05 May 2003 - 05:03 PM

Thats because i am changing the code structure, the original was pretty different (it suits the needs of the thesis, not Xenocide)... The latest doesnt means NOT BROKEN...

Grettings
Red Knight
Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#14 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 08 May 2003 - 09:23 AM

Well this is the latest, i could compile everything in the engine except Ogg Vorbis Sound Loader (cause it complains that i do not have CygWin installed, which i dont need anyway), anyone can take a look....

I had made changes too, cause if i didnt it would involve more work for nothing cause they were scheduled to be done anyways (for ex. the get by object type facility, so there is some untested stuff yet)...

The directX linking is done too... I didnt port the examples yet, so it can be pretty difficult for the new ones to make it work properly...

Greetings
Red Knight

Attached Files


Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#15 gangsta

gangsta

    Colonel

  • Forum Members
  • PipPipPipPipPip
  • 2,203 posts

Posted 09 May 2003 - 09:21 AM

:) well I've been busy so I haven't been around. Anyway the way the original was done went by the rule that primitive data types are lowercase while abstract datatypes are upercase. Example int8 money; vs MoneyList moneyList; Anyway when you capitalize the first letter of words instead of using _'s the variable name usually is in the form of having the first letter lowercased. If yal don't like the method of keeping primitive datatypes in lowercase :) I suggest just capitalizing the primitive datatype names too as to avoid confusion for newbie programmers because I think having the type start off with the first word being lowercase can and the rest uppercased can confuse those who are used to capitalizing the first letter of the datatype since that is one of the top two used methods of naming variables.

Edited by gangsta, 09 May 2003 - 09:21 AM.

Posted Image

#16 Guest_blaa_*

Guest_blaa_*
  • Guests

Posted 09 May 2003 - 09:30 AM

It is time we make a Official Programming Dept FAQ... Stew can you handle that?

Greetings
Red Knight

Sorry RK I just noticed this post. I'll talk to Cyberdrift and we can produce a first draught for consideration.

#17 Guest_blaa_*

Guest_blaa_*
  • Guests

Posted 09 May 2003 - 09:34 AM

:) well I've been busy so I haven't been around.  Anyway the way the original was done went by the rule that primitive data types are lowercase while abstract datatypes are upercase.  Example  int8 money; vs MoneyList moneyList;  Anyway when you capitalize the first letter of words instead of using _'s the variable name usually is in the form of having the first letter lowercased.  If yal don't like the method of keeping primitive datatypes in lowercase :) I suggest just capitalizing the primitive datatype names too as to avoid confusion for newbie programmers because I think having the type start off with the first word being lowercase can and the rest uppercased can confuse those who are used to capitalizing the first letter of the datatype since that is one of the top two used methods of naming variables.

Didn't you and RK produce a document detailing all this coding convention stuff? If not can write something up and send it to me, for the Eng. Dept. Faq.

BTW, I heard you're an official taxpayer, congrats.
BTW2, There's a GangstaChick or something like that here now, you got a sister?

#18 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 09 May 2003 - 09:55 AM

:) well I've been busy so I haven't been around.  Anyway the way the original was done went by the rule that primitive data types are lowercase while abstract datatypes are upercase.  Example  int8 money; vs MoneyList moneyList;  Anyway when you capitalize the first letter of words instead of using _'s the variable name usually is in the form of having the first letter lowercased.  If yal don't like the method of keeping primitive datatypes in lowercase :) I suggest just capitalizing the primitive datatype names too as to avoid confusion for newbie programmers because I think having the type start off with the first word being lowercase can and the rest uppercased can confuse those who are used to capitalizing the first letter of the datatype since that is one of the top two used methods of naming variables.

That was a trade off i made between the old one and the new one... My old was UINT32 (all typedef went in that fashion), the last xenocide way was uInt32 (you can confuse it with a variable) and the new one is UInt32 like in classes....

Greetings
Red Knight
Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#19 gangsta

gangsta

    Colonel

  • Forum Members
  • PipPipPipPipPip
  • 2,203 posts

Posted 09 May 2003 - 10:03 AM

Well taditionally primitive datatypes are named in lowercase like int, char, float, double, wchar and so forth. you do not confuse those with a variable name because you are a bad programmer if you do. Same is true with uint, ushort, ulong which are also widely used under some APIs. uint32 falls into that catagory. No C/C++ programmer should think that uint32 is a variable name and those who use uint32 as a variable name should be shot. :) Anyway general rule on naming variables is that the name has to be a noun like the general rule of naming functions is that those have to be verbs. The exception is when it comes to bools and there the variable would be a condition and the function name a question. Anyway I think it is important to keep the first letter of the abstract typename uppercase because that's what C/C++ programmers expect when they don't use _'s in the naming scheme.
Posted Image

#20 Guest_blaa_*

Guest_blaa_*
  • Guests

Posted 09 May 2003 - 10:28 AM

Work it out guys and send me the result.

#21 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 09 May 2003 - 12:54 PM

Anyway I think it is important to keep the first letter of the abstract typename uppercase because that's what C/C++ programmers expect when they don't use _'s in the naming scheme.

I think we are saying almost the same, thats why i didnt reply... Stew you have the result here to put it in the doc...

Greetings
Red Knight
Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#22 Guest_blaa_*

Guest_blaa_*
  • Guests

Posted 09 May 2003 - 02:00 PM

Did you and Gangsta make a document/thread about this before? Send it over.

#23 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 09 May 2003 - 02:28 PM

Did you and Gangsta make a document/thread about this before?  Send it over.

It is in sourceforge, but we have change things a little (like the last one)...

Greetings
Red Knight
Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.

#24 gangsta

gangsta

    Colonel

  • Forum Members
  • PipPipPipPipPip
  • 2,203 posts

Posted 09 May 2003 - 03:34 PM

yeah pretty much :) I prefer having the the primitives captialized like abstract types than to making the abstract types have the first letter in lowercase. better of two evils as far as I'm concerned ;)

Edited by gangsta, 09 May 2003 - 03:35 PM.

Posted Image

#25 mamutas

mamutas

    Colonel

  • Forum Members
  • PipPipPipPipPip
  • 1,067 posts

Posted 11 May 2003 - 12:06 PM

Well, I am digging into the code now...

I have downloaded RK's archive and attempted to compile it.
The compiler chocked on devicehandler.cpp by not being able to find declaration of GDSDeviceHandler class.
mamutas@sourceforge.net

#26 red knight

red knight

    Xenocide Project Leader

  • Xenocide Inactive
  • 3,310 posts

Posted 11 May 2003 - 03:19 PM

Well, I am digging into the code now...

I have downloaded RK's archive and attempted to compile it.
The compiler chocked on devicehandler.cpp by not being able to find declaration of GDSDeviceHandler class.

I am working on it, currently i had ported the complete engine to the new namespace and changed all GDS stuff into Xe (From Xenoengine) but i am having trouble moving the dll and import libraries (that were generated for BCB6) to GCC, when i finish that i will upload a updated version... and a devpack for windows..

Greetings
Red Knight
Sourceforge Nick: flois - Federico Andres Lois
Visit my blog at: flois.blogspot.com

Posted Image

Pookie cover me, I am going in.