Found out today that vectorizing shader code doesn't matter for shit nowadays.
My entire shader optimization career has been a lie.
I released Grid 5 recently. It adds a bunch of cool new physics stuff for entities.
[URL="https://github.com/Planimeter/grid-sdk/blob/master/src/game/shared/entities/prop_chest.lua"]Here[/URL]'s an example of what creating an entity looks like, and giving it physics.
When I tested it out, I gave all the `prop_tree`s "dynamic" (as opposed to "static") bodies and pushed them around with my character. Fun stuff!
[editline]9th May 2016[/editline]
[QUOTE=cartman300;50281596]Oh i just found a gem googling for something C# related.
It's a [URL="http://otter2d.com/"]2D game framework[/URL] built on top of SFML (for C#)[/QUOTE]
Otter is made by Kyle Pulver in Arizona. I saw him use his framework in a talk at igdaPHX around the time I was telling local game developers about Grid. He's a great developer and fascinating to watch. He produces work pretty quickly with it.
I've been working solid on getting my car physics to feel nice and tonight I finally got them somewhere I'm happy with. Have also been tweaking gameplay (rival delivery vans, anyone?) and I quickly threw together a script for speed zoom as suggested:
[media]http://www.youtube.com/watch?v=xtLki0AkVUo[/media]
Music unfortunately not mine, nabbed from Iron Man 3.
Switched my blur filters from 2-pass guassian to Kawase approximation. This resulted in much better and way faster results compared to before, prompting me to overhaul the bloom lighting and depth of field focus. DoF now runs fast enough to use even on my sub-optimal laptop and the bloom lighting has a softer, more realistic look:
[img]http://puu.sh/oM5O7.jpg[/img]
[QUOTE=fewes;50288854]Switched my blur filters from 2-pass guassian to Kawase approximation. This resulted in much better and way faster results compared to before, prompting me to overhaul the bloom lighting and depth of field focus. DoF now runs fast enough to use even on my sub-optimal laptop and the bloom lighting has a softer, more realistic look:
[/QUOTE]
Do you have grand plans for a game in this incredible engine you've built? I don't mean to sound condescending but you haven't posted anything but engine updates in a while, and I'm just wondering about what your goals for the project are.
It could be ultimate cross-platform 2D engine
[QUOTE=chimitos;50288971]Do you have grand plans for a game in this incredible engine you've built? I don't mean to sound condescending but you haven't posted anything but engine updates in a while, and I'm just wondering about what your goals for the project are.[/QUOTE]
Honestly it's mostly a cradle for my ideas and shader tests but as long as I find it interesting I'll keep adding to it. I've been quite busy recently which is why most updates have been just minor changes but I'd like to take some of my time off during the summer to work on some larger features.
Making an actual game in it would be pretty sweet but it's a long way to get there. The skeleton was an attempt at creating the first enemy but like always I grew bored when making it and went back to working on the code :v:
[QUOTE=fewes;50289356]Honestly it's mostly a cradle for my ideas and shader tests but as long as I find it interesting I'll keep adding to it. I've been quite busy recently which is why most updates have been just minor changes but I'd like to take some of my time off during the summer to work on some larger features.
Making an actual game in it would be pretty sweet but it's a long way to get there. The skeleton was an attempt at creating the first enemy but like always I grew bored when making it and went back to working on the code :v:[/QUOTE]
In that case: maybe you could team up with some artists and have them make assets while you finish up the engine features? You've got plenty of work done and that's the usual barrier to having people help you. Maybe kickstart the project and hire artists/modelers/designers?
It would be a pity for the engine to collect dust while you're busy doing other things. You have something legitimately special started.
Making a map maker for a tile engine in html5 canvas/javascript
Got one weapon and one race somewhat implemented. Today was mostly refactoring, setting up the inheritance hierarchy, etc.
[t]http://i.imgur.com/vX3SMHT.png[/t]
[editline]xxx[/editline]
Of course, new [URL="https://ochemonline.files.wordpress.com/2010/03/clamps.jpg"]races/weapons[/URL] are easy to implement:
[img]http://i.imgur.com/OgZGAW6.png[/img]
I had this idea for a rogue like a while back that basically revolves around you working for a spy agency, sort of like Sid Meier's Covert Action. The idea would be to generate a city and you would be working on compartmentalized tasks trying to take down baddies, but you don't really know who you're working for or why you're doing the things you're doing. Kind of like being assigned to tail a hot dog vendor and you find out he cheats on his wife but otherwise nothing about him is shady, but while you're surveilling him you see something that catches your interest like a drug deal or something so you go and investigate that. Then you get recruited for some other spy agency and your handler is a pretend druggie who lives in a shady apartment building so you go visit them for tasks. Basically the whole idea is lots of force at play all trying to gain power, through money or corruption or whatever, and you're just some lone detective trying to do your best. The compartmentalized system is also a good explanation for a randomly generated story, because those can get kind of confusing and nonsensical.
[t]http://i.imgur.com/C8C8Qfo.png[/t]
Mapmaker
[editline]10th May 2016[/editline]
[t]http://i.imgur.com/NBKNr6i.png[/t]
little cursor around mouse
[t]http://i.imgur.com/gZpoi2r.png[/t]
Changing values of tile in context menu. Collision for test value
[QUOTE=Anven11;50288385]Found out today that vectorizing shader code doesn't matter for shit nowadays.
My entire shader optimization career has been a lie.[/QUOTE]
I [I]think[/I] it depends a little on the card in question, but last I read they now outright decompose any kind of vector or matrix function.
The architecture is extremely threaded SIMD, so I don't think vectorisation does that much in the first place there, as support for that would slow everything else due to increased chip space usage for a single thread.
[editline]10th May 2016[/editline]
[QUOTE=Nigey Nige;50288816][...]
Music unfortunately not mine, nabbed from Iron Man 3.[/QUOTE]
And as such blocked in Germany. I have the option of using a proxy, but that would take a bit of manual effort.
[t]http://i.imgur.com/tbAQbf5.png[/t]
Context menus edit values for each tile. Numbers [##-##] refer to the bits that each field occupies in a 64-bit tile in the final binary file
I don't hate myself quite enough, so I decided to write a HTTP server.
(Note: I didn't write the HTTP parsing myself. I'm not that insane.)
It's dead simple, fully asynchronous and fast as hell due to libuv.
Here's the code to writing some sample routes:
[code]
import json
from kyokai import Kyokai, Request, Response
kyk = Kyokai("kyk")
@kyk.route("/route/(test|nottest)")
async def regex(request: Request, was_test):
return Response(200, was_test)
@kyk.route("/posttest", methods=["POST"])
async def post_test(request: Request):
return Response(200, request.body, {"Content-Type": "application/json"})
@kyk.route("/paramtest", methods=["GET"])
async def param_test(request: Request):
return json.dumps(request.args)
@kyk.route("/")
async def index(request: Request):
return json.dumps(request.headers), 200, {"Content-Type": "application/json"}
kyk.run()
[/code]
[code]
/m/s/e/d/Kyoukai   master  http GET "http://localhost:4444/"
HTTP/1.1 200 OK
Content-Length: 205
Content-Type: application/json
Server: Kyokai/0.1.0 (see https://github.com/SunDwarf/Kyokai)
{
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "keep-alive",
"Host": "localhost:4444",
"User-Agent": "HTTPie/0.9.3"
}
[/code]
Inspired by Flask, dead simple compared to aiohttp.
Out of curiosity, why not write the HTTP parsing yourself? Its not like its a difficult protocol.
It's faster to just use the C version of http-parser, both in terms of coding speed and application speed.
also 2lazy
[QUOTE=Tamschi;50290861]I [I]think[/I] it depends a little on the card in question, but last I read they now outright decompose any kind of vector or matrix function.
The architecture is extremely threaded SIMD, so I don't think vectorisation does that much in the first place there, as support for that would slow everything else due to increased chip space usage for a single thread.[/QUOTE]
GCN cards (including Xbox One and PlayStation 4) have threaded SIMD. Newer Nvidia cards also have something similar called warps. So it's pretty much the standard now.
It's a really clever way to increase occupancy since not all SIMD instructions operate on 4 components.
[QUOTE=Anven11;50291490]GCN cards (including Xbox One and PlayStation 4) have threaded SIMD. Newer Nvidia cards also have something similar called warps. So it's pretty much the standard now.
It's a really clever way to increase occupancy since not all SIMD instructions operate on 4 components.[/QUOTE]
Afaik this has been the case for a while with Nvidia cards. Apparently the general concept is called SIMT (which I just looked up based on now knowing they call the cores warps).
[editline]10th May 2016[/editline]
[QUOTE=Map in a box;50291186]Out of curiosity, why not write the HTTP parsing yourself? Its not like its a difficult protocol.[/QUOTE]
It's plaintext, so there's probably a ton of weird edge cases.
[QUOTE=Tamschi;50290861]And as such blocked in Germany. I have the option of using a proxy, but that would take a bit of manual effort.[/QUOTE]
Germany!! Here, have a version with youtube's awful stock music instead:
[media]http://www.youtube.com/watch?v=ZnrtnO-zfBY[/media]
[QUOTE=AntonioR;50285658]Probably nobody remembers, but in 2012 I released a Quake 2D demo and many compared it to Abuse, a game by Crack dot Com released in 1996 [URL="http://www.mobygames.com/game/abuse"]http://www.mobygames.com/game/abuse[/URL]. No wonder it looked like Quake since it was founded by a guy from id. Bobby Prince did the sounds.
It was released for free, and I wanted to check it out. Playing a DosBox at 320x200 wasn't fun. I read about a high resolution mode in the readme and searching for a fix to make it work I found out the source code was released and several ports were made during the years, but mostly for Linux. Then I finally found a abandoned working Linux, Mac and [U]Windows[/U] version on GitHub and one thing lead to another, and I ended up messing around with the code instead of playing the game. Here is the final result and the list of updates I made (the video gets loud):
[video=youtube;0Q0SbdDfnFI]https://www.youtube.com/watch?v=0Q0SbdDfnFI[/video]
If anything, this is the only version where the music has finally been fixed. If you want you can get the links on my blog. I also extracted the textures which I already posted about, and converted music to MIDI. I tested it on my old and new PC on Windows 7 32bit and 64bit. If anything I would like to know if it works, and how does playing with the Xbox controller feel, because I want to use the same controls for my own engine:
[URL="http://antonior-software.blogspot.hr/2016/05/abuse-1996-sdl-port-09a.html"]http://antonior-software.blogspot.hr/2016/05/abuse-1996-sdl-port-09a.html[/URL]
The source code and the binaries are also on my GitHub page. The game physics are locked at 15 FPS and the rendering is a bit slow, since it is all done by pushing around bytes of data on the CPU. I would like that to be improved. I only compiled it for Windows, but it should also compile for Linux and Mac if I didn't mess something up. I would appreciate if someone would compile it for Mac and Linux and post it here, since I never used a Mac, and it would take a while for me to set up Linux:
[URL="https://github.com/antrad/Abuse_1996"]https://github.com/antrad/Abuse_1996[/URL]
I will make a thread in Games subforum too.[/QUOTE]
[url=https://github.com/JohnnyonFlame/abuse-sdl]back off b u b[/url]
[video=youtube;une6kJpTFxI]https://www.youtube.com/watch?v=une6kJpTFxI[/video]
:v:
[editline]10th May 2016[/editline]
Just noticed my editor fucked up the 'big commit'. I need to find a way to extract changes from there.
[QUOTE=JohnnyOnFlame;50292090][url=https://github.com/JohnnyonFlame/abuse-sdl]back off b u b[/url]
:v:
[editline]10th May 2016[/editline]
Just noticed my editor fucked up the 'big commit'. I need to find a way to extract changes from there.[/QUOTE]
Ha, how could you forget to disable that flickering image in bottom-left :v: ? Have you ever tried fixing the 15 FPS physics ? In theory, all it would take is to divide few stuff with 4 to slow things down to make it run normally at 60FPS, but the code is such a confusing mess.
[QUOTE=Tamschi;50291706]
It's plaintext, so there's probably a ton of weird edge cases.[/QUOTE]
HTTP parsing is actually very easy
[QUOTE=Map in a box;50292844]HTTP parsing is actually very easy[/QUOTE]
[URL="http://www.ietf.org/rfc/rfc2616.txt"]The (old-ish) specification is 156 pages long when printed.[/URL]
It has been superseded by eight separate RFCs in 2014 though, probably to make it not quite as unwieldy.
[editline]10th May 2016[/editline]
I guess most of that is technically about the [I]meaning[/I] of the grammar though, and you don't have to parse it completely to make a functioning web server.
[QUOTE=Tamschi;50292930][URL="http://www.ietf.org/rfc/rfc2616.txt"]The (old-ish) specification is 156 pages long when printed.[/URL]
It has been superseded by eight separate RFCs in 2014 though, probably to make it not quite as unwieldy.
[editline]10th May 2016[/editline]
I guess most of that is technically about the [I]meaning[/I] of the grammar though, and you don't have to parse it completely to make a functioning web server.[/QUOTE]
You don't even have to support everything. HTTP 1.1 has a lot of optional stuff that isn't required to be supported.
If I recall correctly, you don't even need to implement other methods than just GET and POST for it to be compliant.
[QUOTE=Map in a box;50292844]HTTP parsing is actually very easy[/QUOTE]
Why should he reinvent the wheel if he doesn't care to? Regardless of how easy [I]you[/I] find it, he wasn't interested in making an HTML parser, he was making an HTML server.
The notion that everything has to be done yourself or you're "lazy" or "untalented" is why most so called developers never get anything done. Clarification on this part, I wasn't trying to say Map in a box insulted him, this is just a general sentiment people in programming seem to have and it needs to change. TheEyes even said "2lazy".
[QUOTE=Socram;50293002]Why should he reinvent the wheel if he doesn't care to? Regardless of how easy [I]you[/I] find it, he wasn't interested in making an HTML parser, he was making an HTML server.
The notion that everything has to be done yourself or you're "lazy" or "untalented" is why most so called developers never get anything done.[/QUOTE]
I don't think Map was calling him lazy, it seemed like he was just informing him that if he did choose to write a basic HTTP parser it's not too much work.
[QUOTE=Socram;50293002]Why should he reinvent the wheel if he doesn't care to? Regardless of how easy [I]you[/I] find it, he wasn't interested in making an HTML parser, he was making an HTML server.
The notion that everything has to be done yourself or you're "lazy" or "untalented" is why most so called developers never get anything done.[/QUOTE]
I don't recall saying he's lazy or untalented, just that it was very easy..?
I wrote a working one overnight. You really don't need to support or do much
[editline]10th May 2016[/editline]
Hell, using this image from wikipedia alone I wrote a semi basic one:
Newlines are \r\n
[img]https://upload.wikimedia.org/wikipedia/commons/c/c6/Http_request_telnet_ubuntu.png[/img]
What Are You Arguing About May 2016
Truthfully the only reply you need is HTTP/1.(0/1) 200 OK\r\nContent-Type: text/html\r\n\r\n<content>
Content-Length is nice to have as a secondary thing to start with
Sorry, you need to Log In to post a reply to this thread.