• 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

146 Neutral

About chapter78

  • Rank
  1. Hello fellow developers! I am a programmer at Kwalee, and we've just released one of our iOS titles worldwide. Its a FREE turn-based 5-in-a-row game which you can play with your friends in a similar fashion to Words With Friends and Draw Something. We're after all kinds of feedback, good and bad, so let us know what you think! There's a couple of hundred people playing the game now. The best way to get started is to hit new game, login using Facebook and choose random opponent and send your move, or alternatively invite some of your friends. All of the developers are active players, so you might get one of us [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img] Couple of screenshots below: [img]http://uploads.gamedev5.net/gallery/album_416/gallery_0_416_76814.png[/img][img]http://uploads.gamedev5.net/gallery/album_416/gallery_0_416_224179.png[/img] And of course, [url="http://ax.itunes.apple.com/app/gobang-social/id497961733"]get it here free from the App Store.[/url] Other links you might be interested in:[list] [*][url="http://www.youtube.com/watch?v=GUp2aRIhiPs&feature=colike"]Official YouTube trailer for Gobang Social.[/url] [*]Check out the [url="http://kwalee.com/"]official Kwalee website[/url] sometime, we're frequently blogging about iOS and games development in general. [/list] Basically, we're after any feedback we can get - the App Store is a learning curve for us and we're busy finding our feet. We've got several other games in development but this one is first to market. Feel free to ask me any questions you like about the game, or Kwalee in general. For those of you that don't know, Kwalee is a new UK smartphone studio formed by David Darling, co-founder of UK developer Codemasters. EDIT: Forgot to say there's an update in the works which will address several issues that our users have reported [img]http://public.gamedev.net//public/style_emoticons/default/laugh.png[/img]
  2. Quote:Original post by Splinter of Chaos The disadvantages of git are that you have to work with the command line. There's a learning curve, though that depends on your tutorial. It won't likely have a plugin for VS. Some would tell me that because git was originally a Linux program, it won't work well on Windows, and that's entirely untrue, but it might require extra work. There's a really decent plugin for VS here: http://code.google.com/p/gitextensions/ I use this on a daily basis, it works great. There are also other GUI apps if you search for them though the Linux ones are generally better. The excuse that git doesn't work well on Windows is no longer true - the guys of the ioquake3 project are currently arguing about switching to Mecurial or Git and this particular point is noted time and time again, I just don't think they are willing to do the research :)
  3. Congratulations on your first project. You could try making another retro style game e.g. Pacman or Space Invaders. Pacman is a little bit harder because you will need to do some simple pathfinding techniques. To make the projects a little more interesting you might like to adapt the core mechanics of the game and make them a little bit more unique, that might give you more of a challenge without requiring you to design your own game from scratch :) Good luck!
  4. Quote:Original post by vanzukeus Hi, thanks for the answer. Yes, I guess too that performance in this sort of game isn't very important. Question: font rendering with OpenGL is bad? No, it is fine, I just didn't get round to implementing it yet :)
  5. Yeah, change the function declaration to static and then make sure your sort call looks like this: std::sort( enemySpawnLists.begin(), enemySpawnLists.end(), ClassName::sortEnemies ); Where ClassName is the actual name of your class :)
  6. I was in a similar position not so long ago. SDL was bogging down with busy 2D scenes and so I made the switch to OpenGL. The upgrade path is convenient and it doesn't take too long to switch, plus you can still use SDL surfaces with OpenGL textures. The advantages are greater than the cons and the switch was worthwhile (not to mention great performance). The only thing I didn't finish yet is font rendering. With all that said, you probably won't be too concerned with performance if you're just writing a turn based game, you don't need to update the screen unless the scene has actually changed.
  7. Here's some code for what I'm doing in my games: m_vAcceleration = -m_vVelocity.Normalised(); m_vAcceleration *= m_fFriction->GetValueFloat(); MVector2 vDeltaVelocity = ( ( m_vAcceleration * fDelta ) / 1000.0f ); // Cap magnitude of change in velocity to remove integration errors if( vDeltaVelocity.Magnitude() > m_vVelocity.Magnitude() ) m_vVelocity.Zero(); else m_vVelocity += vDeltaVelocity; m_vPosition += ( ( m_vVelocity * fDelta ) / 1000.0f ); if(m_vVelocity.Magnitude() < m_fCutOff->GetValueFloat()) m_vVelocity.Zero(); Where most of those variables are 2D vectors. This is actually modified from some university code a while back, so if you don't like it you may blame my lecturer! You can modify the friction value and also the cut-off point, which stops the object from moving if the velocity is minute. I forgot to add this first time round. I'm applying an impulse based on key-presses in a separate function where input is handled: if( pKeyState[SDLK_LEFT] ) m_vVelocity.x -= m_fImpulse->GetValueFloat(); if( pKeyState[SDLK_RIGHT] ) m_vVelocity.x += m_fImpulse->GetValueFloat(); if( pKeyState[SDLK_UP] ) m_vVelocity.y -= m_fImpulse->GetValueFloat(); if( pKeyState[SDLK_DOWN] ) m_vVelocity.y += m_fImpulse->GetValueFloat(); [Edited by - chapter78 on March 16, 2010 4:14:21 AM]
  8. If you are going the DLL route then what SteveDeFacto said is correct. Rather than exporting a whole heap of functions, you might want to expose a single function that returns a structure which contains function pointers to the rest of the functionality. This is what older game engines such as Quake (pre-3) and Half-Life do to expose inter-module functionality. On a side note, it is also often this specific technique that cheaters target to gain access to engine functionality.
  9. What language are you working in? Drawable objects have an object called Render() that is called by the main render task. There's nothing to stop you doing subsequent calls to Render() on other drawable objects from within the 'main' drawable object, creating a hierarchy of drawables based on relative positions. A render frame might look like this: RenderTask -> Begin iterating list (2 items) RenderTask -> Space Background RenderTask -> Planet -> Orbiting Moons (x4) RenderTask -> Finished iterating The planet object is responsible for drawing its moons. There are probably better ways of doing it, but this is quite basic and works for me.
  10. I recently dealt with the same issue. Take a look at the source of my render task to see how I solved it. It is basically a sorted vector of drawable objects. The renderer simply inserts and removes things from the queue, re-sorting when necessary. Drawable objects are responsible for drawing themselves.
  11. Quote:Original post by karwosts Also I should mention for this method that you need to specify normals for each vertex also for them to be lit. This also answers your question Quote:The main thing I'm struggling to get my head round is simply calculating which of the 4 vertices to effect based on their direction from the light-source, is there a simple vector operation that can be applied here? When you have the vertex normal, you then perform dot product of the normal with the light direction to determine how much to light the vertex. Normals that are pointing toward the light source get strongly lit, while those pointed away from the light are not. Thanks for your response here. The built-in OpenGL lighting solution seems to do what I want it to do for the time being - I'll give it a shot. Shaders are a natural progression but as you've stated I don't think I'm ready to take the plunge into that arena just yet :)
  12. I just worked out that I can think of each quad as 4 rectangles and simply test whether each rectangle is within the radius of the effecting light to determine whether that vertex should be lit.
  13. Thanks for your response. Is the accumulation calculation a case of the addition of the RGB values of the lights? Of course clamping, these values within the 0-255 range. I think I should do a little research into colour theory. I would like to add a default uniformal light that ensures the scene is still visible without any additional lighting added (so I need to take this into account). I will use additional lighting mainly for special effects for things like explosions and projectiles which will be fairly short-lived. The aim here is not an accurate representation of real-world lighting. I understand the need to loop through every light within range, this shouldn't be a problem as the number of lights per-frame should be fairly minimal. I don't currently apply any manual lighting to the scene, which I would assume is the same as calling glColor4f(1.0f,1.0f,1.0f,1.0f) before each vertex). The main thing I'm struggling to get my head round is simply calculating which of the 4 vertices to effect based on their direction from the light-source, is there a simple vector operation that can be applied here?
  14. Hey guys. I'm working on a little 2D game using OpenGL, and for the most part things are going well. Initially I was using SDL but found it a little bit too clunky - the move to OpenGL was both quick and worthwhile. I would like to implement some simple lighting into my game but I'm unsure of the process in a couple of areas. I have worked out that I can re-colour each corner of my texture quads selectively illustrated in this image (lower-left corners are shaded blue): Click for image. What I'm intending to do is specify a list of lights with the following attributes: position, radius and intensity/brightness (non-directional). However, I'm unsure of the maths and the best method to work out which corners of the quads to recolour assuming they are within range of said lights. The other thing I'm unsure of is how to handle quads that are within range of multiple lights, so the calculation needs to take into account multiple re-colours. I also make the assumption that there is a calculation based on the light's intensity and the distance from the quad I'm going to re-colour, which will probably just effect the alpha value specified in a glColor call. Does anyone have any suggestions that may help? I have read various other posts from a search but these often involve image-based lightmaps which is not something I'm too concerned with. Also, please ignore that my BG image is not tiled, it soon will be :) Cheers for the help!
  15. Are you allocating/freeing the tiles every single frame? (i.e. SDL_FreeSurface). I'm not accusing you, its just a common mistake. Also, are you using hardware accelerated surfaces?