• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.


  • Content count

  • Joined

  • Last visited

Community Reputation

109 Neutral

About thewavelength

  • Rank
  1. Hello, thanks! I want this to allow people use #include <path>. TC_VALUE seems only to allow " and ', so I thought of modifying it. The tokenizer does not seem to pass back TC_VALUE when there are no quotes. Of course I can work-around this, but I wanted to know firstly that there is no other possibility. Thanks and good work btw ;) By the way, I've got a question to the coding style. Is there a reason for using a non objective programming style in some cases? Example: engine->DiscardModule(const char*). I intuitionally tried to use module->Discard() and then engine->DiscardModule(module). Is the reason the more easy binding to other programming languages, like C? Or are there other reasons? Thanks!
  2. Hello, I've took a look into the scriptbuilder-addon and saw, that you store includes first and then include right after the full file has been parsed. This has some negative consequences which breaks sequential pre-processor commands. Is this realized this way because of a better design or is the order in which script sections are added to a module important? Maybe I'm on a complete wrong way.. Does AngelScript even take care of script appearance? Does the order matters? Secondly, I'm trying to get the exact token return which asCTokenizer::GetToken returns. Is there a way to get the eTokenType-value without hacking? Thanks in advance!
  3. Wow. So obvious and I was blind, but now I see. Thanks!
  4. Hello, I'm using Visual Studio 2012 and MSVC11 and get linker errors when using RegisterStdString function from the string addon when I enable namespaces. I don't know if this is also the case for older compiler versions. Fails with two linker errors (RegisterStdString and RegisterStdStringUtils): [source lang="cpp"]#define AS_USE_NAMESPACE #include <angelscript.h> #include <add_on/scriptstdstring/scriptstdstring.h> using namespace AngelScript; void test() { asIScriptEngine *engine = asCreateScriptEngine(ANGELSCRIPT_VERSION); RegisterStdString(engine); RegisterStdStringUtils(engine); }[/source] Compiles like a charm: [source lang="cpp"]#include <angelscript.h> #include <add_on/scriptstdstring/scriptstdstring.h> void test() { asIScriptEngine *engine = asCreateScriptEngine(ANGELSCRIPT_VERSION); RegisterStdString(engine); RegisterStdStringUtils(engine); }[/source] Is this a bug or am I doing something wrong? Thanks in advance! Edit: The forum removes include paths for some reason. These are the files included: <angelscript.h> <add_on/scriptstdstring/scriptstdstring.h> Edit 2: Of course I'm compiling both scriptstdstring.cpp and scriptstdstring_utils.cpp.
  5. Hey, ok. Thank you Btw, I found a possible optimization. Because I don't know where to put this, I may write it here. In scriptstdstring.cpp, lines 91 and 92 (speaking of 2.25.0) could be replaced with: [source lang="cpp"]it = pool->insert(map<const char *, string>::value_type(s, string(s, length))).first;[/source] Bye.
  6. Hi, Ok, thanks for your fast reply. Since I'm currently rebuilding the whole module before I run it, I shouldn't have problems with race conditions. Will these problems still exist if I use different engines? I don't think so. About my plans: I try to make AngelScript usable as a web scripting language. It works via fastcgi or scgi in a single application. The application implements a process spawner to allow real-per-user script execution. This improves security and performance. Then every spawned process runs under a real user, holding some threads. Currently there are as many threads as cores provided by the CPU. It also contains a load balancer. If a certain amount of requests is longer than 0.2s in the processing queue, a new thread will be started. The thread pool decides by itself when to reduce the number of threads. Currently, a context is created once per thread startup and is reused for every request in the specific thread. To allow much better experience with AS as a scripting language, I'm about to rewrite the whole preprocessor. It contains a bit more flexibility and is more dynamic. I don't know if you know PHP. If you know, you may know its mistakes and problems. I think that a lot of mistakes could be solved using AS, including caching and security improvements.
  7. Oh, okay. So the contexts will not block each other when they are running in different threads though they are using the same engine? Be sure that this is my last question Thanks!
  8. Hello, thanks! My situation is, that in one process there are four or more threads (the size is fixed). Now I invoke a call to one (randomly selected) thread that it shall execute a script. This script is only used once per time. Means: when the script has finished, the context shall be deleted. Everything should be cleared as if there were no running scripts before. I don't need modules. I don't need sharing between different scripts. I only need the #include-preprocessor command (which works well). The question for me is now whether it's more clever to use one engine per thread or to use only one engine... I think one engine per thread is a bit faster because I don't need to wait on mutex releases when I create a context... Since I'm not very experienced with AngelScript and threading in general I can't give a final answer to this question. Thanks in advance :-) Edit: I've found another issue.. What if I decide to start a fifth thread because I've got a lot of requests? How do I handle with asPrepareMultithread then? Edit 2: There's a mistake on the documentation page http://www.angelcode.com/angelscript/sdk/docs/manual/doc_datatypes_strings.html -> string str1 = "This is a string with \"escape sequences".";
  9. Hello, I'm about to create a threaded environment of totally seperated engines. I found this page in the documentation: [url="http://www.angelcode.com/angelscript/sdk/docs/manual/doc_adv_multithread.html"]http://www.angelcode...ultithread.html[/url] It says something about threading, but I don't think this matches my situation. I want to have about four totally seperated scripting engines which DO NEVER come in interaction with another engine. Another question is: DO I need four engines? Couldn't this be solved using four contexts? Also, the scripts are allowed to access only thread local variables and functions. So I am doing right with not implementing thread-safety mechanism? Are there other points I have to look at? Thanks!
  10. Wow, thanks. Now I've understood. But it isn't possible to pass e. g. integer variables between modules, is it? Btw: I'd suggest to post exactly the text you've posted to the documentation. It's a bit more clear in my opinion.
  11. Hello everybody, I'm fairly new to AS and I've read to the whole documentation twice to get a feeling for the design and the patterns. But there are two very important questions that were not answered: 1.) Is there module functionality? E. g. like in scripting languages as Python? I think I've read somewhere in the documentation that it is there, but I can't find any examples. I've also read somewhere that it is not possible to share variables through modules even when they are in the same context / execution environment. But this is a feature I need. What do you do for example, if you have such a large script, that it is impossible to structure it in one file? This is some times the case for my needs. 2.) What exactly is an "import"? I've read somewhere that you can "import" functions. Is this the same as using modules? I'm thankful for answers!
  12. Hi, thanks for the answers! @ _om_: Thanks! @ WitchLord: Wow, I didn't find the CScriptDictionary addon in the manual. Did I oversee it, or isn't there a link? So, you write array<array<array<int>>> x is the same as int[][][] y. In C, this means that y is of a static size. But in AngelScript, it does mean the same as x? So the size can grow dynamicly? To the modules: So I understood it correctly, that I can expose some modules in my host application, for example "players", "entities" and so on and so on. Now, when the user wants a script to be loaded, I create a new context in which the script is running, loading my modules and so the loaded script can use these? That would be great! Greeting ;)
  13. Hello, completly new to AngelCode I've read in and found it very interesting. It is very well documentated, I like that! At this point, a big THANK YOU to WitchLord I hope you understand that I ask these questions before I start to implement AngelCode, otherwise it would be much work without a sense. 1) Is it possible to create a map (like std::map)? I do hope so, but my hope is gone since I've searched in the forums and read that multiple template types are not possible. Even if not, would there be a possiblity to implement a stringmap or something equivalent? Hope is also not great since the opIndex-operator only takes int as argument, so myvar["x"] seems to be unavailable. 2) Is there a way to store arrays in arrays, to create a matrix? Firstly, I've got it right that array in AngelCode is nearly the same as std::vector in C++, right? Example: array<array<array<int>>> 3) Is there any documentation about modules? I think I don't fully understand what they are. Are they equivalent to modules in Python? Thanks!