Differences in Quake and Unreal
Moderator: InsideQC Admins
9 posts
• Page 1 of 1
Differences in Quake and Unreal
I dont have big understanding of Unreal Engines. I know the game script of Unreal is in some Cpp like language and I have heard they plan to move to Python. And they have few graphical tools, editors ...
I know that Quake logic is connected by few events to the engine (think, touch, prethink ...). How it is in Unreal?
I know that Quake physics is quite simplisitc, you just set movetype, solidtype attribues and touch, block event handlers. And if you want there is walk, setorigin, testpoint (??? testcontent ??? not sure about name) and traceline. How it is in Unreal?
How much is unreal sctipt just game logic like in quake?
In quake logic there are some broadcast/unicast messages, they most likely work even on net. Does Unreal have alternative?
One thing bothered me. How come there is more commercial games in Unreal than in Quake? Is it beceause of marketing, technology which fits that games better, ease of use, tools, available help (support), how graphics look like (first Unreal was looking MUCH better than other games in software) ...?
I know that Quake logic is connected by few events to the engine (think, touch, prethink ...). How it is in Unreal?
I know that Quake physics is quite simplisitc, you just set movetype, solidtype attribues and touch, block event handlers. And if you want there is walk, setorigin, testpoint (??? testcontent ??? not sure about name) and traceline. How it is in Unreal?
How much is unreal sctipt just game logic like in quake?
In quake logic there are some broadcast/unicast messages, they most likely work even on net. Does Unreal have alternative?
One thing bothered me. How come there is more commercial games in Unreal than in Quake? Is it beceause of marketing, technology which fits that games better, ease of use, tools, available help (support), how graphics look like (first Unreal was looking MUCH better than other games in software) ...?
-

daemonicky - Posts: 185
- Joined: Wed Apr 13, 2011 1:34 pm
unreal typically uses subtractive geometry, while quake uses additive geometry. generally this difference just means unreal editors crash on you more often. grr.
uscript is fairly different from qc. its fully object oriented rather than the procedural aproach used in qc (more like java than c++).
uscript's modularity permits runtime inheritance, like java, which is what provides support for mutators. While I've added support for mutator-type mods in FTE in the past, they're a pain to properly integrate. qc's dependancy upon globals is a major flaw in that regard.
additional functionality in unreal is provided by new classes rather than just new builtins, which provides much more context, such classes can be written in c++ code to provide stuff like socket apis.
uscript contains replication information. you configure various fields and they get replicated to the client automagically.
unreal was built with gamecode running clientside from the start.
uscript is fairly different from qc. its fully object oriented rather than the procedural aproach used in qc (more like java than c++).
uscript's modularity permits runtime inheritance, like java, which is what provides support for mutators. While I've added support for mutator-type mods in FTE in the past, they're a pain to properly integrate. qc's dependancy upon globals is a major flaw in that regard.
additional functionality in unreal is provided by new classes rather than just new builtins, which provides much more context, such classes can be written in c++ code to provide stuff like socket apis.
uscript contains replication information. you configure various fields and they get replicated to the client automagically.
unreal was built with gamecode running clientside from the start.
- Spike
- Posts: 2892
- Joined: Fri Nov 05, 2004 3:12 am
- Location: UK
Thank you very much for all the answers
.
I also heard that it is easier to make levels in subtractive geometry. I use Qoole.
I read somewhere that to make one level for Doom it takes much less time than to make on for Quake. I am going to try to modify Qoole, so I can extrude faces (and post this modification, probably in form of patch or tutorial here) ... to make pillars and levels like in Doom Builder, level editor for Doom (not sure if other Doom editors do it similar way).
So new functionality is added by subclassing and not by delagation?
On what principle these mutators worked?
Does QuakeC allows it with some modification (i doubt it has this interface by default)? Id really love to use languages like sql or prolog here (I dont want to do resolution at hand)
.
I dont know if I understand you correctly. Replication information is similar to those globals shared by clients and attribues shared by all entities?
I heard they will use python instead of uscript, not user if it is true.
Spike wrote:unreal typically uses subtractive geometry ...
I also heard that it is easier to make levels in subtractive geometry. I use Qoole.
I read somewhere that to make one level for Doom it takes much less time than to make on for Quake. I am going to try to modify Qoole, so I can extrude faces (and post this modification, probably in form of patch or tutorial here) ... to make pillars and levels like in Doom Builder, level editor for Doom (not sure if other Doom editors do it similar way).
Spike wrote:runtime inheritance, like java ... additional functionality in unreal is provided by new classes ..
So new functionality is added by subclassing and not by delagation?
Spike wrote:...I've added support for mutator-type mods in FTE in the past ...
So it does not have delegation, does it?
On what principle these mutators worked?
Spike wrote:additional functionality in unreal ... classes can be written in c++ code to provide stuff like socket apis.
Does QuakeC allows it with some modification (i doubt it has this interface by default)? Id really love to use languages like sql or prolog here (I dont want to do resolution at hand)
Spike wrote:uscript contains replication information. you configure various fields and they get replicated to the client automagically.
I dont know if I understand you correctly. Replication information is similar to those globals shared by clients and attribues shared by all entities?
Spike wrote:unreal was built with gamecode running clientside from the start.
I heard they will use python instead of uscript, not user if it is true.
-

