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

j-dog

Members
  • Content count

    55
  • Joined

  • Last visited

Community Reputation

120 Neutral

About j-dog

  • Rank
    Member

Personal Information

  • Location
    Pretoria, South Africa
  1. I have to second that response... you kinda have to take things one step at a time because game programming can be very involved and you may really frustrate yourself if you jump the gun there - especially if you're new to coding. I think for this reason, there aren't really many books on programming games... well I mean, I could suggest some, but all of them are on an intermediate - advanced level in terms of code. So my suggestion is to just learn the basics, but have fun with them - what I mean is, be creative and start to make small games as you can - maybe start with a text-based game and then gradually move up from there. I find then when learning any skill, it's good to put what you've learnt into practice sooner rather than later so you don't get caught in the technicalities. It's also just nice to experience some application for yourself outside of textbook examples. Oh, and have fun.
  2. Usually, very competitive online games - I used to play a lot of Starcraft 2, and although I loved it, it did become too competitive. The same is true of Dota... these games can be fun but it almost becomes a reflex to play them almost daily and the amount of tension they can create seriously hinders the enjoyment for me. Also, they become a grind... playing the same game over and over to become better at it can become dull. I embrace the necessity of repetition when it comes to learning new skills such as coding, painting or cooking, but when it comes to games I don't have that same patience. The same could be said for grinds such as what World of warcraft or Diablo 3 can tend to be... basically anything that causes me to pause and ask "wait, why am I playing this?" wears me out.
  3. I think a thread like this is always going to subject to lots of subjective opinions and that's alright. CoD and angry birds are what they are, and I don't feel the need to comment on them anymore. There really isn't anything too complex about these games. But sometimes I feel like a game can feel overrated if you just miss the boat, so to speak. For example, halo and gears of war - I played both on PC a while after they came out and they felt a bit generic and dull? I have friends who love those games and I've asked them what's so good about them, and they've never really given me proper reasons. And while I'm at this, Far cry! I hated that game! Sure, it looked nice, and the stalky jungle stuff was OK until the mutant monkeys started running around, and then there was that ridiculous "storyline" where you chase some hoe around an island and every time you find her she just tells you to do more stuff. Bleh! But yes, games are like any media... you're always going to have a sea of turds with a few gems in between, and it makes the good ones all the more special. People will complain ad nauseum about movies, music and games they don't like, and I don't think there's anything wrong with that. It's fun to rant a bit, and I'm personally guilty of over-analysing games too much sometimes. Sometimes the masses seem really stupid - and often they are - but meh, I don't think it's too stupid that some guy who doesn't consider himself a monocle-wearing gaming connoisseur can enjoy a mindless round of CoD after work. Or angry birds on his phone.
  4. I'm with you on angry birds, but then I feel like I just don't "get" that game. Casual games feel like a total time sink to me and while I feel angry birds certainly got something right, it just hasn't reeled me in at all. Some casual games do suck me in, bit by bit, until I snap, utter "what am I doing with my life?!" and quit them. Somehow, I'm OK with pissing away 40+ hours on large RPGs. Hmm... but that brings me to my second point: Oblivion. What the feck? I thought Morrowind was neat after the insanely boring Daggerfall, but Oblivion took a step back in presenting us with one of the most banal RPG worlds yet. Sure, it looked great at first, but that was before you spent some time exploring and realised that the combat was poor, the countryside boring, and not a single interesting character in sight. It's not that the game was that bad, but I just could not understand where all the acclaim came from! It's kinda like CoD too... CoD1 was a wonderful game after Medal of honour went down the toilet, and CoD4 was a gem because of the level of polish and refined gameplay. But MW2 and 3 have brought nothing new to the table. Meh! ...ok so that's my rant.
  5. [quote name='Gaiiden' timestamp='1333435535' post='4927803'] I'd love to see Deus Ex redone with present day graphics and better enemy AI. I distinctly remember the AI agents not patrolling properly if they were not in view - which made stealthing a bit of a bitch since you couldn't work around patrols without seeing them. [/quote] THIS. I cannot agree more, even though I still consider it my favorite game of all time, the AI was poor and easy to manipulate - especially during a 5th playthrough. But if any game deserves a remake, it's Deus Ex 1. That, and Planescape Torment... hell of a story, fantastic dialogue and incredible environment would really shine with good voice acting and graphics. The combat and interface could use a bit of a facelift though, but I wouldn't pull it away from DND rules. Though I think that both these titles could really use a new layer of gloss, I'd hate to see them changed much more than that. So maybe I don't want to see them remade after all!
  6. What a silly, childish post. Also "anyone who played it also sucks".... well since you have so much to say about it I'm guessing it wasn't from just looking at a screenshot. Just saying.
  7. First, why does your friend say that openGL is better than directX? I suppose they're just different but I'd call it a question of preference more than anything else. Do your own reading and decide for yourself. I'm just thinking that if you haven't coded in both, how can you say you agree with him? Fortunately though, I do think that openGL is the easier one to learn, so you can get away with relatively few lines of code. You need to post your errors here though, otherwise it could be ANYTHING that's wrong... I've done all my openGL coding on a Linux environment (was much easier for me), but your general syntax could be incorrect, you could be using the wrong libraries, etc... what exactly is your error?
  8. It depends on you! I have to disagree with the last post, because if you're doing something for your own enjoyment, you're doing it out of love and for the fun of it. If you're doing it for others, it's easier to be driven - yes - but it also makes it more of a job and more of a chore. Personally I've struggled to finish small projects - I have two "ailments" - first, I suffer from what you have: the feature creep. I cannot help but dream big, and even little projects begin to rise to unrealistic heights. Second, I lose patience. This is related to my games becoming too large quickly, but I sometimes realise that I've gone off on a tangent and my work has become unmanagable. Eww. The best way to mitigate this, I feel, is through planning. Writing ideas down into a game design doc and giving it some thought before the offset really gives me grounding. In that case, I find myself removing features more than I add them, and even if I do add something, the document keeps me grounded so that I do not go overboard. That's my suggestion, and it works quite well for me. I wouldn't stress too much about it though - there is much to learn from failed attempts, and I do not look back on mine with regret. I learnt from them, and I enjoyed doing them, and sometimes it's also better to cut something lose than to try and revive a long dead idea - besides, your tendency to experiment and grow projects should help you better understand game design... so no loss, right?
  9. No code example, but after doing a lot of C++, I switched back to Java for a small project. I took copy constructors and sending objects as parameters for granted... it became really messy and difficult to track, and I kicked myself when I realised that I was sending object references all over the places, not copies. I guess I had assumed that java would somehow have taken care of that?!
  10. Well I'm not sure what qualifies, but here in South Africa I would have to say Subway. I mean we get stuff like McDonalds and KFC here too (though it might taste different, I dunno), I really can't say I'm a fan. That stuff makes me feel very tired and sometimes ill after I eat it, especially when I was training up to 18 hours a week. subway doesn't make me feel like that Though as I understand it, fast food in the US is very cheap while restaurants are far more expensive? The prices are more even here and so there's just much less incentive to eat fast food.
  11. [quote name='SteveDeFacto' timestamp='1328261425' post='4909073'] [quote name='J-dog' timestamp='1328258922' post='4909064'] As Bill Watterson said in his excellent speech to college graduates, it's not all about climbing the "imaginary ladder of success". College is what you make of it, and learning to learn - learning to think - is the REAL value of an education. Who is to decide how valuable a given degree is? So I have friends who studied accounting but never used their degrees because they hated it. I have friends who studied art and are doing really well for themselves - and that's a cultural contribution, no? And what about the sciences? Many of them are not profitable careers at all, but the potential contributions to the body of knowledge are more than significant. It's what people do with their studies that counts. As far as the US is concerned, I think you guys have far bigger problems than this. Putting money into education, I think, is always money well spent. [/quote] I agree that putting money in to education is money well spent but the money is not being used efficiently. For example Occupy Wall Street largely consists of graduates who after graduation find there are simply no jobs for their degree and they have a huge mountain of student loans which must be paid back. This is hurting our economy and the students. In some fields there simply are not enough trained professionals to go around. This causes our economy to become stagnate. [/quote] Well, I think the question of loans is something that is another topic altogether and a serious problem in the USA... all this "imaginary money" is something that needs to be handled with extreme caution. It isn't. I think that your country has some of the worst spending habits in the entire world, but isn't limited to education. You have a point in that many college students are downright wasteful, but you cannot really stop something like that from happening. And you know, it's OK to be a little bit stupid and make mistakes, because you usually cannot afford such luxuries in working life anyway. Compare the US to Sweden, for example. Their national literacy rate is far higher than yours is, and citizens don't even pay for education there, regardless of what they choose to study. Does it work better? Well, I don't know, but what I'm getting at is that when it comes to ambition, pursuit of knowledge and so on, your social values are the huge driving factor. Basically, I think you're putting far too much emphasis on money, and I think the system you're suggesting is wide open to corruption too. Government can be full of it, but corporations can be downright evil sometimes.
  12. As Bill Watterson said in his excellent speech to college graduates, it's not all about climbing the "imaginary ladder of success". College is what you make of it, and learning to learn - learning to think - is the REAL value of an education. Who is to decide how valuable a given degree is? So I have friends who studied accounting but never used their degrees because they hated it. I have friends who studied art and are doing really well for themselves - and that's a cultural contribution, no? And what about the sciences? Many of them are not profitable careers at all, but the potential contributions to the body of knowledge are more than significant. It's what people do with their studies that counts. As far as the US is concerned, I think you guys have far bigger problems than this. Putting money into education, I think, is always money well spent.
  13. Hello again, been on holiday so bit of a delay there... Thanks for all the replies! I've had some time to tinker around and try force more performance out, and here's what I found... The biggest bottleneck is certainly the floor and ceiling drawing, and not surprisingly so - after all, this is a per-pixel operation. Walls were much faster but also a bit too slow, and I managed to speed up the actual drawing by a great deal and to a very acceptable level with small adjustments in the Python code alone. I tried to change the wall/floor algorithms somewhat but this was of little help. They were already trimmed down anyway and I couldn't change too much. Reducing function calls helped a little bit, but not by a great deal. Then I tried numPy which (although I found it to be a very cool module) did not help speed - I wasn't doing operations on arrays so much as I was using them to store and transfer values. I gained a solid performance increase to wall drawing by using the surface blit function for all the wall slices as opposed to drawing individual pixels. The blit actually draws more pixels (due to scale implementation) but it's still much faster - seems like the Pygame modules are pretty well optimised. I guess in the end, after a lot of tweaking, I realized that I had to take steps towards compliation - no matter what I did, the performance gains (especially for floors) were pretty much negligable at best, and at other times, actually decreased performance. Psyco was one option I wanted to try but unfortunately it doesn't support python 2.7 which I am using, and I don't think it justified the downgrade. Also looked into PyPy and Pyrex, but in the end I settled on Cython. Cython allowed me to copy-paste much of the code (though I still needed a good deal of refactoring) without having to write a lot of C code. I have kept all my pixel drawing (which does a minimum of work) to the Python implementation, while all ray casting calculations happen in the Cython module. By doing this, I've boosted my average FPS to 20 - which still leaves a lot to be desired, but it's a start! This Cython code is still highly unoptimised - it's close to 300 lines of what are essentially python method calls. I'm going to fit in as much early binding and C-arrays as possible, maybe fit some PyOpenCL in too. But now I feel like I have a lot of leverage with which to attain speed! [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] [url="http://imageshack.us/photo/my-images/607/raycast.jpg/"][img]http://img607.imageshack.us/img607/2305/raycast.jpg[/img][/url] ... yeah I'm using the wolfenstein 3D textures for now!
  14. Hi! I recently wrote a simple ray casting engine, which casts textured walls, ceilings and floors. This is written in Python, with the help of Pygame, and is this first bit of real Python work I have ever done - so it's a bit of a learning exercise for me. I'm about to add a sprite system and following that, I want to turn it into some kind of silly little dungeon-explorer game. Unfortunately, it's just too darn slow. I cannot bring myself to enhance the functionality any further until I can get a lot more speed out of what's already there. I have a bit of an OOP approach which might not be the fastest, but it's categorised neatly. I'm willing to do a lot to the code, but I don't want to attack it too much until I get my facts straight on how to choke the most speed out of this. I won't post the code itself (unless needed), but the drawing works pretty much as described below:[list] [*]For every vertical pixel column, a ray is cast for wall intersections... [*]...this ray checks for horizontal and vertical intersections only at grid intersections (as described by [url="http://www.permadi.com/tutorial/raycast/"]Permadi[/url][color=#009933][font=arial, sans-serif][size=1])[/size][/font][/color] [*]Wall height is calculated for each ray, and the correct texture is scaled and drawn to screen. [*]Floor / ceiling distances are pre-computed by rays cast downwards, after which each floor pixel is found using linear interpolation and then is drawn vertically, going downwards for every pixel after a wall slice till the bottom of the screen. This coordinate is simply mirrored to the top half of the screen to draw the ceiling. [/list] Now, I think that maybe some aspects of these algorithms could stand to be improved, but not as much as I think the Python implementation could improve. I think I'm doing some expensive things, but I'm not too sure of what would give me a REAL speed boost. I've run a profiler, and not surprisingly, the raycasting itself and the drawing of screen pixels cost the most. The following are of concern: [list] [*]I wrote an angle class which clamps the rotation angle (and all angles) between 0 and 360. I've used __add__ and __sub__ to handle this - obviously there are a lot of calls to this - should I avoid them and do this differently? [*]I am using a *lot* of list accesses. For example, my "castRays" function goes through all vertical columns and then stores results in a list... such as: [CODE]wallDistances[i] = distance[/CODE]. Are such operations slow? If so, they will kill me because I do a ton of them. Any alternatives? [*]Regarding the lists again - I've heard that numPy can improve the speed of such things. I do not really understand why or how, but is this true? [*]Calls to functions or objects are apparently quite slow in Python - but from a bit of tweaking I haven't really seen that much difference. Is calling a "castRay" function really so expensive in python? And, how much is this influenced by passing parameters and returning values? [*]Regarding pygame: I'm making use of surfaces to store all textures as well as what's displayed on screen. I got a significant performance boost by using pixelArray (and setting those values) in place of set_at(x,y). Is there an even faster way to do this? Surfarray maybe? [*]Regarding walls only: I make use of a surface, which I then crop using subsurface (to get only the vertical column), and THEN rescale using transform.scale. Then I convert to a pixelarray. Eep! Is there a better way? Scale seems a bit silly for my purposes since I need to scale in 2 dimensions when I only need to do it in 1(it will not allow me to scale to width "1" either). [*]Is there much value in writing C bindings for some of the most common tasks? What about Psycho? [/list] Apologies for the long post, but thank you for reading - I'm currently averaging about 8fps, which is pretty much unplayable. The floor casting is especially pricey but walls could use some work too. I know I'm asking a lot here, but I feel a bit directionless and would love to get some good feedback before butchering my code - I've already tried to take small steps at optimization with little or minor success. Any help would be greatly appreciated!!
  15. [quote name='MrDarkKnight' timestamp='1326440399' post='4902256'] the whole point of using opengl instead of using a ready game engine like OGRE3D is because I want to understand how engine are made, and maybe some day make a one. very very simple one. [/quote] Having done OpenGL and Ogre before, I wouldn't shy away too much from Ogre if you want to learn how engines are made. Why? Well, in OpenGL you certainly have a more hands-on approach with 3D, but often this can become rather tedious. Ogre is a rendering engine and NOT a game engine, and therefore, you still have to write an engine. You still need to deal with 3D operations and putting your whole game together - I think that's a pretty cool way to learn, when you don't have to worry so much about lower-level details. Well... it never hurts to try, right?