Jump to content
  • entries
    941
  • comments
    5,894
  • views
    866,243

Picking Up St(r)eam...


Josh

3,215 views

 Share

I'm making good progress on LE3 now. First I had to write basic functionality for things like strings and file access. It was tedious, but now that it's done I've got a nice library of functions that make programming all that much easier. The string commands include Trim(), Split(), ExtractExt(), StripDir(), etc. I know the Boost library has some functionality like this, but I'd like to avoid relying on third party libs whenever possible. I've also got the file system working, with a FileFactory class that can be extended to handle internet or other files. The commands are simple and easy to use:

Stream* stream = ReadFile("myfile.txt");
int n = stream->ReadInt();
delete stream;

The regular file commands work for .pak file reading as well.

 

These features will also be useful for Codewerks, my meta language that uses C++ compilers. I have put development of this on hold for now, but I am still very interested in picking it back up again at a later date. It's nice to see that everything I originally envisioned for that will work just fine.

 

The OpenGL 3/4 renderer is started. The changes from OpenGL 2.1 to the latest version are pretty minor. Since I already know OpenGL pretty well, I don't think the LE3 renderer will be too hard at all.

 

The texture class is working. Each texture has one or more "frames" for animated textures.

 

So far everything should be cross-platform compatible, but I'll be picking up an iMac pretty soon so I can try it out on MacOS. I'm going to use XCode on Mac and Visual Studio on Windows. I'll probably use Code::Blocks or CodeLite for Linux.

 

I'm comfortable with C++, and have enough knowledge of it now to finish the project.

 

So I guess to sum it up, this week marks the end of the learning and experimenting phase, and the start of actual coding. Coding LE3 in C++ is about the same as coding it in BlitzMax, although a bit slower. The point is I am just dealing with my own code and design instead of worrying about learning new conventions, so I think things will speed up now.

 

Thanks for all your ideas and feedback in the feature requests forum. Some really good suggestions have come from the community that I will incorporate in LE3.

 

On a final note, LOL Week was a tremendous success. Here are some of my favorite images that were posted.

 

blogentry-1364-072372700 1284396611_thumb.jpg

blogentry-1364-011738400 1284396620_thumb.jpg

blogentry-1364-024551800 1284396645_thumb.png

blogentry-1364-060769200 1284396654_thumb.png

blogentry-1364-054591800 1284396666_thumb.png

blogentry-1364-057563700 1284396678_thumb.jpg

 Share

14 Comments


Recommended Comments

As long you keep saying developing in C++ is slower than in BlitzMax, then you are not sufficiently skilled in C++ yet, or you haven't written enough own standard functions which BlitzMax has (BlitzMax would be a horror without all the standard functions also).

 

The main reason why I got pissed with BlitzMax was that it took over 5 minutes to start a real game in debug mode. So I figured BlitzMax is nice for small projects, but when things get real, it's not made for the power which is needed. Besides, I always liked the C++ syntax, even when I was professionally programming in Pascal at work. I always looked at C++ and thought that someday I will convert all my Pascal code to C++.

Link to comment
As long you keep saying developing in C++ is slower than in BlitzMax, then you are not sufficiently skilled in C++ yet, or you haven't written enough own standard functions which BlitzMax has (BlitzMax would be a horror without all the standard functions also).

The reason C++ development is slower is that it usually requires more characters to communicate the same thing. The other reason is that C++ compilers, especially MSVC, are much slower than the BlitzMax compiler. No amount of experience will compensate for those two factors.

 

Other than that and some memory handling issues, I find the two languages to be pretty much the same. Neither satisfies me completely, but they're both usable for the tasks they are good at.

Link to comment

Glad to learn about the animated texture features. With transparency and lighting layers, I can only see rivers and waterfalls. :D

Link to comment

Is it at all possible to make handling transparency easier than it is today? Screwing around with multiple worlds kind of sucks. It would be nice if we were able to do this easier on our side and you can hide all that world stuff for us.

 

Things like fading objects that we can pick and interact would be much easier if we didn't have to screw around with having 2 objects, one in the normal world and one in the transparency world. There has to be an easier way to handle transparency even if it is a deferred render. Make an easier interface for us and you handle all those details behind the scene.

 

On a side note, isn't BMax basically a C wrapper around Windows C API, and other wrappers on other platforms?

Link to comment

Is it at all possible to make handling transparency easier than it is today? Screwing around with multiple worlds kind of sucks. It would be nice if we were able to do this easier on our side and you can hide all that world stuff for us.

Yes. In LE3 you can set which pass a material is rendered in, and keep everything in one world.

 

On a side note, isn't BMax basically a C wrapper around Windows C API, and other wrappers on other platforms?

MaxGUI uses the native GUI for Windows, MacOS, and Linux. It calls the Win32 API on Windows.

Link to comment

I vaguely remember you were not to happy with Code::Blocks. As an alternative I can recommend Netbeans. Started out as a Java IDE but has support for C++ as well. I have been using it for Linux development for nearly two years now and never looked back at that horrible Code::Blocks interface :D

Link to comment

If you get an iMac, avoid blowing money on a matching mouse (the ones with the 4 way scroll nipple), use a decent multi-button Logitec or something you're familiar with. Those Apple mice suck for heavy duty use.

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...