• 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.

wolfman8k

Members
  • Content count

    372
  • Joined

  • Last visited

Community Reputation

140 Neutral

About wolfman8k

  • Rank
    Member
  1. You guys are probably all aware about the coming release of GPL version 3. What you might not be aware of though is that development on GPLv4 has already begun! [wink]
  2. Quote:Original post by Arild Fines Quote:Original post by wolfman8k I've only been using c# for a few days, but so far this is my impression. C# has the following advantages over C++ 1. Cleaner syntax: - No need to seperate .cpp/.hpp files(an inconvenice in c++, but also an advantage - you can seperate interface from implementation) Except that in C++ it doesn't let you do that. It's possible in c++ using tricks, but I agree that the C# way of having everything in one file is much better than the C++ way. Quote: Quote: 2. Garbage Collection. This isn't really a big issue since you can use garbage collection with C++ if you want. The garbage collection schemes that can be used with C++ are quite limited. That's not true. There are several C++ garbage collection schemes that work very well. Quote: Quote: 4. Better RTTI support, and reflection. These are very helpful, but can be achievd with C++ with different hacks. How? What kind of "hack" would you use to load a class at runtime, enumerate all its properties, methods and fields and execute a method by name on it? Yeah, C# is much more powerful then C++ in this regard. I agree that this is one of the most useful featuers of C# over C++.
  3. Also, you mentioned in another thread that you want to use generics. guess what? mono already has support for generics! It's alpha, but i've been using it with no problems. You can even install mono on your windows development box and use it, if you must stay on windows :P
  4. I've only been using c# for a few days, but so far this is my impression. C# has the following advantages over C++ 1. Cleaner syntax: - No need to seperate .cpp/.hpp files(an inconvenice in c++, but also an advantage - you can seperate interface from implementation) - delegates(can be done in C++ with slots/signals) - get/set methods(can be done easily with get/set functions in c++) - cleaner namespace support(not really a problem if you have a decent editor) - cleaner enums(this is just a "tidyness" issue) - richer access protection(internal, etc...) - generics with constraints and other stuff(compiler will enforce certain things to help reduce code errors) 2. Garbage Collection. This isn't really a big issue since you can use garbage collection with C++ if you want. 3. C# code is run JIT, not compiled. this isn't really an advantage or disadvantage. only a difference in style. in practice it doesn't really matter whether you compile your code to native or run it JIT compiled. I'd even say that it's quite possible to write a decent c# source code -> C++ source code conversion utility, and then you could compile C# to native, but you wouldn't be able to use the C# only features(see 4) 4. Better RTTI support, and reflection. These are very helpful, but can be achievd with C++ with different hacks. Overall it's not much. The real strength of C# over C++ comes from the .net framework: you have loads of libraries at your disposal. This is helpful for web apps and database shit and stuff, but it's not really all that helpful for games. Now, C++ actually has lots of features that C# doesn't have: - Multiple inheritance. This is a major issue. Multiple Inheritance should only be used when you need it, but when you need it, it can really be helpful. C# not having MI is a major mistake IMHO, and the only real reason for it not having it is because it makes implementing the language easier. - Templates, C# has generics, but C++ templates are much more powerful. you can use C++ templates for awesome code generation techinuqes, and do really wonderful meta programming with them. things like boost::bind and boost::lambda are impossible to do in C#. - Good support for low level("unmanaged") code. you can take a pointer and use it to call a function, you can directly manage your own memory using pools, etc.. You can do this kind of stuff with C# in unsafe {} codeblocks, but it's only really useful for code snippets. like, you can't really make a specialized memory allocater using an efficient algorithm specialized for your needs, and have it work safely with smart pointers in C#. In C++ you can do all kinds of wonderful things. - A half-decent (standard) preprocessor, with macros. True, you can use a non standard preprocessor with C# if you want, but that will get you into all sorts of trouble. just like multiple inheritance, macros should only be used when you need them, but when you do need them, they are very helpful. Now, as a bonus, I would like to explain why Python is so great, and why it's on a whole new level above C++/C# Elegance/Simplicity - Python really gets this right. for example, Python only has a few builtin data structures, one of which is a list. lists can be used like arrays, stacks, queues, linked lists - C#/C++ require you to get familiar with a bunch of different types. just having one data type makes things much simpler, you're code is more compatible with other codes since you don't have to worry about converting between array -> linked list for example. and even more important, you don't even have to worry, "should i use an array or linked list here?". True, this simplicity comes at a cost to performance, but a) python is actually pretty good at guessing a good internal data struture to use for each list, and b) it probably doesn't matter! figure out which parts of your code are slow, and then only optimize that 5% by writing it in C/C++. Dynamic Typing - This is a blessing and a curse. Dynamic typing really boosts development speed: you don't need to worry about interface classes at all. this helps your initial coding process, because you have less code to write, but it also helps when you refactor, since there is actually no need to physically refactor your interfaces. you just need to focus on the actual classes themselves. dynamic typing also lets you do all kinds of wonderful things(hacks :D), like changing the type of an object dynamicly, adding/removing members, great stuff :) Of course, dynamic typing has the problem that if you have errors in your code you will get that at runtime and not compile time, but in practice this isn't a big issue since you should be doing unit tests anyway. I could go and on about the greatness of python, but i guess i'll just finish with the syntax(before anyone attacks it). whether you like it or not - tabbed code blocks are GOOD. just try it, you will like it ;) Peace [edit - spelling] [Edited by - wolfman8k on June 21, 2004 11:19:03 AM]