1,287 reputation
11016
bio website learn-cocos2d.com
location Germany
age 39
visits member for 4 years, 1 month
seen Aug 2 at 15:29

Developer of OpenGW, a game world simulation engines / entity component system with Model-View-Controller architecture that can be used with any rendering engine.

Developer of Kobold Kit, the Sprite Kit game engine with tilemap support, game components, scheduling and event dispatching, and all the other things missing from Sprite Kit.

Developer of KoboldTouch (commercial) and Kobold2D (free), both game engines build on cocos2d-iphone. KoboldTouch adds MVC and component support and even improves cocos2d's own features, such as Tilemap rendering.

Author of the Learn Cocos2D book series published by Apress. The latest edition "Learn cocos2d 2" uses cocos2d 2.0 with ARC enabled and also covers Kobold2D.

Steffen's main website is Learn Cocos2D.


Nov
16
comment What would be a good way to implement Zelda like attack?
Or you could simply test if there's an enemy closer than a given distance (radius) when swinging the sword. Both are viable and pretty common solutions.
Nov
14
comment Handling cyclic dependencies in entity/components system
Also you can make things easier through requirements. You can have a RigidBody anywhere at anytime without any other component. But you can't have a Jetpack without a RigidBody. You can make it illegal to add a Jetpack component to an entity that doesn't have a RigidBody, that makes raw pointers still reasonably safe. Also a common principle is not to add/remove components at runtime, but rather enable/disable them - that way you don't need to deal with broken pointers nearly as much.
Nov
14
comment Handling cyclic dependencies in entity/components system
(zeroing) weak references are the way to go, unfortunately you're using C++ which makes this a much less natural thing to use compared to Objective-C. Also, cyclic dependencies almost always point to a design flaw in your components. Use delegation to avoid such issues, that way one component can make calls to methods on an unknown object IF that object (the other component) simply implements the delegate protocol/interface.
Nov
13
comment How to resolve collisions smoothly?
You'll find more info in some of the tutorials here: koboldkit.com/2013/08/…
Nov
10
comment What makes games responsive to user input?
Input responsiveness depends mainly on framerate, and only to a minor degree on technical issues (controller lag, event processing time). Game design also plays a role in this, as does execution, but hardly does the choice of engine play any role in this.
Nov
9
comment Vector or Raster?
PS: Vector art is programmer's art, typically combined with shader effects. Unless you find a good tool to create and animate vector shapes or write your own tool, there's little an artist can provide. Raster images require good art skills, or even great skills depending on the art style. Choose based on your skill sets rather than personal preferences or what others do.
Nov
9
comment Vector or Raster?
Very few vector games - what argument is that? It can be used to say that if most don't do it, we shouldn't either (assuming those people know something we don't). On the other hand, it could be argued that that's exactly the reason to do a vector shooter to stick out from the crowd. PS: just from the top of my head there are plenty of vector shooters, like Geometry Wars, Galcon, and many others.
Nov
7
answered How could I handle non-rectangular tile collision in Tiled maps?
Nov
7
comment Multithreading 2D gravity calculations
+10 if I could. Maybe you can move the last sentence to the top as an introduction, because it summarizes the core issue here. Running code on another thread doesn't magically speed up rendering if you don't have anything else to do at the same time. And the renderer probably waits for the thread to finish but if it does not (and how could it know?) it will be drawing an inconsistent game state with some entity physics still to be updated.
Nov
7
comment Cocos2dx- Draw primitives(polygons) on Update
in cocos2d-iphone you can't draw in update, there's a specific "draw" method that must be overridden and gets called automatically. I assume this is the same with cocos2d-x.
Nov
5
comment isometric background that covers the viewport
this explains the differences: gamedev.stackexchange.com/questions/22277/…
Nov
2
comment Entity Component System, weapon
Also it would allow either item or entity to be discarded and recreated as needed, especially in low-memory situations. Otherwise it will be difficult on the visual side to differentiate between the entity representing a world object (perhaps textured 3D model) vs representing an inventory item (perhaps a 2D texture).
Nov
2
comment Entity Component System, weapon
I think this is debatable. One issue I see is that while in the world the entity will have different components than when it's in the inventory (or they need to be enabled/disabled accordingly). Having a different class of entities (ie "Items") may help to differentiate between active (entity) and inactive (item) entities. An item can hold a reference to an entity, so when it gets dropped the entity is added to the world, while the item gets added to the spawned entity as its "item representation". This is a swap procedure, meaning the entity changes its "mode".
Nov
2
comment Limiting the speed of a dragged sprite in Cocos2dx
Hmmm no move actions, good. I suppose this may be the common cocos2d "black line" gap issue. Try casting all sprite positions to (int) while dragging, usually these small lines between tiled sprites only appear when the sprites are not placed at exact pixel locations.
Nov
2
answered Entity Component System, weapon
Nov
2
comment Limiting the speed of a dragged sprite in Cocos2dx
how do you move the sprites? post the code. Sounds like a 1-frame delay between moving the dragged sprite and updating the other sprite's positions. Make sure that happens in the same frame. It sounds as if you set the position of the dragged sprite, but you're using move actions for the others, which will cause a 1-frame delay.
Nov
1
awarded  Citizen Patrol
Nov
1
answered Clientside anticheating in multiplayer game 1vs1
Oct
31
comment Feasability of mobile 2D multiplayer RPG game with interactive bitmap background
You said "the game is very simple" and then you ask for advice on something that is really trivial (changing tiles), followed by questions about which language and tools/engine to use. You admit to being new to game development. All of this combined tells me you simply don't know where to start, which I understand can be difficult, but the best way to overcome it is to start somewhere. Prefer to use an engine with built-in support for tile maps (ie TMX format). This is the best advice I can give you right now.
Oct
30
comment Feasability of mobile 2D multiplayer RPG game with interactive bitmap background
The question is also too broad, and questions about "best" or "most effective" ways to do things are generally subjective unless you have two pieces of code to compare against. There's not enough requirements to go on either, changing tiles for connected players ... well you just find one way to implement and do that, and when there IS a performance issue that's when you go in and see what you can do about it.