• 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][/img] Couple of screenshots below: [img][/img][img][/img] And of course, [url=""]get it here free from the App Store.[/url] Other links you might be interested in:[list] [*][url=""]Official YouTube trailer for Gobang Social.[/url] [*]Check out the [url=""]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][/img]
  2. Gobang Social v1.2 (iOS)

    Screenshots from Gobang Social 1.2 iOS by Kwalee Ltd.
  3. 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: 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 :)
  4. Simple games ideas for beginner

    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!
  5. sdl+sdlgfx VS sdl+opengl VS sdl only FOR 2D

    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 :)
  6. Trouble Sorting a Vector of Objects

    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 :)
  7. sdl+sdlgfx VS sdl+opengl VS sdl only FOR 2D

    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.
  8. How to represent acceleration as a vector?

    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]
  9. Game Engine Export

    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.
  10. Renderer vs render component

    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.
  11. Renderer vs render component

    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.
  12. 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 :)
  13. 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.
  14. 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?
  15. 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!