daemonicky - Posts: 185
- Joined: Wed Apr 13, 2011 1:34 pm
Are there event handlers in Unreal similar to Quake's (think, touch, block, "onClientConnect", prethink, posthink ...)?
-

daemonicky - Posts: 185
- Joined: Wed Apr 13, 2011 1:34 pm
From what I know, somewhat similar. UnrealScript has both touch and untouch, QuakeC lacks the latter. UnrealScript also has ways of allowing you to say "do foo for 2 seconds, then do bar" without having to have a seperate functions for foo and bar and using think/nextthink to change between them.
Googling "unrealscript reference" will fill in the gaps of my knowledge. Also, note that it uses actor to mean entity.
It also supports state-based programming (most AI systems in games, including Quake, use this) at the language level, but note the caveats of this in the documentation...
Googling "unrealscript reference" will fill in the gaps of my knowledge. Also, note that it uses actor to mean entity.
It also supports state-based programming (most AI systems in games, including Quake, use this) at the language level, but note the caveats of this in the documentation...
Roaming status: Testing and documentation
-

Lardarse - Posts: 266
- Joined: Sat Nov 05, 2005 1:58 pm
- Location: Bristol, UK
daemonicky wrote:I am going to try to modify Qoole, so I can extrude faces (and post this modification, probably in form of patch or tutorial here) ... to make pillars and levels like in Doom Builder, level editor for Doom (not sure if other Doom editors do it similar way).
There are jokes at Func_Msgboard about "carving levels" in Quake (reference to the Worldcraft "carve" feature). It is a tool you must use very carefully as there are invalid shapes (concave ones, I believe) that will crash map compilers.
Generally the "carve" jokes at Func are about the completely wrong way to make a map for Quake (that lead to heartbreak and such that generally only someone inexperienced would attempt to do).
Just saying, although you can carve maps out of a huge block, the Quake engine and the tools aren't really designed for the chaos that when ensue.
The night is young. How else can I annoy the world before sunsrise?
Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
-

Baker - Posts: 3666
- Joined: Tue Mar 14, 2006 5:15 am
Lardarse wrote:Googling "unrealscript reference" will fill in the gaps of my knowledge.
I wish I did not.
They can iterate trough all collisions so it is procedural (foreach TouchingActors). It might be useful ...
States http://udn.epicgames.com/Three/UnrealSc ... tml#States in it looks nice to me. Overriding each event handler (think, touch, block ...) for each state (state implies behaviour so you write for each state new think, touch ...). I think this can be done by some scripting too ... this looks like syntactic sugar ... I mean, they just hoisted what would you otherwise do as a
- Code: Select all
touch_function = { if (self.state = 1) { } else if (self.state == 2) {} }
by doing
- Code: Select all
self.state1 = { self.touch = touch_function1 }
self.state2 = { self.touch = touch_function2 }
.
I do not know how State Stack works though ...
Lardarse wrote: "do foo for 2 seconds, then do bar" without having to have a seperate functions for foo and bar and using think/nextthink to change between them.
Cool.
Baker wrote:There are jokes at Func_Msgboard about "carving levels" in Quake ...
Baker wrote:(in other words) "... also concave invalid shapes crash map compilers... "
Yes. Quake supports only convex shapes see "Structure of Quake Levels" in http://www.bluesnews.com/abrash/chap64.shtml .
-

daemonicky - Posts: 185
- Joined: Wed Apr 13, 2011 1:34 pm
9 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 1 guest