Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Eclipse in C++


Owen F
 Share

Recommended Posts

**UPDATE:** I've made a decision. I won't be attempting this project at this time. I've actually just come up with an idea for my own Eclipse project that I will be working on. I will still be learning C++ on the side, but for now, I won't be attempting a rewrite of Eclipse in C++.
I will most likely get around to it in the future, when I am more confident in my C++ skills.
Sorry for anyone who had their hopes up and stuff, I specifically warned you not to, but I apologise none the less.

**THE ORIGINAL POST WILL REMAIN HERE FOR ANYONE INTERESTED FOR WHATEVER REASON:**
Basically, I am learning C++ and I am thinking of doing what Marsh did and worked on building an Eclipse engine to help me learn. I am still undecided whether or not I will start from scratch or pick up where Marsh left off.  (This is largely dependent on whether I want to actually see the project to completion or do it for the learning experience alone).
Edit: I've decided that I won't be using what Marshy Dearest has already made. It will most likely still use the .net framework, though.
I feel as if I have hardly been any contribution to the community since the scripting boards were removed so this might just by my gift to you all.

I have a lot (and I mean A LOT) of free time on my hands so time for this engine won't be too much of an issue, except if my girlfriend wants me to spend time with her.
Anyway, so what I'm here for is your thoughts, mainly, will this be a good learning experience for me?
Also support and (I guess) ideas for the engine (**But keep in mind this is not just a suggestions thread, so that isn't all I want to see**)

It will also not likely be an official Eclipse release, either, unless it's debugged and deemed worthy by Marsh. (Which of course there will be bugs because I'm only learning, I'm no professional)
So yeah. What are your thoughts on this?
Keep in mind it will be a long time before you see major progress being made on this as I won't be starting right away and as I said, I'm no professional so I'm not fast either.

**IMPORTANT:** I definitely DO NOT suggest holding out on your game for this OR CONVERTING to this if it is released.
Honestly, that's just stupid, because it won't be too much of a performance boost or hundreds of new features, it's just eclipse rebuilt in a more supported language.
VB6 is not defunct. You will still be capable of building and running your game if you use VB6\. Do not think that you must wait for this engine to be released.

**This thread will be updated whenever, if at all, necessary.**
**Oh and lastly, the reason this is in discussion and not custom versions is because it's still an idea and I want some opinions/support/whatever first.**
Link to comment
Share on other sites

@Captain:

> lol. C's older than VB.

Vb6 is pretty much unsupported and unused now, which is basically what I meant.
I should have been more clear, sorry.
It's written like:

> .. outdated..

Because I wasn't really sure how to word it.
If it annoys you I'll edit my main post.
Link to comment
Share on other sites

I'm all for doing this and to learn from it, but make sure you can do most of the aspects of the engine before you do it… Robin made a nice post about what you need to learn first...

> 1\. Learn how TCP/UDP packets work. Figure out how client events can be triggered by server packets. Set up a simple client-server chat system to get this framework down.
>
> 2\. Get a basic graphics engine. I'd suggest anything which allows for NPOT bitmaps. No idea what kind of libraries C has to offer so talk to Stephan about that one. That guy knows everything about everything.
>
> Find out how to render some basic tiles. Then your character. Then build your chat system on to the graphics engine and get on-screen text rendering working.
>
> 3\. Input. Now you have a graphical environment you can talk in you should make it so you can handle input. Don't bother trying to have the input do anything yet. Simply get a few lights on the screen which turn on when certain keys are pressed.
>
> Use an actual input library, not the default Windows forms stuff. Personally I jack in to the Windows events directly and handle all mouse & keyboard events with that.
>
> Maybe get some basic GUI elements going. Boxes you can drag around or something.
>
> 4\. Loops. Now you have a packet driven server-client framework with event-driven processing. What you need now is logic loops. You'll want them both server and client side. The server-side loop will handle all processing for everything. The client-side loop should be limited to things like memory management, animation and input checks.
>
> 5\. Entities. You'll probably want to start with something basic like the actual player. You'll probably be wanting to use structs (or classes if you're going OOP) so go read up on the best ways to store data. Whilst you're here you might want to look at creating a generic library for saving and loading struct data easily. Personally I just do direct memory dumps to binary for most of my things and more advanced INI (you'll probably be using XML) for things which are more dynamic.
>
> 6\. Link it all together. You've got graphics, you've got input, you've got entities, you've got logic. Now you have the hard part. This is the part where pretty much everyone on this forum falls down. They think that because they've got a UDT and a DD7 front-end that they've got a game. So far you've had libraries do almost all of the work. You're just linking in to other people's systems and using their functions. Now you have to make the systems which are specific to your project so you can't exactly use other people's work.

It'll be long and a challenge, but if you have the time and the motivation, do it.
Link to comment
Share on other sites

@Jungle:

> What libraries will you use? SDL and OpenGL I presume?

Yes, definitely.
@Eckhart:

> I'm all for doing this and to learn from it, but make sure you can do most of the aspects of the engine before you do it… Robin made a nice post about what you need to learn first...
> It'll be long and a challenge, but if you have the time and the motivation, do it.

Thank you for your support, and thank you for that nice quote. I hadn't read that before. Gives me a good idea of where to begin (as I'm leaning more towards starting from scratch, more learning and I know what I've done and how I've done it).
And yeah, I'm not rushing headlong into this. I'm learning as much as I need to before I feel confident that I can begin work on it.
I can't learn by building something that I have no idea how to build. That's just silly.
Link to comment
Share on other sites

>inb4RobinDefendsVB6

I read: "Basically, I am learning C++ […]" and figured that this isn't worked on much from where I think you stand. You should have held off on making this thread until you've made some considerable progress (see Eclipse.NET).

I'm not criticizing you, just letting you know that you've put some of burden's weight on your own shoulders for the sake of notoriety.
Link to comment
Share on other sites

@MrMiguu:

> >inb4RobinDefendsVB6

I know. I'm just waiting for this, or criticising my topic or something. :P
@MrMiguu:

> I read: "Basically, I am learning C++ […]" and figured that this isn't worked on much from where I think you stand. You should have held off on making this thread until you've made some considerable progress (see Eclipse.NET).
>
> I'm not criticizing you, just letting you know that you've put some of burden's weight on your own shoulders for the sake of notoriety.

Yeah, I know what you mean, I shouldn't have made the topic so quickly after getting the idea, but yeah, I want some opinions on whether or not people think it's a good idea for a learning experience.
Previously I had been talking to people on the shoutbox about it, which after a while I think was getting a little spammy and annoying.
I know you're not criticising me, and you're right anyway.
Thanks for the input.
Link to comment
Share on other sites

I've done conversions before.
I'd suggest working with the client first as proper server sockets require knowledge on multithreading
I'd also suggest not using full c++ opp for easier transition. Ei: struct replaces type.

Also, have fun with pointer math. I'd program in C++ more just because of pointer math, if it weren't for there not being a standardized cross platform window library.
Link to comment
Share on other sites

I discourage using Marsh' work for the reason that it is using .net. You simply don't want to use that framework since it isn't truly cross-platform (Mono isn't a valid argument, since generally it doesn't work, and when it does, your end-product won't get accepted by UNIX users at all).

As for writing an engine: my general advice is not to do something like that. You need to know way more than Robin has listed before you can even approach such a project. Data structures, networking, multi-processing (including multi-threading), modern graphics programming, etc. are all fundamental knowledge you should posses.

Learn the basics, and start with smaller projects.

Yours faithfully
  S.J.R. van Schaik.
Link to comment
Share on other sites

I would suggest trying to code a MUD or chat server from scratch in C++. Once you can do that, then writing a version of Eclipse in C++ would be less of a challenge.

If you really want to try and do it, though, go for it. There is plenty of material on the internet. It would be a fun way to pass the time, at least. We were taught it as our intro to programming in college, so I only have a little formal training with C++, but I had a lot of fun with it while I was learning.

Either way, best of luck to you.  Keep us updated!
Link to comment
Share on other sites

@S.J.R.:

> I discourage using Marsh' work for the reason that it is using .net. You simply don't want to use that framework since it isn't truly cross-platform (Mono isn't a valid argument, since generally it doesn't work, and when it does, your end-product won't get accepted by UNIX users at all).
>
> As for writing an engine: my general advice is not to do something like that. You need to know way more than Robin has listed before you can even approach such a project. Data structures, networking, multi-processing (including multi-threading), modern graphics programming, etc. are all fundamental knowledge you should posses.
>
> Learn the basics, and start with smaller projects.
>
> Yours faithfully
>   S.J.R. van Schaik.

