greenengine-developer Mailing List for Green Game Engine
Status: Planning
Brought to you by:
jeromiya
You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
(5) |
Apr
(36) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
---|
From: Nado . <cbr...@gm...> - 2007-11-12 19:45:07
|
A short description for so anyone can edit the syntax highlighter if you want to. The syntax highlighter is located in greenengine/greenengine/src/interface and it is in highlighter.h and .cpp the general format for adding a keyword is HighlightingRule rule; //keywords keywordFormat.setForeground(Qt::darkBlue); keywordFormat.setFontWeight(QFont::Bold); QStringList keywordPatterns; keywordPatterns << "\\bbehavior\\b" << "\\bcondition\\b" << "\\bif\\b" << "\\belseif\\b" << "\\belse\\b" << "\\breturn\\b"; foreach (QString pattern, keywordPatterns) { rule.pattern = QRegExp(pattern); rule.format = keywordFormat; highlightingRules.append(rule); } rule is just a temp variable used to add to highlightingRules. This should be fairly self explanatory so the only thing I will mention is that the keywords are surrounded with \\b so if is put int as \\bif\\b |
From: Dave G. <dav...@ya...> - 2007-04-27 04:18:08
|
It runs, very basically but the interpreter runs and stuff moves because the interpreter said so!!!! I'm happy, and probably delerious... so I just wanted to share. -David __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Jeremy B. <bel...@gm...> - 2007-04-26 19:50:03
|
Sorry, I'm not going to be able to do that today. An emergency came up here, but I'll be there tomorrow to hand it in and I'll be on skype later today. We can always conference call and use cvs if we have to. Regards, Jeremy Dave Gao wrote: > Are we meeting today to finalize? Everything is > basically done we just need to debug it all together, > and I thought that that would be much easier in person > with everyone here. > > -David > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Greenengine-developer mailing list > Gre...@li... > https://lists.sourceforge.net/lists/listinfo/greenengine-developer > > |
From: Dave G. <dav...@ya...> - 2007-04-26 16:57:25
|
Are we meeting today to finalize? Everything is basically done we just need to debug it all together, and I thought that that would be much easier in person with everyone here. -David __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Jeremy B. <bel...@gm...> - 2007-04-25 23:37:20
|
Given the following classes: class base { public: virtual ~base() {} }; class sub : public base { public: virtual ~sub() {} }; The following does NOT work: int main() { shared_ptr<base> b(new base()); // BAD shared_ptr<sub> a(dynamic_pointer_cast<sub>(b)); assert(a.get()); // ASSERT WILL FAIL return 0; } The following WILL work: int main() { shared_ptr<base> b(new sub()); // GOOD shared_ptr<sub> a(dynamic_pointer_cast<sub>(b)); assert(a.get()); // ASSERT WILL PASS return 0; } It basically means I have to essentially rewrite any subclass functions that instantiate objects, like TemplateTable::Instantiate all need to be rewritten in the subclasses to make a new instance of the subclass they work with, rather than the base class. There may be other places where I should do this, I'll have to see. Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-24 23:01:36
|
One exception to the last rule is that I think unit tests must be in the global namespace to work correctly with the test runner. Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-24 22:54:04
|
Just as a reminder, all classes/functions/typedefs/etc.. for the project should go under the "green" namespace. Unless this isn't possible for some reason (like QT being picky about it). Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-24 20:12:31
|
I fixed the timing issue in Timer.h and GRunApplication.h so everything should behave as expected now. Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-24 17:10:55
|
Fixed! you can: cvs -q update -Pd now and get the changes. Regards, Jeremy PS: let me know if it still isn't fixed on your system. |
From: Dave G. <dav...@ya...> - 2007-04-24 16:34:11
|
Hey Jeremy, I'm getting a wierd set of errors whenever I include one of your headers. The command i run is g++ -I../ DeclTst.cpp &> err.txt the source file and err.txt is included -David __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Jeremy B. <bel...@gm...> - 2007-04-24 16:22:23
|
I've added a MessagePool to GRunApplication, and the ability to Get and Set the current MessagePool to the System class, so you should, from within the interpreter, be able to retrieve messages from the message pool through the System class. Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-24 15:56:23
|
I've implemented MessagePool, but I need to write a unit test for it. It should be working though, and you can at least see the interface. Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-24 00:33:46
|
Another batch of updates. This should fix the interpreter loops and the Timer functionality. For some reason the documentation says gettimeofday's tv_usec is microseconds, when it is really 1/10000 of a second. It should work as expected now. Just to prove the system works, I've made the interpreter functions spin an default entity at 360 degrees per second, which you can see now since I'm also drawing entities! Regards, Jeremy On 4/23/07, Jeremy Bell <bel...@gm...> wrote: > > Speaking of changes, you should be able to do a cvs update now and have > the compile errors from before fixed. Let me know if there are still issues > (it builds fine on Ubuntu and Mac OS X). > > Regards, > Jeremy > > |
From: Jeremy B. <bel...@gm...> - 2007-04-23 21:56:36
|
Speaking of changes, you should be able to do a cvs update now and have the compile errors from before fixed. Let me know if there are still issues (it builds fine on Ubuntu and Mac OS X). Regards, Jeremy |
From: Dave G. <dav...@ya...> - 2007-04-22 16:11:37
|
I added a few fields to BehaviorTemplate.h and such that I needed. Just so none of you are surprised. By the way Jeremy, how do you add an OpSeq to a behavior or entity? I couldn't find anything like that. -David __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Nado . <cbr...@gm...> - 2007-04-20 18:57:30
|
Hey Jeremy, today after class dave and myself figured out a couple things having to do with compiling cppunit under windows and the makefile, basically we are going to need a seperate makefile for windows, whether it is physically two files or just an auto-detect thing in the makefile right now the things we found are: -ldl is unix/linux only it does not work under windows and in the LDFLAGS variable we need the -enable-runtime-pseudo-reloc command (im assuming we dont want this option under linux, or that it doesnt work) For now dont worry about doing a auto-detect, for version1 we can just have a Makefile.win32 or something, but thats just a heads up BTW, this means that cppunit is working under windows so that problem is done with next up, I wrote a unit test for the interface, but I have no idea how to add it to the current makefile so that it will compile it and run it as part of the tests oh, and since you wernt in class today, ill tell you what went on the exam is wednesday 8am-10am it will be 4 short essay questions, one from each of the books (the questions will be on "major concepts") it is now closed-book but you can bring notes if you want to thats about it for now |
From: Jeremy B. <bel...@gm...> - 2007-04-17 00:35:57
|
Just added some improvements to the Print function of EntityTemplate, which now prints information about its BehaviorTemplate list, and also the VariableTableTemplate base class now also prints out the InitFormat as well. NOTE: Variable::Value objects are printed in this form "(<intVal>, <floatVal>)" so I don't have to pass the type every time I want to print a Value. Also, you can now add BehaviorTemplates to EntityTemplate using the name rather than the key by using the new overloaded method: void EntityTemplate::AddBehavior(const Name& name, ArgListPtr args); // add a behavior to the list with Name name (and Key 0) You can get the name back from the template with: const Name& EntityTemplate::GetBehaviorName(size_t behavior); // get the nth behavior's name And you can set the Key for the behavior later on with: void EntityTemplate::SetBehaviorKey(size_t behavior, Key key); // set the nth behavior's Key to key I've got code in GRunApplication::Init that demonstrates creating a BehaviorTemplate and an EntityTemplate and adding them to the BehaviorTemplateTable and EntityTemplateTable (and also printing them out) and also Instantiating the EntityTemplate, so you can take a look at that to see how to do it all. Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-16 22:37:13
|
Just a heads up: I fixed the seg fault bug, it was due to the improper dynamic cast. shared_ptr must be dynamicly cast using the boost::dynamic_pointer_cast method. See boost docs for exact usage. Also, I changed the way VariableTableTemplate handles InitFormat. It now uses a shared_ptr internally, and you must send it a shared_ptr when calling SetInitFormat method. I also moved InitFormat and InitArgFormat (along with their respective shared_ptr typedefs) outside of VariableTableTemplate so you don't have to type VariableTableTemplate::InitFormatPtr just InitFormatPtr. Oh, and also I added some Print functions to TemplateTable and VariableTableTemplate base classes, which should generally be useful for subclasses. I may add an additional Print function (which TemplateTable::Print function uses) in EntityTemplate to print out behaviors. Cheers, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-15 06:22:50
|
Just added a TON of files to CVS and made a bunch of modifications. *New Files:* /backend GLHeaders.h : Include to automatically grab the right opengl headers. GLRenderSystem.h : RenderSystem backend for straight OpenGL Application.h : Abstract application, driven by glutApp at the moment RenderSystem.h : Base class for RenderSystem backend/abstraction layer /engine BehaviorInstance.h : You know what it is BehaviorTemplate.h : ditto BehaviorTemplateTable.h : ditto EntityInstance.cpp : ditto EntityPool.h : ditto EntityTemplateTable.h : ditto GRunApplication.h : Subclass of backend/Application, will run our engine MessageInstance.h : You know what it is MessageTemplate.h : ditto MessageTemplateTable.h : ditto *Modifications: * * Implemented new ClassNamePtr convention. All classes, except for templated base classes, should have a typedef for a shared_ptr to them, named ClassNamePtr, where "ClassName" is the name of the class. * Separated glutApp into the backend (glutApp) and the more abstract engine (Application, with GRunApplication subclass). * Created RenderSystem virtual base class, with a GLRenderSystem subclass that can draw asteroids, ships, and bullets, set the draw and clear colors, and start/finish the frame (by clearing the buffer on starting the frame, and glFlush and glFinish on leaving the frame. * Modified the Makefile to make the grun application. * modified /main/main.cpp to create a glutApp with a GRunApplication using GLRenderSystem. grun now opens up a blank glut window. * Added an ERROR_ASSERT(cond, msg) macro in Error.h that throws an error if (cond) is not true. * Added /some/ functionality to BehaviorTemplate. It can set the Key for the MessageTemplate of the kind of message that the behavior responds to. * Added /some /functionality to EntityTemplate. It can add BehaviorTemplates to its list and retreive them, and get the number of BehaviorTemplates in its list. * GRunApplication creates TemplateTables for Entities, Behaviors, and Messages, and creates an EntityPool, but doesn't yet add any templates/instances, or process entities at the moment. So yeah, I've been a bit busy today :D Let me know if any of these changes break anything on your system. Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-15 02:30:28
|
Just a head's up, I'm working on getting the grun makefile target up, and I'm also taking a bit of a sidetrack from the /engine directory and implementing the /backend directory a bit, so that the /engine can have some context and I can test it out on a working system (with actual graphics). Here's what I'm getting setup so far: * RenderSystem: This is the abstract base class of all the rendering system, which handles all of the drawing and such. * GLRenderSystem: The implementation of RenderSystem for custom OpenGL rendering (non-Ogre). * Application: Basically the abstract event loop responder. The windowing system backend (in this case, glutApp) forwards system events to the Application, which sends commands to the RenderSystem. This has the potential to be the base class of the Engine class, or possibly the base class of a class that contains the Engine class. I haven't decided yet. * glutApp: the Windowing system backend for Application, which uses GLUT for events and window management, and OpenGL for rendering. * GRunApplication: This will be the Application subclass to run our game. It's basically the Engine class or possibly it contains the Engine class as a member. I haven't decided yet. * System: System is the abstraction layer between the Engine and EntityInstance/BehaviorInstance classes. IE, queue'd entity spawns and message passing interface. In other words, RenderSystem is an abstraction layer between the backend (glutApp) and Application, which is backend-independent (doesn't need to know anything about glutApp). In the case of GLUT, glutApp doesn't even need to know about GLRenderSystem really, but ogreApp might need to, and Application doesn't care whether glutApp or ogreApp knows about the RenderSystem being used, or even of the existence of glutApp or ogreApp. So yeah, beautiful. Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-15 00:11:09
|
I've decided to start implementing a new convention for shared_ptr that makes things much cleaner in the code. Every class should, immediately after its definition, define a typedef for a shared_ptr of that type, and it should be named "[classname]Ptr". For example: #include <boost/shared_ptr.h> class MyClassName { ... }; typedef boost::shared_ptr<MyClassName> MyClassNamePtr; This greatly reduces the messiness of shared_ptr arguments in the entire codebase. I haven't implemented it yet in the main code, but just thought I'd pass along that convention for you guys to implement in your own code while I'm doing that for mine. Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-13 05:08:13
|
First of all, the Makefile should only support unixy build environments, including mingw and possibly cygwin environments, which when you install boost and cppunit put them in /usr/local/include and /usr/local/lib in the virtual filesystem they run in. So the Makefile should work as is. I did get it running ok with mingw, but in cygwin I got the same error you did. So I guess I'm having the opposite problem as you? :P (reading the link you sent) Try sending the options -enable-runtime-pseudo-reloc and -enable-extra-pe-debug and seeing if that works (or gives more information). Based on the documentation it looks like this is due to a limitation of the linker on windows with respect to DLL files. That's all I can tell so far. Their suggestions for fixing it require changes in code. The first option says it requires some special run-time features, so I don't know if those are present in mingw/cygwin. The other problem is even if those flags work, they are specific to the x86 hosted version of the linker, so it won't work on my mac (or it might give an ugly warning). If there is some way to conditionally make for different platforms, without using autoconf and such, that would be good. Oh, and the QT stuff should be limited to the IDE, which should have its own Makefile separate from the rest of the engine. So you can put in any include flags you like! :D Cheers, Jeremy PS: I may add some files to the repository just to get them on there since I'm cross-developing on my linux virtual machine, windows mingw, and my mac, and it's hard to transfer files manually every time I switch, so I'm using cvs even though they aren't done yet. InstancePool.h is done though! Nado . wrote: > Ive been running into a lot of problems getting cppunit up and running > under windows. First off, it seems that there is no way to fully > compile the libraries, unless you have the paid version of VS, but > using MSYS and mingw it will compile the "important" parts (we may be > able to use cygwin to compile it fully, but id rather not have another > program to install if we can avoid it). > > Next up, we may want to change the makefile a little, right now you > have it set up as > > CFLAGS = -Wall -I. -I/usr/local/include > LDFLAGS = -L/usr/local/lib > > but on windows it will need to be something like > > CFLAGS = -Wall -I. -IC:\Qt\cppunit-1.12.0\include > -IC:\Boost\include\boost-1_33_1 > LDFLAGS = -LC:\Qt\cppunit-1.12.0\lib -LC:\Boost\lib > > so we may want something to support those changes easily (although it > isnt of the utmost importance since people can change it manually, but > that is a pain) > > > And now to the fun part... > when I run make I get this error (it compiles fine, this is the > linking phase): > > g++ -o testrunner -LC:\Qt\cppunit-1.12.0\lib -LC:\Boost\lib > util/utest_Error.o engine/utest_Variable.o > engine/utest_VariableTableInstance.o main/testmain.o > engine/VariableTableTemplate.o engine/utest_VariableTableTemplate.o > engine/utest_KeyNameTable.o engine/utest_TemplateTable.o > engine/utest_InstancePool.o -lcppunit > > Info: resolving vtable for CppUnit::TestSuiteBuilderContextBaseby > linking to __imp___ZTVN7CppUnit27TestSuiteBuilderContextBaseE > (auto-import)util/utest_Error.o > (.text$_ZN7CppUnit27TestSuiteBuilderContextBaseC2ERKS0_[CppUnit::TestSuiteBuilderContextBase::TestSuiteBuilderContextBase(CppUnit::TestSuiteBuilderContextBaseconst&)]+0xb) > :utest_Error.cpp:variable 'vtable for > CppUnit::TestSuiteBuilderContextBase' can't be auto-imported. Please > read the documentation > for ld's --enable-auto-import for details. > collect2: ld returned 1 exit status > mingw32-make: *** [testrunner] Error 1 > > > of which the important part is "variable 'vtable for > CppUnit::TestSuiteBuilderContextBase' can't be auto-imported. Please > read the documentation for ld's --enable-auto-import for details." > > and this link ( > http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-linker/invocation.html#OPTIONS > <http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-linker/invocation.html#OPTIONS> > ) gives some clues as to what is wrong, but how the heck am I supposed > to get around this??? > > > there are only a couple options I can think of: > 1) its screwed up since I didnt compile cppunit fully > 2) its screwed up since I used mingw to compile and for some reason it > didnt think it was on windows (thus causing an error that only occurs > on windows) > > I have no idea what to do next...i guess ill install cygwin next and > see if that helps, but I was kinda hoping you guys could throw some > ideas my way, or maybe do a little research and have more luck then me > finding some stuff > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ------------------------------------------------------------------------ > > _______________________________________________ > Greenengine-developer mailing list > Gre...@li... > https://lists.sourceforge.net/lists/listinfo/greenengine-developer > |
From: Nado . <cbr...@gm...> - 2007-04-13 00:04:58
|
Ive been running into a lot of problems getting cppunit up and running under windows. First off, it seems that there is no way to fully compile the libraries, unless you have the paid version of VS, but using MSYS and mingw it will compile the "important" parts (we may be able to use cygwin to compile it fully, but id rather not have another program to install if we can avoid it). Next up, we may want to change the makefile a little, right now you have it set up as CFLAGS = -Wall -I. -I/usr/local/include LDFLAGS = -L/usr/local/lib but on windows it will need to be something like CFLAGS = -Wall -I. -IC:\Qt\cppunit-1.12.0\include-IC:\Boost\include\boost-1_33_1 LDFLAGS = -LC:\Qt\cppunit-1.12.0\lib -LC:\Boost\lib so we may want something to support those changes easily (although it isnt of the utmost importance since people can change it manually, but that is a pain) And now to the fun part... when I run make I get this error (it compiles fine, this is the linking phase): g++ -o testrunner -LC:\Qt\cppunit-1.12.0\lib -LC:\Boost\lib util/utest_Error.o engine/utest_Variable.o engine/utest_VariableTableInstance.o main/testmain.o engine/VariableTableTemplate.o engine/utest_VariableTableTemplate.o engine/utest_KeyNameTable.o engine/utest_TemplateTable.o engine/utest_InstancePool.o -lcppunit Info: resolving vtable for CppUnit::TestSuiteBuilderContextBaseby linking to __imp___ZTVN7CppUnit27TestSuiteBuilderContextBaseE (auto-import)util/utest_Error.o (.text$_ZN7CppUnit27TestSuiteBuilderContextBaseC2ERKS0_[CppUnit::TestSuiteBuilderContextBase::TestSuiteBuilderContextBase(CppUnit::TestSuiteBuilderContextBaseconst&)]+0xb) :utest_Error.cpp:variable 'vtable for CppUnit::TestSuiteBuilderContextBase' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details. collect2: ld returned 1 exit status mingw32-make: *** [testrunner] Error 1 of which the important part is "variable 'vtable for CppUnit::TestSuiteBuilderContextBase' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details." and this link ( http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-linker/invocation.html#OPTIONS) gives some clues as to what is wrong, but how the heck am I supposed to get around this??? there are only a couple options I can think of: 1) its screwed up since I didnt compile cppunit fully 2) its screwed up since I used mingw to compile and for some reason it didnt think it was on windows (thus causing an error that only occurs on windows) I have no idea what to do next...i guess ill install cygwin next and see if that helps, but I was kinda hoping you guys could throw some ideas my way, or maybe do a little research and have more luck then me finding some stuff |
From: Jeremy B. <bel...@gm...> - 2007-04-12 20:08:29
|
Don't use EntityTemplate.h yet, I only uploadedd it to CVS because I wanted to work on it on campus lol. It's not ready yet. Regards, Jeremy |
From: Jeremy B. <bel...@gm...> - 2007-04-12 16:44:48
|
Hi David, Just to let you know, on Mac OS X, by default, the file system is NOT case sensitive, so you cannot have both execLoop.cpp and ExecLoop.cpp in the same directory. I'm not sure which of these is the right one, but you should do a cvs remove execLoop.cpp if that is the old file, so that cvs is not confused on my machine. Remember you have to do a cvs commit on that directory after you do a cvs remove to commit the change to cvs. Thanks, Jeremy |