Just a new way - help would be appreciated

For code related discussions and questions
Seismo
Trained
Trained
Posts: 70
Joined: 06 Feb 2010, 17:32

Just a new way - help would be appreciated

Post by Seismo » 27 Dec 2010, 10:16

Gentlemen,

i would like to give this project a new start and direction with other preferences. Due to the fact that the sourcecode cultivation work is extremly hard since more and more operating systems are supported. May you just tell me which (older) trunk version is for PC only (PSX ripped) and i will take that to start up with. Thank you in advance.

My intended preferences are:

- Support Visual Studio 2010
- Support Windows 7
- Use DirectX 11
- Use XML for all configuration and event messaging behaviors
- Port all c to c++ (or maybe c# with XNA) and get rid of this spaghetti code
- Drop lua and other designer friendly pseudo stuff and replace it by a new editor (maybe as extension to blender)
- A complete new driver A.I. (most annoying for me currently)
- A way of selection which kind of A.I. you want as a opponent, for e.g.:
a. defence, attack, both,
b. more air, more tanks, more soldiers, use commander, ...,
c. preferred research of rockets, preferred research of base defence, preferred research of cannons and machine guns, ...
- A modern menu which allows to save settings, support higher resolutions (2560x1600 for me) and SurroundView / multi monitors
- A way of dock/undock/magnify ingame menus
- See all factories at same time or enhance the left hexa-menu to select each type of factory directly
- A bit more realism, for e.g.:
a. Cannons are adjustable so that they can fire over a hill.
b. Tanks do not shoot into hills when friends are nearby and damage them
- Laser optics should be visible
- Gauss cannon is using kinetic energy instead of mass (tiny bulltes, extrem high speed but less accuracy)

Safety0ff
Trained
Trained
Posts: 397
Joined: 18 Jul 2009, 23:23

Re: Just a new way - help would be appreciated

Post by Safety0ff » 27 Dec 2010, 20:05

Though we're open to new people and ideas, some of your goals aren't compatible with the project.
(Specifically the Windows-only ideas.)

To give the project a "new start" as you call it, you'd likely need to start from fresh with regards to the source code. Furthermore, the effort required to go from the current state to your ideals would likely exceed the effort of starting from scratch.

Besides that, the only other comment I have is regarding displaying the "laser optics" on screen:
I think that would make the game appear "too busy," even if the are only being displayed for a subset of the on-screen droids.

User avatar
Rman Virgil
Professional
Professional
Posts: 3812
Joined: 25 Sep 2006, 01:06
Location: USA

Re: Just a new way - help would be appreciated

Post by Rman Virgil » 27 Dec 2010, 20:17

.

You might consider contacting Member Chojun by email and running these ideas by him and also ask about his WZ source code. ;)

- Rman 8)
.
.

Impact = C x (R + E + A + T + E)

Contrast
Reach
Exposure
Articulation
Trust
Echo
.

Seismo
Trained
Trained
Posts: 70
Joined: 06 Feb 2010, 17:32

Re: Just a new way - help would be appreciated

Post by Seismo » 28 Dec 2010, 07:03

First off all, thank you for your replays.
Safety0ff wrote:Though we're open to new people and ideas, some of your goals aren't compatible with the project.
(Specifically the Windows-only ideas.)
I guess i did not make my point clear enough. I do not want to be part of "this" project anymore :ninja: . I want to start all over again in a new project based on Warzone 2100 from the point where this project was, just cleaned from PSX stuff. From my point of view, i have very good reasons for going another way. Some of them are listed above.
Safety0ff wrote:To give the project a "new start" as you call it, you'd likely need to start from fresh with regards to the source code. Furthermore, the effort required to go from the current state to your ideals would likely exceed the effort of starting from scratch.
I know, i would like to have a (core) source i am able to "read" more efficient instead of trying to understand differences between other OS plattforms and erradicate tons of code i do not need on windows plattforms. Neither to understand things for compilers i do not prefer. Just for a goal, keep things as easy as possible.
Safety0ff wrote:Besides that, the only other comment I have is regarding displaying the "laser optics" on screen:
I think that would make the game appear "too busy," even if the are only being displayed for a subset of the on-screen droids.
Well, this is exactly another good point for the new beginning with this engine.
Rman Virgil wrote:You might consider contacting Member Chojun by email and running these ideas by him and also ask about his WZ source code.
Thank you, i will try that. He may had read that here.