Thanks for your input. Of course, I won't be trying to get this done in about a week. Like I said, I'm learning. It could be a very long time before I finish this, if at all.
I will take the time to learn what I need to learn, and I will put that learning into practice with this engine. As I also stated, time is not an issue as I have ridiculous amounts of it.
I've already decided not to use Marsh's work, and I shall be updating my main post momentarily.
@Yester:

> I would suggest trying to code a MUD or chat server from scratch in C++. Once you can do that, then writing a version of Eclipse in C++ would be less of a challenge.
>
> If you really want to try and do it, though, go for it. There is plenty of material on the internet. It would be a fun way to pass the time, at least. We were taught it as our intro to programming in college, so I only have a little formal training with C++, but I had a lot of fun with it while I was learning.
>
> Either way, best of luck to you.  Keep us updated!

Thanks. I will of course be doing side projects in C++ as a way of testing my knowledge before I go and fuck the entire engine with my idiocy. It would be foolish of me to expect everything to be easy and run properly if I haven't tried doing it before.
I tend to dismantle existing projects and see how they work, then attempt to replicate them while altering them to suit my needs and not just letter for letter copying it from their source into mine.
@Captain:

> No shit. I'm pretty sure VB6 was /programmed/ in C++.

That will be enough of that discussion please, it isn't (entirely) on topic.

