• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

145 Neutral

About polarboy

  • Rank
  1. I'm a little confused by your points though. Because on one hand, use whatever gets the job done seems to drift towards the strengthening the basics part. I expect everybody agrees in theory about using whatever technology that gets things done. But when it comes to employment, it simply doesn't seem to be the case   Note I didn't say just sit back and do nothing. I'm saying sit back and let it unfold while strenghthening the basics and occasionally peek into technologies that sound interesting.   Also, I don't agree with the other disciplines analogy, as far as I know, there is very few disciplines that change as fast as the electronics industry. And people don't judge you/hire/endorse you because of the instruments you use as long as you can get the job done. If you are a painter, they just care if you know how to paint, if you are a musician, people just want you to create great music,  tools are irrelevant.   But from what I've been reading about the IT industry, that simply does not look like the case. Interviewers will ask you about design patterns, they'll expect you to be an expert in the latest and coolest technology even though by the time they decide to upgrade, another cooler and better technology might totally makes it obsolete.   One example is NHibernate, we use NHibernate in the product at work, and I figured it was probably important to learn since it's gained a lot of popularity. But then we had a meeting where basically everybody said NHibernate is not very good for large scale enterprise solutions, many DBAs hate it, and we decided to use code generation instead.   So what's the point to try to learn these technologies when you probably are not going to need it? By the time you become the expert at it, you'll probably needing to learn something completely new again. In that regard, isn't it more important to get the foundations? Because it'll help understand the new technology and makes the learning curve much more acceptable when the time comes.
  2. Hi, VERY occasional poster here Thanks to the articles and advices from Gamedev, I spent quite a number of summers practicing C++ concepts learned from school and applying to the game engine experiment I had. And now I have a job   Other than expressing my gratitude towards the community and share my joy of being able to create a rudimentary engine, I'd like to bring this topic to discussion.   Is it better to try to follow the new technology? Or is it better to sit back and wait and prepare for the future by strenghthening the basics?   Why I prefer the basics   Now there are new concepts, new technologies everywhere and every day, new phones, new frameworks, new IDEs almost every month. (okay, I'm exaggerating a bit, but you get the idea). I'm finding it hard to follow. And in reality, I'm a little resistant to these changes because deep down, I think they'll be obsolete by the time I'll need them anyway.   Although I know that the (not even general concensus, more of an accepted fact) is that we need to stay current to new technologies. I prefer to stick with the basics.   As an example, I didn't even know what design patterns were when I started applying for the jobs, so I just brushed it up before the interviews and forgot all about it when I started working. I didn't even know what the Interfaces were at the time.   But once I learned what the interfaces are, it was very easy for me to implement these patterns although I didn't even know I was implementing one. I mean, it simply made sense because I started writing my engine in spagetti code, it became a nightmare to debug, so I naturally started using inheritence (although I still didn't know interface) and proper namespace to organize my project. It just seemed natural to me, sometimes I even think learning design patterns might limit the possibilities of these uses. Again, as an example of my engine, shortly after my work started, I learned my engine, albeit it used Lua to act as commands (so it was kinda cheating), it was almost an implementation MVVM/MVC pattern (sorry, i still can't quite grasp the difference)   Then I learned WCF, which I thought was a pretty awesome technology, but the configurations is a giant pain in the ass. We work with another company and our services would talk through WCF, sometimes it took almost a week just to identify a typo in the interfaces and then there's all these other settings like KnownTypes, Messages, sessions etc...   What triggered the discussion was today, I found the book i always wanted to read: MUD Game programming by Ron Penton and started reading it finally. I really enjoy it. But then again, this is OLD OLD technology. On the other hand, new technologies are all relying on these basics, they will change/evolve, but the basics won't.   Then I looked at my bookshelf: "Assembly Language for Intel-based computers", "Understanding Telephone Electronics", a book on how to fix cell phones using OLD OLD GSM chips, these are the books I've gotten a long time ago, but were still on my to-read list. I felt like I'm killing my career,lol   Now my beef with the new technologies There are just too many abstractions~~ There are soo many things that are hidden from us it feels more like using an application (like MS Word) rather than writing code.  I love the libraries Microcontroller developers make, they provide the bare minimum to do simple things, so we don't have to go too deep down on protocol level, but we have enough control to know exactly what's going on.   But the new frameworks? I've worked with Android for a bit, and thought that was the most annoying framework ever. So often I had to fight just to make it compile because of these rules imposed. I probably didn't learn how to use the UI Thread properly, ended up having to create another Thread inside the UI thread to show a simple text change.....   Sure, I could've spent more time on reading how to update the UI properly, but that's exactly the beef I have with these type of new technologies. Too many abstractions.   Yet, according to what some manufacturers are saying, programmers WANTED them to ditch WM and move to android, it wasn't the users, it was the Devs who wanted the change.   I suspect the real reason why, though, is something like this (using the graphics guy at work's quote):"I hate working with Magentas, why can't them use Alpha channels like a 21st century technology"   So, what do you guys think? Is it worth spending the time to try to follow as many new technologies as possible? Or is it better to occasionally taking peeks at some of them but really focusing on the basics?
  3. [quote name='Kristoffer Lindström' timestamp='1342876420' post='4961652'] By using libs like (for example [url="http://icculus.org/physfs/"]PhysicsFS[/url]) you can search and load the assets in the package as if they were in the filesystem, combine it with functions like [b]CreateTextureFromMemory[/b] and you can just pass a pointer to a chunk of uncompressed memory for the texture that has been loaded from the package. There is many other similar working libs but i guess the inner workings is the same but some might use a more secure format other than ZIP. [/quote] I see, that makes it a lot more understandable. Especially with the actual file path in the pack file
  4. Hi, all: Recently I've been learning about unpacking actual game packages. What I've noticed is that some of them do not need to be packed back (especially the ones where you just rename it to .zip and it will work). Which is strange to me because as I play the game, the contents are not actually extracted in the file system, although I'm sure it does in memory. So we might say, sure they are extracted, and we use the path name to find it in memory, but that doesn't explain why it also works if we just leave the contents there without repacking it back. So I'm wondering, how does that actually work? How is the game able to access these files without actually extracting them in the file system and how are the games able to access those files without repacking them? Thank you,
  5. Hi all, I've been met wit an interesting problem. First of all, I'd like to say I successfully rolled out my first game framework, which has been my goal for quite some time. Now if I do want to make a game, I can choose a mature engine with no regret. (Sure there are problems, but as long as it works on my PC, I'm happy ) Anyway, my problem is as follows. I'm using lua as a script engine. So I exposed a showMsg API to show text on the screen. So in my script, it runs multiple showMsg commands They don't seem to be blocking so the text would overlap, which was the reason why I introduced SDL_SemWait and SDL_SemPost Here's the function that is registered to be called by lua [code] int l_showMSG(lua_State *l) { //need a messagebox class //messagebox class will use a list to contain the messages //showMSG should be added to the list #ifndef _DEBUG printf("showMSG::begin\n"); #endif SDL_SemWait(msgLock); char* fontname = (char*) lua_tostring(mainL,-1); lua_pop(mainL,1); wchar_t* txt = (wchar_t *) lua_tostring(mainL,-1); // char* ctxt = (char*) lua_tostring(mainL,-1); std::wstringstream buf; buf << txt; lua_pop(mainL,1); int x = 30; int y = 30; if (lua_gettop(mainL)>0) { y = lua_tonumber(mainL,-1);lua_pop(mainL,1); x = lua_tonumber(mainL,-1);lua_pop(mainL,1); } //wstring msg = buf.str(); //wstring drawmsg = processWide(*msg); #ifndef _DEBUG printf("showMSG::before RenderText\n"); #endif RenderText::drawText(fontname,buf.str(),x,y,true); // delete msg; SDL_SemPost(msgLock); printf("showMSG::done\n"); //delete msg; return 0; } [/code] This works perfectly fine on my dual core Lenovo, but when I send it to other people. They sometime would see two showMsg calls overlapping. So my hunch is still that the two lua calls each obtained the lock and both executed the drawtext code. I'm wondering if it would be due to multicore multi-cache, and if it is so, how would I proceed to fix it? Thank you
  6. PlayFirst SDK

    Haha, thanks Fedrick. I actually don't know what to think o.O or what I was thinking when I started this thread o.O Originally I was thinking of asking for opinions, but later on, I noticed I didn't want to do anything other than expressing my frustration,lol. You are right, no matter how slow my project is going (Due to school and work and everything else), I have grown attached to it. Every progress I make gives me a sense of achievement, which is something PlayFirst is not able to provide.
  7. PlayFirst SDK

    Hi, I just found this casaul game dev suite called PlayFirst SDK Looking at some casual games that was made using playfirst, it seems like it does everything a 2D game requires: tiled maps, sprite animations and etc. Unfortunately I found this AFTER I spent a few years (on and off) on my own engine (At least it does tiled maps and sprite animation properly) And of course, it's obviously way more full fledged than my engine is...I mean it has a windows-friendly GUI whereas my engine uses a console-like GUI for tile placements o.O So, with a bitter feeling, I'm asking the community for opinion or basically any comment towards this SDK. I think my head is already saying to scratch everything and use this SDK, but my heart wouldn't let me because of all those time I spent on the graphical side of my game,lol, it makes me feel like I'm betraying my own work ...but obviously this SDK is way better than what I have so far :( Any thoughts? Feelings? lol https://developer.playfirst.com/ btw, this is their website
  8. NPC management tutorial?[Solved]

    Quote:Original post by Rycross Quote:Original post by polarboy I thought of state machines, but I'm not sure how you would implement one. Like I was thinking states such as "moving", "fighting", "idling", but I had difficulties with it...can't remember what o.O I'll give it some more thought, maybe it does work, haha I actually decided to re-write part of my post while you were responding, because I didn't really feel that it was clear. Let me re-quote that: Quote:Original post by Rycross For example, if you NPC is moving to point X, you'd probably mark that the NPC is moving towards that point, and then each update you'd check whether it has arrived, and if not then move Y units towards X. Once you reach that point, you'd clear that state, or start with a new action. Does that give you an idea? Of course, your NPC may be moving towards X while shooting a gun, so you may have to be able to mark your NPC as "moving to X" and "fighting," but its not too hard to just mark your NPC as doing both. Yeah, I think I got it, it makes sense. I'm just gonna sit there for a while and plan everything out
  9. NPC management tutorial?[Solved]

    Quote:Original post by Rycross What kind of "calculations" are you trying to do? Making a thread for each NPC is certainly the wrong approach. The approach usually taken is to loop through your NPCs/entities every timestep and run some sort of update method. I'm not exactly sure what you meant by your script, but it sounds like you meant that your script would execute one line, then yield execution back, and then the next time you run your script it would pick up where you left off. You can do that sort of thing with co-routines, but typically what is done is to build some sort of simple state machine and then make your NPC behavior event driven. Wow, I wasn't expecting a reply so quickly, thanks for the quick reply. My calculations are things like, the new position over certain amount of time and stuff like that. Yes, I was thinking about execute one line and come back to it. I can go look up co-routines now, haha, didn't even know there was such a thing. I thought of state machines, but I'm not sure how you would implement one. Like I was thinking states such as "moving", "fighting", "idling", but I had difficulties with it...can't remember what o.O I'll give it some more thought, maybe it does work, haha Thanks a lot
  10. Hi, guys, I'm spending my little break between school thinking about my game again. I'm trying to start on NPC management. But I'm not sure how I would approach this. To me, the simplest way to approach this to have a thread for each NPC and perform calculations there, but I don't think that would be a good idea for memory reasons. (Especially if you have hundreds of NPCs like a lot of KOEI games) But I just can't seem to find any other way to do it, I mean, if we use a loop to loop through the NPC list and determine what to do. For example NPC[i]->do_move(); So the NPC executes one line in the script My understanding is we can't just go to the next guy and come back later to execute the next line in the script, unless of course we register each line as a function and send it back to C/C++ (-_-||) I'm thinking all sorts of crazy things like a table, FSM and etc, I just couldn't really figure out how to do it. I guess my question is: What's the normal way to do it? Oh yes, I forgot, the original intent was: Is there any tutorial on how this is achieved? I haven't been able to find much in terms of implementation. Thanks [Edited by - polarboy on December 31, 2009 4:08:53 PM]
  11. Ah, cool, thank you guys I learned a new thing today =p
  12. Hi, I'm trying to use FTGL for my project. So what's happening now is I'm trying to put the text functions in a class. class txtbox { public: //constructor and destructor txtbox(); ~txtbox(); //This is the line with the problem FTGLPixmapFont font("TELETYPE.ttf"); std::string msg_que[5]; void init(std::string bg_path); void msg(int posx,int posy,char* portrait); GLuint mwin_bg; private: GLuint portrait_texture; int iwidth,iheight; int p_iwidth,p_iheight; char* prev_portrait; //saves path to the previous portrait }; Now the problem is that FTGLPixmapFont doesn't have a FTGLPixmapFont()constructor, and the compiler doesn't seem to let me include a parameter in class declaration. So my question is, is there anyway around it?
  13. Generic Game Engine

    I used RPG toolkit before, I think it's cool no 3D stuff tho, just 2D and isometric
  14. SDL_TTF + OpenGL problem

    I went around this problem by making a bitmap and use SDL's IMG_Load to create a surface based on that bitmap It works now, but it's not exactly the right way I think
  15. Hi, I have this program that keeps crashing at return 0 in a function. I put couts before return and after the function all to determine that it's failing at return 0. I'm just wondering what does this indicate so I can try to debug it. Thanks in advance
  • Advertisement