Gamestudio Links
Zorro Links
Newest Posts
Trading Journey
by howardR. 04/24/24 20:04
M1 Oversampling
by Petra. 04/24/24 10:34
Zorro FIX plugin - Experimental
by flink. 04/21/24 07:12
Data from CSV not parsed correctly
by EternallyCurious. 04/20/24 21:39
Scripts not found
by juergen_wue. 04/20/24 18:51
zorro 64bit command line support
by 7th_zorro. 04/20/24 10:06
StartWeek not working as it should
by jcl. 04/20/24 08:38
folder management functions
by VoroneTZ. 04/17/24 06:52
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (sleakz, AndrewAMD), 684 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Mega_Rod, EternallyCurious, howardR, 11honza11, ccorrea
19048 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 5 of 34 1 2 3 4 5 6 7 33 34
Re: The answer to life, the universe and unity3d [Re: sivan] #431901
10/25/13 18:32
10/25/13 18:32

M
Malice
Unregistered
Malice
Unregistered
M



Big awe for you guys this is amazing.

It's known that I'm not a programmer to any real effect. I started with no knowledge and you all helped me be able to work in this engine. I can make a lava giant leave fire footprints in 3dgs but can't program a thing outside it..

So I want to know -
I want to know, with my limited skills in LiteC am I going to be able to jump to Rayne?
Will you guys write a guide for the move?

The idea of moving to C++ is a hard one for me. If a uneducated homebrew like me could do it, then it would be with a game engine to teach me and the great help of the people I learned from here.

Thanks
Mal

Last edited by Malice; 10/25/13 18:44.
Re: The answer to life, the universe and unity3d [Re: ] #431929
10/26/13 16:55
10/26/13 16:55
Joined: Oct 2007
Posts: 5,210
İstanbul, Turkey
Quad Offline
Senior Expert
Quad  Offline
Senior Expert

Joined: Oct 2007
Posts: 5,210
İstanbul, Turkey
It's not about the language it's about the idea and the logic. This is true for the programming in general.

If you know the logical steps needed(or algorithm) to make that lava giant leave fire footprints you can basically do it in any engine so long as that engine has enough features to let you walk that steps.

create ground-> create lava golem-> make it walk and play animation-> find where it's foot landed-> create fiery footprint

in lite-c one of the ways for that would be

ent_create or level load for ground -> ent_create for golem-> c_move and ent_animate for movement and animation-> find foott with vec_for_bone or vec_for_vertex and c_trace to find where it landed-> ent_create or ent_decal for footprint

in another language/engine you would use similiarly functioning functions/events. Execution may be completely different, like in some other engine instead of tracing from the foot, there may be an event mechanism that fires an event when the foot touches the ground but in the end your logic/algorithm requires you to find where the feet landed in some way. When you are trying to do that footprint thing in another engine you will eventually learn how that can be done in that particular engine and soon you will find yourself at a point where you already climbed what we call "the learning curve" and start to feel comfortable with that engine. Getting to that comfort zone where the learning curve is behind you may take different amount of time in different engines, many things can slow you down and you may find it hard to wrap your head around some stuff but given that you gave enough time you will eventually get there.

It's not about the engine it's about knowing how to get what you want.

Last edited by Quad; 10/26/13 16:56.

3333333333
Re: The answer to life, the universe and unity3d [Re: Quad] #431952
10/26/13 23:27
10/26/13 23:27

M
Malice
Unregistered
Malice
Unregistered
M



Quad thanks for your reply,

Quote:
It's not about the language it's about the idea and the logic. This is true for the programming in general.


I agree that programming is the use of and design of logic to achieve a idea or goal. Any newbie can copy and paste code they asked the forum to write for them. And advanced newbies can also modify pre-written code. And I do feel I am beyond both in having and understanding the creation and use of logic.

There is a simplicity to the 3dgs engine and LiteC that I'm am asking about. The first time I tried to learn how to program a win32 program -> All that craziness to just create a window ,Hell I still don't know what all that code is I just learned to copy and paste.

