## Registration code : 12 ##
It is currently Sun Oct 22, 2017 6:30 am

All times are UTC + 1 hour [ DST ]





Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: Fresh start
PostPosted: Sat Apr 21, 2012 3:26 pm 
Offline
User avatar
 WWW  Profile

Joined: Mon Jun 09, 2008 8:23 pm
Posts: 59
Location: The Netherland
Hey Kal!
Very very long time no see,
I noticed you got online on April 2012, which means you are still aware of the whole project. :P

I got a few cool Idea's for you.

    * How about creating a ToDo list on you website, and just update that post every time you completed something.
    * Did you have a working SVN trunk?? Would be cool to just checkout the whole source-code for example. (The current trunk is dead right?
    * Last week I bought "C++ for dummies", any tips and or tricks to be a good programmer fast? (When I'm good enough maybe I can help you.)
    * Maybe Its time to buy a real website (domain) and host a forum that 100% yours, I can help you out, I'm 4 years and counting writing: PHP, HTML, CSS, MySQL, Javascript and Ajax.

So, How's everything? Did some coding? Got massive progress? Planning on refreshing FrostEngine?

_________________
My Website


Top
 

 Post subject: Re: Fresh start
PostPosted: Tue Apr 24, 2012 11:37 pm 
Offline
Site Admin
User avatar
 WWW  Profile

Joined: Mon Jan 28, 2008 9:44 pm
Posts: 200
Location: France
Hi,

Indeed, very long time no see :) (I actually check the forums every week !)

I've been extremely busy with my studies this year, and didn't work on Frost Engine at all (the current SVN trunk is actually up to date !)... And I don't really know if I'll be able to do so in the future.

To be honest, I don't think the project is viable in the long term. The ToDo list is actually enormous, because this project aims at being a real game, like the ones that teams of dozens of people are working on and that sell for 50€. Doing all this alone is just impossible. Even though I could take care of the programming aspect by myself (and that alone would require several years of work), I am in no position to create graphics, scenario, sounds, etc, i.e. all the actual content that actually make the program a game.

On the little spare time I have left, I've tried to decouple as much as I could the various libraries that I developed for the project (XML parser, Lua C++ wrapper and GUI code) so that they can be re-used in other projects of mine, and, why not, by other people too.

To give you an idea : the actual engine weights about 20 000 lines of code. Looking more closely, you can see that a non negligible part of these lines is composed of unnecessary wrappers around Ogre. What is actually of interest may be 10 000 lines.
In comparison, the GUI library is 20 000 lines of useful, full featured, fully functional code. XML and Lua reach about 2 000 lines each, and as such are much smaller, though almost as important as the GUI library (which depends on those two). These 3 libraries are where I spent most of my time, and probably where I spent it the best way :)
If you remove the GUI library from the picture, Frost Engine is just a test project : not much has been done.

The initial project, which was in 2D, was more advanced than this one is, gameplay wise : you could control several units, you had path finding, you had spells, attacks, death, etc. It was coded in an horrible manner, that is true. But it was actually closer to a game than Frost Engine is today.
Going to 3D really seemed like a good option at the time, because 2D felt too limited for my ambitions. But now I understand it was a mistake : 3D is truly wonderful, but it is also much harder to handle. Indeed, the maths are more complicated (rotation in 2D is just a matter of adding angles, in 3D you have to compose quaternions, for example), the collisions are harder to handle (an extra dimension makes the whole process much more involved), and finally it consumes more resources, so you have to be more careful about performances (look at the performances of Frost Engine for a very basic scene : I get ~100 FPS, while I reach similar performances in WoW in a city full of people...).

So, to restore a little hope, if I ever work again on this project, it will be a complete fresh start, as you suggested :D I would go back to 2D graphics (which are simpler to produce and handle), leave the warcraft universe (so as to get rid of its limitations, both technically and legally), and it will also be a hobby project, just like Frost Engine was, but with much more humble ambitions (which are yet to be defined exactly).

I hope you understand the situation I'm in, and I also hope that, in your programmer life, you won't do the same mistakes :)
For example, learning C++ cleanly can help you a great deal. You can start a project from the very beginning of your learning (it's a good way to try what you've learned, and learn it faster), but keep it simple ! Because you'll start writing code that works (hopefully :)), then you'll discover you could have done it a much better way using some feature X of the C++ language that you didn't know about when you started your project. So you want to re-write everything to use feature X, and you loose time... That happened to me several times (with standard containers, smart pointers, exceptions, ...).