Thanks again for all your input!
Link to comment
Share on other sites

@Owen:

> I tend to dismantle existing projects and see how they work, then attempt to replicate them while altering them to suit my needs and not just letter for letter copying it from their source into mine.That will be enough of that discussion please, it isn't (entirely) on topic.

That's not a bad idea. It might be worth it to download the source code to Eclipse and peruse it a bit in the VB 6 IDE. It might be helpful to look at the algorithms so you can get general idea of what you need to accomplish in C++. It isn't going to be a cut and paste obviously, but it'd be nice to look at.

If you're in school and they're a member of the MSDN, or a member of Microsoft's Dreamspark Program,  you should be able to pickup the IDE for free.
Link to comment
Share on other sites

@Owen:

> Thanks for your input. Of course, I won't be trying to get this done in about a week. Like I said, I'm learning. It could be a very long time before I finish this, if at all.
> I will take the time to learn what I need to learn, and I will put that learning into practice with this engine. As I also stated, time is not an issue as I have ridiculous amounts of it.

I am not stating that time would be a problem, I am stating that the lack of experience will get you anywhere, which is a completely different thing.

@Owen:

> I tend to dismantle existing projects and see how they work, then attempt to replicate them while altering them to suit my needs and not just letter for letter copying it from their source into mine.That will be enough of that discussion please, it isn't (entirely) on topic.

That only works to some extent. Sure, you'll be able to grasp how you can implement something very specifically, but what you won't grasp is why that specific implementation might be poorly designed, and what alternative implementation might exist for that specific implementation. In fact, unless you can completely criticise code, and therefore actually improve it, you won't be able to write your own engine.

To learn how to criticise code, you have to read a lot of books, papers, documents, etc. that explain several concepts. Then you should also programme those specific concepts yourself, and figure out why certain bottlenecks exist, and how you can possibly improve them. Basing yourself on source code written by other people will lead to you writing the exact same implementation in your own flavour, which isn't useful, unless you know why that exact implementation is actually good, or why it is poor (in which case you would have to figure out a better implementation, rather than re-implementing it).

Yours faithfully
  S.J.R. van Schaik.
Link to comment
Share on other sites

@Main:

> I've made a decision. I won't be attempting this project at this time. I've actually just come up with an idea for my own Eclipse project that I will be working on. I will still be learning C++ on the side, but for now, I won't be attempting a rewrite of Eclipse in C++.
> I will most likely get around to it in the future, when I am more confident in my C++ skills.
> Sorry for anyone who had their hopes up and stuff, I specifically warned you not to, but I apologise none the less.

Decision made. Quote is now at the top of main post.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...