I never made the jump to Unity, got stop on the C# language and the perception by me that it took a lot more work to do what I could in 3dgs. But you are right, It's the learning curve I am avoiding and that is holding me to 3dgs. And so I'm asking the Rayne Team - Will they be giving some type of help that will ease my jump by using the skill I have learn in 3dgs. A move guide.

Re: The answer to life, the universe and unity3d [Re: ] #432636
11/10/13 06:42
11/10/13 06:42
Joined: Apr 2007
Posts: 3,751
Canada
WretchedSid Offline OP
Expert
WretchedSid  Offline OP
Expert

Joined: Apr 2007
Posts: 3,751
Canada
First of all, sorry for the late response. In my defense, the post counter was at exactly 42... And I was visiting my girlfriend.
But I'm back, and ready to give Malice the answer he deserves!

Quad already got the basics covered, but to recap: Once you know one language, you know all of them (with the exception of Haskell, Erlang and Lisp (mom, look, I'm funny on the internet!)). What's important is to master the API that you have to deal with, the rest ist just sticking what you know together in a way that solves your problem. Basically that's what programming is all about, you have a set of tool, you know your goal, and then you try to find a solution that fits your tools and that you base on past experience. That's why it takes so long to become sufficiently good at programming, you just need to learn a lot of things that are everything but the language itself (which can be taught in week).

Well, I've mentioned it already, Rayne uses C++. The most modern flavour of C++, C++11, which is pretty fucking sweet, I have to say. With a different language come new paradigms, C++ heavily focuses on OOP, and so it's no surprise that programming for Rayne feels different than it does for Acknex.
On top of that, I would like to add that Rayne isn't as comfortable as Acknex is. It can't be, and quite frankly, we don't want it to be. Hacking the language and creating a bastard like Lite-C isn't our goal, sorry.

So, let's talk API for a second. We are working very hard on having a consistent API. We have coding guidelines and naming conventions that we follow internally, and we want Rayne to be as easy to pick up as possible. Once you got the basic naming conventions and concepts figured out, you can work with every piece of API that the engine offers you, and you will know right away how its formed and how it should be used. On top of that, there is going to be extensive documentation, not just of the classes Rayne has to offer, but also of core engine concepts, and there will also be example code.

However, there will be no transitioning guide for Gamestudio to Rayne. Why? First of all, there aren't enough people here and it's more than just a few lines that need to be changed. Sorry, but we have to be realistic here: We are three guys with a real life, we can't take time from actually developing the engine and put it into writing a transition guide. Yep, sucks, but there is only so much we can do. That doesn't mean we won't help you, if you encounter an actual problem, talk to us! But seriously, just do the tutorials, read the documentation and you are good to go!

I like your example of a creating a window (mainly because I was the sucker who had to write the code that abstracts away windows on Windows and Mac OS X), so here is how to create a "Hello Rayne" with a window.

First of all, you need a base class that inherits from RN::Application, and a function that creates an instance of it. Here you go:
Code:
// .h
namespace TG
{
	class Application : public RN::Application
	{
	public:
		Application();
	 	~Application() override;
		
		void Start() override;
	};
}

// .cpp
namespace TG
{
	Application::Application()
	{
		SetTitle("My Awesome Game");
	}
	
	Application::~Application()
	{}

	void Application::Start()
	{
		// Entry point!
	}
}

extern "C"
{
	RN::Application *RNApplicationCreate(RN::Kernel *kernel)
	{
		return static_cast<RN::Application *>(new TG::Application());
	}
}



Congratulations, you now have a 1024x768 window with black content on your screen and "My Awesome Game" as title. Exciting, isn't it? With this being done, let's talk about creating a level and a camera. There is no level_load(NULL), instead, you normally subclass the World class and implement your own logic in there, let's skip that for now and just create an empty world!

Code:
// .h
namespace TG
{
	class Application : public RN::Application
	{
	public:
		Application();
	 	~Application() override;
		
		void Start() override;
		void WillExit() override;
		
    private:
        RN::World *_world;
        RN::Camera *_camera;
	};
}

// .cpp
namespace TG
{
	Application::Application() :
		_world(nullptr)
	{
		SetTitle("My Awesome Game");
	}
	
	Application::~Application()
	{}

	void Application::Start()
	{
		_world = new RN::World("GenericSceneManager"); // Create the world, and let it use the generic scene manager
		
		// Let's create a skycube
		RN::Model *sky = RN::Model::WithSkyCube("textures/sky_up.png", "textures/sky_down.png", "textures/sky_left.png", "textures/sky_right.png", "textures/sky_front.png", "textures/sky_back.png");
		
		// Create a full screen camera		
		_camera = new Camera(RN::Vector2(), nullptr, RN::Camera::FlagDefaults);
		_camera->SetSky(sky);
	}
	
	void Application::WillExit()
	{
		// Clean up, because we are nice citizens
		delete _camera;
    		delete _world;
    }
}

extern "C"
{
	RN::Application *RNApplicationCreate(RN::Kernel *kernel)
	{
		return static_cast<RN::Application *>(new TG::Application());
	}
}



So, now you have a camera, a world and a skycube. Congratulations, you could technically burn it on a CD and sell it as the next Simulator game laugh

However, the last example goes slightly against the concepts of Rayne, though technically it is possible: Encapsulations. Unlike Lite-C were you basically litter the global namespace with all your stuff, Rayne focuses heavily on encapsulations. The Application class for example is designed to drive your applications, respond to events and in general just be the vehicle that drives the app. The game logic itself would be encapsulated in entities and a separate world subclass, which would then for example take care of creating the camera and cleaning the world up afterwards.

Anyways, I hope that gave a tiny bit of an idea of Rayne. If you still have questions, go ahead and ask!


Also, if you are still with me, here is a round of announcements!
1) We open sourced something!!! Wohoo, our commit bot. Yeah, boring, but there is more to come in the future: https://github.com/uberpixel/commit-bot
2) We are going to open source a tiny bit of the documentation and the repository that it's in in the upcoming week. Mostly to help us write it, because we would like to get your feedback on it!
3) We are planning on releasing a first beta at the end of the year. Stay tuned!
4) I'm going to double post in a few days unless someone posts first.


Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com
Re: The answer to life, the universe and unity3d [Re: WretchedSid] #432656
11/10/13 17:48
11/10/13 17:48

