Mostly Harmless

Legacy:Dark Pulse/Source Code

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

It's been awhile since I've done anything on the Wiki, so I thought I'd share something with you. A Nice, little Rant. And it actually concerns a feasable topic.

The Unreal Engine Sourcecode.

Come on, Epic. Why not release it? You've clearly moved on from the Original Unreal Engine. The Last Game to use it, in its true to roots form as a FPS, was Deus Ex, I believe. That was released in 2000. And it's been already 5 years (1998-2003) for the ORIGINAL Unreal Engines. So Why Not Release em?

Look at the kinds of mods people made, with such limited Choicing! Unreal Fortress! Unreal 4 Ever! Tac Ops! All of these are great addons, and are absolutely great in their own right. But think for a second... If they had Full Source Codings, wouldn't the general Cosensus be that they'd be even better? Free from certain restrictions and Such that are part of the source code?

And while we're at it, let's expand on the subject. Let's take the Engine, Rip it apart, then put it back together, all with wholly new material. Someone I know wishes Desperately to work on a RPG with the Unreal Engine - And some of the ideas he has are right off the roof. Blow-you-away type stuff. Things like Decide how your character is. Think... If you attacked Human Players without remorse or reason - just walk up and slaughter them in cold blood - a Bounty would be put on your head, civilians would run you out of towns and try to kill you, and other players can team up to try and take you down. Day/Night Routines. Weaponry Galore. And Yes, some small UT "Bits" (One Idea we had was a Skeleton dressed in UT Armor and a Flak Cannon Nearby.) And for you to even start Multiplayer, you would have to immerse yourself, and beat single player mode first. It's nothing absolutely Long, maybe 40 hours of gameplay to just go through and win, but about 100 if you like to search and level up. Therefore, anyone online is already going to be at a good Level 30+, and know their stuff.

Oh, yes, and Easter Eggs. Tons of them. From little bits only me and him will understand, to the Traditional RPG of hidden items and subquests, it's all there. Thanks to the Unreal Engine, Each Town is a fully living, breathing world. Fights Occur in Real Time. Could you imagine what you'd play is? Would you be a Swordsman, Hacking and Slashing your way through? Maybe a Archer, Attacking at a Distance? How about a Necromancer, Wielding Unholy and Arcane Spells? Or maybe even an Assassin, someone for hire. Get your job, get your target, eliminate, get your pay, wait for next offer. The Choice is totally yours. Strength might not necesarily win a battle, not always.

Cheat Protection would be built in. We're making it near impossible for anyone to be able to alter a Reg Value, or to unlock multiplayer early. We would want our game to be throughly enjoyable, locked out to hacking and cracking, and, possibly, the most important thing of all.


Not one Penny will be required for you to buy a full version of the game. Not at all. Absolutely Free, for all to play, provided you can stomach the Full Download. :p Donations are nice, and we'll probably get some once people play our product, but I'm not expecting to make thousands of dollars or anything. All I want is the Sweetest Damn RPG Ever unleashed to man, and maybe I'll earn my 15 minutes of fame while I'm at it. :)

But for that to Happen, we need Epic. Only they can really make this go from being a bunch of ideas to a dead-serious project. When we're all sitting on Double Gigahertz Machines, and 1 Gig of Ram seems laughable, maybe, just maybe, our little project will come up.

We're waiting, Epic. We're Waiting...

Foxpaw: I hate to burst your bubble but... that RPG you described is wholly possible without altering the source... in fact altering the source wouldn't make it any easier. When you break it down, the executable form of the engine is little more than an interpretive programming language with a few (VERY few compared to the functionality that is made in UScript) native functions, and those are only native for the speed gains. Epic is not likely to release the source because then someone could make a game based on it and publish it without paying a dime. How can they prove you ripped off their engine, if you have all of the original sources? There is nothing you can do natively than you can't do in UScript, with very few exceptions, and the things that you could change in the engine would not really be an improvement in my opinion.

