1. Post #3321
    Parad0x0217's Avatar
    May 2011
    73 Posts
    Behold!

    Reply With Quote Edit / Delete Windows 7 United States Show Events Winner Winner x 33 (list)

  2. Post #3322
    Person
    geel9's Avatar
    June 2008
    5,659 Posts
    Damn you. Mine hasn't even shipped yet!
    Reply With Quote Edit / Delete Windows 7 United States Show Events

  3. Post #3323
    Parad0x0217's Avatar
    May 2011
    73 Posts
    Damn you. Mine hasn't even shipped yet!
    It might have, because I never received a tracking number.
    Reply With Quote Edit / Delete Windows 7 United States Show Events

  4. Post #3324
    Person
    geel9's Avatar
    June 2008
    5,659 Posts
    It might have, because I never received a tracking number.
    Sweet shit. I hope it arrives soon, then.

    Edited:

    Do tell us about your impressions.
    Reply With Quote Edit / Delete Windows 7 United States Show Events

  5. Post #3325
    HQRSE FUCKER
    ief014's Avatar
    September 2009
    3,059 Posts


    Here's what the finishing product will look like.

    Major things added:

    The battery saver just calls sleep(16) every tick so it doesn't suck up all of the CPU.
    The message bar at the bottom will display messages such as information, warnings, and errors.
    Reply With Quote Edit / Delete Windows 7 Germany Show Events Artistic Artistic x 13Winner Winner x 4Programming King Programming King x 1 (list)

  6. Post #3326
    Gold Member
    Electroholic's Avatar
    June 2011
    2,320 Posts


    Here's what the finishing product will look like.

    Major things added:

    The battery saver just calls sleep(16) every tick so it doesn't suck up all of the CPU.
    The message bar at the bottom will display messages such as information, warnings, and errors.

    Have I missed something? Why do you need an option to reduce load on the CPU? Shouldn't it be on permanently?

    Anyway. Project looks awesome I want to try it out when its done!
    Reply With Quote Edit / Delete Windows 7 Canada Show Events

  7. Post #3327
    Person
    geel9's Avatar
    June 2008
    5,659 Posts
    Have I missed something? Why do you need an option to reduce load on the CPU? Shouldn't it be on permanently?

    Anyway. Project looks awesome I want to try it out when its done!
    I imagine because of the fact that it's supposed to save battery as opposed to reduce CPU load (which it does, but only as a means to an end). Desktop users needn't worry about battery.
    Reply With Quote Edit / Delete Windows 7 United States Show Events Agree Agree x 2 (list)

  8. Post #3328
    HQRSE FUCKER
    ief014's Avatar
    September 2009
    3,059 Posts
    Have I missed something? Why do you need an option to reduce load on the CPU? Shouldn't it be on permanently?

    Anyway. Project looks awesome I want to try it out when its done!
    This thing is supposed to run as fast as it can. It isn't a game where it should always have a constant speed
    Reply With Quote Edit / Delete Windows 7 Germany Show Events

  9. Post #3329
    Paid for a title.
    Maurice's Avatar
    June 2005
    6,175 Posts
    /jelly
    Reply With Quote Edit / Delete Windows 7 Germany Show Events Agree Agree x 1 (list)

  10. Post #3330
    Gold Member
    Robber's Avatar
    January 2006
    6,130 Posts
    Congratulations!

    Oh god, I just hope my app qualifies!
    Reply With Quote Edit / Delete Windows 7 Austria Show Events

  11. Post #3331
    ASK ME ABOUT MY PLAYBOOK INSTEAD OF COLLEGE
    icantread49's Avatar
    April 2011
    1,616 Posts
    -snip i'm dumb-
    Reply With Quote Edit / Delete Windows XP United States Show Events Agree Agree x 1 (list)

  12. Post #3332
    Person
    geel9's Avatar
    June 2008
    5,659 Posts
    Congratulations!

    Oh god, I just hope my app qualifies!
    Bro, my app was incredibly simple: https://market.android.com/details?id=com.geel9.isup

    I'm entirely sure yours will.
    Reply With Quote Edit / Delete Windows 7 United States Show Events Funny Funny x 5Friendly Friendly x 1Winner Winner x 1 (list)

  13. Post #3333
    garry's Avatar
    September 2001
    12,404 Posts
    Forgive me if I've missed something obvious, but what happens if you want to store that one piece of data of the same type? From what I can tell, you're storing and returning data based purely on its type name.
    It is possible to give them a name, but for my purposes storing my type is good enough as it gives us a speed boost.
    Reply With Quote Edit / Delete Windows 7 Show Events

  14. Post #3334
    ASK ME ABOUT MY PLAYBOOK INSTEAD OF COLLEGE
    icantread49's Avatar
    April 2011
    1,616 Posts
    Bro, my app was incredibly simple: https://market.android.com/details?id=com.geel9.isup

    I'm entirely sure yours will.
    unrelated but

    Is it down for everyone or just you? With the IsUp.me app, a simple tap can tell you whether or not a website is up.

    This is the ad-supported version; you can donate $1 to remove ads. All revenue is split between this app's developer and the owner of IsUp.me.

    This app is not affiliated with Isup.me or Bweeb Inc.
    uh
    Reply With Quote Edit / Delete Windows XP United States Show Events Funny Funny x 8Agree Agree x 3 (list)

  15. Post #3335
    Person
    geel9's Avatar
    June 2008
    5,659 Posts
    unrelated but



    uh
    Bweeb wanted to make sure people realized it wasn't official, and Google is anal about shit like that. I figured better safe than sorry.
    Reply With Quote Edit / Delete Windows 7 United States Show Events

  16. Post #3336
    ASK ME ABOUT MY PLAYBOOK INSTEAD OF COLLEGE
    icantread49's Avatar
    April 2011
    1,616 Posts
    It is possible to give them a name, but for my purposes storing my type is good enough as it gives us a speed boost.
    did you profile it? i find it a little odd that using typeid() instead of named properties would give you a speed boost
    Reply With Quote Edit / Delete Windows XP United States Show Events Agree Agree x 1 (list)

  17. Post #3337
    This is the "toolbox" for edit mode:



    Now I have to decide where I put the buttons. (Load, save, properties, resize, etc.)

    Just put them in the toolbox here on top
    Put them on the top of the whole game window (like a toolbar)

    Or a crazy vague idea I came up with: Put the buttons, like the buttons on the main menu, somewhere on the map (near start?) and some options in the gesture menu

    Other ideas are welcome. Something totally unique would be awesome!
    Reply With Quote Edit / Delete Windows 8 Netherlands Show Events Agree Agree x 4Funny Funny x 1 (list)

  18. Post #3338
    ASK ME ABOUT MY PLAYBOOK INSTEAD OF COLLEGE
    icantread49's Avatar
    April 2011
    1,616 Posts
    It is possible to give them a name, but for my purposes storing my type is good enough as it gives us a speed boost.
    wait what the fuck, looking at your example you're using a string to store the type ... i'll just assume you used the type_info class instead
    Reply With Quote Edit / Delete Windows XP United States Show Events

  19. Post #3339

    August 2011
    192 Posts
    higher resolution textures in action and my new spritesheet based particle engine (yeah nothing special, but makes fireballs so much easier to animate)
    Reply With Quote Edit / Delete Windows 7 Switzerland Show Events Winner Winner x 3Artistic Artistic x 2 (list)

  20. Post #3340
    SBlue's Avatar
    April 2011
    72 Posts

    Getting late so I'm going to finish the UI tomorrow, but I'll easily be submitting by tomorrow night.

    Any suggestions for the items in the grid? I think they look overly large.
    Reply With Quote Edit / Delete Mac United Kingdom Show Events

  21. Post #3341
    Dotmister's Avatar
    May 2008
    898 Posts


    After two days of decompiling Steam's Android App, churning up other people's APIs and figuring out how to do a Man-In-The-Middle attack - I'm finally on the road to develop a Steam App for Windows Phone 7.
    Reply With Quote Edit / Delete Windows 7 United Kingdom Show Events Programming King Programming King x 3Winner Winner x 1 (list)

  22. Post #3342
    Gold Member

    March 2005
    3,028 Posts
    More Windows porting annoyances:
    On Linux, you can use #include <GL/gl3.h> (not 'finalized', but, nonetheless, it works) and link as usual with -lGL to get access to all the OpenGL 3 functions.
    On Windows, I'm sure most of you are familiar with the wglGetProcAddress (or similar) debacle.
    Reply With Quote Edit / Delete Windows 7 Show Events Winner Winner x 1Agree Agree x 1 (list)

  23. Post #3343
    garry's Avatar
    September 2001
    12,404 Posts
    did you profile it? i find it a little odd that using typeid() instead of named properties would give you a speed boost
    I'm not using typeid, I'm mapping using the size_t of the pointer to its name :)
    Reply With Quote Edit / Delete Windows 7 Show Events Winner Winner x 1 (list)

  24. Post #3344
    Gold Member
    danharibo's Avatar
    July 2006
    4,498 Posts

    Getting late so I'm going to finish the UI tomorrow, but I'll easily be submitting by tomorrow night.

    Any suggestions for the items in the grid? I think they look overly large.
    How come you're running Android in virtualbox?
    Reply With Quote Edit / Delete Linux United Kingdom Show Events

  25. Post #3345
    Person
    geel9's Avatar
    June 2008
    5,659 Posts
    How come you're running Android in virtualbox?
    10^1000 times faster than the shit emulator.
    Reply With Quote Edit / Delete Windows 7 United States Show Events Agree Agree x 8Informative Informative x 4 (list)

  26. Post #3346
    Gold Member
    Chandler's Avatar
    February 2006
    1,406 Posts
    More Windows porting annoyances:
    On Linux, you can use #include <GL/gl3.h> (not 'finalized', but, nonetheless, it works) and link as usual with -lGL to get access to all the OpenGL 3 functions.
    On Windows, I'm sure most of you are familiar with the wglGetProcAddress (or similar) debacle.
    The problem lies with the 'builtin' libraries that folks link against. If AMD, Nvidia, and Intel all put out their own libraries/headers that did the "create legacy context, get new context function, create new context" stuff for you, it wouldn't be as much of a clusterfuck. (It also wouldn't be as bad, because luckily with dynamic libraries, you don't need to worry about storing the exact offset of a given function, as that's all taken care of at runtime ) The problem lies with OpenGL just being old as shit on Windows.

    OpenCL on the otherhand is actually not as bad, and ONLY extensions use the GetProcAddress style of functions, with everything else existing at link/load time.

    I'm not using typeid, I'm mapping using the size_t of the pointer to its name :)
    You should also just avoid the typeid altogether, as it is platform specific. This is something that MSVC gets right and uses the whole name to the type, whereas gcc and clang use single letter abbreviations (pointer to int becomes Pi, etc)

    Using something like a string hash of its name would probably work out better (or an enum )
    Reply With Quote Edit / Delete Windows 7 United States Show Events Informative Informative x 1Agree Agree x 1 (list)

  27. Post #3347
    Darkest_97's Avatar
    February 2011
    186 Posts
    This is the "toolbox" for edit mode:

    http://new.tinygrab.com/7cfbd5178318...07e39cb105.png

    Now I have to decide where I put the buttons. (Load, save, properties, resize, etc.)

    Just put them in the toolbox here on top
    Put them on the top of the whole game window (like a toolbar)

    Or a crazy vague idea I came up with: Put the buttons, like the buttons on the main menu, somewhere on the map (near start?) and some options in the gesture menu

    Other ideas are welcome. Something totally unique would be awesome!
    Maybe put an 'invisible until you mouse over it' toolbar at the top. That way it doesn't take up space.
    Or like a little square in the corner that when you mouse over it, it expands showing all the buttons, to take up less space.
    Or put them in the gesture menu cause it's awesome.
    Reply With Quote Edit / Delete Windows 7 United States Show Events

  28. Post #3348
    SBlue's Avatar
    April 2011
    72 Posts
    How come you're running Android in virtualbox?
    What geel says, and the Android runtime on the Playbook VM has serious rendering problems. Android x86 VM is fast AND doesn't fuck up the UI.
    Reply With Quote Edit / Delete Mac United Kingdom Show Events Agree Agree x 2 (list)

  29. Post #3349
    ASK ME ABOUT MY PLAYBOOK INSTEAD OF COLLEGE
    icantread49's Avatar
    April 2011
    1,616 Posts
    I'm not using typeid, I'm mapping using the size_t of the pointer to its name :)
    you're ... what? so ... (size_t)typeid(T).name()? but that's still using typeid??

    Edited:

    please do clarify so i can modify my benchmark, but here it is so far

    #include <iostream>
    #include <hash_map>
    #include <typeinfo>
    #include <string>
    #include <cstdlib>
    
    #define WIN32_LEAN_AND_MEAN
    #include <windows.h>
    
    struct BaseValue
    {
    	virtual ~BaseValue() {}
    };
    
    template<typename T>
    struct Value : BaseValue
    {
    	T val;
    
    	Value(T v)
    	{
    		val = v;
    	}
    };
    
    class UserDataStorageByType
    {
    private:
    
    	stdext::hash_map<size_t, BaseValue*> values;
    
    public:
    
    	~UserDataStorageByType()
    	{
    		for (stdext::hash_map<size_t, BaseValue*>::iterator i = values.begin(); i != values.end(); ++i)
    		{
    			delete i->second;
    		}
    	}
    
    	template<typename T>
    	void Add(T var)
    	{
    		if (Exists<T>())
    		{
    			return;
    		}
    
    		Value<T>* val = new Value<T>(var);
    		values[(size_t)typeid(T).name()] = val;
    	}
    
    	template<typename T>
    	T& Get()
    	{
    		Value<T>* v = static_cast<Value<T>*>(values[(size_t)typeid(T).name()]);
    		return v->val;
    	}
    
    	template<typename T>
    	bool Exists()
    	{
    		return values.find((size_t)typeid(T).name()) != values.end();
    	}
    };
    
    size_t hash(const char* str)
    {
    	// original djb2 hash
    	size_t ret = 5381;
    	while (*str != '\0')
    	{
    		ret = ret * 33 + *str;
    		++str;
    	}
    	return ret;
    }
    
    class UserDataStorageByName
    {
    private:
    
    	stdext::hash_map<size_t, BaseValue*> values;
    
    public:
    
    	~UserDataStorageByName()
    	{
    		for (stdext::hash_map<size_t, BaseValue*>::iterator i = values.begin(); i != values.end(); ++i)
    		{
    			delete i->second;
    		}
    	}
    
    	template<typename T>
    	void Add(const char* str, T var)
    	{
    		if (Exists(str))
    		{
    			return;
    		}
    
    		Value<T>* val = new Value<T>(var);
    		values[hash(str)] = val;
    	}
    
    	template<typename T>
    	T& Get(const char* str)
    	{
    		Value<T>* v = static_cast<Value<T>*>(values[hash(str)]);
    		return v->val;
    	}
    
    	bool Exists(const char* str)
    	{
    		return values.find(hash(str)) != values.end();
    	}
    };
    
    int main()
    {
    	const char* hello = "";
    	int num = 0;
    	std::string str = "";
    	LARGE_INTEGER start, end, freq;
    	LONGLONG diff = 0;
    
    	QueryPerformanceFrequency(&freq);
    
    	const int NUM = 1000000;
    
    	QueryPerformanceCounter(&start);
    	for (int i = 0; i < NUM; ++i)
    	{
    		UserDataStorageByType userDataByType;
    		userDataByType.Add("hello");
    		userDataByType.Add(5);
    		userDataByType.Add(std::string("world"));
    
    		hello = userDataByType.Get<const char*>();
    		num = userDataByType.Get<int>();
    		str = userDataByType.Get<std::string>();
    	}
    	QueryPerformanceCounter(&end);
    
    	diff = end.QuadPart - start.QuadPart;
    
    	double timeType = (double)diff / freq.QuadPart * 1000.0 / (double)NUM;
    
    	std::cout << "hello: " << hello << "\n";
    	std::cout << "num: " << num << "\n";
    	std::cout << "str: " << str << "\n";
    	std::cout << "By type: " << timeType << " ms\n";
    
    	hello = "";
    	num = 0;
    	str = "";
    	diff = 0;
    
    	QueryPerformanceCounter(&start);
    	for (int i = 0; i < NUM; ++i)
    	{
    		UserDataStorageByName userDataByName;
    		userDataByName.Add("hello", "hello");
    		userDataByName.Add("num", 5);
    		userDataByName.Add("str", std::string("world"));
    
    		hello = userDataByName.Get<const char*>("hello");
    		num = userDataByName.Get<int>("num");
    		str = userDataByName.Get<std::string>("str");
    	}
    	QueryPerformanceCounter(&end);
    
    	diff = end.QuadPart - start.QuadPart;
    
    	double timeName = (double)diff / freq.QuadPart * 1000.0 / (double)NUM;
    
    	std::cout << "hello: " << hello << "\n";
    	std::cout << "num: " << num << "\n";
    	std::cout << "str: " << str << "\n";
    	std::cout << "By name: " << timeName << " ms\n";
    
    	double timeDiff = timeName - timeType;
    
    	if (timeName > timeType)
    	{
    		std::cout << "by type is faster than by name by " << timeName - timeType << " ms\n";
    	}
    	else
    	{
    		std::cout << "By name is faster than by type by " << timeType - timeName << " ms\n";
    	}
    }
    
    

    output:
    hello: hello
    num: 5
    str: world
    By type: 0.00350932 ms
    hello: hello
    num: 5
    str: world
    By name: 0.00329294 ms
    By name is faster than by type by 0.000216381 ms
    using a name isn't really any slower at all, assuming i interpreted your posts correctly

    Edited:

    using MSVC 2008, release mode, /Ox

    Edited:

    now that i look at it, both version really boil down to the same thing, except one uses a size_t derived from the pointer of the RTTI name, and the other uses a size_t derived from the name directly - i'm not surprised the named method is faster, RTTI isn't known to be too fast
    Reply With Quote Edit / Delete Windows XP United States Show Events Agree Agree x 1 (list)

  30. Post #3350
    Gold Member
    RedBlade2021's Avatar
    January 2008
    2,515 Posts
    Made a text based BlackJack game for my Java programming class. Constructive criticism would be awesome.
    http://pastebin.com/K3vEcgi1
    Reply With Quote Edit / Delete Windows 7 United States Show Events

  31. Post #3351
    Gold Member
    Catdaemon's Avatar
    February 2005
    2,821 Posts


    at fucking last

    now I just need to figure out how to not draw over my solid tiles.. without the depth buffer as sfml won't let me draw my own gl shit :/
    Reply With Quote Edit / Delete Windows 7 Show Events Programming King Programming King x 3Artistic Artistic x 2 (list)

  32. Post #3352
    Person
    geel9's Avatar
    June 2008
    5,659 Posts
    Working on a ninepatch editor for YoGUI, using YoGUI.

    It goes not well.
    Reply With Quote Edit / Delete Windows 7 United States Show Events

  33. Post #3353
    Ask Rohan about rust keys!
    Bumrang's Avatar
    August 2011
    2,762 Posts


    After two days of decompiling Steam's Android App, churning up other people's APIs and figuring out how to do a Man-In-The-Middle attack - I'm finally on the road to develop a Steam App for Windows Phone 7.
    Oh my god.

    Please do this. Do you think it will get passed app verification (if you finish the app)?

    I would buy this even if it's $5
    Reply With Quote Edit / Delete Windows 7 United States Show Events Friendly Friendly x 1 (list)

  34. Post #3354
    Philly c's Avatar
    February 2008
    558 Posts
    More Windows porting annoyances:
    On Linux, you can use #include <GL/gl3.h> (not 'finalized', but, nonetheless, it works) and link as usual with -lGL to get access to all the OpenGL 3 functions.
    On Windows, I'm sure most of you are familiar with the wglGetProcAddress (or similar) debacle.
    I had assumed it wasn't reccomended to use that header. By the way you can download it here (i'm guessing this is the same header with same functionality), like you would have to download the other headers anyway. But I don't really see just 3.1 functions alone being super useful. Is it not better to just go the whole way and use something like glew? Doesn't linux have its equivalent getprocaddress?
    Reply With Quote Edit / Delete Windows 7 United Kingdom Show Events

  35. Post #3355
    ASK ME ABOUT MY PLAYBOOK INSTEAD OF COLLEGE
    icantread49's Avatar
    April 2011
    1,616 Posts
    i just implemented thrusters while half asleep ... holy fuck this code is bad

    Edited:

    eh, i guess it's not ALL bad, some of it isn't so bad ... for example, the actual logic function of the thruster is really simple

    void GameThruster::OnPreTick(float dt)
    {
    	if (!impl->IsActive)
    	{
    		return;
    	}
    
    	ActionPanel* actPanel = Parent()->World()->GetService<ActionPanel>();
    
    	if (Mode == 0 || Mode >= 2 && !actPanel->IsPressed(Mode - 2))
    	{
    		return;
    	}
    
    	GamePhysical* phys = impl->Object->Get<GamePhysical>();
    
    	Vector2 a, b;
    	GetWorldPoints(a, b);
    
    	Vector2 dir = a - b;
    	dir.Normalize();
    
    	phys->AddWorldForce(dir * Accel * phys->GetMass(), a);
    }
    
    Reply With Quote Edit / Delete Windows XP United States Show Events Winner Winner x 2 (list)

  36. Post #3356
    ..............
    nekosune's Avatar
    February 2009
    1,827 Posts
    i got that information from this blog post. it's oriented towards marmalade but the command-line signing process isn't specific to marmalade

    http://www.drmop.com/index.php/2011/...ld-submission/
    Oh good, both mine were signed correctly.
    Reply With Quote Edit / Delete Windows 7 United Kingdom Show Events

  37. Post #3357
    ASK ME ABOUT MY PLAYBOOK INSTEAD OF COLLEGE
    icantread49's Avatar
    April 2011
    1,616 Posts
    woohoo, now with thrusters, my car is easier to control because you can tip it fowards/backwards
    Reply With Quote Edit / Delete Windows XP United States Show Events Funny Funny x 1 (list)

  38. Post #3358
    Gold Member

    March 2005
    3,028 Posts
    I had assumed it wasn't reccomended to use that header.
    True, but I'm a bad programmer who does bad things. I don't care about old or non-compliant machines.
    They want you to load these things at run-time so you can do some kind of fallback or error handling on machines that don't support those functions. Also, that header is a draft.
    But I don't really see just 3.1 functions alone being super useful.
    I'm not sure what you mean by this. OpenGL 3.1 includes everything you'd probably want to use, not just the new stuff. If it was in OpenGL 1.0, and it wasn't removed since, then it's in that header.
    Is it not better to just go the whole way and use something like glew? Doesn't linux have its equivalent getprocaddress?
    Linux has glXGetProcAddress, and I'm switching to GLFW which provides glfwGetProcAddress.
    But when you want to load everything all at once, it becomes a real pain. Also there are differences across platforms which mean you have to handle some things specially.
    I'm halfway through the OGL4 core spec, and I've already entered ~200 functions. I'm not even sure if it's going to work yet.
    Reply With Quote Edit / Delete Windows 7 Show Events Friendly Friendly x 1 (list)

  39. Post #3359
    Gold Member
    ZenX2's Avatar
    February 2009
    5,025 Posts
    woohoo, now with thrusters, my car is easier to control because you can tip it fowards/backwards
    Are you going to implement a way for people to make custom controls for vehicles and other things?
    I can see being able to set up buttons and other ui stuff being really useful
    Reply With Quote Edit / Delete Windows 7 United States Show Events

  40. Post #3360
    Andrew McWatters
    Dennab
    March 2011
    4,658 Posts
    I'm halfway through the OGL4 core spec, and I've already entered ~200 functions. I'm not even sure if it's going to work yet.
    Get your dancing shoes ready because it sounds like you're going to be doing a lot of stepping.
    Reply With Quote Edit / Delete Windows 7 United States Show Events Artistic Artistic x 3 (list)