Chojun
Regular
Regular
Posts: 518
Joined: 25 Nov 2006, 17:49
Contact:

Re: Just a new way - help would be appreciated

Post by Chojun » 28 Dec 2010, 08:15

..z? Did someone say my name? :shock:

Hi Seismo,

The source as originally released was Windows-only with PSX stuff 'ripped' out (really, it was mostly just #ifdef'd out - the Pumpkin folks were not licensed to release PSX driver code so the code you'd expect to see to interface with, say, a PSX controller or PSX graphics hardware or debug/dev modules, doesn't exist). There were a handful of game-related features that existed on PSX that don't on Win32 and these are the features that are #ifdef'd (like drive mode, radar scan line, etc).

Supporting VS2010/Win7/XNA/etc would be nice but really Original Warzone2100 suffered from a lack of a decent, modern framework. Honestly there's not a whole lot of spaghetti code (for the most part they did a decent job of keeping things at least somewhat modular) but there are sections of really ugly code that you have to deal with (esp. in the software renderer).

Porting to C++ would be extremely beneficial to facilitate good design patterns but the effort-to-benefit ratio would drop off significantly when moving to C#. Keep in mind that the WZ renderer is ponderously inefficient and moving it to a managed framework would present more problems, difficulties, and maintenence hazards than benefits. Plus, it's my belief that C# is more beneficial for business logic-type stuff than things like games.

To summarize, the best remedy for Warzone is a well-designed, clean application framework. Like I said earlier, the original game was sufficiently modular enough that you can easily wrap existing functionality in C++ class objects (had a great deal of success with this), and then provide a clean way to remove components like the renderer. If you were to do that and then amputate the renderer and graft in a DX 8/9 one (take your pick .. Ogre3D, Torque, Irrlicht, etc), you'd be a hero in my book. Warzone would not benefit with DX9/10/11 so I'd not even bother trying to go higher than 9, at least initially.

Framework is key. You could spend a good 6-12 months improving under-the-hood stuff without the users noticing a single difference. I think the project I was involved with failed largely because we got trapped into trying to wow the user and improve on a renderer that really was barely capable of even doing what it did (although our updates to Edit World were pretty righteous). I'd be happy to provide technical advice wherever I can if you're still interested in taking up this crusade.

Seismo
Trained
Trained
Posts: 70
Joined: 06 Feb 2010, 17:32

Re: Just a new way - help would be appreciated

Post by Seismo » 28 Dec 2010, 13:52

Hi Chojun,

you are right. Well, i am currently developing a fresh engine on c#. I love this language because of many problems are solved. Developing an application with c# is much faster then c++ ever will be. And it is fast enough for many many objects especially if you use multi-tasking features (to use this consequential dx 11 is a must have). Optical beauties can be done within modern grafic cards (HLSL). The effort for the programmer is reduced to bring all object positions to the grafic card. The current WZ engine is using a very old technique for rendering and should be removed completly, which means to reinvent the whole grafic subsystem too. This will be a major part to use the full potential of current hardware. But this means to reinvent the script mechanism, the grafic images and the meshes.

I tested a lot free / open source engines but had to deal with the same issues i see in the curent wz project. Due to too much effort bringing them to run under all OS ever made the major development goes slower and slower. So i am just interested to deal with some parts of the old code just to shorten some effort i expect for the game logic. I just do not want to reinvent all wheels again. I want to mix up modern software with the major and genius features of the good old Warzone 2100 i love. In this project i do not see any progress on really annoing parts but things like 20 to 30 new OS supports, three to four diferent compiler support, balance tunings and a more and more cheating A.I. - well things i would do really at last or skip complete. I guess it is harder and harder to find proper developers who like to work on this painfull and even hard to understand code.

Finally, it seems that i have to start from the scratch and just use only the basic concepts of Warzone (the ingame menu, the science). And just reduce all to the multiplayer part.

Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3768
Joined: 03 Aug 2006, 19:39

Re: Just a new way - help would be appreciated

Post by Per » 28 Dec 2010, 16:10

I am not going to comment on the inherent stupidity of trying to totally rewrite a full game all on your own in your free time, that is your problem, but some things you said about this project are just flat out wrong. We do not support "20 to 30" OSes, only 3 (Win, Mac, Linux). Some guy keeps the game running on FreeBSD as well, but that never required any additional code. The extra code required to make it run on these 3 OSes is in fact extremely minimal, since we use a portable low-end library (SDL now, Qt later). So to insinuate that what is keeping this project back is our support of other OSes than Windows is just weird, besides wrong. The only restriction is that we cannot use Windows-only libraries, like some of the original DLLs. However, the original DLLs were not that good anyway, and there is no lack of top quality libraries and rendering engines available nowadays that are ported to all our supported platforms to choose from.

Seismo
Trained
Trained
Posts: 70
Joined: 06 Feb 2010, 17:32

Re: Just a new way - help would be appreciated

Post by Seismo » 28 Dec 2010, 17:44

Well, it is not that hard to to write a full game with minimal resources, it depends on the skills. It is fact that writing code only for one OS is much easier than for more than just one. And using more than one compiler is strengthen this fact. To extend an game with features no one really needs, because everyone who want to play strategic games have at least a windows installation around is only wasted time. Most games, especially the most popular strategic games (like Command & Conquer series, Supreme Commander, World in Conflict, but except Starcraft 2) are made for windows. So this plattform can not be that bad at all. The windows dll's are not more worse than the free crap to make a balancing act between several OSes. These free dll's eat resources, performance and last but not least a lot of code quality.

Seriously, you guys doing a great job and still keep up this mess rather good! I do have some issues within this project goals and it seems that some issues will never be fixed until i start over to eradicate them by myself.

User avatar
Rman Virgil
Professional
Professional
Posts: 3812
Joined: 25 Sep 2006, 01:06
Location: USA

Re: Just a new way - help would be appreciated

Post by Rman Virgil » 28 Dec 2010, 18:26

.

The entire original Savage game code base was created from scratch by 2 coders - also it's designers & co-counders of S2Games. It's become a successful, quality, indie, franchise of innovative RTSS games over the last 7 years without the funding of any of the major distributors. :3

And speaking in more general terms, this comes to mind.....

It's not uncommon in ambitious efforts to have your reach exceed your grasp at the time and this is a realization you cannot but face headon as you carry onward. But within that process embraced you learn, about yourself, about your craft, grow more able, even make discoveries you would not have otherwise - and those are valid enough affirmations of that very ambition where your reach, initially, exceeded your grasp. It is a trait shared by prime movers throughout history & upon which the conservative scavenge wholesale without acknowledgment, when they are not otherwise feasting like porcines at the trough. In fact, it is the only way to grow myelin, essential to any skill mastery. :hmm:

- RV :ninja:
.
.

Impact = C x (R + E + A + T + E)

Contrast
Reach
Exposure
Articulation
Trust
Echo
.

Chojun
Regular
Regular
Posts: 518
Joined: 25 Nov 2006, 17:49
Contact:

Re: Just a new way - help would be appreciated

Post by Chojun » 28 Dec 2010, 21:22

Seismo wrote:The effort for the programmer is reduced to bring all object positions to the grafic card.
This is essentially my point. Warzone is not capable of even utilizing 40% of capabilities of modern graphics APIs, so dropping in a DX9/10/11 renderer would not bring many visual benefits without first addressing the game's core functionality. I also agree with you on the scripting engine and the graphics - it sounds like you have a good grasp on what would need to be done to modernize it. Most - if not all - games nowadays are script-driven and Warzone's scripting currently is mostly limited to AI and limited mission logic support.
Seismo wrote:I guess it is harder and harder to find proper developers who like to work on this painfull and even hard to understand code.
I used to think the code was pretty bad myself but after working in industry for the last few years, it actually really isn't that bad at all (for the era - 1990s - it was written in). The code is also pretty lightweight, comparatively speaking. I know this is contrary to conventional wisdom but you'll have to take my word on it. It's not that bad. Its problems lie in a lack of concrete high-level design and poor implementations of specific subsystems (most notably, the network code).

Seismo
Trained
Trained
Posts: 70
Joined: 06 Feb 2010, 17:32

Re: Just a new way - help would be appreciated

Post by Seismo » 29 Dec 2010, 05:27

Chojun wrote:I used to think the code was pretty bad myself but after working in industry for the last few years, it actually really isn't that bad at all (for the era - 1990s - it was written in). The code is also pretty lightweight, comparatively speaking. I know this is contrary to conventional wisdom but you'll have to take my word on it. It's not that bad. Its problems lie in a lack of concrete high-level design and poor implementations of specific subsystems (most notably, the network code).
I had also some hard lessons in industry too and was mostly recruited for code refactoring. And yes, there is a way down to be more worse. But i also had some projects where i could learn very strong rules and strict management generating a very good supportable code. So in both directions is enough place. I am now a perfectionist and i know that this is a time and money killer. My considered opinion to bring up a high level object oriented code quality is often ridiculed by others, but the results speaking for themself. For instance the newer id tech engines is a good example of code i prefer.

User avatar
Rman Virgil
Professional
Professional
Posts: 3812
Joined: 25 Sep 2006, 01:06
Location: USA

Re: Just a new way - help would be appreciated

Post by Rman Virgil » 29 Dec 2010, 19:07

.

All the best with your effort, Seismo. :) I do regard it as eminently worthy; the results generative & robust long term for WZ. :3

