• 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

256 Neutral

About Scorpie

  • Rank
  1. Nope. Const is a compiler-enforced "promise" that can be easily violated with casting or aliasing. AFAIK, the linker doesn't even see it, since the compiler would have done all the enforcement work ahead of time. Edit: Actually I think I see what you're getting at. And I think you're right. Const has to be part of the signature if the pointed-to object is const, because the compiler has to enforce that you don't pass const objects to parameters that take objects as non-const. But if you're taking it by value it doesn't matter because the value is copied and the copy will be const/non-const no matter what the source was.     He is right indeed, I was writing it up again but you both explained it already. Quotes from the standard are metioned here on SO: http://stackoverflow.com/a/3681190 and in plain english the post below.
  2.   And without templates, native thread support, or the stl or most other modern C++ features...     Actually, thread support has been introduced with the C11 standard. (Not disagreeing with your point, quite the opposite , just correcting a piece of the statement)
  3.   It's funny that you mention things like simulation where delays, prediction (by which i assume inaccuracies) are unacceptable. Yet you propose and defend a solution in which you present the user with views (renders) where the objects shown reside(? correct word ?) at a different point in time. These arguments you use against the f-y-t actually prove your own theory as unacceptable for your purpose, and probably most other. (notice the italic part, it may have uses as Hodgman suggests).
  4. I'm guessing you're using Visual Studio. VS <2013 doesn't have initializer lists.   I am out dated ...  99$ for 2013 upgrade, too broke ATM for that. I will make do with horrible syntax.     You can get the Visual Studio 2013 Expess edition for free if it fits your needs. You only have to register your email after 30 days to continue free usage for unlimited period.
  5. Ah, it seems like there are quite some issues with the [ source ] tags, i always type [ code ] which seems to work fine, maybe a bit less fancy but it get's the job done Good to hear that you fixed the problems!
  6. Not sure if this fixes it but it looks like you are passing your angles in degrees and in physics.c you apply [b][i]radians to degree[/i][/b] instead you should be using [b][i]degree to radians[/i][/b] (angle / 180.0 * PI)
  7. First of all, i notice that you use a lot of " = " operators in your if-statements (line 69, 120, 127), this is wrong and should be replaced with the compare operator " == " like you use in other places (line 36, 44). Check the rest of your code for this mistake also because when you use it here, chances are you use it in other places too. I don't have time to check everything in your code at the moment (@work) but there might be some more problems, for example comment in lines 67,68 state: [code]//if the enemy dies remove it //Need to delete the current one and make a new enemy[/code] There is no enemy deletion going on there so i have no idea why it is there Anyways, for your shooting problem: the scope of the while-loop in this code is wrong: [code] if(health = p1.x) { while(readyToFire) { shot = true; readyToFire = false; bullet = new Rectangle (enemy.x+45, enemy.y+65); by = enemy.y+65; bx = enemy.x+45; bullet = new Rectangle(bx, by, 3 , 15); System.out.println("Hi"); if(bullet.y >= 595) { bullet = new Rectangle(0, 0, 0, 0); shot = false; readyToFire = true; } } } [/code] You need to move the if-statement outside the while in order for it to be checked (after all, you set readyToFire to false inside the while) Change it to: [code] if(health == p1.x) { while(readyToFire) { shot = true; readyToFire = false; bullet = new Rectangle (enemy.x+45, enemy.y+65); by = enemy.y+65; bx = enemy.x+45; bullet = new Rectangle(bx, by, 3 , 15); System.out.println("Hi"); } if(bullet.y >= 595) { bullet = new Rectangle(0, 0, 0, 0); shot = false; readyToFire = true; } } [/code] ps. i changed the " = " to " == " in that code but i have no idea what is going on there so you might need to move the pieces around some more there are some weird things going on in your code (why are you comparing health with the x coordinate of the player??? )
  8. Here is an idea i came up with while reading this topic, it's a variant on the geocoding i guess: How about dividing servers into groups depeding on the ping time between them? When a new server connects to the lobby to identify itself, it will receive a list of the other servers and ping them (or just two or three per existing group). The result is then returned to the lobby server which assigns this server to a group. If a group exceeds a certain size, for example 30, split them into two new groups using for example the two servers which have the longest ping between them and then divide the rest equally and depending on the ping time to these two "outer" servers. You can assing a "master / reference" server per group, the one with smallest sum of pings to others in group which can be pinged by a user. If the ping is ok, the user is presented with all servers in the group and can ping these assuming decent ping times. There are still a few things that need thought, among which: - Depending on server lifespan this might not give good performance. - Ping time between servers needs to be updated periodically because it may change depending on the network / internet structure which might cause frequent rearanging of groups (however i think this won't be that bad, else normally you would have varying ping times all the time) - Merging of groups when they become small Ok please note, i have no practical experience in this field, this is just a random thought that popped up in my head so it might be either a bad idea, a lot of overhead or contain some assumptions which make this idea just not work but i figured i'd share and see what you guys think. I hope at least the idea is clear, i don't really feel like writing a two page essay atm but wanted to share it nonetheless, might expand on this later
  9. Your imagehosting does not allow hotlinking so its hard to view your picture, i had to get the url from the source, better use another one next time to make it easier for other users to view your image. Link: http://img4.pixhost.org/images/1667/14252342_fuuu.png Anyways, enabling depth testing should solve your problem [code]glEnable( GL_DEPTH_TEST );[/code] ps. you might also want to enable back face culling if your model is set up properly
  10. [quote name='Emergent' timestamp='1312083940' post='4842736'] I just want to point out that a square world that wraps in both directions is topologically a torus, not a sphere. [/quote] except for a torus the inner diameter differs from the outer so it's more like a cilinder where both ends are connected by a portal ;)
  11. [quote name='EvilNando' timestamp='1311718563' post='4840838'] .... my only problem is that the waves are very slow. I am not sure if this is because Im using rendermonkey or maybe its my code .... [/quote] the speed get's determined by [b]fTime0_X[/b][b]*.5[/b], the [b]sin[/b] function takes radians as input, one periode (so 1 wave: pixel moving to side, to other side and back) takes 2*pi which is somewhere around 6.28, assuming [b]fTime0_X[/b] is measured in seconds, one wave will take just over 12,5 seconds because you multiply it by 0.5. So you should change that 0.5 to alter the speed, the higher the value the faster the waves (unless you go over the framerate offcourse, then it will look like it goes slow in the other direction, just like the blades of a helicopter look like to change direction a few times when starting up but i don't want to confuse you ). To calculate the value use [b]factor = (2*PI) / s[/b] where [b]s[/b] is the number of seconds you want it to take to complete one wave. [b]EDIT:[/b] There is also an error in your calculation that will (probably) cause unintended behaviour, you have [b]aux.y [u]*[/u] fTime0_X * .5[/b] which should be [b]aux.y + fTime0_X*.5[/b] the way you have it now aux.y also defines the speed, but instead it should just specify the offset, i made an image for you in which i try to explain the functions of the different parameters and the effect they have on your animation. I'd suggest implementing the formula as i put it in the image and toy around with the different factors to see the effect they have on the result.
  12. [quote name='GottiJay' timestamp='1311619337' post='4840116'] Tried to do some simple animations which basically moves individual model from one position to the other...each of them enclosed in an animation function ....the problem i have is when one animation finishes the model related to that animation disappears...making way for the model in the next animation.....which is not exactly what i want... what i want is for the first model to remain in its position while the second animation was running and the second and the first models remain in their position while the third model is running an so on...this is how my animation function looks thanks for your help [/quote] You forgot to attach your code, can you try to post it again because it's hard to pin-point the problem without. I was going to take some wild stabs in the dark but i came up with so many different possible problems i decided to just wait for the code
  13. [quote name='nuclear123' ] i understand why the first movsx is used to cast the signed integer value into a DWORD size and keep it's sign( negative in this case ). [/quote] Correct [quote name='nuclear123' ] What i don't understand is why when Var1 is passed into the parameter of function() it is moved into a DWORD register using movzx? [/quote] This is because your function takes a short instead of an int. Movsx would have converted your value to a DWORD but you only want a WORD. [quote name='nuclear123' ] Doesn't this mean we loose the negative value of the sign? [/quote] No, you don't loose any information, your 2 bytes aren't changed in any way, they are just padded with 2 bytes (of value zero, 0x00). [quote name='nuclear123' ] therefore it will treat this as an unsigned integer within the function? Am i interpreting this right or no? [/quote] This is a wrong assumption, you assume your function will treat your value as an int because it gets stored as a dword, however your function is empty and you cannot see how it treats your data. Add something like Var1++; inside the function to see what really happens. Here is my prediction: your function will treat the data as an unsigned WORD and ignore the two 00 bytes that get added by the movzx function. [quote name='nuclear123' ] if so why does it happen like this? [/quote] If im correct it has to do with memory allignment, on a 32 bits system accessing the memory works more efficient (in terms of time it takes to access it), by alligning them on 32bits --> 4 bytes. even though you dont use up all the data. Look it up and you'll find a way better explanation than i can ever give. Hope this clears it up. I haven't posted on this site for a very very long time, but i started reading again a few weeks ago after regaining interest in game programming and logged back in because i found your question interesting sorry if i used unnecesary quotes or anything.
  14. Just strolling by, but felt like mentioning you can also take the variables 'clip size' and 'reload-time' into the equation which can make quite some difference. This adds more situations to the result: the chance you kill without reloading but more importantly, the chance you have to reload during a fight which costs precious time in which the oponent can kill you if his gun has a greater clip for example. oh nm, speciesUnknown did a way better job explaining, didn't see his post because i opened the topic before dinner and read+replyd after :)
  15. Well you could also try to use degenerate triangles in your strip, that will at least reduce the calls to glBegin and glEnd to 1x per frame.