PDA

View Full Version : I bring thee not simple rearrangements, but a whole new world of possibilities,,,



Not Inferno
April 17th, 2013, 10:14 PM
http://inferno.codebrainshideout.net/Images/progress a.png
http://inferno.codebrainshideout.net/Images/progress b.png
http://inferno.codebrainshideout.net/Images/progress c.png

The future looks brighter than ever, but only if there is enough hope.

n00b1n8R
April 18th, 2013, 01:37 AM
what's this gay shit who likes dubstep are you 13??

Btcc22
April 18th, 2013, 04:43 AM
What exactly are you building? I'm just going to assume that you're not crazy enough to try to implement the game in Java.

Patrickssj6
April 18th, 2013, 06:20 AM
that is pretty nifteh. download 4 fun? ^^

DarkHalo003
April 18th, 2013, 11:20 AM
This is obviously not Inferno.

Not Inferno
April 18th, 2013, 12:24 PM
what's this gay shit who likes dubstep are you 13??

http://www.modacity.net/forums/attachment.php?attachmentid=3191&d=1366305833

Kornman00
April 18th, 2013, 04:49 PM
I'd like to report a bug:

You're programming in Java

InnerGoat
April 18th, 2013, 05:14 PM
halo coming to an ipad near you

Jelly
April 18th, 2013, 05:15 PM
alpha release only $10

Futzy
April 18th, 2013, 05:18 PM
thanks for the update on prometheus

InnerGoat
April 18th, 2013, 05:36 PM
I'm looking forward to playing halo on a phone actually. please make this happen.

DarkHalo003
April 18th, 2013, 06:25 PM
I'd like to report a bug:

You're programming in Java
I agree, this is a huge error. The developers definitely need to be notified.

ThePlague
April 18th, 2013, 06:38 PM
I remember testing this awhile ago when it was a card game lol.

Patrickssj6
April 18th, 2013, 07:12 PM
thanks for the update on prometheus
bwahaha approved for funny

ThePlague
April 18th, 2013, 07:48 PM
GIVE US THE ALPHA!

DarkHalo003
April 18th, 2013, 09:27 PM
GIVE US THE ALPHA! TAGS
FTFY

ThePlague
April 19th, 2013, 01:10 AM
TAGS OR :gtfo:

Amit
April 19th, 2013, 08:46 AM
Beta build costs more. $20, for Beta, but you get starting rocket launcher and your choice of shotgun or sniper rifle. Note: special promotion weapons do not persist through death. But don't worry, you can get them back for just $2.49.

Not Inferno
April 20th, 2013, 12:20 AM
1. It's written in XNA and Visual C.
2. It's $50.00 for the beta and there is a weekly subscription fee.
3. Dubstep is the only true god.
4. The giant dad's word is law.
5. C++ is the slowest programming language ever made.
6. Linux and Mac support are permanently suspended and it was a bug that allowed it to run on multiple platforms.
7. The game will only be released on Xbox 720 because it's the only good platform.
8. Fucking niggers.

If I hear any misinformation I'm going to sue modacity.net for slander and grand theft tagging.

edit

0. Games for Windows Live and Windows 8 release will be delayed by 5.12 years.
-1. Array out of bounds.

Not Inferno
April 20th, 2013, 12:29 AM
Also, LWJGL makes my dick rock fucking hard, and I understand that Java has touched many you when you were children but you must forgive it's sins and learn to love it, carnally.

Kornman00
April 20th, 2013, 03:54 AM
Nope, Java is still a shitty pitty. Oracle helps drive the nail into the shitty pitty coffin.

Limited
April 20th, 2013, 08:24 AM
:neckbeard: java

Let me know when you code it in a real mans language.

flibitijibibo
April 20th, 2013, 04:11 PM
Yeah, use MonoGame for Windows 8 Metro and Windows Phone 8, you utter pleb

InnerGoat
April 20th, 2013, 04:33 PM
what fliblifijiibidoio said ^^

Not Inferno
April 21st, 2013, 12:29 AM
FUCK IT

I'm rewriting the entire game in lisp and use html and flash for the graphics libraries.

You fucking casuals.

Amit
April 21st, 2013, 02:29 AM
Oh, so this wasn't a troll thread? My bad.

ThePlague
April 21st, 2013, 02:54 AM
Hey buttslut give me a test version :D

Kornman00
April 21st, 2013, 04:13 PM
Hey buttslut give me a test version :D
edit: fucking quickmeme. Just click it: http://www.quickmeme.com/meme/3u0ziy/

Not Inferno
April 21st, 2013, 04:16 PM
I'm actually a top IRL.

True fax.

Amit
April 22nd, 2013, 03:09 PM
edit: fucking quickmeme. Just click it: http://www.quickmeme.com/meme/3u0ziy/

lawl. I never understood why people insult the person they are trying to get something out of.

Not Inferno
April 22nd, 2013, 11:07 PM
I just finished rewriting the entire shader system within the engine. GLSL shaders are now generated on demand and are optimized for the materials they are used on. I also re wrote my shader files so they are pretty flexible.