Ironically, they closely parallel goals carefully articulated by the original community (much of it by Chojun) just prior to the source code liberation late 2004 - and subsequently subverted in '05 by the thoroughly unexpected FOSS tsunami invasion and agenda. (Kinda brings to mind Cortes, Pizzaro & the Incas.)

And, it also looks like the primary regard & focus here for the next year to 2 years will be devoted to enhancing the visual impression invoked during the first 60 seconds within the game world. (After which those very same visual aesthetics are subsumed to the subconscious as the game play comes to the fore and the players attention - and lasting satisfaction - is consumed in the various decision making choices that ARE the game itself.) So.... :hmm:

- Cheers, RV :ninja:
.

Impact = C x (R + E + A + T + E)

Contrast
Reach
Exposure
Articulation
Trust
Echo
.

Seismo
Trained
Trained
Posts: 70
Joined: 06 Feb 2010, 17:32

Re: Just a new way - help would be appreciated

Post by Seismo » 29 Dec 2010, 19:49

ouch, it could be understand as proofed fact that open source (FOSS = Free and open source software) is equal to poor and wacky code. Well, i will spend this moment silence :twisted:

Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3768
Joined: 03 Aug 2006, 19:39

Re: Just a new way - help would be appreciated

Post by Per » 29 Dec 2010, 20:21

Yet you come here to ask for help? :roll:

Safety0ff
Trained
Trained
Posts: 397
Joined: 18 Jul 2009, 23:23

Re: Just a new way - help would be appreciated

Post by Safety0ff » 29 Dec 2010, 20:41

Seismo wrote:Well, i will spend this moment silence :twisted:
Don't limit yourself to only one moment!

Post Reply