• What are you working on?
    5,004 replies, posted
[QUOTE=mojangsta;49919350]Alright it works now. Light sources are identified on every world update, depth tracing (and combining lighting values with lines' base colors) occurs every few frames, and light propagation is randomised hunt-and-kill and occurs several times per frame (instead of doing all voxels at once, every couple frames, which leads to huge visible lag every frame it happens). It runs super-smooth, is moderately tunable, and looks even more like Terraria now. I'd post a video, but my CPU is ancient and incapable of framedumping.[/QUOTE] You could dump them directly from your program (and lock it to 60fps for that). That's what I do normally since my GPU is too old for ShadowPlay. Just map the framebuffer and copy the data (or encode the frames into normal images or video directly, if your environment supports that).
Getting this to work in c# was a little trickier.... [vid]https://zippy.gfycat.com/SoggyDefiniteAracari.mp4[/vid] [editline]12th March 2016[/editline] Even better yet :) [vid]https://zippy.gfycat.com/UncommonRespectfulEuropeanfiresalamander.mp4[/vid]
[QUOTE=NitronikALT;49917728]What script are you porting, exactly?[/QUOTE] The script I am porting is Bluestreak's GBXmodel converter, which can be found at [URL]http://ghost.halomaps.org/bluestreak/gbxmodel/[/URL] This maxscript is used to import model files from Halo CE. If you use 3DS max, this is fine and dandy, but if you're using blender, you're SOL; no blender equivalents of it exist. So I've spent the last week or so porting it to Python from within blender. I've gotten the indexing portion (Where it reads the .gbxmodel file as a binary stream, and organizes the data into several arrays, or lists in the python version) more or less working pretty closely to the original. The painful part comes in once I have to start working within blender's python API, since I'm playing hell trying to wrap my head around how it actually works.
[QUOTE=Fulsam;49922440]The script I am porting is Bluestreak's GBXmodel converter, which can be found at [URL]http://ghost.halomaps.org/bluestreak/gbxmodel/[/URL] This maxscript is used to import model files from Halo CE. If you use 3DS max, this is fine and dandy, but if you're using blender, you're SOL; no blender equivalents of it exist. So I've spent the last week or so porting it to Python from within blender. I've gotten the indexing portion (Where it reads the .gbxmodel file as a binary stream, and organizes the data into several arrays, or lists in the python version) more or less working pretty closely to the original. The painful part comes in once I have to start working within blender's python API, since I'm playing hell trying to wrap my head around how it actually works.[/QUOTE] Oh my god yes, I've wanted for so long to make Halo CE maps in Blender, but it just wasnt possible.
So Windows 10 can't install previous versions of DirectX? What kind of underhanded deal is that
[QUOTE=proboardslol;49920816] So I'm guessing you're simply serving your own css through the default browser on android. If so, I would suggest adding a "clear: both" attribute to post bodies so that the user name and avatar appears above the post, giving the post the full width of the screen with which to display[/QUOTE] Exactly. I will give it a try. [QUOTE=Kidd;49920750]Thought everyone died who attempted to make a FP App. Glad to see your are still alive and kicking. Been waiting for this day for like 2 years now. :)[/QUOTE] Thanks for the kind words! [img]https://facepunch.com/fp/ratings/heart.png[/img] It's my first android project, that I actually got this far with, and I'm really happy with it. I think the main reason for the "success" with the app is, I don't rely on any API's. It's pretty much a wrapper for the site, so the app should works as long the site is up. If it wasn't for the DDOS protection from cloudflare, I could pretty much just scrape the content from the site, and show everything with native elements. But in the end, I'm really happy with the end result.
[QUOTE=hakimhakim;49923794]So Windows 10 can't install previous versions of DirectX? What kind of underhanded deal is that[/QUOTE] What? You can. [editline]13th March 2016[/editline] What previous versions of DX do you even mean? DX 9 works just fine.
[vid]https://files.catbox.moe/44dk16.webm[/vid] i learned how to webm, now you too can experience my generic royalty free chiptune music and sound effects ripped from castlevania
[QUOTE=No_0ne;49925619][vid]https://files.catbox.moe/44dk16.webm[/vid] i learned how to webm, now you too can experience my generic royalty free chiptune music and sound effects ripped from castlevania[/QUOTE] Add a "U TRYD" as an easter egg!
it's actually randomized between about a dozen messages, but i can add it to the list
[video=youtube;YvFy5ktY8Xc]http://www.youtube.com/watch?v=YvFy5ktY8Xc[/video] FINALLY, i got swapping shaders in real time to work (1 second delay). I crashed my drivers like 700 times before i figured it out: Heres the driver destroyer. [code]void Render() //************************************************************************* { SetConstantBuffer(); RunShaders(); // Present our back buffer to our front buffer g_pSwapChain->Present( vsync ? 1 : 0, 0 ); float t; if ( (t=time.Elapsed()/1000) - timer > 1) // every second { float td = t - timer; // real time interval a bit more than a second timer = t; SwapShadersOnPress(); //GURANTEED CRASH //swprintf(message,L"Fluid3D V1.0 FPS %.2f Slice %d", (float)fps/td, viewSlice); if (smoky == 1) swprintf(message,L"Explogen V1.3 Rocket Fuel FPS %.2f", (float)fps/td); else swprintf(message,L"Explogen V1.1 Wood Fire FPS %.2f", (float)fps/td); SetWindowText(g_hWnd, message); fps=0; } fps++; //RedirectIOToConsole(); }[/code] The problem i ran into was it went into an infinite loop of shit on the GPU and the drivers gave up. :nope: [IMG]http://i.imgur.com/IQbv52Q.png[/IMG]
[QUOTE=No_0ne;49925619][vid]https://files.catbox.moe/44dk16.webm[/vid] i learned how to webm, now you too can experience my generic royalty free chiptune music and sound effects ripped from castlevania[/QUOTE] Looks pretty damn solid, have you considered adding minor screen shake and a small explosion effect to killing enemies in order to increase the feedback?
[QUOTE=Kaelazun;49925807]Looks pretty damn solid, have you considered adding minor screen shake and a small explosion effect to killing enemies in order to increase the feedback?[/QUOTE] juice isn't my biggest concern right now as i'm still working on getting some last few kinks out of the engine, but after that i'll be 100% on it
snip
[QUOTE=No_0ne;49925619][vid]https://files.catbox.moe/44dk16.webm[/vid] i learned how to webm, now you too can experience my generic royalty free chiptune music and sound effects ripped from castlevania[/QUOTE] The boss could use a health bar, imo.
[QUOTE=mojangsta;49925988]Can someone who uses OSX verify that this launches properly? Thanks. [url]https://github.com/ambidot/delta-indole[/url][/QUOTE] 'you can't open the application "delta-indole.osx64" because the classic environment is no longer supported'
[QUOTE=No_0ne;49925619][vid]https://files.catbox.moe/44dk16.webm[/vid] i learned how to webm, now you too can experience my generic royalty free chiptune music and sound effects ripped from castlevania[/QUOTE] How, exactly, do you webm? I haven't nailed it yet.
[QUOTE=Asgard;49926192]How, exactly, do you webm? I haven't nailed it yet.[/QUOTE] i personally just use shadowplay to record and then miro video converter (which is just a gui for ffmpeg) to convert to webm
i used [url=https://github.com/thetarkus/WebMCam]this[/url]
Well, not too much but just used ILSpy with Reflexil to modify a Unity game's UnityEngine.dll and redirect the Debug.Log output to a file. The game lagged terribly (100% singleplayer) as File.AppendAllText calls are really expensive when the game calls Debug.Log every time a worker thread finishes it's work.... Thankfully I saved the old .dll as the game got unplayable with the patched one. [editline]asdasdasd[/editline] And apparently, the Unity Engine they used (I don't know which version) uses .NET Framework 2.0
[thumb]http://51.254.129.74/~anon/files/1457907082.png[/thumb] Network pipe things. Can either request the other party to create them or create them yourself and notify the other party. [QUOTE=GGG KILLER;49926431]And apparently, the Unity Engine they used (I don't know which version) uses .NET Framework 2.0[/QUOTE] Doesn't unity use mono?
[QUOTE=GGG KILLER;49926431]Well, not too much but just used ILSpy with Reflexil to modify a Unity game's UnityEngine.dll and redirect the Debug.Log output to a file. The game lagged terribly (100% singleplayer) as File.AppendAllText calls are really expensive when the game calls Debug.Log every time a worker thread finishes it's work.... Thankfully I saved the old .dll as the game got unplayable with the patched one. [editline]asdasdasd[/editline] And apparently, the Unity Engine they used (I don't know which version) uses .NET Framework 2.0[/QUOTE] Try opening a file statically ([I]File.OpenText(...)[/I] I think) and writing in a [I]lock[/I] statement instead. That way it should easily run fast enough.
Made a simple turn-based game with possibly the worst implementation of online multiplayer ever. It just saves your moves to a text file in a shared dropbox folder.
[QUOTE=Tamschi;49926518]Try opening a file statically ([I]File.OpenText(...)[/I] I think) and writing in a [I]lock[/I] statement instead. That way it should easily run fast enough.[/QUOTE] Thank you, that worked perfectly (with a few modifications), now the game has 0 lag! The code I used: [code] private static Object mylock; static void Log(object message) { if(mylock==null) mylock=new Object(); lock(mylock) using(StreamWriter sw = new StreamWriter("log.txt", true)) sw.WriteLine(message.ToString()); } [/code] [editline]13th March 2016[/editline] [QUOTE=cartman300;49926517]Doesn't unity use mono?[/QUOTE] If I remember correctly, it does. The decompiler flagged the .NET framework as .NET 2.0 so I assumed it is. I could be wrong as I'm not sure how Mono works though.
[QUOTE=GGG KILLER;49926676] If I remember correctly, it does. The decompiler flagged the .NET framework as .NET 2.0 so I assumed it is. I could be wrong as I'm not sure how Mono works though.[/QUOTE] It uses an old version of Mono with library compatibility up to .NET 2.0, but language capabilities up to C# 3 (or higher if you use your own compiler). They haven't really shown any initiative to update their libraries, which is unfortunate because there's a number of bugs that can be very detrimental to performance.
[QUOTE=GGG KILLER;49926676]Thank you, that worked perfectly (with a few modifications), now the game has 0 lag! The code I used: [code] private static Object mylock; static void Log(object message) { if(mylock==null) mylock=new Object(); lock(mylock) using(StreamWriter sw = new StreamWriter("log.txt", true)) sw.WriteLine(message.ToString()); } [/code][/QUOTE] That's not really thread-safe (though I guess Unity isn't threaded anyway so it happens to work). It also still opens the file once for each message, which is still very slow. I think the reason [I]File.AppendAllText(,)[/I] is extremely slow even in comparison to that may be that it reads everything to try to guess the file's encoding. Try this: [code]//Note: I didn't use VS, so there might be small mistakes. private static readonly StreamWriter _logWriter; // Can only be written in static constructor. Normally I'd assign it right here but I want to do some configuration in this case. static WhateverClassThisIs() // Safely runs once when the class is first used. { _logWriter = File.AppendText("log.txt"); // Opens the file in append mode, with UTF-8 encoding. _logWriter.AutoFlush = true; // Make sure the log is actually written, since we can't .Dispose() the static stream easily. } static void Log(object message) { lock(_logWriter) // You can use anything as lock object. Using the log writer is probably the most straightforward solution here. { _logWriter.WriteLine(message.ToString()); } // I prefer keeping curly brackets whenever there's some control statement, to clearly mark dependent statements as such. }[/code] [editline]14th March 2016[/editline] Actually, here's a better solution I just looked up: [code]//Note: I didn't use VS, so there might be small mistakes. static readonly StreamWriter _logWriter = File.AppendText("log.txt"); // Safely opens the file with UTF-8 encoding when the class is first used and prevents further modifications to the field. // See: http://stackoverflow.com/a/18709110/410020 static readonly Finalizer _finalizer = new Finalizer(); class Finalizer { ~Finalizer() { // Ensure everything is written. _logWriter.Flush(); _logWriter.Dispose(); } } static void Log(object message) { lock(_logWriter) // You can use anything as lock object. Using the log writer is probably the most straightforward solution here. { _logWriter.WriteLine(message.ToString()); } // I prefer keeping curly brackets whenever there's some control statement, to clearly mark dependent statements as such. }[/code] Unless something goes [I]really[/I] wrong (or there's a bad implementation bug in the framework), this will reliably log everything in the fastest way possible. [editline]14th March 2016[/editline] [QUOTE=laserpanda;49926582]Made a simple turn-based game with possibly the worst implementation of online multiplayer ever. It just saves your moves to a text file in a shared dropbox folder.[/QUOTE] There are games that use email, I'd say this solution is probably more straightforward :v:
[QUOTE=Tamschi;49926846]That's not really thread-safe (though I guess Unity isn't threaded anyway so it happens to work). It also still opens the file once for each message, which is still very slow. I think the reason [I]File.AppendAllText(,)[/I] is extremely slow even in comparison to that may be that it reads everything to try to guess the file's encoding. Try this: - solution #1 - [editline]14th March 2016[/editline] Actually, here's a better solution I just looked up: - solution #2 - Unless something goes [I]really[/I] wrong (or there's a bad implementation bug in the framework), this will reliably log everything in the fastest way possible. [editline]14th March 2016[/editline] There are games that use email, I'd say this solution is probably more straightforward :v:[/QUOTE] I ended up using the first solution as Reflexil doesn't has support for adding destructors (at least that I could see) and it does look faster. I didn't knew about static constructors, looks like you learn something new every day :smile:
[QUOTE=laserpanda;49926582]Made a simple turn-based game with possibly the worst implementation of online multiplayer ever. It just saves your moves to a text file in a shared dropbox folder.[/QUOTE] a friend and I did this with Advanced Wars on an emulator. We just started a game as if we were sitting right next to each other, but instead of handing a gameboy around, after we had finished our turns, we simply saved a save state that was automatically synced to dropbox. the other player then just loaded the new savestate. It actually worked surprisingly well.
Sweet, wallrunning on curved walls sorta works! lets see how far I can push this [vid]https://dl.dropboxusercontent.com/u/1400138/ShareX/2016/03/2016-03-13_21-12-00.mp4[/vid]
snip
Sorry, you need to Log In to post a reply to this thread.