I understand how everything works but I want to make sure the documentation is clear. Is there anything that's not explained in this?
Here is the default fallback shader (http://inferno.codebrainshideout.net/default.shader) with the documentation commented into it. (its the blue and white checkerboard shader)
Here's the metal floor shader (http://inferno.codebrainshideout.net/metal plate floor ext.shader) I just threw together for a test.
And here's the cloud shader (http://inferno.codebrainshideout.net/clouds.shader)used in the skybox.

Heres a picture of that metal floor shader as well.
http://inferno.codebrainshideout.net/test.png

Not Inferno
April 23rd, 2013, 08:06 PM
Jesus fucking christ, halos animations look awful at 90 FOV. :ohdear:

d1NFH_Cf1jQ

ThePlague
April 24th, 2013, 01:02 AM
Lol you've never noticed that? Try out some other people's animations, like ICEE's or ODX's.

Elite051
April 24th, 2013, 12:39 PM
I don't understand all the Java hate. Sure, its not the most powerful language, but if you know what you're doing, it gets the job done.

Not Inferno
April 24th, 2013, 01:06 PM
I don't understand all the Java hate. Sure, its not the most powerful language, but if you know what you're doing, it gets the job done.
It's kind of like xbox fanboys. They just hate other consoles because they are ignorant or stubborn. No real logic behind it.

Java has flaws, but it also has many benefits. Like all languages.

ThePlague
April 24th, 2013, 02:35 PM
If you were to release this, how hard would it be to make maps and whatnot for it?

Limited
April 24th, 2013, 02:37 PM
It's kind of like xbox fanboys. They just hate other consoles because they are ignorant or stubborn. No real logic behind it.

Java has flaws, but it also has many benefits. Like all languages.
I may be stubborn against Java, thats true. I cant stand the language to the point I feel nothing should be made using it, because there is far better alternatives that use more widely accepted programming practices.

I guarantee that I have more experience in a multitude of languages than you, and I dont mean in an arrogant way I put it forward as to say that I have a vast experience in a lot of languages and feel I have enough to make a good judgement.

For now you will find Java may be playing ball, when you dive into more advanced techniques you will find there just isnt the capacity to do certain things, or at least you have to mold design around the implementation of Java, which should be the other way around.

There are by far better alternative to Java, its a dated language and nowadays causes more harm than good.

What you have got so far, is pretty nice so I will give you credit. I just feel you shouldnt be limited by the tools you use, and Java will limit you.

Btcc22
April 24th, 2013, 03:02 PM
Jesus fucking christ, halos animations look awful at 90 FOV. :ohdear:

Your FoV is closer to ~120 in Halo. However, I noticed that Halo scales the FoV by .85 for some reason, so the real FoV is lower than it might lead you to believe.

Not Inferno
April 24th, 2013, 03:28 PM
If you were to release this, how hard would it be to make maps and whatnot for it?
Easier than Halo. You just model whatever you want. Export a collision and a visual mesh as .obj or .tbj then import them and place them in the bsp. You can either just import the entire map as one mesh or make the map out of lots of small meshes. Lighting is dynamic cascading shadow mapping so no 50 hour radiosity.

Also, collision is per poly so you dont have to seal shit and fix open edges.

There are by far better alternative to Java, its a dated language and nowadays causes more harm than good.

What you have got so far, is pretty nice so I will give you credit. I just feel you shouldnt be limited by the tools you use, and Java will limit you.</em>
What languages?

And honestly java has not limited me at all so far. All the performance issues I've had have been due to my code being unoptimized.
Everything in the engine is implemented except particle systems, and ai. I don't plan on writing AI for the time being and particle systems won't be too difficult. Hell I'm still running the entire engine on one thread (aside from networking which is threaded for obvious reasons). I'm going to move a lot of physics on to a separate thread later for even more delicious optimization.

Patrickssj6
April 24th, 2013, 04:02 PM
One q: What is the goal of this project?

Not Inferno
April 24th, 2013, 04:07 PM
One q: What is the goal of this project?

Having virtual sex with cortana using occulus rift and a rumble pack.

leorimolo
April 24th, 2013, 07:38 PM
Having virtual sex with cortana using occulus rift and a rumble pack.

Oculus+Fleshlight


Also due to HER* nature a little shock or too down there wouldn't be a terrible idea.

Also this might be a stupid question, but are you porting the engine to some extent? Like can it read halo maps and probably spawn points, have a base set of weapons?

Edit: What I mean is, open halo1 maps, read BSPs, probably spawn and objective then handle the rest of the tags apart.

Not Inferno
April 24th, 2013, 10:19 PM
Oculus+Fleshlight


Also due to HER* nature a little shock or too down there wouldn't be a terrible idea.

Also this might be a stupid question, but are you porting the engine to some extent? Like can it read halo maps and probably spawn points, have a base set of weapons?

Edit: What I mean is, open halo1 maps, read BSPs, probably spawn and objective then handle the rest of the tags apart.

No, I have no plans to do that.
I honestly know nothing about reverse engineering game files like that. (aside from plain text stuff) And if I were to ever research it I'd be working on an editing kit for Dark Souls haha.

What my engine can do is provide a platform for any game you want to make, though it's focused on multiplayer. I'm using halo assets to test things.

My goal is that when everything is finished it should take minimal effort to port just about any game to my engine if you have the assets. *wink*

This will be an open source project. I have been pretty heavily commenting my code explaining how things work as well. And I'm hopefully going to provide a very robust physics library. (the current one is very simple)

I am a little nervous to start work on angular velocity physics. The math involved with that is pretty brain melting. :ohdear:

homebrued
April 25th, 2013, 03:07 PM
One q: What is the goal of this project?

That is a good question.

Limited
April 26th, 2013, 01:40 PM
And honestly java has not limited me at all so far. All the performance issues I've had have been due to my code being unoptimized.
Well soon you will hit issues with garbage collection, Java is really not great at managing it, you've mentioned you pretty much havent focused on thinking about garbage collection at all in what you have coded so far, it may work now but when you ramp things up it will become an issue. You havent managed it yet, so when it kciks in, it will block and halt the game up, which depending on how much it needs to clear up, can be multiple seconds, you really dont want that locking your game up do you.

Physics will probably be one of the hardest things for you to nail down, mathematics in Java is pure ugly and you will find it a headache.

Theres a reason why mainstream/indies dont use Java, its uncommon for games, its considered slow, its not a low-level language. I do wonder, what did you pick Java at the start? What was your thought process?

Are you at least using LWJGL?

Not Inferno
April 26th, 2013, 06:13 PM
Well soon you will hit issues with garbage collection, Java is really not great at managing it, you've mentioned you pretty much havent focused on thinking about garbage collection at all in what you have coded so far, it may work now but when you ramp things up it will become an issue. You havent managed it yet, so when it kciks in, it will block and halt the game up, which depending on how much it needs to clear up, can be multiple seconds, you really dont want that locking your game up do you.

http://www.ibm.com/developerworks/library/j-jtp09275/
(http://www.ibm.com/developerworks/library/j-jtp09275/)
My engine doesn't generate much big garbage I'd assume. (It's not a game like mine craft which throws away enitre chunks from memory all the time) All forms of "assets" are loaded, cached and reused. IE Once I load a weapon model or sound or animation it's loaded and used for every every object that needs it and held in memory until you load a new map. When a new map is unloaded that's when big garbage is going to happen.



Physics will probably be one of the hardest things for you to nail down, mathematics in Java is pure ugly and you will find it a headache.

I already have physics, I'm currently using point physics on most items and projectiles. I'm using spheres for players right now (going to use cylinders later when I learn how to do that) I also have basic model based collision as well. Physics is currently less of a performance issue than GLSL right now. GLSL perfomance is my current focus. And additionally, physics are done "in the cloud" for the multiplayer aspect so a lot of it won't be an issue.

The part I don't have is angular velocity physics and ragdoll (soft body) physics. That's going to be a last touch most likely.



Theres a reason why mainstream/indies dont use Java, its uncommon for games, its considered slow, its not a low-level language. I do wonder, what did you pick Java at the start? What was your thought process?

Meh, don't know. This was my first massive programming project so I thought it a good idea to use a language with less low level management. I'm not trying to make cry engine 3 so I really don't think I should worry about performance to a massive degree. I do know if I write another engine it will probably be c++ now that I have a pretty thorough understanding of how structuring a game engine goes.



Are you at least using LWJGL?

Of course, I already stated that. Speaking of LWJGL, I hope they get occulus rift support. I'll put that in my engine.

Not Inferno
April 26th, 2013, 07:23 PM
So here's another random test. UV animations are now possible with shaders. Will moslty use it for plasma effects and water and stuff but I just made some trippy ground shaders for a test.

gU_mvbq6BEw

Blame FFMPEG for killing my FPS. The engine was running at around 155fps.

Elite051
April 26th, 2013, 07:39 PM
Video is broken, you have a direct link?

Not Inferno
April 26th, 2013, 07:42 PM
http://www.youtube.com/watch?v=gU_mvbq6BEw&list=UUfB9IEEK0vis5-OImwOIUyQ&index=1
(http://www.youtube.com/watch?feature=player_embedded&v=gU_mvbq6BEw)Works for me though.

ThePlague
April 26th, 2013, 07:58 PM
Works for me, pretty cool. Can we do flowing grass? :D

Not Inferno
April 26th, 2013, 08:28 PM
Works for me, pretty cool. Can we do flowing grass? :D

Yeah I'm sure you can do some fun stuff with it. Might be interesting to add distortion mapping to the engine in some form, then you could make grass sort of shift in the wind or something.

Patrickssj6
April 26th, 2013, 09:08 PM
Flowing Grass? Geometry Shader *cough*

Not Inferno
April 26th, 2013, 09:52 PM
Flowing Grass? Geometry Shader *cough*
Vertex shader yes.

Patrickssj6
April 27th, 2013, 05:50 AM
OpenGwhateva

ThePlague
April 27th, 2013, 06:32 PM
I want to make a map for dis.

Not Inferno
April 28th, 2013, 04:22 PM
I want to make a map for dis.

I'll write some documentation on all the details of making a map in 12D. But I'd kind of like some feed back on the shader creation documenation that I posted on like page 4. I want to know if its clear.

Not Inferno
April 29th, 2013, 11:03 AM
The specular is being a garbage 200 elo scrub but the rest of the shader system is improving.
I added a new command for difference mapping in my shader files. diff(texture, texture) returns the difference of those two textures. Allows for lightingy plasmy stuff.
JhP3SA84u74

Elite051
April 30th, 2013, 11:05 AM
I'll write some documentation on all the details of making a map in 12D. But I'd kind of like some feed back on the shader creation documenation that I posted on like page 4. I want to know if its clear.

Seems a bit complicated, but I understood it well enough.

Not Inferno
April 30th, 2013, 03:51 PM
Seems a bit complicated, but I understood it well enough.

Anything I should clarify? I've added more basic math functions and I'm considering putting in the option to write straight into the GLSL shader through the games shaders as well for advanced stuff. I'm going to rewrite that documentation later with the new stuff.

The design is sort of based off of Unreal Engine 3 shaders but without the graphical interface that UE3 uses. Most of the stuff you can do with UE3 shaders can now be done with mine. :iamafag:

Elite051
April 30th, 2013, 06:08 PM
I'd like to rescind my comment. Upon viewing it on a non-mobile device, it looks much better. My complaint was not so much a critique of the documentation itself, simply its organization, which looks much better on a desktop.

In other words, its good, I'd love to see the new version.

Not Inferno
April 30th, 2013, 09:32 PM
I'd like to rescind my comment. Upon viewing it on a non-mobile device, it looks much better. My complaint was not so much a critique of the documentation itself, simply its organization, which looks much better on a desktop.

In other words, its good, I'd love to see the new version.

Good to hear. Thanks.

Also, fixed specular. Specular is now calculated per fragment and is now fully working with animated meshes (the normalization was wrong before). Though I ran into an odd bug that I have yet to trace to anything in particular. Whatever shader is created last doesn't really work correctly. I'll be looking into it later.

How's this looking guys?
http://inferno.codebrainshideout.net/Images/sex + 1.png

ThePlague
April 30th, 2013, 10:20 PM
That looks really awesome. Make a disco ball :D

Not Inferno
April 30th, 2013, 10:47 PM
THE PLAN:
1: Fit orthographic shadow projection to view frustram for more precise shadows.
2: Setup system for multiple shadow projection frame buffers so I can cascade shadow maps for high quality shadows near the player.
3: Setup framebuffer for first person models and animations and use a very small shadow projection for it. (first person shadows nigaaaaaaaaaa)
4: Dump TWL because it's a high maintenance bitch and stole my wallet after we had sex.
5: Write my own UI library using opengl and my shader library and have it on it's own framebuffer.
6: Particle systems need implementation. (dynamic lighting is already done though)
7: Get fucking wasted because the graphics engine is FUCKING DONE

Elite051
April 30th, 2013, 11:59 PM
I must say, the lighting in that last image looks fantastic! Certainly on par with the original.

I second Plague's request for a disco ball

ThePlague
May 1st, 2013, 12:04 AM
Should get this map into it and compare :D
http://hce.halomaps.org/index.cfm?fid=3135

Kornman00
May 1st, 2013, 04:12 AM
Aren't those shader code strings just compiled at run time? If you're going to completely hard code them, why not keep the comments as actual comments in the code there by reducing your executable's size and amount of work the parser has to do? Did you say exactly why your shader code is embedded in the source as strings already?

Not Inferno
May 2nd, 2013, 12:38 PM
Aren't those shader code strings just compiled at run time? If you're going to completely hard code them, why not keep the comments as actual comments in the code there by reducing your executable's size and amount of work the parser has to do? Did you say exactly why your shader code is embedded in the source as strings already?

The comments are there because I haven't gotten around to removing them. I have a big "TODO:" stamp at the top of the Shader class with a list of things that need optimizing. The shader class has gone through so many complete rewrites recently I just haven't seen a reason to optimize it.

The glsl shader code is broken up into a lot of pieces and I just take the pieces I need for each shader and glue them together (along with any parameters specified in the games shader files) to create a shader specialized for each material.

Making a holographic light? Shader just grabs the illumination code and transparency code.
Making a metal floor? Shader grabs lighting, normals, and specular.

Not Inferno
May 2nd, 2013, 01:36 PM
I must say, the lighting in that last image looks fantastic! Certainly on par with the original.

I second Plague's request for a disco ball

Thanks :iamafag:

The interesting thing is that lighting in the engine is dynamic. I'm going to add an option to do shadows staticly but right now you can do very natural day night cycles with lighting.

I am considering adding support for the old light mapping system (it's literally just vec4 light = texture2D(lightMap, texCoord[1]); in glsl so it wouldn't be super hard) and I'm also considering adding cube mapping. Halo used cubes instead of specular in a lot of places so it might be nice to have cube support.

What do you guys think.

Kornman00
May 2nd, 2013, 02:23 PM
The glsl shader code is broken up into a lot of pieces and I just take the pieces I need for each shader and glue them together (along with any parameters specified in the games shader files) to create a shader specialized for each material.

Making a holographic light? Shader just grabs the illumination code and transparency code.
Making a metal floor? Shader grabs lighting, normals, and specular.
It's too bad your engine doesn't have a tag-like system to it, then you could make this entire process data driven.

Not Inferno
May 2nd, 2013, 02:27 PM
It's too bad your engine doesn't have a tag-like system to it, then you could make this entire process data driven.

It does and it is.

Elite051
May 3rd, 2013, 05:29 AM
Cubemapping, absolutely. Old lighting system, I know nothing about.

Not Inferno
May 3rd, 2013, 11:45 AM
Cubemapping, absolutely. Old lighting system, I know nothing about.

Halo used a texture to do its lighting. Essentially radiosity would calculate lighting and then save it to a texture. A high quality radiosity can provide some pretty nice lighting with very little work for the gpu. But radiosity is completely static.

My engine currently uses shadow mapping and glow lighting which is all real time and is kind of expensive on the gpu. Since its real time though I can adjust the shadow quality to be higher near the player and I can also use that same lighting information to apply shadows to the first person models and what not.

ThePlague
May 9th, 2013, 05:58 PM
I am modeling a map right now, what is the difference between putting it into this and putting it into Halo? Modeling wise I am going to seal the map, just incase. I will unwrap it, etc, like I would with Halo. What else would I need to do to get it into your engine?

Not Inferno
May 14th, 2013, 12:18 PM
Been busy with life stuff. Anyways, just skype me and I'll send you the example models of hangemhigh and death island.

Not Inferno
May 21st, 2013, 01:36 AM
My brain hurts and my dick is a fruitloop. Adventure time or something. It sucks that now I have to optimize that code. It's a giant fucking mess and because of that I'm getting a pile of shit where my FPS used to be...

http://www.youtube.com/watch?v=59gigKtnk-o

59gigKtnk-o

nuttyyayap
May 21st, 2013, 06:03 AM
Could one do weather shit like rain or snow in this?

n00b1n8R
May 21st, 2013, 06:21 AM
Halo used a texture to do its lighting. Essentially radiosity would calculate lighting and then save it to a texture. A high quality radiosity can provide some pretty nice lighting with very little work for the gpu. But radiosity is completely static.

My engine currently uses shadow mapping and glow lighting which is all real time and is kind of expensive on the gpu. Since its real time though I can adjust the shadow quality to be higher near the player and I can also use that same lighting information to apply shadows to the first person models and what not.

Why can't you do baked textures for levels which you just layer shadows from non-bsp geometry onto?

Warsaw
May 21st, 2013, 07:19 AM
I'm guessing it's because that type of shadow can't cast onto dynamic models (i.e. the weapon in your hand) except as a primitive form of ambient lighting change around the player, which is more of a trigger than the actual shadow. RAGE did that, and it felt very 2003 in what should have been a cutting-edge engine. It also precludes the use of a convincing day-night cycle in a game, if that's something you want to add.

Zeph
May 21st, 2013, 12:05 PM
Why can't you do baked textures for levels which you just layer shadows from non-bsp geometry onto?
It takes more memory, but it's cheap on runtime. But there's a reason why only Unreal 3 is pretty much the only major engine still using it. It sucks and there are tons of better methods that move to a more accurate and real time method.

Not Inferno
May 21st, 2013, 02:46 PM
Could one do weather shit like rain or snow in this?
Easily. You can even have the rain fade in as clouds form over head and the lighting of the map dims to a greyish blue. Like in real life.


Why can't you do baked textures for levels which you just layer shadows from non-bsp geometry onto?
I could do that, and I'm considering having lightmaps as an option in the engine. That's not a priority right now though.


I'm guessing it's because that type of shadow can't cast onto dynamic models (i.e. the weapon in your hand) except as a primitive form of ambient lighting change around the player, which is more of a trigger than the actual shadow. RAGE did that, and it felt very 2003 in what should have been a cutting-edge engine. It also precludes the use of a convincing day-night cycle in a game, if that's something you want to add.

Yeah the lighting model I'm using is very expensive on the GPU but is completely dynamic and can create true day night cycles. The values related are in the bsp tag:


sunMapRadius<float> //Radius of the area that you want lit (IE the entire radius of hagemehigh or the island part of death island) anything outside this radius will just be normal brightness.
sunRotation<float x, float y> //Position of the sun 0,90 would be straight down from the sky.
sunRotationAnimation<float x, float y> //Amount the sun should move every tick

sunLightColor<float r, float g, float b>
sunShadowColor<float r, float g, float b>



It takes more memory, but it's cheap on runtime. But there's a reason why only Unreal 3 is pretty much the only major engine still using it. It sucks and there are tons of better methods that move to a more accurate and real time method.

Light mapping has it's place. In Unreal Tournament 3 I can see why they used it. It works great in that game and costs little on the GPU. I just decided not to use that kind of lighting. It's easier on the artist to use CSM I think. Less dicking around with lightmaps.

Warsaw
May 21st, 2013, 07:24 PM
I gots dual GPUs, I can handle it! Actually, maybe not, not without lowering the resolution. Does Frostbite use lightmaps anywhere? I was under the impression that all of the lighting in that game was dynamic as well, because it seems to be.

neuro
May 23rd, 2013, 05:53 AM
lightmaps are a pretty crappy way of doing anything in general if you're looking to make something that's supposed to run on more than an ipad.
/artist perspective

PenGuin1362
May 24th, 2013, 04:36 PM
deferred rendering ftw.

Not Inferno
May 28th, 2013, 08:34 PM
deferred rendering ftw.

Did some research on that. Looks interesting. I'm far past being able to make such a drastic change to the engine, but some day when I write a new engine I'll try that.


lightmaps are a pretty crappy way of doing anything in general if you're looking to make something that's supposed to run on more than an ipad.
/artist perspective
They have a few advantages. A good use of lightmaps can provide very nice indirect lighting and shaped lighting for very cheap.

Also on a side note. After some simple optimizations within the shadow PCF and distance interpolation I've taken it from 40~ fps back to 120~ fps. Still lots to work on though.

PenGuin1362
May 28th, 2013, 11:28 PM
Image based lighting and consine/gloss maps plz.

Not Inferno
May 29th, 2013, 03:18 AM
Cleaned up shadows some more. Improved performance a good bit, still a lot to do with that though. Post processing is now supported.

Bloom filter:
http://inferno.codebrainshideout.net/Images/Screenshot from 2013-05-29 03:08:56.png
Unfiltered:
http://inferno.codebrainshideout.net/Images/Screenshot from 2013-05-29 03:10:00.png

Anyone got any nice HDR or bloom glsl shaders I can throw on there? The one I used for testing is absolute ass. :v:

Considering doing water tommarow. Or maybe first person frame buffers.

Patrickssj6
May 29th, 2013, 03:24 AM
Nvidia has a library of shaders for FX Composer

Not Inferno
May 29th, 2013, 03:27 AM
Also, is it safe to lightly drink alchol 12 hours after taking 10mg adderol? I'm doing it anyways but I hope that's enough time.

n00b1n8R
May 29th, 2013, 05:59 AM
amphetamines and alcohol go hand in hand
source: breaking bad

Not Inferno
May 29th, 2013, 11:20 PM
I swear that water is a performance rapist, this is partially due to the code I wrote that writes the ondemand shaders doesn't "post optimize" yet. That's another thing on the list haha.

Also, no I'm not using a fog plane. Considering if I even want to put something like that in the engine atm.
HD button says hi.
Ge2GWnhGA_M

ThePlague
May 30th, 2013, 12:46 AM
I'd hit it.

Not Inferno
May 30th, 2013, 01:31 AM
And now I have a framebuffer in place to render first person models. And thank god for once the GLSL code was simple. Coming to a total of 3 lines.

vec4 fp = texture2D(fp, texCoord);
vec4 world = texture2D(world, texCoord);
gl_FragColor = ((1 - fp.a) * world) + (fp.a * fp);

My original architecture related to the player and hud also worked without many changes. It's nice when stub code you wrote ages ago works exactly as it should when you hook that shit up to the renderer.

That's it for tonight. I"m pooped. :v:
Tommarow, fix that horrific bug I found in BSP and then begin work on the UI framebuffer and the 12DUI library. And if there is time add the scalar functions to shader so that we can have nice things like ammo counters on guns. :iamafag:

Not Inferno
May 31st, 2013, 02:18 AM
Scalar functions in shaders now supported. I hardcoded it to 4 float variables (scalarA, scalarB, scalarC, scalarD) but this can be expanded later if I feel like it. Basically you can write in your shader like:
diffuse=tex<0,1,1,0,0,0,0,rgb> * scalarA
or
diffuse=tex<0,1,1,0,0,0,scalarA,rgb>

And then you can create an object like a weapon or vehicle that uses that shader and you can set scalarA during each draw.
So you can use scalarA to turn on and off the lights on a warthog or to animate the tires to spin when it's moving.

Halo had a similar system but it was more restricted.

Also, I'm about to tear TWL out of the engine and start writing my own library to replace it. Making a bak of everything and crossing my fingers.

Not Inferno
May 31st, 2013, 07:44 AM
Welp I'm done for the night. Major changes include:
TWL has been completely removed from the engine.
Input has been completely rewritten and is set up in a much more "uniform" way. Improved overall.
Keybinds are now very easy to rearrange.
The ground work for 12DUI is in place and is the next thing I'll be working on.

Roostervier
May 31st, 2013, 05:56 PM
Also, is it safe to lightly drink alchol 12 hours after taking 10mg adderol? I'm doing it anyways but I hope that's enough time. I used to take 80mg adderall and drink like an alcoholic (mostly because the adderall). The only thing that makes it dangerous is the fact that because it's a stimulant, you may not feel as drunk as you really are and therefore have the propensity to get alcohol poisoning, or if you take higher doses of it at the same time (without a tolerance) you could possibly suffer a heart attack. You'll be fine.

PenGuin1362
May 31st, 2013, 07:58 PM
Welp I'm done for the night. Major changes include:
TWL has been completely removed from the engine.
Input has been completely rewritten and is set up in a much more "uniform" way. Improved overall.
Keybinds are now very easy to rearrange.
The ground work for 12DUI is in place and is the next thing I'll be working on.

Where's my HDR IBL

Not Inferno
May 31st, 2013, 11:51 PM
Where's my HDR IBL

Lighting is finally how I want it and I'm not rewriting it.

I can of course do HDR through the post processing I assume.

Also, (completely relevant I swear) been working real hard today on this:
jWwmc5VwPvg

Not Inferno
June 1st, 2013, 08:57 AM
So the implementation of UI is done. I need to flesh out the features some more and integrate into the player controller but it is working now.
I recreated the halo health and shield bar using my amazing artistic skills.
I used these 3 absolute master piece drawings:
3214
3213
3215

And made this basic test hud. I put up 3 screenshots showing the color change and bar fill and empty.
http://inferno.codebrainshideout.net/Images/hud testa.png
http://inferno.codebrainshideout.net/Images/hud testb.png
http://inferno.codebrainshideout.net/Images/hud testc.png
I'm tired as balls at this point. Won't be doing any more work for the next 2 days because of life stuff but I feel that a lot of progress has gone through this week.

Skyline
June 1st, 2013, 09:47 AM
Looks like you are using the fixed pipeline still, just a heads up if you didn't already know, it's been removed since opengl 3.1+/ES 2.0+ if you ever plan to use those features or go mobile.

Not Inferno
June 1st, 2013, 10:01 AM
Looks like you are using the fixed pipeline still, just a heads up if you didn't already know, it's been removed since opengl 3.1+/ES 2.0+ if you ever plan to use those features or go mobile.

I'm using a Vertex Buffer Object, a couple of Framebuffer Objects and GLSL. How exactly am I using the fixed pipeline? :raise: I used a couple of the old glBegin(GL_QUADS); for drawing the rectangles for hud elements though. Don't see a reason to do a VBO for a couple of quads.

Not Inferno
June 1st, 2013, 10:03 AM
That health bar is cool an all, but isn't it supposed to be on the right side of the screen?

Woah... I haven't played Halo in a long time. I thought it was the left side...

Good news is that I can literally just top right align and mirror the texture coordinates and it's correct haha.

azjesse
June 1st, 2013, 12:04 PM
If be happy to help out with the HUD.

Warsaw
June 1st, 2013, 12:32 PM
Proof of concept, man, proof of concept.

t3h m00kz
June 1st, 2013, 06:04 PM
shit dude. You seriously took off with this whole coding business.

And here I am not even knowing where the fuck to start :D HOW DO

Not Inferno
June 1st, 2013, 08:44 PM
shit dude. You seriously took off with this whole coding business.

And here I am not even knowing where the fuck to start :D HOW DO

When you are professionally unemployed it's much easier to teach your self HYPER TRIGONOMETRY.

Zeph
June 1st, 2013, 09:10 PM
When you are professionally unemployed it's much easier to teach your self HYPER TRIGONOMETRY.
The funny thing is that HYPER TRIGONOMETRY is much simpler than regular trigonometry.
All those years in school and they never really did teach you how to use it in a way that's useful.

Not Inferno
June 1st, 2013, 09:16 PM
The funny thing is that HYPER TRIGONOMETRY is much simpler than regular trigonometry.
All those years in school and they never really did teach you how to use it in a way that's useful.

Schools teach you mathematical theory trig. Programming teaches you actually useful trig. :v:

kid908
June 2nd, 2013, 06:28 PM
But trig is extremely useful D:
I use normal trig a lot more than hyperbolic trig.

Anyways, looks really neat so far. Just wondering how much resources do it hog in it's current state?

Not Inferno
June 4th, 2013, 05:28 PM
But trig is extremely useful D:
I use normal trig a lot more than hyperbolic trig.

Anyways, looks really neat so far. Just wondering how much resources do it hog in it's current state?

CPU resources? Minimal.
GPU resources? Absolute rapist right now.

Currently the engine runs at maximum fidelity because I don't have a graphics config yet haha. The planned lowest graphics quality will be like netbook level graphics (unlit diffuse rendering only) so it should be fine.

Ryx
June 4th, 2013, 06:15 PM
so, it's compatible with the old map format?

Not Inferno
June 4th, 2013, 09:36 PM
so, it's compatible with the old map format?

Nope.

Not Inferno
June 7th, 2013, 12:52 AM
Ui tag format and renderer is slowly taking shape. Just need to start writing console commands since the buttons on Ui will simply send console commands to change setting, join servers, load maps, send chat messages, and etc.
http://inferno.codebrainshideout.net/Images/dat ui.png

Not Inferno
June 7th, 2013, 05:06 AM
:v:

Easier to see in HD.

zM7JztWDG88

PopeAK49
June 8th, 2013, 04:28 AM
http://i0.kym-cdn.com/photos/images/original/000/197/247/Fap.gif

Not Inferno
June 11th, 2013, 09:46 AM
Just finished writing a nice fat console and Ui scripting language. The Ui scripting is pretty simple but method based and strong enough to do everything I need. Haven't really documented how it works but an example would be like:

console(getInput(input console)); clear(input console);
That line of code would get the input from the console text field and then send it to the games console and then clear the text field.

goto(2); setInput(input player name, getSetting(userName));
That line would open the Ui frame 2 and then look up the user name of the player and then set the input field to the players user name.

console(connect getInput(input ip adress) getInput(input port));
That line would get the ip adress and port from two text boxes and then connect to a multiplayer server with it.

There is of course loads more you can do with this, these are just examples. I made a console for the game using the Ui script language. Works quite nicely :P


name=Console

frame 0 closed
frame 1 open focus(input console); console(log test);

begin input
input console
1
graphics/shader/ui/console/inputBox.shader
0,0
1024,13
left,bottom

console(getInput(input console)); clear(input console);
end


Nothing to really show this time since all the work was under the hood stuff. Might have something more visual next time.

edit-
Oh and I've linked the main actor structure into the console with Java.reflection. That means you can literally call methods of a specific object in the game through the console.

I'm going to have it set up so you can be like acc <object id> <method> <param> <param> ...
So basically you could acc 23 setHealth 100,
or acc 17 kill
or acc 45 push 12 15 102
or acc 3 jump

And so on. Might make for some interesting custom game types :P

Not Inferno
June 23rd, 2013, 08:06 PM
Just stuff.
-WbxlvmPRxQ

n00b1n8R
June 23rd, 2013, 08:36 PM
cool transparency on the overlapping bubbles~~

Not Inferno
June 23rd, 2013, 09:22 PM
cool transparency on the overlapping bubbles~~

Thanks for pointing out what the video is focused on and what I wrote in the description. Issue is because I need to sort the particles by depth manually because GL doesn't like transparency in the depth buffer. I'm going to have the particle system do that and also merge all the geometry for performance. :v:

Not Inferno
June 25th, 2013, 06:18 PM
K fixed.

dFmZjRHV9Zw

:realsmug:

Not Inferno
June 27th, 2013, 11:13 PM
I figured out what halo was missing. Totally fixed. Beta coming out tomorrow.

azITH3LNN-s

Farting bubbles. :realsmug:


Oh and if anyones interested here is the big list at the top of the engine class containing everything left to do:


/** This is the big scary fucking list of doom, things that need to get DONE **/

//TODO: OPTIMIZE FUCKING EVERYTHING, ESPECIALLY SHADERS

//TODO: HUGE TODO SO TODO AGAIN BITCH. UNIFY ALL TAG READING WITH .TRIM() and WITH SIMILAR SYNTAX. ROIT PLZ

//TODO: EVENT SCRIPTIN LANGUAGE

//TODO: I generally dislike the static camera properties tran and rot. Maybe redo that shiz.

//TODO: standardize making copies of location values and what not to the constructor of the recieving object. I dont like objects pointing at the same location value. Bad shit happens.

//TODO: MODEL LODS FFS YOU FUCKING PLEB

//TODO: LONG DISTANCE CULLING BECAUSE NIGGER

//TODO: CLEAN UP THE FRUSTRUM FOR SHADOW MAPS, SHIT IS A LITTLE OFF AND THE RADIUS TENDS TO CLIP THE EDGES OF THE DEPTH MAP OCCASIONALLY

//TODO: complete all stub unloading files code. (any super class with a method called unload() )

//TODO: make things private that don't need to be public mb mb mb mb mb (EASY)

//TODO: add rotation and rotation animation support to shader texture calls (FUCK MY DICK) this will require me to go through and add 2 new values to EVERY SINGLE FUCKING texture<> call in EVERY SINGLE FUCKING shader tag in the game.

//TODO: SPIRTES I THINK MAYBE

//TODO: CUBEMAPS I THINK MAYBE

//TODO: OPTIONAL STATIC LIGHTMAPS W/ BLENDING INTO CSM. BUT MOST LIKELY NOT EVER

//TODO: CREATE DUMMY AI THAT JUST SORT OF EXSISTS BUT HAS NO REAL FUNCTION. A STUB OF AI FOR PEOPLE TO HAVE SEX WITH. WILL STRUCTURE SIMILAR TO PLAYER CLASS INTERACTIONS WITH GAME ACTORS

//TODO: UI TEXT RENDERING NEEDS A TRUE LIBRARY THAT USES REAL FONTS. CURRENT ONE IS A BAD JOKE

//TODO: DISTANCE BASED FOG FOR BETTER SKYLINES AND FOR GENERAL FOG STUFF LIKE RAIN AND SNOW (EASY)

//TODO: EITHER RESEARCH AND CODE MY OWN RIGID BODY PHYSICS OR USE JBULLET3D (HARD AS MY DICK WHEN I SEE DARKS SOULS 2)

//TODO: GRAPHICS SETTINGS, NEED THOSE. WILL JUST HAVE FLAGS FOR DIFFERENT QUALITIES THAT CAUSE SHADER TO USE LESS NICE CODE (LIKE USING VERTEX SHADING n SHIT) AND LESS SHADOWS OR NO SHADOWS N SHIT

//TODO: AND OF COURSE! FINISH EVERY OTHER TODO THAT IS SCATTERED THROUGHOUT ALL THE REST OF THE CODE. GG SCRUB GET GOOD NO RE 420 BLAZEIT

Rentafence
June 28th, 2013, 09:57 AM
The fuck is this gaylo

InnerGoat
June 28th, 2013, 12:30 PM
rentafence please don't be rude this is obviously the pokemon mmo we all wanted



make more

Not Inferno
June 28th, 2013, 11:23 PM
So I just wrote the interpretor and "compiler" for 12D's scripting language. It's based on lisp similar to halos. What kind of scripting functions do you guys want to see?

Note that the "all" can be set as "client" or "server". Meaning you can have scripts that run soley on client or on server side. All means both ofc.

As for the format here is the script I wrote as a test:

(var boolean test_boolean false)
(var boolean test_boolean2 true)
(var int test_int 0)
(var int test_int2 125)
(var int test_int3 -10020)
(var float test_float 0)
(var float test_float2 0.01)
(var float test_float3 5219.12)
(var string test_string "string")
(var string test_string2 "ass twats")
(var string test_string3 "42")

(script all dormant "test dormant script"
(if test_boolean
(begin
(log "test boolean is true")
)
(begin
(log "test boolean is false")
)
)
)

(script all initial "test initial script"
(if (<= test_int 5)
(begin
(log "test int is less than 5")
)
)
(log "now we are here")
(log "and then here")
(kawaii "uguu" (get haruhi kyon))
(sleep 300)
(log "and finally here")
(play)
)

(script all continuous "test continuous script"
(sleep 900)
(log "continous script is still continuing")
)

And here is the compiler debug output showing the script converted to a tree structure for me to execute it:

------------RAW SCRIPT-----------
(var boolean test_boolean false)
(var boolean test_boolean2 true)
(var int test_int 0)
(var int test_int2 125)
(var int test_int3 -10020)
(var float test_float 0)
(var float test_float2 0.01)
(var float test_float3 5219.12)
(var string test_string "string")
(var string test_string2 "ass twats")
(var string test_string3 "42")
(script all dormant "test dormant script"(if test_boolean(begin(log "test boolean is true"))(begin(log "test boolean is false"))))
(script all initial "test initial script"(if (<= test_int 5)(begin(log "test int is less than 5")))(log "now we are here")(log "and then here")(kawaii "uguu" (get haruhi kyon))(sleep 300)(log "and finally here")(play))
(script all continuous "test continuous script"(sleep 900)(log "continous script is still continuing"))
------------END-----------
---------Variables----------
test_boolean = false
test_boolean2 = true
test_int = 0
test_int2 = 125
test_int3 = -10020
test_float = 0.0
test_float2 = 0.01
test_float3 = 5219.12
test_string = string
test_string2 = ass twats
test_string3 = 42
---------END----------
--------------BEGIN-----------------
--------------Iteration:0-----------------
(script all dormant "test dormant script"(if test_boolean(begin || (log "test boolean is true") || )(begin(log "test boolean is false"))))
--------------Iteration:1-----------------
(script all dormant "test dormant script"(if test_boolean || (begin <0> ) || (begin(log "test boolean is false"))))
--------------Iteration:2-----------------
(script all dormant "test dormant script"(if test_boolean <1> (begin || (log "test boolean is false") || )))
--------------Iteration:3-----------------
(script all dormant "test dormant script"(if test_boolean <1> || (begin <2> ) || ))
--------------Iteration:4-----------------
(script all dormant "test dormant script" || (if test_boolean <1> <3> ) || )
--------------DONE-----------------
(script all dormant "test dormant script" <4> )
--------------END-----------------
--------------BEGIN-----------------
--------------Iteration:0-----------------
(script all initial "test initial script"(if || (<= test_int 5) || (begin(log "test int is less than 5")))(log "now we are here")(log "and then here")(kawaii "uguu" (get haruhi kyon))(sleep 300)(log "and finally here")(play))
--------------Iteration:1-----------------
(script all initial "test initial script"(if <0> (begin || (log "test int is less than 5") || ))(log "now we are here")(log "and then here")(kawaii "uguu" (get haruhi kyon))(sleep 300)(log "and finally here")(play))
--------------Iteration:2-----------------
(script all initial "test initial script"(if <0> || (begin <1> ) || )(log "now we are here")(log "and then here")(kawaii "uguu" (get haruhi kyon))(sleep 300)(log "and finally here")(play))
--------------Iteration:3-----------------
(script all initial "test initial script" || (if <0> <2> ) || (log "now we are here")(log "and then here")(kawaii "uguu" (get haruhi kyon))(sleep 300)(log "and finally here")(play))
--------------Iteration:4-----------------
(script all initial "test initial script" <3> || (log "now we are here") || (log "and then here")(kawaii "uguu" (get haruhi kyon))(sleep 300)(log "and finally here")(play))
--------------Iteration:5-----------------
(script all initial "test initial script" <3> <4> || (log "and then here") || (kawaii "uguu" (get haruhi kyon))(sleep 300)(log "and finally here")(play))
--------------Iteration:6-----------------
(script all initial "test initial script" <3> <4> <5> (kawaii "uguu" || (get haruhi kyon) || )(sleep 300)(log "and finally here")(play))
--------------Iteration:7-----------------
(script all initial "test initial script" <3> <4> <5> || (kawaii "uguu" <6> ) || (sleep 300)(log "and finally here")(play))
--------------Iteration:8-----------------
(script all initial "test initial script" <3> <4> <5> <7> || (sleep 300) || (log "and finally here")(play))
--------------Iteration:9-----------------
(script all initial "test initial script" <3> <4> <5> <7> <8> || (log "and finally here") || (play))
--------------Iteration:10-----------------
(script all initial "test initial script" <3> <4> <5> <7> <8> <9> || (play) || )
--------------DONE-----------------
(script all initial "test initial script" <3> <4> <5> <7> <8> <9> <10> )
--------------END-----------------
--------------BEGIN-----------------
--------------Iteration:0-----------------
(script all continuous "test continuous script" || (sleep 900) || (log "continous script is still continuing"))
--------------Iteration:1-----------------
(script all continuous "test continuous script" <0> || (log "continous script is still continuing") || )
--------------DONE-----------------
(script all continuous "test continuous script" <0> <1> )
--------------END-----------------
-----------FINAL SCRIPTS-----------
== test dormant script
- (script all dormant "test dormant script" <4> )
-- Script Call ID#4 Src: (if <-1> <1> <3>)
--- Script Call ID#-1 Src: test_boolean
--- Script Call ID#1 Src: (begin <0>)
---- Script Call ID#0 Src: (log <-1>)
----- Script Call ID#-1 Src: test boolean is true
--- Script Call ID#3 Src: (begin <2>)
---- Script Call ID#2 Src: (log <-1>)
----- Script Call ID#-1 Src: test boolean is false

== test initial script
- (script all initial "test initial script" <3> <4> <5> <7> <8> <9> <10> )
-- Script Call ID#3 Src: (if <0> <2>)
--- Script Call ID#0 Src: (<= <-1> <-2>)
---- Script Call ID#-1 Src: test_int
---- Script Call ID#-2 Src: 5
--- Script Call ID#2 Src: (begin <1>)
---- Script Call ID#1 Src: (log <-1>)
----- Script Call ID#-1 Src: test int is less than 5
-- Script Call ID#4 Src: (log <-1>)
--- Script Call ID#-1 Src: now we are here
-- Script Call ID#5 Src: (log <-1>)
--- Script Call ID#-1 Src: and then here
-- Script Call ID#7 Src: (kawaii <-1> <6>)
--- Script Call ID#-1 Src: uguu
--- Script Call ID#6 Src: (get <-1> <-2>)
---- Script Call ID#-1 Src: haruhi
---- Script Call ID#-2 Src: kyon
-- Script Call ID#8 Src: (sleep <-1>)
--- Script Call ID#-1 Src: 300
-- Script Call ID#9 Src: (log <-1>)
--- Script Call ID#-1 Src: and finally here
-- Script Call ID#10 Src: (play)

== test continuous script
- (script all continuous "test continuous script" <0> <1> )
-- Script Call ID#0 Src: (sleep <-1>)
--- Script Call ID#-1 Src: 900
-- Script Call ID#1 Src: (log <-1>)
--- Script Call ID#-1 Src: continous script is still continuing

-----------END-----------


I'm feeling exceptionally :realsmug: right now after making all of that code work.

The important parts are the interation, which show how I break the code. And the last section showing the script call trees.
A positive script call id is a function, a negative script call id is a constant or a variable. Just a heads up.

Roostervier
June 29th, 2013, 10:18 AM
i thought there was supposed to be a beta yesterday??

Not Inferno
June 29th, 2013, 11:04 AM
i thought there was supposed to be a beta yesterday??

It's only available if you aren't a casul fagot.
So only GiantDad gets to play.

(I thought I was being sarcastic enough before)

Rentafence
June 29th, 2013, 03:38 PM
will this support dynamic static render mapping for high ambient raytraced normal occlusion vectoring

Patrickssj6
June 29th, 2013, 07:14 PM
no, but it will support gfwl

Kornman00
June 29th, 2013, 09:04 PM
And is Win8 only (MS just bought Oracle friday, and thus Java, and is now making Java Win8 only as a means to kill it off, ensuring .NET reigns supreme, cause it already does)

Not Inferno
June 29th, 2013, 09:28 PM
will this support dynamic static render mapping for high ambient raytraced normal occlusion vectoring
No but it will have next gen fish AI.


And is Win8 only (MS just bought Oracle friday, and thus Java, and is now making Java Win8 only as a means to kill it off, ensuring .NET reigns supreme, cause it already does)

Link to news article about it?

.NET is awful.

PenGuin1362
June 30th, 2013, 01:45 AM
[/COLOR]No but it will have next gen fish AI.



Link to news article about it?

.NET is awful.

Dog or no deal.

Kornman00
June 30th, 2013, 11:44 AM
Link to news article about it?

.NET is awful.
1. See Patrick's post

2. Says the user of an antiquated\baby language which doesn't support actually useful things like operator overloading, value types, unsigned types, unified type system, generics past-compile time, etc (http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java).

Not Inferno
June 30th, 2013, 05:14 PM
1. See Patrick's post

2. Says the user of an antiquated\baby language which doesn't support actually useful things like operator overloading, value types, unsigned types, unified type system, generics past-compile time, etc (http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java).

.Net is awful. The only reason I need to justify that. (http://www.linux.org/)

Skyline
June 30th, 2013, 05:22 PM
.Net is awful. The only reason I need to justify that. (http://www.linux.org/)

So you are just another blind sighted fanboy. (http://www.mono-project.com/Main_Page)

Not Inferno
June 30th, 2013, 06:52 PM
Why would I bother compiling separate versions with mono when I could just use C++? The reason for java is it's natively cross-platform. If I was going to have portable cross platform I'd use C++.

The day .NET becomes cross platform natively is the day it's worth using. IMO

And fanboy? Who started the WAR ON JAVA in this thread? FFS it's about the engine development. The fanboys attacked me. :saddowns:
This site needs mods who don't derail threads.

Zeph
June 30th, 2013, 07:27 PM
we're not really starting a war on java.
everyone knows it's shit.
we're just warring on your stupid idea to use shit.

Private Caboose
June 30th, 2013, 07:35 PM
You guys are bloody idiots. What does it matter he's using Java? The fact that he's built a custom engine using it is impressive, the fact he's tailoring it to Halo CE is one worth being thankful for, and it's also more than Kornmann has ever done in terms of Halo CE. Open Sauce? Yea, go ahead and build a "tool" that is makes certain maps exclusive to those who have OS. This is a custom built, extremely simple engine to use as far as we can tell from the information we've been given.

In short, you guys are bitching about Inferno using Java to make a custom engine that we can put CE content into, yet you aren't thanking him for the enormous effort he's gone to, to bring this to us. I'm indifferent when it comes to using Java and .net, but when you guys just hate on a person because he's using a language that you don't like, that's just wrong. To be honest, if you pulled your thumbs out of your asses and actually help Inferno out, you'd probably find that this is far more advanced than OpenSauce and is worth working on.

Seriously, grow the hell up.

-Hiralis

Skyline
June 30th, 2013, 07:57 PM
Why would I bother compiling separate versions with mono when I could just use C++?
Where did you read that ? Did you make it up so Java seems better ? Don't make assumptions just because it has the letter "C" in the name. You can compile your C# program on windows using visual studio and it'll work natively on linux using mono. If you were to compile on linux using mono you'd probably just need to download mono on your windows machine which is no different than what you have to do with Java.


The reason for java is it's natively cross-platform.
That's a terrible reason to use a language. Maybe you should invest some of your time and research other languages. Scala for example can compile byte code compatible with the JVM so you get the cross platform you are looking for while having access to some more features (ie operator overloading).


The day .NET becomes cross platform natively is the day it's worth using. IMO
That's a bit ironic you are calling Java "natively" cross platform as all the JVM's need to be compiled for each independent platform that they support. This is no different than what Mono is doing.


And fanboy? Who started the WAR ON JAVA in this thread? FFS it's about the engine development. The fanboys attacked me.
As Java has many limitations and is only really good for teaching purposes. There isn't anything fanboy about it. It's a conclusion made by examining the language in comparison to others.

Donut
June 30th, 2013, 08:00 PM
C# isn't natively cross-platform but somebody on this site showed me an easy 3rd party way to fix that.
fake E: I'm dumb, skyline just posted it.
real E: also I thought we were just teasing him about java. I didn't think anyone was actually upset.

And is Win8 only (MS just bought Oracle friday, and thus Java, and is now making Java Win8 only as a means to kill it off, ensuring .NET reigns supreme, cause it already does)
Where did you hear Java was going to be Win8 only?

Not Inferno
June 30th, 2013, 08:15 PM
Where did you read that ? Did you make it up so Java seems better ? Don't make assumptions just because it has the letter "C" in the name. You can compile your C# program on windows using visual studio and it'll work natively on linux using mono. If you were to compile on linux using mono you'd probably just need to download mono on your windows machine which is no different than what you have to do with Java.
With the system Flibit set up with LWJGL I just ant the workspace and it builds mac/lin/win.

As for the rest. This sums things up to some degree.


[
QUOTE=SKYPE]
[6:56:35 PM] Ethan Lee: i think he works in C#?
[6:56:38 PM] Broseph Stalin: probably
[6:56:45 PM] Ethan Lee: i thought opensauce was partially .NET-dependent
[6:57:02 PM] Ethan Lee: unless he pinvokes every dynamic operation...
[7:07:17 PM] Ethan Lee: btw, C# assemblies are indeed cross-platform
[7:07:37 PM] Ethan Lee: the whole point of MG-SDL2 was to use a single monogame output assembly on three separate platforms
[7:11:44 PM] Ethan Lee: (it's still a language that tries to pick a fight with literally every language regardless of target market, but you can get a single output running everywhere)
[8:03:37 PM] Broseph Stalin: i thought you had to fix the everythign with each port
[8:03:48 PM] Broseph Stalin: at least you make it sound like that haha
[8:04:33 PM] Ethan Lee: Used to be the case, mg-sdl2 fixed that
[8:04:43 PM] Broseph Stalin: how recent?
[8:04:53 PM] Broseph Stalin: because i started about 2+ years ago
[8:05:10 PM] Ethan Lee: Before Capsized shipped in HIB8
[8:05:19 PM] Broseph Stalin: haha
[8:05:24 PM] Broseph Stalin: yeah that's a while ago
[8:05:33 PM] Broseph Stalin: was monogame even really a thing in 2009?
[8:05:39 PM] Broseph Stalin: 2010*
[8:05:58 PM] Ethan Lee: But that portability issue was monogame's fault, not c#
[8:07:14 PM] Ethan Lee: I think back then it was xnatouch
[8:07:31 PM] Ethan Lee: But tao existed back then
[8:08:45 PM] Ethan Lee: XNA's a different thing though, Tao and SDL2# (the latter i made) are closer to lwjgl
[8:11:14 PM] Broseph Stalin: right
[8:11:29 PM] Broseph Stalin: im just annoyed
[8:11:37 PM] Broseph Stalin: with all this shit that's unrelated
[8:11:45 PM] Broseph Stalin: i can't port the engine at this stage
[8:11:52 PM] Broseph Stalin: i couldn't have done it 12 months ago haha
[8:12:08 PM] Ethan Lee: Like i said, if they have a problem, surely they are willing to fix it
[8:12:22 PM] Broseph Stalin: next engine will be in c++
[8:12:33 PM] Broseph Stalin: would love to work with a lower level next time
[8:12:37 PM] Broseph Stalin: make that shit super optimized
[/QUOTE]

If I was as experienced in programming when I started as I am now I would have chosen C++.

Now back on topic...

Zeph
June 30th, 2013, 11:08 PM
You guys are bloody idiots. What does it matter he's using Java? The fact that he's built a custom engine using it is impressive, the fact he's tailoring it to Halo CE is one worth being thankful for, and it's also more than Kornmann has ever done in terms of Halo CE. Open Sauce? Yea, go ahead and build a "tool" that is makes certain maps exclusive to those who have OS. This is a custom built, extremely simple engine to use as far as we can tell from the information we've been given.

In short, you guys are bitching about Inferno using Java to make a custom engine that we can put CE content into, yet you aren't thanking him for the enormous effort he's gone to, to bring this to us. I'm indifferent when it comes to using Java and .net, but when you guys just hate on a person because he's using a language that you don't like, that's just wrong. To be honest, if you pulled your thumbs out of your asses and actually help Inferno out, you'd probably find that this is far more advanced than OpenSauce and is worth working on.

Seriously, grow the hell up.

-Hiralis
Guys



GUYS



This guy thinks people are serious on the internet.

Zeph
June 30th, 2013, 11:08 PM
AND HE SIGNS HIS POSTS IN THE POST!!

Kornman00
June 30th, 2013, 11:49 PM
Why would I bother compiling separate versions with mono when I could just use C++? The reason for java is it's natively cross-platform. If I was going to have portable cross platform I'd use C++.

The day .NET becomes cross platform natively is the day it's worth using. IMO

And fanboy? Who started the WAR ON JAVA in this thread? FFS it's about the engine development. The fanboys attacked me. :saddowns:
This site needs mods who don't derail threads.
1. C++ compiles directly to the native architecture, whereas Java and .NET don't since they both use a VM/runtime which is natively compiled and executes their intermediate byte codes. You would only need to compile separate distributions with Mono if you're using MS.NET APIs that it doesn't support (http://www.mono-project.com/MoMA). Pretty sure there are an assortment of libraries which are not platform independent in Java as well.
2. A fanboy, in the context we seem to be using it, is essentially someone who ignorantly promotes something over another. You seemed to have neglected to keep up with cross platform advancements with .NET and Mono, hence why others attributed this label. You flat out called .NET awful. I was only doing my programmer civic duty and pointing how .NET, in the context of C#, has Java beat in terms of coding. I wouldn't have taken my joke post any further had you not done this.
3. I'm not a mod for this site. Modacity: the modding site without mods.
4. Maybe I should just say this now: kudos for doing this, especially in such a language/framework like Java. Yikes.


You guys are bloody idiots. What does it matter he's using Java? The fact that he's built a custom engine using it is impressive, the fact he's tailoring it to Halo CE is one worth being thankful for, and it's also more than Kornmann has ever done in terms of Halo CE. Open Sauce? Yea, go ahead and build a "tool" that is makes certain maps exclusive to those who have OS. This is a custom built, extremely simple engine to use as far as we can tell from the information we've been given.

In short, you guys are bitching about Inferno using Java to make a custom engine that we can put CE content into, yet you aren't thanking him for the enormous effort he's gone to, to bring this to us. I'm indifferent when it comes to using Java and .net, but when you guys just hate on a person because he's using a language that you don't like, that's just wrong. To be honest, if you pulled your thumbs out of your asses and actually help Inferno out, you'd probably find that this is far more advanced than OpenSauce and is worth working on.

Seriously, grow the hell up.

-Hiralis
Never did any of us say what he's been working on wasn't impressive. The absence of evidence is not the evidence of absence (http://www.youtube.com/watch?v=_w5JqQLqqTc). So this Open Sauce being made by this "Kornmann" you speak of...he's rewriting the engine? Well, I don't know about this imposter, but the goal of the real OS is just about expanding the official Halo engines. You know, working with what already works, is already modded, what people already have experience with, and what is already played. Very different from what Not Inferno is working towards, albeit both advance in their own rights. But now we're digressing. So maybe you should take your own advice and 'grow the hell up'. Or just throw up your strawman in some other field and bitch about people "bitching" there. I really don't care.

I also don't recall NI explicitly asking for help. Pretty sure he even said he was keeping it closed source while he's working on it. Unless you mean "give praise" when you say "help out". Which I think people are already doing when they ask/say they want to try out modding his engine.


Where did you hear Java was going to be Win8 only?
"1. See Patrick's post"

I would think the ridiculousness of my post, immediately following Pat's, would have hinted at the underlying sarcasm

Btcc22
June 30th, 2013, 11:54 PM
C# isn't natively cross-platform but somebody on this site showed me an easy 3rd party way to fix that.
fake E: I'm dumb, skyline just posted it.
real E: also I thought we were just teasing him about java. I didn't think anyone was actually upset.

Where did you hear Java was going to be Win8 only?

It was a joke. :-3


Yea, go ahead and build a "tool" that is makes certain maps exclusive to those who have OS. This is a custom built, extremely simple engine to use as far as we can tell from the information we've been given.

So it's a problem that OS maps requires OS to play but not that you'd have to download an entirely new game to make any use of maps built for this? Aside from that, it's not like the OS guys have any choice in the matter. It's just the way it has to be.


In short, you guys are bitching about Inferno using Java to make a custom engine that we can put CE content into, yet you aren't thanking him for the enormous effort he's gone to, to bring this to us.

This is a nice project but I think you've bought into the idea that it's going to revolutionise the scene a little bit too heavily. It'd take a herculean amount of effort to develop it into a viable replacement for the game; the graphics engine is only a small part of it.

I'm not entirely sure why you'd need a custom engine to place CE content in anyway. Any major enhancements are going to render the content incompatible with Blam! (the OS problem) and so if you're looking for a more powerful engine to build content for, there's little point in waiting for this to be finished when there's a plethora of mature engines already out there.

Skyline
July 1st, 2013, 12:01 AM
You guys are bloody idiots. What does it matter he's using Java? The fact that he's built a custom engine using it is impressive, the fact he's tailoring it to Halo CE is one worth being thankful for, and it's also more than Kornmann has ever done in terms of Halo CE. Open Sauce? Yea, go ahead and build a "tool" that is makes certain maps exclusive to those who have OS. This is a custom built, extremely simple engine to use as far as we can tell from the information we've been given.

In short, you guys are bitching about Inferno using Java to make a custom engine that we can put CE content into, yet you aren't thanking him for the enormous effort he's gone to, to bring this to us. I'm indifferent when it comes to using Java and .net, but when you guys just hate on a person because he's using a language that you don't like, that's just wrong. To be honest, if you pulled your thumbs out of your asses and actually help Inferno out, you'd probably find that this is far more advanced than OpenSauce and is worth working on.

Seriously, grow the hell up.

-Hiralis

Where did he say that ? He clearly stated this engine will not be compatible with halo's map format and is not going to be tailored to Halo CE. I can see how you would be confused though, he's just using assets from halo. I can name 20 game engines you could rather use and surprise surprise none of them use Java. They also probably have a better content creation pipeline. If people wanted "far more advanced" they wouldn't be here with halo and most of them have already moved on the engines like cry engine. We are trying to help inferno by giving him advice on programming languages he could have used instead.

This is just another case of someone who doesn't know what they are talking about, saying we aren't giving advice because they are too inexperienced to tell what advice actually is.


[8:11:14 PM] Broseph Stalin: right
[8:11:29 PM] Broseph Stalin: im just annoyed
[8:11:37 PM] Broseph Stalin: with all this shit that's unrelated
I lol'd. Discussing the language you are using for said topic is completely unrelated apparently.


[8:11:45 PM] Broseph Stalin: i can't port the engine at this stageI'm almost certain you can compile Java code under a Scala compiler and then you can continue coding in Scala, if not I'm sure there are converters as they are pretty similar as opposed to some name and syntax changes. That and Scala is basically a superset of Java if not more as some of their libraries are Java compatible.

Warsaw
July 1st, 2013, 12:14 AM
I thought this was just [Not] Inferno's pet project for fun and experience and he is just using Halo content because why not...

..why so srs?

Patrickssj6
July 1st, 2013, 03:31 AM
Duno what's going on. If he is using Java, that is fine with me. I would rather use Java and OpenGL than C# and...yeah...uh what? Has anyone even mentioned this lol?

But then again I wouldn't use Java in the first place and just do C++/DX...because Java sucks balls. and it's stupid.

=sw=warlord
July 1st, 2013, 06:00 AM
I thought this was just [Not] Inferno's pet project for fun and experience and he is just using Halo content because why not...

..why so srs?

This.


Good grief, let's all attack his choice of language lest he not follow our path.

Kornman00
July 1st, 2013, 02:05 PM
I would rather use Java and OpenGL than C# and...yeah...uh what? Has anyone even mentioned this lol?
http://slimdx.org/
http://www.mono-project.com/Tao
http://www.opentk.com/
http://sharpdx.org/about/features
etc

Patrickssj6
July 1st, 2013, 03:30 PM
Yeah I took a look at some of those including XNA. Not really a fan, I like working low-level for this type of programming.

Not Inferno
July 1st, 2013, 10:41 PM
I guess I was a bit rash the other day. Been a bit tense lately.

I also want to re-emphasize. My knowledge of coding has grown tremendously since I started 12D. I would have chose to use C++ now but back then I didn't. That's just how things go.


1. C++ compiles directly to the native architecture, whereas Java and .NET don't since they both use a VM/runtime which is natively compiled and executes their intermediate byte codes. You would only need to compile separate distributions with Mono if you're using MS.NET APIs that it doesn't support (http://www.mono-project.com/MoMA). Pretty sure there are an assortment of libraries which are not platform independent in Java as well.
2. A fanboy, in the context we seem to be using it, is essentially someone who ignorantly promotes something over another. You seemed to have neglected to keep up with cross platform advancements with .NET and Mono, hence why others attributed this label. You flat out called .NET awful. I was only doing my programmer civic duty and pointing how .NET, in the context of C#, has Java beat in terms of coding. I wouldn't have taken my joke post any further had you not done this.
3. I'm not a mod for this site. Modacity: the modding site without mods.
4. Maybe I should just say this now: kudos for doing this, especially in such a language/framework like Java. Yikes.


Never did any of us say what he's been working on wasn't impressive. The absence of evidence is not the evidence of absence (http://www.youtube.com/watch?v=_w5JqQLqqTc). So this Open Sauce being made by this "Kornmann" you speak of...he's rewriting the engine? Well, I don't know about this imposter, but the goal of the real OS is just about expanding the official Halo engines. You know, working with what already works, is already modded, what people already have experience with, and what is already played. Very different from what Not Inferno is working towards, albeit both advance in their own rights. But now we're digressing. So maybe you should take your own advice and 'grow the hell up'. Or just throw up your strawman in some other field and bitch about people "bitching" there. I really don't care.

I also don't recall NI explicitly asking for help. Pretty sure he even said he was keeping it closed source while he's working on it. Unless you mean "give praise" when you say "help out". Which I think people are already doing when they ask/say they want to try out modding his engine.


"1. See Patrick's post"

I would think the ridiculousness of my post, immediately following Pat's, would have hinted at the underlying sarcasm

I understand how VM based languages work. My point was that C++ is not natively cross platform, but you can port it to any platform so long as there are libraries to make it work.

My knowledge of C# was a bit dated yes. That was part of the problem here.

Thought you were a mod still welp.

I was planning on open sourcing to github recently but I unfortunately need to hire a lawyer to write me a license agreement and EULA. I want to retain the rights to the engine so that if I develop a commercial game on it (plan too in the future) I won't have to worry about copyright on contributions from other people and other shit.

I also have asked for opinions and suggestions about things (such as scripting language stuff and shader language stuff). Haven't gotten many replies about that though :saddowns:.


I lol'd. Discussing the language you are using for said topic is completely unrelated apparently.

It's not. It may have been when I started but I'm far past choosing a language at this stage.



I'm almost certain you can compile Java code under a Scala compiler and then you can continue coding in Scala, if not I'm sure there are converters as they are pretty similar as opposed to some name and syntax changes. That and Scala is basically a superset of Java if not more as some of their libraries are Java compatible.

I don't think that I'm going to be able to convert 14k lines of code + lwjgl + other libraries I'm using without rewriting a lot of stuff. Sorry.

The hell is scala anyways?

Skyline
July 2nd, 2013, 02:01 AM
I don't think that I'm going to be able to convert 14k lines of code + lwjgl + other libraries I'm using without rewriting a lot of stuff. Sorry.

The hell is scala anyways?

Whoo-Java compatible what's that-oosh.

You'd only convert your code but you wouldn't even have to, you can compile both Java and Scala sources through the Scala compiler. The only reason you would want to is for sanity of having everything in the same syntax.

Scala is a programming language with more features than Java that is capable of running on the JVM (with a few features that can't be implemented on the JVM inevitably are disabled).


It's not. It may have been when I started but I'm far past choosing a language at this stage.
Heh. See above and be master exploder'd.

Not Inferno
July 2nd, 2013, 02:02 AM
And back on topic...

After quite a bit of debugging I've gotten the scripting engine running with basic functions.

Test Script:


(var boolean test_boolean false)
(var boolean test_boolean2 true)
(var int test_int 1)
(var int test_int2 125)
(var int test_int3 -10020)

(script all dormant "test"
(if test_boolean
(begin
(log "test boolean is true")
)
(begin
(log "test boolean is false")
)
)
(if (== test_int2 125)
(begin
(log "equals")
)
(begin
(log "not equals")
)
)
(log (<= 1 4))
)


Interpreter output:


- (script all dormant "test" <4> <10> <12> )
-- Call:If ID#4 Src: (if <-1> <1> <3>)
--- Call:Variable ID#-1 Src: test_boolean
--- Call:Begin ID#1 Src: (begin <0>)
---- Call:Log ID#0 Src: (log <-1>)
----- Call:Constant ID#-1 Src: test boolean is true
--- Call:Begin ID#3 Src: (begin <2>)
---- Call:Log ID#2 Src: (log <-1>)
----- Call:Constant ID#-1 Src: test boolean is false
-- Call:If ID#10 Src: (if <5> <7> <9>)
--- Call:Equals ID#5 Src: (== <-1> <-2>)
---- Call:Variable ID#-1 Src: test_int2
---- Call:Constant ID#-2 Src: 125
--- Call:Begin ID#7 Src: (begin <6>)
---- Call:Log ID#6 Src: (log <-1>)
----- Call:Constant ID#-1 Src: equals
--- Call:Begin ID#9 Src: (begin <8>)
---- Call:Log ID#8 Src: (log <-1>)
----- Call:Constant ID#-1 Src: not equals
-- Call:Log ID#12 Src: (log <11>)
--- Call:Lequal ID#11 Src: (<= <-1> <-2>)
---- Call:Constant ID#-1 Src: 1
---- Call:Constant ID#-2 Src: 4


And when I enter wake test into the console I get this in the log:


test boolean is false
equals
true


If you'll notice the interpreter output is quite informative now :iamafag:

And if you look closely you might find some built in casting. Mmmmmm girllllll. Look at that casting.

Writing custom functions is pretty easy to do. Though writing functions that stop the scripting language is a bit complex. (stuff like sleep and begin). I learned a lot about interpreting code like this though so next time it'll be better :downs:

In the end it's all functional so yay.

What kind of functions would you guys like to see. Stuff you wish halo had basically.

edit-
@Skyline:
Scala isn't any faster than java from what I've read. It's also not as widely used as java. I don't see any reason to switch unless I run into some major problem that I can't do with java (spoilers: I won't).

Kornman00
July 2nd, 2013, 02:59 AM
Since you are emulating halo script, maybe some details on how it works internally would be useful.

The hs runtime has its own "hs threads (http://code.google.com/p/open-sauce/source/browse/OpenSauce/shared/Include/blamlib/Halo1/hs/hs_runtime.hpp#33)" (which are not actual system threads). Eg, a startup script would spawn its own hs_thread, a continuous script would run in its own hs_thread, the console has its own hs_thread, globals are initialized in their own hs_thread, etc.

Like system threads, each hs_thread has its own stack memory. Bit of trivia: Kirby was a jerk and made a heavily nested script for a CMT feature which exceeded the stack memory of an hs_thread, causing it to overflow into another hs_thread (and thus crashing). Were the community to have access to actual debug/tag builds of the runtime, there would be errors explaining this overflow. Instead, I had to debug this nonsense, which wasn't immediately obvious (and I wasn't involved with CMT's scripts). The stack memory contains stack frames (essentially an IP and a few other useful values) plus arguments to hs functions.

Anyway, for sleep they set a field to be 'current-game-time + sleep-time', and when the hs_runtime updates it checks that if the current game time to be sure if it can evaluate the hs_thread yet.

Also, 343i no longer uses the a LISP-esque syntax for halo script. Eg,

script static void f_rumble_gondola(player p_player)
local boolean b_rumble_valid = TRUE;
local boolean b_rumble_active = FALSE;
local boolean b_rumble_break = FALSE;
local short rumble_count = 0;
local short rumble_count_max = 10;

repeat
if volume_test_object(tv_gondola_path, p_player) and b_rumble_valid then
rumble_count = rumble_count + 1;
inspect( rumble_count );
if rumble_count >= rumble_count_max then
b_rumble_valid = FALSE;
end

if not b_rumble_active then
dprint("RUMBLE ON");
player_effect_set_max_rumble_for_player(p_player, 0.1, 0.1);
b_rumble_active = TRUE;
end

elseif not volume_test_object(tv_gondola_path, p_player) or not b_rumble_valid then

dprint("RUMBLE OFF");
player_effect_set_max_rumble_for_player(p_player, 0, 0);
b_rumble_active = FALSE;

if rumble_count >= rumble_count_max then
sleep_s(1.5);
rumble_count = 0;
b_rumble_valid = TRUE;
end

end
sleep_s(1);

until(not sp01_gondola_moving, 1);
player_effect_set_max_rumble_for_player(p_player, 0, 0);
end
IDK if this was work that Bungie had initially started, or if it was something 343i sparked. Either way, they changed a lot of the underlying implementation of the script system (for the better AFAICT)

Skyline
July 2nd, 2013, 03:10 AM
Scala isn't any faster than java from what I've read.
It is using the JVM should have made that clear as day.


It's also not as widely used as java.
Java was the most used language at some point for a year or two, forget the website with the statistics, though still not really a valid reason for justification. If you are building a multi-threaded database that runs on several servers, you wouldn't want to use C for that. If you are using lock-free algorithms, some problems occur such as the ABA problem that can be solved using a garbage collector that would otherwise be difficult in C. If I recall correctly C is the current most used language, but just because it is doesn't mean you should choose it for said purposes.


I don't see any reason to switch unless I run into some major problem that I can't do with java (spoilers: I won't).

Well I guess you can't miss something you never had.

Donut
July 2nd, 2013, 04:47 AM
I think we're a little bit past the language discussion dude. I appreciate the information as a programmer myself, but Inferno has made it clear he's sticking to Java for this.

Not Inferno
July 2nd, 2013, 10:08 AM
Sync AI pl0x.
It'll sync without any kind of scripting help. The entire engine is designed around multiplayer so unless you tell an object not to sync it will.


Since you are emulating halo script, maybe some details on how it works internally would be useful.

The hs runtime has its own "hs threads (http://code.google.com/p/open-sauce/source/browse/OpenSauce/shared/Include/blamlib/Halo1/hs/hs_runtime.hpp#33)" (which are not actual system threads). Eg, a startup script would spawn its own hs_thread, a continuous script would run in its own hs_thread, the console has its own hs_thread, globals are initialized in their own hs_thread, etc.

Like system threads, each hs_thread has its own stack memory. Bit of trivia: Kirby was a jerk and made a heavily nested script for a CMT feature which exceeded the stack memory of an hs_thread, causing it to overflow into another hs_thread (and thus crashing). Were the community to have access to actual debug/tag builds of the runtime, there would be errors explaining this overflow. Instead, I had to debug this nonsense, which wasn't immediately obvious (and I wasn't involved with CMT's scripts). The stack memory contains stack frames (essentially an IP and a few other useful values) plus arguments to hs functions.

Anyway, for sleep they set a field to be 'current-game-time + sleep-time', and when the hs_runtime updates it checks that if the current game time to be sure if it can evaluate the hs_thread yet.

Also, 343i no longer uses the a LISP-esque syntax for halo script. Eg,

script static void f_rumble_gondola(player p_player)
local boolean b_rumble_valid = TRUE;
local boolean b_rumble_active = FALSE;
local boolean b_rumble_break = FALSE;
local short rumble_count = 0;
local short rumble_count_max = 10;

repeat
if volume_test_object(tv_gondola_path, p_player) and b_rumble_valid then
rumble_count = rumble_count + 1;
inspect( rumble_count );
if rumble_count >= rumble_count_max then
b_rumble_valid = FALSE;
end

if not b_rumble_active then
dprint("RUMBLE ON");
player_effect_set_max_rumble_for_player(p_player, 0.1, 0.1);
b_rumble_active = TRUE;
end

elseif not volume_test_object(tv_gondola_path, p_player) or not b_rumble_valid then

dprint("RUMBLE OFF");
player_effect_set_max_rumble_for_player(p_player, 0, 0);
b_rumble_active = FALSE;

if rumble_count >= rumble_count_max then
sleep_s(1.5);
rumble_count = 0;
b_rumble_valid = TRUE;
end

end
sleep_s(1);

until(not sp01_gondola_moving, 1);
player_effect_set_max_rumble_for_player(p_player, 0, 0);
end
IDK if this was work that Bungie had initially started, or if it was something 343i sparked. Either way, they changed a lot of the underlying implementation of the script system (for the better AFAICT)

I'm just using lisp syntax. The way my scripts work (in code) is nothing like halo I assume. I just like the lisp syntax over lua. That's just a preference thing.

It would take a fuck load of work to overload my scripts haha. I'd actually like to see someone do it.

Scripts are executed post gameplay tick. It's on my list of things to multi-thread though.

As of right now I have these functions coded in:
log
if
sleep
<
>
<=
>=
==
begin

I need a lot more than that but I don't really know where to begin with adding stuff. :P

Not Inferno
July 2nd, 2013, 04:28 PM
Added some more functions:
spawn <tag path> <script id> <x> <y> <z> returns void
actor <script id> returns actorID
invoke <actorID> <function to invoke> <opt param0> <opt param1> <opt param2> etc... returns void

Spawn let's you spawn a actor by giving it's tag, the scripting name you want it to have and an x y z coord.
Actor let's you get an actor by it's script name. It returns the actor id.
Invoke lets you invoke a function on an actor in the world. Invoke functions are relative to the type of actor you are invoking on. All actors have basic invoke functions like "location" "rotation" "push" and "destroy". Bipeds have invoke functions like "jump" and "animation". Weapons have invoke functions like "ammo" and "fire".


Code I tested with to make sure everything was working.


(spawn "object/scenery/raichu.scenery" "Toasty" 0 0 0)
(sleep 120)
(invoke (actor "Toasty") location 0 0 -50)
(sleep 60)
(invoke (actor "Toasty") rotation 0 1.2 0)
(sleep 60)
(invoke (actor "Toasty") destroy)
(log "Toasty was a bitch")

leorimolo
July 2nd, 2013, 04:35 PM
Oh gosh I fucking love the fact you are emulating halo script. Seriously tho you could make this run halo maps at this rate...

Limited
July 2nd, 2013, 05:59 PM
You guys are bloody idiots. What does it matter he's using Java? The fact that he's built a custom engine using it is impressive, the fact he's tailoring it to Halo CE is one worth being thankful for, and it's also more than Kornmann has ever done in terms of Halo CE. Open Sauce? Yea, go ahead and build a "tool" that is makes certain maps exclusive to those who have OS. This is a custom built, extremely simple engine to use as far as we can tell from the information we've been given.

In short, you guys are bitching about Inferno using Java to make a custom engine that we can put CE content into, yet you aren't thanking him for the enormous effort he's gone to, to bring this to us. I'm indifferent when it comes to using Java and .net, but when you guys just hate on a person because he's using a language that you don't like, that's just wrong. To be honest, if you pulled your thumbs out of your asses and actually help Inferno out, you'd probably find that this is far more advanced than OpenSauce and is worth working on.

Seriously, grow the hell up.

-Hiralis
I had to quote this, simply to document the sheer level of ignorance.

The reason I havent praised inferno yet for his work is simple; and I dont mean to offend his work or him by saying this but so far its been very 'cookie-cutter'. A graphical tech demo if you will - they may look pretty but you question the actual substance of a game, the planning behind and everything that goes along. In the grand scheme of things, they are also rather straight forwardto make.

Only now has inferno actually expanded out and started to dive deep into developing this further and adding substance (script parsing etc). That is what defines games and the their systems.

Not Inferno
July 2nd, 2013, 06:47 PM
I had to quote this, simply to document the sheer level of ignorance.

The reason I havent praised inferno yet for his work is simple; and I dont mean to offend his work or him by saying this but so far its been very 'cookie-cutter'. A graphical tech demo if you will - they may look pretty but you question the actual substance of a game, the planning behind and everything that goes along. In the grand scheme of things, they are also rather straight forwardto make.

Only now has inferno actually expanded out and started to dive deep into developing this further and adding substance (script parsing etc). That is what defines games and the their systems.

I designed the "game" parts first actually. Making sure that the game worked, and making sure that the multiplayer worked was my phase 1. The graphical stuff was actually phase 2. Phase 3 is optimization, streamlining, and filling in missing features. I'm working on phase 3 right now. :v:

Just so you know I can start up a multi-player server and do some death match with box pistols on the current build, but it's not fleshed out. It's all functional but there is no reason to fully build the gameplay stuff until the engine is finished and optimized.

The graphical parts of the engine are built around the game parts of the engine. I constantly work to try and improve the Actor superclass and all it's subclasses, and I do my best to make stuff as flexible as possible.

Not Inferno
July 2nd, 2013, 07:19 PM
And final bit of stuff for today (I've been constantly interrupted today by life :gonk:)

New script functions:
add <value> <value> returns addition of the 2 values
set <variable> <value> returns void
while <boolean> <do> returns void
until <boolean> returns void

Shouldn't have to explain the first two.
While will continually run it's <do> parameter until the boolean is false.
Until will sleep until the <boolean> parameter is true.

Test code:


(script all dormant "whiletest"
(log "testing while")
(while (< test_int4 30)
(begin
(log "Still running...")
(set test_int4 (add test_int4 1))
(log test_int4)
)
)
(log "done!")
)

(script all dormant "sleepuntiltest"
(log "sleeping until test_boolean2 is true)
(until test_boolean2)
(log "test_boolean2 is now true so now we can continue!")
)

(script all dormant "settestbool2"
(set test_boolean2 true)
)


Both are working as expected. :v:

Still need suggestions for more functions in 12 script.

Pooky
July 2nd, 2013, 07:20 PM
or if it was something 343i sparked.

I see what you did there.

Not Inferno
July 3rd, 2013, 08:49 PM
So today I removed 2 TODO:'s from the top of the engine class:


//TODO: MODEL LODS FFS YOU FUCKING PLEB

//TODO: LONG DISTANCE CULLING BECAUSE NIGGER


Done and done.

Reworked a lot of code and generally streamlined the entire model system. I also added a new property "scale". Does what you would expect. :downs:

I'm also looking into JBullet3d. Trying to decide if I want to use it or not...

Not Inferno
July 7th, 2013, 09:35 PM
Read the video title and description. If the problem is as I expect, then I can fix it tomorrow no problem.

mtpaAaAGPTU

Not Inferno
July 9th, 2013, 12:54 AM
r2wrey_U4kg

Rentafence
July 9th, 2013, 08:09 AM
Nice java cube physics

Btcc22
July 9th, 2013, 08:09 AM
Sabrepulse - Close To Me. I had to listen to several dozen butchered versions of N-Trance's 'Set You Free' before figuring it out. :(

Not Inferno
July 9th, 2013, 11:58 AM
Nice java cube physics

Nope.
(http://bulletphysics.org/wordpress/)

Not Inferno
July 10th, 2013, 08:53 PM
Uhhhhh is this what cube maps are supposed to look like? I think that's what they looked like in halo at least.

PpC7c-tzwKg

Not Inferno
July 10th, 2013, 10:08 PM
Ah it appears I was wrong. I changed it to reflect(normalize(cameraPosition - pixelPosition), nomal);
Seems right now. I'll post a video later.

So another 2 big TODO:'s finished.
- UV Rotation + Animation in shaders
- Cubemap support in shaders
-- Cubemap tag

Not Inferno
July 11th, 2013, 11:50 PM
More stuff.

ig9gPviYrsw

Donut
July 12th, 2013, 05:59 AM
fear the pink mist

Limited
July 12th, 2013, 04:37 PM
Pfft using premade physics apis! Thats cheating!

Not Inferno
July 12th, 2013, 06:14 PM
Pfft using premade physics apis! Thats cheating!

How many game engines use Havok? And by that logic DX and OGL are cheating.

Pfft scrub, write your engine in assembly.

I'm rather constrained on time to finish shit. (I'm running out of money : /) I want to be done before I get another job.

Researching and developing my own RB physics engine would take a fuck shit ass ton of time (min 2 weeks, max 1 month)

I'm still using my own intersection collision and player physics libraries though.

Zeph
July 12th, 2013, 07:12 PM
gimbal lock?
Don't use Euler math for rotations.
Use Quaternians for anything that rotates (including animations).

Not Inferno
July 12th, 2013, 07:58 PM
Don't use Euler math for rotations.
Use Quaternians for anything that rotates (including animations).

Fixed that like last week lol.

I was using Euler for actor rotations and Quats for animation and everything else.

Using Quats for everything now.

Not Inferno
July 12th, 2013, 08:36 PM
So I'm messing with sky transitioning and stuff and I'm trying to come up with a simple to understand system for adding multiple skies and setting transition times and shit...

Currently I have it set so you just define multiple properties for each sky value...

Here's what 2 skies looks like.


*snip*
//Skybox for this bsp
sky<graphics/model/sky/halo clear sky.model><graphics/model/sky/halo space sky.model>
skyWaitPeriod<300><300>
skyTransitionPeriod<3000><3000>

//Information about the distance fog in the sky
fogStart<32><32>
fogEnd<512><256>
fogDensity<0.4><0.6>
fogColor<0.07,0.22,0.66,1.3><0.01,0.02,0.09,1.0>

//Information about the ortho sunlight for this bsp
sunRotation<-45,55><-180,55>
sunLightColor<0.91, 0.91, 0.88, 1><0.1, 0.1, 0.33, 1>
sunShadowColor<0.75, 0.88, 0.95, 0.4><0.1, 0.1, 0.33, 0.2>
*snip*


And here's as single static sky.


*snip*
//Skybox for this bsp
sky<graphics/model/sky/halo clear sky.model>
skyWaitPeriod<300>
skyTransitionPeriod<3000>

//Information about the distance fog in the sky
fogStart<32>
fogEnd<512>
fogDensity<0.4>
fogColor<0.07,0.22,0.66,1.3>

//Information about the ortho sunlight for this bsp
sunRotation<-45,55>
sunLightColor<0.91, 0.91, 0.88, 1>
sunShadowColor<0.75, 0.88, 0.95, 0.4>
*snip*



The game will always start out with the first sky specified. It will wait for the skyWaitPeriod then blend into the next sky over the skyTransitionPeriod. When it gets to the last sky in the list it'll go back to the first sky.

You can have as many skys and transitions as you want with this.

I don't know if this syntax is really good though... Suggestions?

Not Inferno
July 12th, 2013, 11:14 PM
Made a simple 2 state sky (Mid Day - Mid Night) to test this out.
A normal sky would need at least 4 states (Morning - Mid Day - Evening - Mid Night) to look right :P
The system is modular so you could have a sky with 12 states if you wanted.

mvHELhzEM5c

Higuy
July 12th, 2013, 11:43 PM
Looks great... I once saw another thing online that used a gradient for the skydome and it simply slid slowly down, changing how the sky looked and the colors + lighting postion according to a time scale. Just a thought and another idea about how it could work, but that looks great too, and at least its modular.

Not Inferno
July 15th, 2013, 10:22 PM
Alright so some under the hood changes today:

- Unified all 3d stuff to floats. I had a sort of half and half mix of floats and doubles and I was constantly casting between them. Now 100% floats. This was suggested by someone who knows a lot more about game engines than me.

- Tag reading has been unified. I'm going to make all tags use the same syntax loosely based on JSON (thanks flibit for the suggestion :P)

- The shader scalar system has been opened up and you can now have up to 27 scalar floats fed into a shader :D This will allows you to do whatever the fuck you want with that. Shader scalars are like the A OUT, B OUT stuff in halo tags. You can give a shader a float and it'll use it in rendering. Common uses would be turning on and off lights on a warthog or making tire treads spin based on the warthogs speed, or making numbers on an ammo counter move. ETC ETC ETC ETC

Not Inferno
July 18th, 2013, 05:55 PM
So I've put in quite a bit of work writing a new tagging system. I've got a lot more work to do but I've got the new .bsp, and new .scenario files working on this.

These are not commented or documented yet but here are the new tags for hangemhigh. Tell me what you guys think. Ethan suggested JSON to me so I took a lot of inspiration from that. I feel like it's more readable and more understandable than the old system.

scenario tag (http://inferno.codebrainshideout.net/hangemhigh.scenario)
bsp tag (http://inferno.codebrainshideout.net/hangemhigh.bsp)
script

(http://inferno.codebrainshideout.net/hangemhigh.script)

malolo420
July 30th, 2013, 02:06 PM
Dope, and Hey!

KILLER CHIEF
October 2nd, 2013, 07:48 AM
So I've put in quite a bit of work writing a new tagging system. I've got a lot more work to do but I've got the new .bsp, and new .scenario files working on this.

These are not commented or documented yet but here are the new tags for hangemhigh. Tell me what you guys think. Ethan suggested JSON to me so I took a lot of inspiration from that. I feel like it's more readable and more understandable than the old system.
(http://inferno.codebrainshideout.net/hangemhigh.script)
Three months later...
Well, it almost looks like a full game... (video's included). I hope you're still working on it or are ya just takin a break. and i've been following your project for quite a while, i believe in ya bro... and the tags and the script look pretty straight forward to me, i like it! the script looks just like halo's would <3

xalener
January 28th, 2014, 11:51 AM
I'm posting here because that's a piss poor last post for a thread to die on.

How's it going?