M
Malice
Unregistered
Malice
Unregistered
M



frown I see, This engine is aimed at a higher level of programmer(a trained one). Thank you for the reply JustSid. That's a unfair statemnt, I will try to choke down a beginners c++ book and then make a fair statement after trying to work with a release build.

Last edited by Malice; 11/10/13 18:32.
Re: The answer to life, the universe and unity3d [Re: ] #432663
11/11/13 00:58
11/11/13 00:58
Joined: Oct 2007
Posts: 5,210
İstanbul, Turkey
Quad Offline
Senior Expert
Quad  Offline
Senior Expert

Joined: Oct 2007
Posts: 5,210
İstanbul, Turkey
Staying tuned.


3333333333
Re: The answer to life, the universe and unity3d [Re: ] #432686
11/12/13 03:32
11/12/13 03:32
Joined: Apr 2007
Posts: 3,751
Canada
WretchedSid Offline OP
Expert
WretchedSid  Offline OP
Expert

Joined: Apr 2007
Posts: 3,751
Canada
Originally Posted By: Malice
frown I see, This engine is aimed at a higher level of programmer(a trained one).

Well, yes and no. We are not going to sugar coat it, you need to know programming to use Rayne. Gamestudio makes the opposite claim, and, at least in my humble opinion, is lying in that regard. Templates only get you so far, and then... Well, it helps to know how things work and how they are put together to actually do anything meaningful with them.

But, don't let the different syntax and idioms fool you; Just because it's not what you are used to doesn't mean it's difficult. I think, and I might be alone in that regard, C++ is a very elegant language and which makes it easy to express things. It takes a bit of getting used to, especially when coming from (Lite-)C, but you can pick it up. I have especially trust in you being able to pick it up since you are already at the point where you realized that copy and pasting isn't doing shit for your knowledge and that coding is basically taking things you did in the past and applying them to your current problem/goal.