As an interesting note, once my mod is complete I've been considering expanding it into an MMORPG style. I'm convinced it's entirely possible within UScript.

EntropicLqd: The biggest barrier to an RPG style game (ignoring the server's apparent player limit) is the way the Unreal Engine handles maps. RPG landscapes need to be more dynamic than I feel the engine would like. Preserving state between the different maps you would need is also an interesting challenge although not impossible.

Dark Pulse: Maybe it's not perfect, but Unreal I did it well, albiet mostly in one direction. If anything, make several maps fo the area, or create what most RPGs do and utilize Switches of some kind. e.g; If X thing is on/off, then the Switch is on, otherwise, it's not.

For Example, If the Player has Beaten X Boss, then Y Town is saved. If Player fails to beat X Boss, then Y town is ruined.

These can be easily accomplished using IFs, ORs, ANDs, etc.

Foxpaw: Actually the player limit is relatively easily solved.. I've already got a plan for that one for my mod. Depending on what you mean about dynamic landscapes, I think it could all be easily done. Dark Pulse has the right idea there, you could easily change the static meshes on a bunch of buildings, etcetera. (assuming your buildings were static meshes and not BSP) Big changes like that aren't reasonable for the online version anyway, because you can't have player A walking around in a perfectly good city while player B inches away sees a ruined city.. but changes like that would be simple enough for the single player.

As an interesting tidbit, the Unreal Engine has a limited ability to save packages, which may allow you to modify a map in-game and save the modified version on the server. That would make thing a bit more persistent too. The RPG idea I think is 100% doable without messing with the source code.

EntropicLqd: Deus Ex saves the state of maps so I'm confident that the problem can be solved. I did do some experimentation with generating a level dynamically using just meshes. It ran much slower than I wanted and worked sometimes but not always. I never managed to replace a real static mesh with a different model either. It is possible that I simply got the code wrong though as I didn't spend a lot of time on it. I do agree with Foxpaw though - having the engine source code won't realy help you that much.

I don't see why the server cannot save the state of levels - hence allowing large changes to levels (like destroyed buildings etc).

Foxpaw: It can. You'd have to use static meshes to make buildings if they were going to change though, because there's no way to rebuild the lightmaps from within the game. Because the meshes don't occlude, pure mesh maps don't usually run as fast, though I heard that "ElecFields" that shipped with UT2003 was just one subtracted cube and all meshes. The meshes need to be modular if you do this, because of the way static meshes are drawn it's better to have, say, a bunch of different flourishes, etc. and reuse them to make different buildings than to have one giant building mesh... drawing ten identical columns requires only slightly more GPU than drawing a single column, but if they are all made into one building mesh it will have the expense of 10x the price of one column. To get the most performance you really need to reuse the same static meshes as much as possible in your levels.. though you can mix-and-match small pieces to make it look varied.

Oh, I forgot to mention too, you can't replace "staticmeshactors," because they are set as static and nodelete (I think. I know they can't be modified really in game.) Any regular actor set to DT_StaticMesh can serve the same purpose though, setting them to static and nodelete just makes them lower (IE none at all) overhead network-wise.

EntropicLqd: Electric Fields is indeed one large pile of meshes (some of the meshes are pretty large too). As is Magma thinking about it. The big advantage of using static meshes instead of BSP is that your map size reduces dramatically - possibly because of the way lightmaps are handled within the engine. You are dead right about the way meshes are handled by the engine though.

Dark Pulse: You're forgetting Static Meshes really weren't added to the engine until around Build 900 or so, IIRC... So it wouldn't be possible to add those in without a source code. Unless I'm totally wrong.

EntropicLqd: The point was that you wouldn't need the engine source code to build the mod you describe. You coupld simply build it straight on top of the UT2003 engine. In fact, having the source code to the engine would most likely complicate matters.

Dark Pulse: Except we intended to do this on the First Gen Builds, Unreal/UT.