It's true that making simple projects is not appealing. When you have a something like Frost Engine in mind, you don't want to loose time coding yet another Tetris clone :) Yet it's not a waste of time, because you're going to make mistakes coding it. You'll learn from these, and won't repeat them on your next project. Making mistakes on a large scale project is likely to get you in much more trouble, if not simply make you give up on it.
The best way to begin, I think, is thus to start something small and manageable. Try to code it the very best you can, and show it to other people : in France we have very welcoming developer forums where you can show your work and get criticized (always nicely) :) This is never pleasant of course, but it's probably the fastest way to get good habits and write nice code that is bug/crash free, easy to understand, and easy to upgrade should you need it.

This is especially true for C++. Indeed, people say it is the hardest language to learn for a reason : there are many different ways to code in C++. Some people see C++ as "C with classes" for example, and essentially write C code with small pieces of C++. You don't want to go that way, because you'll loose too much time on unessential matters such as in depth memory management (which you'll eventually get to learn someday, but you don't need to do it from the start).

Need an example ? Here is how you create two pieces of text (strings) and add them together in C :
Code:
// Necessary dependencies
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

// Allocate memory for the two strings
char* text1 = (char*)malloc(10*sizeof(char));
char* text2 = (char*)malloc(10*sizeof(char));

// Assign them some value
strcpy(text1, "hello ");
strcpy(text2, "world !");

// Concatenate (add) the two
char* textres = (char*)malloc(20*sizeof(char));
memset(textres, 0, 20);
strcat(textres, text1);
strcat(textres, text2);

// Print the result in the console
printf("%s\n", textres);

// Release memory
free(text1);
free(text2);
free(textres);


And here is how you do it in C++ :
Code:
// Necessary dependencies
#include <string>
#include <iostream>

// Create the two strings, memory is automatically allocated
std::string text1;
std::string text2;

// Assign them some value
text1 = "hello ";
text2 = "world";

// Concatenate the two
std::string textres = text1 + text2;

// Print the result in the console
std::cout << textres << std::endl;

// Memory is released automatically


That is a perfectly good example of time wasting. Many people first learned to write code like in the first example, and then discovered you could also use the second example to do exactly the same thing with half the number of line, half the number of possible mistakes, and the same performances (more or less). So be careful : when you read a book, or follow some courses in university, you have no way to know if what you've been told is like the 1rst or the 2nd example. The only way to be sure is to talk to a C++ expert (or skilled professional), and there are quite a few out there on the internet that are ready to help you (should you ask nicely ;)). I don't know "C++ for dummies", but from the few example that I've seen, it doesn't seem like a bad book, so you should be okay. But beware of online tutorials or old books ! Books are usually harder to read, but are more reliable. Online tutorials can be very pleasant and make you code quickly, but some are of very poor quality.

In any case, if you need some help on something in particular, don't hesitate to ask me ! Even though I'm no C++ guru, I will most likely be able to answer most of your questions :) Also note that, in most cases, copying the compiler error message in Google will get your problem solved in no time. Always do that before asking a question to anyone.

Okay, now I think I must stop. It's late, and I have to read my lecture notes before going to bed :)

See you, and happy C++ing !

_________________
- Kal.


Top
 

 Post subject: Re: Fresh start
PostPosted: Thu Apr 26, 2012 8:52 pm 
Offline
User avatar
 WWW  Profile

Joined: Mon Jun 09, 2008 8:23 pm
Posts: 59
Location: The Netherland
That is really great to hear!
I prefer 2d for now too, (Could be better for me because I'm still learning a lot)

And really THANK YOU about the C and C++, my next chapter in the book is dedicated to the differences of the two languages.

I really hope things are going to change here, new forum? new website?
A filled, updated and active Wiki?
A cool developers blog?

:P

We'll see, and good luck with school!
I'm doing a 9 months internship now so not really a lot of stress.. :P

_________________
My Website


Top
 

 Post subject: Re: Fresh start
PostPosted: Mon Apr 30, 2012 1:38 pm 
Offline
Site Admin
User avatar
 WWW  Profile

Joined: Mon Jan 28, 2008 9:44 pm
Posts: 200
Location: France
DarkFortune wrote:
I really hope things are going to change here, new forum? new website?
A filled, updated and active Wiki?
A cool developers blog?

I doubt it, at least not for now. That is also a non negligible amount of work to do. Plus I think one needs to have something ready before presenting it to the public for the first time. It helps maintaining people's attention :) I really hate it when I find a pretty website, that describes an awesome little game, and there is no download button to try it, or even no screenshot in the media section...
Any way, if I ever publish something new, rest assured that you'll be among the first to know !

DarkFortune wrote:
I'm doing a 9 months internship now so not really a lot of stress.. :P

Nice, I hope you'll enjoy it :) I've only done 2 month this year : it was way too short.

_________________
- Kal.


Top
 

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC + 1 hour [ DST ]



Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron
SourceForge.net Logo
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group  
Design By Poker Bandits