Singularity Engine Released

Community Forums/Showcase/Singularity Engine Released

JoshK(Posted 2003) [#1]


http://www.leadwerks.com/Singularity3.zip (Source included)


Why did I release this? Am I quitting?

I suppose I could have made a few bucks by ”licensing” this source, but I didn’t want to for a few reasons. One, it would probably be more of a hassle than it was worth, with tech support, copyright protection, etc., etc., etc. Second, I probably wouldn’t make much money, maybe a few hundred bucks at most. Finally, no single part of this program is all that revolutionary. There are no mind-boggling routines here like lightmapping or constructive solid geometry, so it would be kind of ridiculous to sell a bunch of Blitz commands.

Why not keep it to myself then?

I think Blitz would benefit greatly if the community were able to collaberate on more game-oriented coding instead of only the low-level technical stuff. As our own individual setups get increasingly specialized, it becomes harder and harder to share code. Ultimately, I hope that individuals will contribute new material to this engine in the form of new entities and shaders. The game template is set up so that it is extremely easy to introduce new entity types into the system. Now, you do have to edit a few files to add a new entity, but once it is in, any time you place one of those entities in Cartography Shop, the program will pick it up and make it behave properly. This creates a modular system whereby one programmer can post code for a new entity, and anyone who wants to use it can easily introduce it into their copy of the engine. If an unknown entity exists in the map, it will be skipped by the loading routine.

This program automates a great many routines, so that instead of hard-programming settings into the game, you set them up in Cartography Shop. This program handles the following:

-Loading of Cartography Shop .csm maps.
-Automatic brush/shader loading and display including scrolling, sin/cos waves, and multitexturing.
-Portal vising system (beta)
-Entity loading and behavior, including particle systems, sounds, and flares.
-Newtonian Physics (To be added to.)
-Full lighting control, without horrible DX lights.
-Better 3DSound updating with inverse square volume falloff and source occlusion.
-Player controls.
-Different sound environments.
-Automatic skipping of many slow routines in response to low framerates.


poopla(Posted 2003) [#2]
Dude, I honestly can say that is the coolest thing ive seen anyone do in a while. Big thanks, Ill be checking it out :).


poopla(Posted 2003) [#3]
Taking a quick look, it appears to be an ABSOLUTELY awesome piece of work! :). Do you can if the plasma team developes it further? What liscense is on this (GPL or something?)? I had implemented alot of things into plasma I don't think you have in here. But your environment code is way ahead of ours.


JoshK(Posted 2003) [#4]
I'd prefer it if you try to work within my framework, as I develop it, so that we can all stay compatible with each other, but you can do whatever you want with it.

It would be easiest to develop this on an "entity" level, where you just add one entity at a time, and keep the code modular. I'll be updating the overlying stuff like physics and vising, but if you have ideas, I'll be willing to listen.


poopla(Posted 2003) [#5]
Sounds good, so long as I know what the liscense is. This is cool dude :).


Mustang(Posted 2003) [#6]
Wow - that's all I can say... and that's before DL'ing the stuff! :)

Kudos to you, Halo.


Tri|Ga|De(Posted 2003) [#7]
Thanx Halo

Looking forward to downloading the engine!


Simian(Posted 2003) [#8]
Blimey Halo, this is incredibly philanthropic! :))

Thanks for sharing, it's going to save a lot of people a lot of work. Truly inspiring work and kindness m8.


drdespair(Posted 2003) [#9]
Great work! The visuals are very nice ;)

however :)

I cant compile it 'out of the box'.. :( the premade exec works but when I try to make one my self, I get errors :/

D.


poopla(Posted 2003) [#10]
The thing that I found cool about it what the work youve done with sound effects halo. It's cool stuff. The rest seems relatively standard with any FPS. But the sounds was a really nice touch.


sswift(Posted 2003) [#11]
Well the demo is neat, though I'm surprised the framerate is consistently 20fps or less. Come to think of it, I don't even remmember it asking me which video mode I wanted to run it in so I don't know what video mode it was. Maybe it was a really high res mode.

I don't see much useful code in the functions I saw, and I don't think halo has ever heard of commenting code. :-) Maybe I didn't look in the right functions though cause the code I saw was really sparse... I didn't really see any game code at all. It must be in another directory. I'll have to take another look. I dunno why halo put so many funcitons in DLL format though. Some of those functions like the RGB funcitons could be easily implemented in Blitz and I don't see why you'd want to optimize them like that.

But the demo is cool. Just wish the level was a bit bigger.


ckob(Posted 2003) [#12]
so make it bigger :P


sswift(Posted 2003) [#13]
Why would I want to make helo's level bigger? I don't plan to USE it, I just wanted to explore more. :-)


coffeedotbean(Posted 2003) [#14]
Oh baby :D

I get 40-45fps on my Althon 1.6Ghz, Geforce3Ti, 512MBRam rig. More than enough, now i just wait till someone makes a full game :D.

And sound is something that is overlooked in most games, but in this case it was spot on.


Bagels(Posted 2003) [#15]
To quote a certain HomeStar Runner character...

"Now THAT's what I'm talking about! I mean you... and it... I can't take anym - I'm buying you a pizza!"


Doclar1(Posted 2003) [#16]
Good Job Halo!!!, very interesting to say the least, good
code seperation almost moduluar, almost...a great challenge
with any language.


"I think Blitz would benefit greatly if the community were able to collaberate on more game-oriented coding instead of only the low-level technical stuff. As our own individual setups get increasingly specialized, it becomes harder and harder to share code. Ultimately, I hope that individuals will contribute new material to this engine in the form of new entities and shaders."

Well said!

"There are no mind-boggling routines here like lightmapping or constructive solid geometry, so it would be kind of ridiculous to sell a bunch of Blitz commands."

Don't be modest, all the same, some of us would consider them mind-boggling if you don't mind, and use these as teaching aides.

on the ligher side:
Over all, you have done a great sevice to the community, by
sharing your knowlege (grasshopper), and now on to the greatest challenge of all.... can you click this mouse button before I turn it off?...



Thanks Halo, very much appreciate your hard work and talent!!


Warren(Posted 2003) [#17]
Looks cool!


sswift(Posted 2003) [#18]
I wonder how many people actually noticed that all the textures on the walls are actually the lightmap which is applied to the entire level. I thought that was funny.


RifRaf(Posted 2003) [#19]
Halo,
I dont usually comment on here, but I have to say you have impressed me, you obviously put alot of your time into somthing good, and now you just hand it out.. Thats cool. I dont know if I could do the same. Anyway I have downloaded the demo and will give the code a look soon.

Thanks for sharing.


JoshK(Posted 2003) [#20]
Well it's not like I am losing anything.


marksibly(Posted 2003) [#21]
Hey, thanks Halo.

Much appreciated, and I can't wait to see what you'll come up with next!


Wiebo(Posted 2003) [#22]
Yup, cool stuff, and a big decision to give all of that away. Much appreciated!


poopla(Posted 2003) [#23]
I hope the next big "Wow COOL!!!" effect comes when my guys release a demo of our RTS like game(being designed using our game engine). This mother has 10k lines of code already, and it has alot more to go. I't will be the first game of it's type made with blitz3d. The artist is amazing, and the visuals will be mind blowing. The engine is being designed to do multiple genre's of games, so alot of it's functionality isnt going into the RTS. Nice work once again halo.


sswift(Posted 2003) [#24]
Hey Halo I sent an email to your darkbasic.com address... I dunno if that address is valid or not though.


wedoe(Posted 2003) [#25]
Hmm, I guess it's not supposed to look like this:

But this is what I get!

Specs in sig..


Space_guy(Posted 2003) [#26]
Well atleast u get it to start. my work computers dont let me start it at all.


sswift(Posted 2003) [#27]
I wonder if perhaps the lightmap textures I'm seeing all over the walls are not supposed to be there either. :-)


Mathieu A(Posted 2003) [#28]
Hi Halo!

Your engine is very nice.

I'd like to know if you use decorator after CS3? Because In CS, we make cube and Box or when we have an indoor level it's not adapted.

I hope that you understand what I say...

Good luck


Ziltch(Posted 2003) [#29]
Looks good!

I found I had the same light problem as sswift.

If I changed the a line in the ReloadMaterial function

For n=0 To 3
to
For n=1 To 3

The lightmap did not over-draw the levels textures.

Not sure if this stuffs other things up, as it was just a quick look at the code.

I have also noticed the sky texture is very distorted. Like a out of sync tv. Maybe these problems are due to varing GFX card abilities?

Thanks for sharing Halo, great framework for people to work with!


dan_upright(Posted 2003) [#30]
gets a decent 27fps on my pc - which is pretty good going

looks nice and the only things that annoyed me were jumping (but that annoys me in more or less every fps) and the fact that the default keys weren't wasd


JoshK(Posted 2003) [#31]
The idea behind this and the editor is to maybe get some collaberation going on producing code and artwork that we can all use, instead of recreating the wheel a million times. For example, prefabs are something everyone can use to make better maps. What I do is I just play some Unreal II, look at the levels, and then open 3ds max and makes something somewhat similar. High-quality textures are possible too, but it takes so long to make one good one that we need lots of people working on them.

I think more people should try developing models and textures with a common theme in mind, so that we can work together to build a cohesive library of material.


Rob Farley(Posted 2003) [#32]
Josh, quite nice... 45fps stead(ish) athlon 900 geforce3.

As you said, the source isn't that exciting!

I'd love to see someone do something with this, it's a really good starting block.


SopiSoft(Posted 2003) [#33]
This is really a great piece of work m8 !!! ;-D
Keep up the good work, and thank you very very much for sharing this!!! :-D


jfk EO-11110(Posted 2003) [#34]
Thanks for sharing these Sources.

This program automates a great many routines, so that instead of hard-programming settings into the game, you set them up in Cartography Shop.


Do I need to buy a copy of CShop for this?


_PJ_(Posted 2003) [#35]
I was very impressed with the demo Halo, not just because of how nice it looks and sounds, but because although a lot of the functions and techniques implemnented are quite beyond my abilkity at the mnoment, you have shown (and provided source) exactly what is possible, and most importantly to me, how efficiently (i.e video memory and cpu time) this can be done. This is a great help, becase optimising code is something I am just beginning to look at!

Thanks!


Dave(Posted 2003) [#36]
This is an excellent release Halo, much respected i am sure by many programmers. I think a good idea would be for people to start creating smaller games based around the framework provided, for example someone should put togther an actual FPS game with basic AI, entitys, etc. Not for me cause i am busy dealing with VST's :-)


Zmatrix(Posted 2003) [#37]
Very nice Halo :)
I have to say this is impressive.
i got an average of 125 fps with a low of 90 and a high of 333

Athlonxp 1600+ 256meg - radeon8500 pro 128 meg
98se

Zmatrix


Red Ocktober(Posted 2003) [#38]
yes... very nice stuff josh... the sound code especially.

a first rate collection of functions to use as a framework for game development.

--Mike


JoshK(Posted 2003) [#39]
Now with real-time dynamic shadows. The light source is behind the fan, and the shadows continually spin around the room. Yes, the steam clouds react to the dynamic shadows. It will be released once I clean things up.




wedoe(Posted 2003) [#40]
Still looking like this on my setup:


(Same shot as before..)


poopla(Posted 2003) [#41]
Halo, is this dynamic shadow system going to be usable in other applications then just Singularity? I would love to fiddle with it in some tech demo stuff im playing with.


SSS(Posted 2003) [#42]
this is really awsome Halo... i dont know if you saw my post in the misc forum but i was wondering how i get my upgrade from CShop 2.8 to 3.0... because i did not buy throught the DB site, thanks the e-mail i baught it with was littleboy@... thanks again, look GREAT


Jeremy Alessi(Posted 2003) [#43]
Where do I get the PointInBox() function? I'm missing some Userlib I'm guessing. I got the Maths3D already?


Ziltch(Posted 2003) [#44]
Halo,
The problem I noticed with your sky texture, I encountered myself today.

It seems my Radeon 7500 GFX card does not like texture positions that are very large.

So I looked at you code and this fixed the trashed sky texture problem.

add before main loop
start=millisecs()


and

replace
PositionTexture t,MilliSecs()/10000.0,0
PositionTexture t2,MilliSecs()/20000.0,0.5


with
PositionTexture t,(MilliSecs()-start)/10000.0,0
PositionTexture t2,(MilliSecs()-start)/20000.0,0.5


Now the sky looks great!

Thanks again.


Orca(Posted 2003) [#45]
I get a display quite similiar to wiebo's, except it appears that the lower half of the display is corrupt...

(What do you know, I'm using a radeon 9000pro too :/ )


Michael Reitzenstein(Posted 2003) [#46]
Hi,

Don't use Millisecs in that way, at all. Ever. Either use a Mod on it or if speed is of concern, try the following code. Floating point inaccuracy is *greatly* increased with higher numbers and with the number of people who leave their machines on indefinitely increasing fast, it is sheer stupidity to convert MilliSecs( ) to a Float and rely on it. The -start method is good but it still isn't ideal.

PositionTexture t2, Float( MilliSecs( ) And ( 16383 ) ) / 16383.0, 0
PositionTexture t2, Float( MilliSecs( ) And ( 32767 ) ) / 32767.0, 0.5



Ziltch(Posted 2003) [#47]
My Computer is left on most on of the time.

So the millisecs does report high numbers.

I just printed out the current value of millisecs and got
366284760.

Halo,
That new screen pic of the new lighting looks amazing.


JoshK(Posted 2003) [#48]
The right way to do this is actually a GameTime() function, because you don't want to lose time when the game is paused and have the shaders "jump" to the proper position. Will be in a future version.


Litobyte(Posted 2003) [#49]
Ouch 11 frame per second here, when I'm close to the wall caustic.

P3 866 gf2mx 32MB

Though it sounds really good, and the looking is very nice.

Somebody asked before: do we need a copy of CS3 to use proficiently the engine ?


JoshK(Posted 2003) [#50]
Absolutely.


Litobyte(Posted 2003) [#51]
Ehehe you are doing like IDsoft doing...

providing engine source but licensing the MUSTHAVE editor.

Good luck with the sales HALO, I like to think that a good amount of money can be done with blitz programming :-)


jfk EO-11110(Posted 2003) [#52]
Cartography Shop 3. What would you do without me?


I'd do the f-word. :P So the release isn't that un-ego as one could assume in the first moment, right? Well at least the Sound Handling gave me some good ideas for what to rip next :)

BTW - how did you get that sticky thread for that 450 kB Model Project?

I want my sticky thread too :) How much does it cost?
Sticky threads for all!

EDIT: yes, I confess - I am jalous. ;)


Ricky Smith(Posted 2003) [#53]

Why did I release this? Am I quitting?



No - this is to try and boost sales of CShop 3 !

Nice marketing and very nice engine.

Not sure how effective your portalling system is though - the demo seems to render an awful lot of polys for such a small area - probably due to the decorative meshes.