Foxpaw: Well, the headers for the first generationa re availible if you wanted to make native code. But the point is, you could still do it. Substitute static meshes for regular meshes. BSP draws at the same rate as regular meshes, so there's no advantage to doing it with BSP instead, except for lighting and possibly collision. (though you could make your own collision) If you wanted to get fancy you could make things change with movers, and change textures using decals.

Dark Pulse: True. Now the tough part is convincing him that we can do without the source code. :p

dRawkbox: I agree, much of this can be done with UnrealScript but as with any developer why limit and not open the source if that *may* help you do something that you cannot do with UnrealScript like extending the server connection code. How can you make an RPG seem really realistic with only 32 clients connecting to a small map. I think that anything that can be done with UnrealScript should be done that way, but there are limitations that some good coders could realy modify and make into something amazing. Until Unreal is open source it will always be behind Quake and Half life mods in the *potential* arena.

Foxpaw: Well, like I said, the "source" is basically just the UScript interpreter. Very little is done natively. If you need more players you CAN extend the networking in Unrealscript. Run multiple servers and use TCP Links to have them share player data. In the original UT you can use Warpzones to seamlessly join maps (allegedly, I have not done this personally) so there's no real limit on map size, except what your hardware can handle.

dRawkbox: True warps and TCP links can be done with UnrealScript but it would be hard to make large gathering areas like a marketplace or a sanctuary in planetside. I think that great games can be made with Unreal as I have chosen it for a mod (it was a hard decision to choose over q3 engine with open) because it has advantages over other engines (large terrain being a huge point). It would be nice just to have the possiblility to be able to extend that if you went into production but could not cut the steep cost of licensing. A good game can be made on any engine though its all about gameplay not necessarily features.

Dark Pulse: Gameplay ALWAYS has come before features. That's why I find myself playing a game like Chrono Trigger more then I play Final Fantasy X.

It's good to have eye candy, but it shouldn't be the focus. If your mod looks pretty but plays like crap, what good does it do?

Foxpaw: Well, my idea with the TCP links was that you would have three types of controller/pawn instead of two: PlayerPawn, Bot, and PlayerStandin. The Standin would basically just recieve updates from whatever server the player was actually connected to, thus keeping it's incarnation on all the servers up-to-date. Basically a distributed server. In my opinion, those public gathering places are overrated anyway. It seems that everyone there is either trying to sell crap nobody wants, or trying to buy something nobody has.

Alternatively, you could make a proof-of-concept kind of deal for UT2003 and submit it to the MSU contest. First prize includes an engine license.

dRawkbox: Fox, excellent idea. Planetside MMOFPS style this could be used for a sanctuary (I agree about the marketplaces) in planetside this a place to traina dn get a squad going before battle ( to see what I mean). This is doable in the engine if someone wants to start a page for it. I would contribute as much as I can outside of my mod. With this library UnrealEngine potential would spread wide. There would be bandwidth but you could probably squeeze more than 32 players in one one room virtually.

El Muerte TDS: simple reason why not to release the Unreal\UT code: the current engine is based on the same code, releasing the code can reveal information that can be used against current and future games based on the engine. The reason that iD released the source code of the Quake and Quake 2 engine doesn't mean Epic Games should do the same.

Also note, if you have a great concept, worked out all details and legal issue, just contact Mark Rein with the info. If you're lucky you might get access to the code drop. But do note that whatever you are going to create must be closed source and 100% free (free as in beer, not speech).

Dark Pulse: I already noted in my main Rant that we planeed on having the game Free. As for Closed Source, I doubt that will be a problem. These people gave me so many hours of gaming enjoyment that respecting their wishes would be a simple thing for me to do.

RegularX: the last ucc_make I wrote was asking the same questions about the 436 build: UT's Last Stand

Dark Pulse: I remember reading that awhile back, and that, in turn, led up to me eventually writing this. We have some valid points, but so do the arguments above. In the nd, though, It's Epic who will decide when to Release the source.

We all know it will happen eventually - But exactly when, only Mark Rein probably knows.