Also, here is a sneak peek into the documentation (the texts aren't final, but you get the idea). Thoughts?




Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com
Re: The answer to life, the universe and unity3d [Re: WretchedSid] #432787
11/15/13 13:38
11/15/13 13:38
Joined: Apr 2007
Posts: 3,751
Canada
WretchedSid Offline OP
Expert
WretchedSid  Offline OP
Expert

Joined: Apr 2007
Posts: 3,751
Canada
More open source? Fuck yeah, more open source!
We just released the logging engine we have written Rayne under the MIT license. Say hi to ratatoskr.

What is ratatoskr? Well, it's a std::cout/printf replacement, highly customizable and made for multithreaded applications, which is where it really shines. Oh, and it allows you to create your own custom logging engines, for example like the one we use in Rayne to create HTML based logs!



Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com
Re: The answer to life, the universe and unity3d [Re: WretchedSid] #432940
11/19/13 19:47
11/19/13 19:47
Joined: Apr 2007
Posts: 3,751
Canada
WretchedSid Offline OP
Expert
WretchedSid  Offline OP
Expert

Joined: Apr 2007
Posts: 3,751
Canada
Remember when I was talking about writing a blogpost about multithreading? Well, I did! Please read it carefully, tests will be handed out at the end of the year.

PS: How come we have so many self-proclaimed fans but I still have to tie my own shoes and triple post in this thread?


Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com
Re: The answer to life, the universe and unity3d [Re: WretchedSid] #432944
11/19/13 22:09
11/19/13 22:09
Joined: Oct 2007
Posts: 5,210
İstanbul, Turkey
Quad Offline
Senior Expert
Quad  Offline
Senior Expert

Joined: Oct 2007
Posts: 5,210
İstanbul, Turkey
Oh my god, i had like 123546123 questions while reading the article but it appears i only have 2 question memory, so i will ask the random 2 ones that i still remember, before they are lost too.

1) Never used spinlocks so i assume they just keep the thread by doing nothing, so they do not have to give it back. Is that actually doing nothing? I mean is it just a loop that does nothing until a job is thrown at it? Like is it's computational complexity 0? If i fill the place with spinlocks it will just sit there and stall forever with no cpu heat, or can i fill it at all? It appears that i also forgot this question, now that i can't explain myself with the languages of man i know. Or is it because i do not know how to explain myself in any language - not because i forgot.This happens a lot. It's like trying to tell your dream to someone only to realize on the halfway you do not remember the rest.

2) About that sequentiality(sequentialness? no. -ok.). About the parts of game being sequential/deterministic thing : I understand you are only going to do things like streaming and resource loading and what-not in parallel threads right? I mean if you are going to update entities in parallel threads... i mean i just want to make sure when i move 2 cubes head-on directly in to each other i get the collision i want. No wait, head-on thing can work without telling me it does something else other than i think it does. When i move 2 cubes -but like really FAST and really small- in perpendicular paths where they are supposed to hit each other on the 2 path's intersection point, will any problems occur in such scenario? Or the parts of the article about ending up with floating point errors talking about this? Or you think having a lot of frames will compensate for that? While writing this i realize... I think regardless of engine updating entities in parallel or sequential order, i will always have that because there is no definitive limit to FAST? I mean they will never move at the same time either way. How does this even work in the real life?
And i also just realized none of this matters because we are still in the era where you always have like ~50ms lag at best in multi-player environment.


Does it look like i need help when i talk.(post.)

MY POINT BEING TOO MUCH JAVASCRIPT MAY BE BAD FOR ONE'S SANITY and ABILITY to COMMUNICATE PROPERLY. Please excuse my nonsense and know that i love you people.(Not plotting to kill 6.380.000.000 of the planet's population or anything like that.WITH RAYNE.)

3

Last edited by Quad; 11/19/13 22:20. Reason: typos. typos everywhere making sentences mean things that i do not intend.

3333333333
Page 5 of 34 1 2 3 4 5 6 7 33 34

Moderated by  aztec, Blink, HeelX 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1